Você está na página 1de 11

Um guia para iniciantes sobre inteligência artificial,

aprendizado de máquina e computação cognitiva


M. Tim Jones 01/Jun/2017

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.

Durante milênios, os humanos ponderaram a ideia de construir máquinas inteligentes. Desde


então, a inteligência artificial (IA) teve altos e baixos, demonstrou sucessos e expectativas não
atendidas. Hoje, as notícias são recheadas de algoritmos de aprendizado de máquina para novos
problemas. Desde a detecção e a prevenção do câncer até o entendimento e a sumarização de
imagens e o processamento de linguagem natural, a IA está capacitando pessoas e mudando o
mundo.

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.

© Copyright IBM Corporation 2017. Todos os direitos reservados. Marcas Registradas


Um guia para iniciantes sobre inteligência artificial, aprendizado Página 1 de 11
de máquina e computação cognitiva
developerWorks® ibm.com/developerWorks/br/

Figura 1. Um cronograma da inteligência artificial moderna

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.

Figura 2. Cronograma das abordagens de inteligência artificial nos anos 80

IA como uma busca


Muitos problemas na IA podem ser resolvidos por meio de busca por força bruta (como
profundidade ou amplitude de buscas). No entanto, considerando o espaço de busca para

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 2 de 11


de máquina e computação cognitiva
ibm.com/developerWorks/br/ developerWorks®

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.

Figura 3. Perceptron e classificação linear

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.

Algoritmos de armazenamento em cluster


Com os perceptrons, a abordagem era supervisionada. Os usuários forneciam dados para treinar
a rede e depois testá-la com relação aos novos dados. Os algoritmos de armazenamento em
cluster utilizam uma abordagem diferente chamada aprendizado não supervisionado. Nesse
modelo, o algoritmo organiza um conjunto de vetores de recurso em clusters baseados em um ou
mais atributos dos dados.

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 3 de 11


de máquina e computação cognitiva
developerWorks® ibm.com/developerWorks/br/

Figura 4. Armazenamento em cluster em um espaço de recurso bidimensional

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 guia para iniciantes sobre inteligência artificial, aprendizado Página 4 de 11


de máquina e computação cognitiva
ibm.com/developerWorks/br/ developerWorks®

Figura 5. Um conjunto de dados simples e a árvore de decisão resultante

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.

Sistemas baseados em regras


O primeiro sistema baseado em regras e inferência, chamado Dendral, foi desenvolvido em 1965,
mas apenas nos anos 70 esses chamados "sistemas especialistas" fizeram avanços. Um sistema
baseado em regras é aquele que armazena conhecimento e regras e que utiliza um sistema de
raciocínio para tirar conclusões.

Um sistema baseado em regras geralmente consiste em um conjunto de regras, uma base de


conhecimento, um mecanismo de inferência (utilizando encadeamento de regras de avanço ou
retrocesso) e uma interface com o usuário. Na figura a seguir, eu uso alguns conhecimentos
("Sócrates era um homem"), uma regra ("como homem, era mortal") e uma interação sobre quem
é mortal.

Figura 6. Um sistema baseado em regras

Os sistemas baseados em regras são aplicados em reconhecimento de discurso, planejamento


e controle e identificação de doenças. Um sistema desenvolvido nos anos 90 para monitorar e
diagnosticar a estabilidade de barragens chamado Kaleidos continua em operação até hoje.

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

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 5 de 11


de máquina e computação cognitiva
developerWorks® ibm.com/developerWorks/br/

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.

Figura 7. Cronograma das abordagens de aprendizado de máquina

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.

Figura 8. Resumo sobre a retropropagação

Durante o treinamento, camadas intermediárias da rede se organizam para mapear partes


do espaço de entrada para o espaço de saída. Por meio do aprendizado supervisionado, a

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 6 de 11


de máquina e computação cognitiva
ibm.com/developerWorks/br/ developerWorks®

retropropagação identifica um erro no mapeamento de entrada para saída e, então, ajusta os


pesos de acordo (com uma taxa de aprendizado) para corrigir esse erro. A retropropagação
continua sendo um aspecto importante do aprendizado de rede neural. Com recursos de
computação mais rápidos e baratos, ela continua sendo aplicada em redes maiores e mais
densas.

Redes neurais convolucionais


Redes neurais convolucionais (CNNs) são redes neurais multicamadas que se inspiram no córtex
visual animal. A arquitetura é útil em vários aplicativos, inclusive o processamento de imagem.
A primeira CNN foi criada por Yann LeCun e, naquele momento, a arquitetura estava focada em
tarefas de reconhecimento de caractere manuscritos, como leitura de códigos de endereçamento
postal.

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.

Figura 9. A arquitetura de rede neural convolucional LeNet

O uso de camadas profundas de processamento, convolução, centralização e de uma camada


de classificação totalmente conectada abriu as portas para várias novas aplicações de redes
neurais. Além do processamento de imagem, a CNN foi aplicada com sucesso no reconhecimento
de vídeo e em diversas tarefas dentro do processamento de linguagem natural. CNNs também
foram implementadas em GPUs de forma bastante eficiente, melhorando significativamente seu
desempenho.

Long Short-term Memory


Você se lembra na discussão sobre retropropagação que a rede sendo treinada era feed-forward.
Nessa arquitetura, os usuários integram entradas à rede e as propagam por meio de camadas
ocultas para a camada de saída. Porém, existem várias outras topologias de rede neural. Uma,
que eu investigo aqui, permite que as conexões entre os nós formem um ciclo direto. Essas redes
são chamadas de redes neurais recorrentes e podem retroalimentar camadas anteriores ou nós

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 7 de 11


de máquina e computação cognitiva
developerWorks® ibm.com/developerWorks/br/

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.

Figura 10. Uma rede Long Short-term Memory e a célula de memória

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.

O LSTM foi aplicado ao reconhecimento de discurso, ao reconhecimento de caligrafia, à síntese


de texto para fala, à legenda de imagem e a várias outras tarefas. Vou revisar brevemente o
LSTM.

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.

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 8 de 11


de máquina e computação cognitiva
ibm.com/developerWorks/br/ developerWorks®

Figura 11. Combinando redes neurais convolucionais e redes Long Short-term


Memory para descrição de imagem

Algoritmos deep learning também foram aplicados ao reconhecimento facial, à identificação de


tuberculose com 96 por cento de precisão, a veículos autônomos e a vários outros problemas
complexos.

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.

Um exemplo de computação cognitiva é o IBM Watson, que demonstrou interações de pergunta


e resposta de última geração sobre o Jeopardy mas que a IBM prolongou por meio de um
conjunto de serviços da web. Esses serviços expõem interfaces de programação de aplicativos
para funções de reconhecimento visual, de fala para texto e de texto para fala; entendimento e
tradução de idiomas; e mecanismos de conversação para construir poderosos agentes virtuais.

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 9 de 11


de máquina e computação cognitiva
developerWorks® ibm.com/developerWorks/br/

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.

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 10 de 11


de máquina e computação cognitiva
ibm.com/developerWorks/br/ developerWorks®

Temas relacionados
• Serviços IBM Watson
• IBM Bluemix

© Copyright IBM Corporation 2017. Todos os direitos reservados.


(www.ibm.com/legal/copytrade.shtml)
Marcas Registradas
(www.ibm.com/developerworks/br/ibm/trademarks/)

Um guia para iniciantes sobre inteligência artificial, aprendizado Página 11 de 11


de máquina e computação cognitiva

Você também pode gostar