O inverno e a primavera da Inteligência Artificial

Em 2006, fiz a cadeira de Redes Neurais da UFRJ, como parte do meu mestrado em Processamento Digital de Sinais, motivado pelas tais redes que imitavam o cérebro humano, aprendiam sozinhas e que poderiam nos superar um dia.

Achei decepcionante, na época. As redes pareciam mais uma curiosidade, com pouca aplicação prática, do que algo realmente útil.

Alguns motivos:

– Só conseguíamos criar redes de três, cinco camadas, com poucos neurônios por camada (shalow network)

– Aplicações restritas à interpolação de funções

– O software Estatística tinha algo pronto para redes pequenas. Qualquer aplicação mais complexa, seria necessário pegar toda a matemática e implementar do zero.

Os resultados frios e estéreis eram porque, em 2006, eu estava em pleno “Inverno da Inteligência Artificial”.

Contudo, 10 anos depois, o campo era quente e fértil de inovações: redes de centenas de camadas (daí o termo deep neural network), milhares de neurônios por camada, reconhecimento de imagens, transcrição da linguagem falada, automação de tarefas rotineiras, humanos superados em jogos complexos como o Go…

A curva acima é chamada de “curva S da inovação”.

A maior parte dos conceitos, como o neurônio artificial, a função de ativação, backpropagation, já existia desde a década de 70, e não tinham mudado nada.

Como a IA saiu do inverno para a primavera que vivenciamos nos dias de hoje?

Aponto para três tópicos principais:

– Hardware

– Software

– Dados

1 – Hardware

A evolução da capacidade computacional e o poder do processamento paralelo são dois itens importantes.

1.1 – Lei de Moore

A Lei de Moore diz que o poder computacional dobra a cada 18 meses, para o mesmo custo. A unidade básica de computação é o transístor, basicamente uma chave que pode assumir o valor 0 ou o valor 1.

A Lei de Moore deve-se, basicamente, à miniaturização do transístor. Foi isso que permitiu celulares de bolso mais poderosos do que os supercomputadores mais avançados de décadas atrás.

Do computador que eu tinha em 2006 para 2018, 12 anos, houve um avanço de 256 vezes!

Imagine se o meu rendimento no banco fosse assim…

1.2 – GPU

Outro fator é o processamento paralelo, principalmente devido à GPU (Graphic process unit). Não confundir com a CPU, que é o coração de um computador.

Com a evolução dos computadores, ocorreu uma exigência cada vez maior na parte gráfica, devido aos jogos. A solução foi criar unidades de processamento especializadas em processar gráficos, a GPU (ou seja, os gamers financiaram este avanço na área de IA).

A CPU é como um carro, que se move rápido, porém leva pouca gente. A GPU é como um trem. É mais devagar que a CPU, mas transporta muito mais informação. Se for para transportar milhares de pessoas, é melhor ir de metrô do que alocar vários carros.

A parte mais pesada da rede neural é o algoritmo de treinamento, o backpropagation. Os cientistas da computação criaram meios de ‘enganar’ a GPU: disfarçaram a informação como um gráfico, para ser processada e devolvida à rede.

Hoje em dia, temos até TPU (Tensor process unit). A ideia é a seguinte. A GPU é para computação gráfica, e estava sendo utilizada via gambiarra para processar informação. Que tal uma unidade especialmente projetada para processamento paralelo? É a TPU.

Isso sem contar que, hoje em dia, não precisamos nem comprar o hardware. Dá para utilizar via cloud, alugando o tempo gasto, e o provedor do serviço se encarrega de ter o melhor hardware possível.

2 – Software

Além do hardware, ocorreu um avanço significativo em software.

Em 2019, Yoshua Bengio, Geoffrey Hinton e Yann LeCun ganharam o prêmio Turing, tipo o Nobel da computação, por terem fundado as bases para a IA sair do inverno.

Todo prêmio é injusto, no sentido de que deixa de fora dezenas de pessoas que contribuíram.

Destaco aqui três inovações importantes: erros numéricos, novos truques, pacotes open-source.

2.1 – Erros numéricos

Um backpropagation com dezenas de camadas e milhares de neurônios causa o efeito do “vanishing gradient”. Basicamente, as correções acabam ficando tão pequenas que desaparecem.

Aqui, cabe destacar que houve um avanço nos pacotes de álgebra linear como um todo, possibilitando que a computação seja feita com menor erro numérico e viabilizando a o backpropagation em várias camadas.

2.2 – Novos truques

Com o uso das redes neurais, um arsenal de novas técnicas foi sendo incorporado. Algumas:

Convolutional neural network: é uma camada de rede neural que funciona como uma janela deslizante – esta técnica performou melhor que todos os algoritmos de classificação comuns da época em reconhecimento de escrita

ReLu: é uma função de ativação extremamente simples, (= x se maior que zero, 0 se menor), porém, acrescenta uma não-linearidade interessante, que ajuda no problema do gradiente acima

Dropout: a fim de deixar a rede mais robusta, a cada rodada parte da informação é “jogada fora”. É como ler o mesmo livro várias vezes, porém a cada vez tirando algumas palavras por página – cada treinamento é mais difícil, porém a capacidade de generalização final acaba ficando maior.

