Escolar Documentos
Profissional Documentos
Cultura Documentos
Acesse a visão geral do histórico de inteligência artificial, bem como o que há de mais
recente sobre as abordagens de rede neural e deep learning. Saiba por que, embora a IA e o
aprendizado de máquina tenham seus altos e baixos, novas abordagens como deep learning e
computação cognitiva elevaram significativamente o nível nessas disciplinas.
O histórico da IA moderna tem todos os elementos de um grande drama. No início dos anos 50,
com o foco em máquinas pensantes e em personagens interessantes, como Alan Turing e John
von Neumann, a IA deu seu primeiro salto. Depois de décadas de altos e baixos e de grandes
expectativas impossíveis de se atender, a IA e seus pioneiros fizeram grandes progressos. Hoje,
a IA está expondo seu verdadeiro potencial, focada em aplicativos e fornecendo tecnologias como
deep learning e computação cognitiva.
Este artigo explora alguns dos aspectos importantes da IA e seus subcampos. Vamos começar
com um cronograma da IA e, em seguida, examinar cada um desses elementos.
Cronograma da IA moderna
No início dos anos 50, a IA moderna estava focada naquilo que era chamado de inteligência
artificial forte, que se referia à IA que, geralmente, poderia executar qualquer tarefa intelectual
que um humano pudesse realizar. A falta de progressos na IA forte eventualmente levava àquilo
que era chamado de inteligência artificial fraca ou à aplicação de técnicas de IA para limitar
problemas. Até os anos 80, as pesquisas de IA eram divididas entre esses dois paradigmas.
Entretanto, em torno de 1980, o aprendizado de máquina se tornou uma área de pesquisa
proeminente com o propósito de oferecer aos computadores a capacidade de aprender e
desenvolver modelos para realizar atividades como previsão dentro de domínios específicos.
Após pesquisas investigativas sobre IA e aprendizado de máquina, por volta do ano 2000, surgiu
o deep learning. Os cientistas da computação usavam redes neurais em várias camadas com
novas topologias e métodos de aprendizado. Essa evolução das redes neurais resolveu com êxito
problemas complexos em vários domínios.
Na década passada, surgiu a computação cognitiva, cujo objetivo é construir sistemas que
possam conhecer e interagir naturalmente com humanos. A computação cognitiva foi revelada
pelo IBM Watson ao derrotar com sucesso os oponentes mundiais no jogo Jeopardy.
Neste tutorial, vamos explorar cada uma dessas áreas e explicar alguns dos algoritmos
importantes que levaram ao seu sucesso.
IA básica
Pesquisas realizadas antes dos anos 50 introduziram a ideia de que o cérebro consistia em uma
rede elétrica de pulsos que acionavam e, de alguma forma, orquestravam o pensamento e a
consciência. Alan Turing mostrou que qualquer cálculo poderia ser implementado digitalmente.
Portanto, a ideia de construir uma máquina que pudesse imitar o cérebro humano não poderia ser
tão remota.
Pesquisas muito antigas focavam nesse aspecto forte da IA, mas esse período também introduziu
os conceitos básicos nos quais todo aprendizado de máquina e deep learning é baseado
atualmente.
problemas moderados, a busca básica é a que mais sofre. Um dos exemplos mais antigos
de IA como busca é o desenvolvimento de um programa para jogo de damas. Arthur Samuel
desenvolveu o primeiro programa desse tipo na Máquina de Processamento de Dados Eletrônicos
IBM 701, implementando uma otimização para árvores de busca chamada poda alfa-beta.
Seu programa também ganhou reconhecimento por um avanço específico, que permitiu que o
aplicativo aprendesse com cada jogo (se tornando o primeiro programa de autoaprendizado).
Para aumentar a taxa de aprendizado do programa, Samuel o programou para jogar sozinho,
aumentando sua capacidade de jogar e aprender.
Embora você possa fazer buscas para vários problemas simples, a abordagem falha rapidamente
conforme aumenta o número de opções. Pegue o exemplo de um simples jogo da velha. No início
do jogo, há nove movimentos possíveis. Cada movimento resulta em oito contramovimentos
possíveis, e assim por diante. A árvore completa de movimentos para o jogo da velha (não
otimizado para rotação para remover duplicações) é de 362.880 nós. Se estender esse mesmo
exercício intelectual para xadrez ou Go, rapidamente você verá a desvantagem da busca.
Perceptrons
O perceptron foi um dos primeiros algoritmos de aprendizado supervisionados para redes neurais
de camada única. Dado um vetor de recurso de entrada, o algoritmo perceptron poderia aprender
a classificar entradas como pertencentes a uma classe específica. Utilizando um conjunto de
treinamento, os pesos da rede e os vieses poderiam ser atualizados para classificação linear.
O perceptron foi implementado pela primeira vez para o IBM 704 e, depois, em hardwares
customizados para reconhecimento de imagem.
Como um classificador linear, o perceptron tinha capacidade para problemas separáveis lineares.
O principal exemplo das limitações do perceptron era sua incapacidade de aprender uma função
OR (XOR) exclusiva. Os perceptrons multicamadas resolviam esse problema e preparavam o
caminho para algoritmos mais complexos, topologias de rede e deep learning.
Um dos algoritmos mais simples que podem ser implementados em uma pequena quantidade de
código é chamado k-médias. Nesse algoritmo, k indica o número de clusters no qual é possível
designar amostras. É possível inicializar um cluster com um vetor de recurso aleatório e, em
seguida, incluir todas as outras amostras no cluster mais próximo (considerando que cada
amostra representa um vetor de recurso e uma distância euclidiana utilizada para identificar a
"distância"). Conforme você inclui amostras em um cluster, seu centroide—ou seja, o centro do
cluster—é recalculado. O algoritmo então verifica as amostras novamente para assegurar que
elas existem no cluster mais próximo e finaliza quando nenhuma amostra altera a associação do
cluster.
Embora as k-médias sejam relativamente eficientes, você deve especificar k com antecedência.
Dependendo dos dados, outras abordagens podem ser mais eficientes, como armazenamento em
cluster hierárquico ou baseado em distribuição.
Árvores de decisão
Estritamente relacionada com o armazenamento em cluster está a árvore de decisão. Uma
árvore de decisão é um modelo preditivo sobre observações que levam a alguma conclusão.
As conclusões são representadas como folhas na árvore, enquanto os nós são os pontos de
decisão nos quais uma observação diverge. Árvores de decisão são baseadas em algoritmos
de aprendizado de árvore de decisão, em que o conjunto de dados é dividido em subconjuntos
baseados nos testes de valor de atributo (por meio de um processo chamado particionamento
recursivo).
Considere o exemplo na figura a seguir. Nesse conjunto de dados, é possível observar quando
alguém foi produtivo com base em três fatores. Utilizando um algoritmo de aprendizado de
árvore de decisão, posso identificar atributos utilizando uma métrica (um exemplo é o ganho de
informações). Nesse exemplo, o humor é o principal fator na produtividade, portanto, eu divido
o conjunto de dados dependendo se a opção para "bom humor" for Sim ou Não. O lado Não
é simples: sempre improdutivo. Porém, o lado Sim requer que eu divida o conjunto de dados
novamente com base nos outros dois atributos. Eu colori o conjunto de dados para ilustrar para
onde as observações levaram os nós folha.
Um aspecto útil das árvores de decisão é sua organização inerente, que oferece a capacidade de
explicar facilmente (e graficamente) como você classificou um item. Os algoritmos de aprendizado
de árvore de decisão mais populares incluem C4.5 e a Árvore de Classificação e Regressão.
Aprendizado de máquina
O aprendizado de máquina é um subcampo da IA e da ciência da computação que tem suas
raízes na otimização matemática e estatística. O aprendizado de máquina cobre técnicas de
aprendizado supervisionado e não supervisionado para aplicativos nas áreas de previsão, análise
e mineração de dados. Ele não se restringe ao deep learning e, nesta seção, vamos explorar
alguns dos algoritmos que levam a essa abordagem surpreendentemente eficiente.
Retropropagação
O verdadeiro poder das redes neurais está em sua variante multicamadas. O treinamento de
perceptrons de camada única é simples, mas a rede resultante não é tão eficiente. Daí a questão:
como podemos treinar redes com diversas camadas? É aí que entra a retropropagação.
A retropropagação é um algoritmo para treinamento de redes neurais com várias camadas. Ela
funciona em duas fases. A primeira fase é a propagação de entradas por meio de uma rede
neural para a camada final (chamada feed-forward). Na segunda fase, o algoritmo calcula um erro
e, em seguida, faz a retropropagação desse erro (ajustando os pesos) da camada final para a
primeira.
A arquitetura LeNet CNN é composta por várias camadas que implementam extração de recurso
e, depois, classificação. A imagem é dividida em campos receptivos que são refletidos em
uma camada convolucional que extrai recursos da imagem de entrada. A próxima etapa é o
agrupamento, que reduz a dimensionalidade dos recursos extraídos (por meio de down-sampling)
enquanto retém as informações mais importantes (geralmente por meio de agrupamento máximo).
O algoritmo então executa outra etapa de convolução e de agrupamento que é refletida em
um perceptron multicamadas totalmente conectado. A camada de saída final dessa rede é um
conjunto de nós que identifica recursos da imagem (neste caso, um nó por número identificado).
Os usuários podem treinar a rede por meio de retropropagação.
subsequentes dentro de sua camada. Essa propriedade torna essas redes ideais para dados de
série temporal.
Em 1997, foi criado um tipo especial de rede recorrente chamado Long Short-term Memory
(LSTM). O LSTM consiste em células de memória que, dentro de uma rede, se lembram de
valores de períodos curtos ou longos.
Uma célula de memória contém portas que controlam como as informações entram e saem dela.
A porta de entrada controla quando as novas informações podem entrar na memória. A porta de
esquecimento controla por quanto tempo uma informação existente fica retida. Por fim, a porta
de saída controla quando as informações contidas na célula são usadas na saída da célula. A
célula também contém pesos que controlam cada porta. O algoritmo de treinamento, comumente
chamado de retropropagação no tempo (uma variação da retropropagação), otimiza esses pesos
com base no erro resultante.
Deep learning
Deep learning é um conjunto relativamente novo de métodos que está mudando o aprendizado
de máquina de formas fundamentais. O deep learning não é um algoritmo propriamente dito, mas
uma família de algoritmos que implementam redes profundas com aprendizado sem supervisão.
Essas redes são tão profundas que novos métodos de cálculo, como GPUs, são necessários para
construí-las (além de clusters de nós de cálculo).
Este artigo explorou dois algoritmos deep learning até agora: CNNs e LSTMs. Esses algoritmos
foram combinados para realizar diversas tarefas surpreendentemente inteligentes. Conforme
mostrado na figura a seguir, CNNs e LSTMs foram utilizados para identificar e, depois, descrever
uma imagem ou um vídeo em língua natural.
No entanto, apesar dos resultados da aplicação de algoritmos deep learning, existem problemas
que ainda não resolvemos. Uma aplicação recente de deep learning para detecção de câncer
de pele descobriu que o algoritmo era mais preciso que um dermatologista certificado. Porém,
enquanto dermatologistas podem enumerar os fatores que os levaram a um diagnóstico, não há
como identificar quais fatores um programa deep learning utilizou em sua classificação. Isso é
chamado de problema de caixa preta de deep learning.
Outro aplicativo, chamado Deep Patient, podia prever uma doença com sucesso, dados os
registros médicos do paciente. O aplicativo se provou muito melhor no prognóstico de doenças do
que os médicos—mesmo para esquizofrenia, que é notoriamente difícil de diagnosticar. Portanto,
mesmo que os modelos funcionem bem, nenhum pode alcançar grandes redes neurais para
identificar o porquê.
Computação cognitiva
A IA e o aprendizado de máquina são preenchidos por exemplos de inspiração biológica. E
enquanto a antiga IA estava focada nos grandes objetivos de construção de máquinas que
imitassem o cérebro humano, a computação cognitiva está se esforçando para atingir esse
objetivo.
A computação cognitiva, baseada em redes neurais e deep learning, está aplicando conhecimento
de ciências cognitivas para desenvolver sistemas que simulem processos do pensamento
humano. Entretanto, em vez de focar em um único conjunto de tecnologias, a computação
cognitiva cobre diversas disciplinas, inclusive aprendizado de máquina, processamento de língua
natural, visão e interação humano-computador.
Indo além
Este artigo cobriu apenas uma fração da história da IA e o que há de mais recente nas
abordagens de rede neural e deep learning. Embora a IA e o aprendizado de máquina tenham
seus altos e baixos, novas abordagens como deep learning e computação cognitiva elevaram
significativamente o nível nessas disciplinas. Uma máquina consciente ainda pode ser
inacessível, mas os sistemas que ajudam a melhorar a vida das pessoas estão por toda parte.
Para obter mais informações sobre como desenvolver soluções IoT cognitivas para detecção de
anomalias utilizando deep learning, consulte Introdução ao deep learning e às redes Long-short
Term Memory.
Temas relacionados
• Serviços IBM Watson
• IBM Bluemix