Com o saco de truques maior, a própria arquitetura da rede passa a ser extremamente mais complexa. Combinar parte da rede convolucional, camadas com dropout, número de camadas, número de neurônios.

Há tantos hiperparâmetros que o desafio dos dias de hoje é descobrir a arquitetura ideal, não treinar a rede ou programar ela do zero.

2.3 – Poderosos pacotes Open Source

O Google empacotou as inovações citadas acima e lançou o Tensor Flow em 2015. O Facebook fez algo semelhante, com o PyTorch, de 2016, e há outras alternativas existentes. Note o timing, exatamente 10 anos depois do começo da minha pesquisa.

Não há nada melhor para um pacote computacional do que ter uma base grande de usuários engajados na causa: pessoas que vão utilizar, encontrar erros, enviar sugestões etc.

Todos os pacotes acima continuam em desenvolvimento e vão continuar enquanto a primavera da IA continuar.

Para o usuário, é fantástico. Não é necessário programar o neurônio artificial nem os complexos algoritmos de treinamento e arquitetura da rede neuronal, e sim, utilizar o conhecimento best in class do mundo. Grande parte das startups que vemos hoje utilizam pacotes como os citados.

O resultado é o que conhecemos hoje: algoritmos diversos reconhecendo padrões em imagens, sons e vídeos, em carros autônomos, fazendo forecast de falhas, batendo o ser humano em diversas áreas do conhecimento.

3 – Dados

Tão importante quanto software e hardware, são os próprios dados.

Hoje em dia, há uma quantidade praticamente ilimitada de dados digitais: fotos, vídeos, áudio.

Em 2006, as câmeras digitais já existiam, porém não eram onipresentes como é hoje. Eu me lembro de possuir uma câmera analógica na época, pois ainda eram mais baratas e melhores do que as digitais. A internet, idem. A minha era conexão discada. Eu esperava dar meia-noite, para me conectar e pagar apenas um pulso de telefone.

O grande gargalo dos métodos de IA da atualidade são os dados. Eles têm que ter quantidade e qualidade suficientes.

Hoje em dia, bancos de dados como ImageNet tem mais de um milhão de imagens rotuladas. Não consigo nem imaginar a quantidade de dados que o Google ou a Amazon têm à sua disposição.

Menção honrosa ao Mechanical Turk da Amazon. Ela é uma “inteligência artificial artificial”. São seres humanos fazendo trabalhos simples, como reconhecer objetos em imagens e transcrever palavras num áudio (e sendo parcamente remunerados).

O Mechanical Turk permitiu que aos cientistas da computação obterem informações cruciais: dados rotulados. Alguém tem que ensinar o computador que um gato é um gato, e não um copo ou um elefante.

No futuro, teremos mais dados ainda. A Internet das Coisas está chegando. Deve demorar um tempo para se consolidar, mas vai chegar forte um dia.

E qual o futuro da IA?

Houve um avanço extraordinário no campo da inteligência artificial, impulsionada principalmente pelas redes neurais.

Estamos hoje na primavera da IA, com uma miríade de possibilidades surgindo.

A curva S da inovação, olhada a longo prazo, parece mais com a “espiral da inovação”: picos e vales sempre crescentes.

Vale citar a Lei de Amara: “Tendemos a superestimar as inovações a curto prazo, e subestimar a longo prazo.”

Nos primórdios das redes neurais, já se sonhava com dispositivos inteligentes, algoritmos que bateriam a bolsa de valores, robôs que conversariam com o ser humano e dominariam a Terra.

Grande parte dos sonhos dos anos 70 não ocorreram nas décadas seguintes ao previsto. Estão ocorrendo hoje, 50 anos depois!

Vale notar que, embora as conquistas tenham sido extraordinárias, a IA ainda é restrita para casos bastante específicos: automatizar rotinas simples, reconhecer objetos em imagens, transcrever a linguagem falada, criar música nova rearranjando músicas pré-existentes.

Ainda não chegamos na IA geral, aí sim, uma inteligência que realmente competiria com o ser humano em tarefas difíceis: gerenciar, tomar decisões abstratas, programar a si mesmo, criar novos algoritmos, novos jogos.

Provavelmente, a Lei de Amara ocorrerá novamente. O conhecimento atual não será suficiente para chegar na IA geral. Será necessária a evolução de outros campos: hardware, software, dados, computação quântica, computação biológica, chips em 3D, e outros conceitos que não existem ainda.

Passaremos pelo verão, outono, um novo inverno, para alcançar uma nova primavera, daqui a algumas décadas.

Trilha sonora: Vivaldi – Primavera

Vivaldi – Inverno

Outros Links:

https://ideiasesquecidas.com/2017/10/25/a-artificial-inteligencia-artificial/

https://ideiasesquecidas.com/2020/04/17/o-computador-quantico-que-sabe-tudo/

https://www.theverge.com/2019/3/27/18280665/ai-godfathers-turing-award-2018-yoshua-bengio-geoffrey-hinton-yann-lecun

https://en.wikipedia.org/wiki/Vanishing_gradient_problem

https://en.wikipedia.org/wiki/Yann_LeCun

https://www.tensorflow.org/

https://pytorch.org/

2 comentários sobre “O inverno e a primavera da Inteligência Artificial

  1. Pingback: Questions and Answers Scott Aaronson – Parte III – Computação e Informação Quântica

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s