Um dos vencedores do Nobel de Física deste ano, o italiano Giorgio Parisi é um estudioso de redes neurais. Você sabe para que elas servem?
O Prêmio Nobel de Física deste ano, anunciado em outubro, foi concedido a três pesquisadores por suas contribuições inovadoras na compreensão de sistemas físicos complexos, que são “caracterizados pela aleatoriedade e pela desordem e são difíceis de entender”, segundo o material divulgado pela Academia Real de Ciências da Suécia. O nipo-americano Syukuro Manabe e o alemão Klaus Hasselmann dividiram metade do prêmio, de pouco mais de 1 milhão de dólares, por seus estudos a respeito da modelagem física do clima da Terra, importante para realizar previsões sobre o aquecimento global. A outra metade do prêmio foi entregue ao italiano Giorgio Parisi, responsável “pela descoberta da interação da desordem e das flutuações nos sistemas físicos de escalas atômicas a planetárias”.
Parisi, de 73 anos, professor na Universidade La Spienza, em Roma, é um cientista eclético que desenvolveu estudos em diversos campos, do vidro de spins à mecânica quântica. Ele escreveu também alguns trabalhos sobre redes neurais. Em uma entrevista, Parisi disse: “O cérebro é composto por neurônios muito variados que precisam funcionar de forma conectada. Entender como cada parte de um sistema complexo se conecta com as outras é fundamental, por exemplo, para desenvolver inteligência artificial”.
Vale a pena entender o que são essas redes neurais, que atraíram a curiosidade do Nobel de Física. Hoje em dia, a gama de aplicações de redes neurais é imensa: pense em qualquer área e, provavelmente, posso dizer onde existe, ou poderia existir, uma rede neural. Mas os maiores sucessos das redes neurais têm sido no reconhecimento de padrões de imagem, áudio e vídeo, e também na análise de linguagem natural. Temos redes neurais em aplicações como análise de imagens médicas em busca de sinais de anomalias, em aerofotogrametria para monitoramento de florestas e plantações, no planejamento de tráfego urbano, na análise de grandes volumes de documentos à procura de informações valiosas, no reconhecimento de fala e na tradução automática de vídeos, na otimização de processos e de estruturas (como na criação de novos fármacos) e em muitas outras aplicações.
Um neurônio artificial é extremamente simples. Ele tem várias entradas e uma saída. Por dentro do neurônio temos duas etapas: uma soma ponderada e uma aplicação de função simples. Na primeira etapa os valores de entrada são multiplicados por números — os chamados “pesos” do neurônio — e somados. Adiciona-se uma constante extra também. Esses pesos e a constante extra são os “parâmetros” do neurônio. Na segunda fase, o resultado dessa soma ponderada passa por uma função matemática (para a qual temos várias opções a escolher hoje em dia). Essa função recebe o nome de função de ativação.
Redes neurais são, em essência, funções muito flexíveis. Pense em uma função senoidal: podemos ajustar sua amplitude, sua frequência e sua fase (deslocar a senoide para a esquerda ou direita). Mas não podemos fazer uma senoide se comportar como uma função logaritmo ou quadrática por meio do ajuste de seus parâmetros (amplitude, frequência e fase). Uma rede neural é uma função “genérica”, que pode se comportar como senoide, logaritmo ou polinômio quadrático, a nosso gosto, desde que tenhamos exemplos suficientes dessas funções específicas para que nossa rede neural possa “aprender” esse comportamento novo.
Para ficar mais claro, tente visualizar um grande conjunto de neurônios artificiais em paralelo: todos conectados aos mesmos pontos de entrada. Isso é uma camada de rede, que tem várias entradas (compartilhadas entre os neurônios) e várias saídas — uma por neurônio. Agora imagine o encadeamento de várias dessas camadas: saída de uma como entrada da próxima. Isso é uma rede neural.
Portanto, uma rede neural é essa estrutura de encadeamento de camadas de neurônios, e pode ser vista externamente como uma grande função que recebe várias entradas e provê uma ou mais saídas. As entradas podem ser valores de sensores de uma casa inteligente, e a saída pode ser um sinal de alarme de que algo está errado, ou pode ser o conjunto de valores de ajuste do sistema de ventilação do imóvel. Mas, antes de usar uma rede neural, é preciso treiná-la.
Treinar uma rede neural significa ajustar seus parâmetros (a coletânea de todos os parâmetros de todos os neurônios) para que ela apresente um desempenho aceitável na tarefa para a qual foi designada. Esse ajuste de parâmetros acontece com a aplicação de um algoritmo adequado e fazendo uso de um conjunto de exemplos entrada-saída: o objetivo do algoritmo é fazer com que a rede mimetize o comportamento observado nos exemplos.
Por mais impressionantes que sejam as aplicações de redes neurais, temos que lembrar que se trata apenas de “papagaios” que imitam os dados de exemplo usados em seu processo de treinamento. Quando uma rede neural “conversa” com uma pessoa, está meramente replicando, indiretamente, algum conjunto de diálogos que foram usados no seu processo de treinamento. Portanto, as redes neurais são ferramentas extremamente úteis, mas não são ainda os “cérebros eletrônicos” com que se sonhou nos anos 1950.
Atualmente, quando usamos o termo “redes neurais”, estamos geralmente falando de avanços impressionantes em computação e inteligência artificial: um jogador imbatível de xadrez ou gô (jogo de tabuleiro de origem chinesa), um carro autônomo, um falsificador perfeito de vozes e imagens, um sistema que prevê nossas vontades e necessidades antes mesmo que tenhamos consciência delas. Mas as redes neurais estão conosco desde o alvorecer da humanidade — afinal, trata-se do substrato fundamental do nosso sistema nervoso e, em particular, do nosso cérebro. Redes neurais biológicas, ou naturais, entenda-se.
A história do nosso desenvolvimento tecnológico mostra que imitar a natureza pode ser vantajoso para nós, do voo dos pássaros ao advento dos aviões. E não é necessário imitar o mundo biológico em detalhes: um avião não precisa bater asas para se sustentar no ar. Reconhecendo o cérebro como a fonte biológica da nossa inteligência, podemos nos perguntar: qual seria um análogo tecnológico que capture a essência da inteligência?
Em 1943, o neurofisiologista Warren McCulloch e o matemático Walter Pitts publicaram um estudo intitulado A Logical Calculus of Ideas Immanent in Nervous Activity, no qual apresentaram um modelo simplificado do funcionamento de neurônios biológicos, e como estes podem ser combinados para reproduzir elementos de lógica proposicional. Surgiram, portanto, as redes neurais artificiais. (Daqui por diante, usarei o termo “redes neurais” para se referir a essa versão artificial.)
McCulloch e Pitts mostraram a equivalência entre um modelo simplificado de atividade neuronal e uma forma poderosa de lógica, e rapidamente a empolgação da comunidade científica cresceu em torno dessa descoberta. Esperava-se que em breve surgiria o cérebro eletrônico, capaz de grandes feitos intelectuais como preconizado pela ficção científica da época, em obras como Eu, Robô, de Isaac Asimov. Contudo, ao final dos anos 50, a abordagem “conexionista” (em referência ao uso de conexões entre elementos neurais) para a busca da inteligência artificial já estava em queda. Seria substituída por trabalhos focados em análise simbólica, na qual fatos elementares e regras em um contexto qualquer são sistematicamente combinados para a produção de novo conhecimento (similar à manipulação de símbolos algébricos na demonstração de teoremas).
Ainda teríamos alguns últimos desenvolvimentos na área, como a rede neural artificial perceptron, de Frank Rosenblatt, em 1958. (Naquela época, tudo o que era avançado tinha o sufixo “-tron”; talvez hoje em dia seria chamado de iPerceive?) Em 1969, os pesquisadores Marvin Minsky e Seymour Papert publicam o livro Perceptrons, delimitando os limites do que os perceptrons poderiam realizar. Esse momento é considerado o fim da primeira era da inteligência artificial, com o abandono da pesquisa na área em favor de abordagens mais práticas e de escopo mais focado. Era o início do primeiro “inverno da inteligência artificial”.
Nos anos 1980, tivemos o ressurgimento do interesse em inteligência artificial, com o sucesso dos chamados “sistemas especialistas”, que combinavam repositórios de conhecimento especializado e regras de manipulação de fatos baseados no conhecimento de especialistas humanos. Ressurgiu também o interesse em abordagens conexionistas, com os trabalhos de John Hopfield, Geoffrey Hinton e David Rumelhart, entre outros. Esses pesquisadores conseguiram desenvolver novas abordagens conexionistas que evitavam as limitações dos perceptrons. Como uma bolha econômica, vimos novamente um aumento na empolgação em torno de inteligência artificial que elevou as expectativas a níveis irrealizáveis. Ao término da década veio a grande ressaca, ao ver que muitas predições não se realizavam. Várias empresas de inteligência artificial fecharam e o financiamento para pesquisa voltou a se tornar escasso. Veio o segundo “inverno da inteligência artificial”.
Porém, a cada ciclo, desenvolvimentos concretos perduram e são como sementes que aguardam o fim do inverno para brotar. Em 1997, o mundo assistiu com grande interesse a uma disputa de xadrez entre Garry Kasparov, talvez o maior jogador de xadrez da história, e Deep Blue, um sistema computacional criado para derrotá-lo. A vitória de Deep Blue causou enorme impacto — pensava-se que um jogo tão complexo como xadrez estaria muito longe da capacidade de uma máquina, e que humanos permaneceriam imbatíveis nessa atividade por muito tempo. Hoje, computadores modestos já são muito mais capazes no jogo de xadrez do que qualquer ser humano, e existem campeonatos entre algoritmos que são fascinantes tanto para os entusiastas de xadrez como para os de computação — é como assistir xadrez entre alienígenas, com raciocínios brilhantes surgindo o tempo todo!
(Note que o DeepBlue não era baseado em abordagens conexionistas e em redes neurais artificiais: tratava-se de um sistema especialista superanabolizado.)
Nos anos 2000, vemos novos desenvolvimentos em redes neurais, em particular nas chamadas redes neurais profundas. Por muitos anos, acreditou-se, em geral, que as redes neurais tinham alguma falha intrínseca que não permitia seu uso em situações complexas. Parte desse problema veio do mau uso do chamado Teorema da Aproximação Universal, segundo o qual uma rede neural com apenas uma camada interna, suficientemente larga, pode reproduzir qualquer função (dentro de limites razoáveis). O problema aqui é o “pode, em teoria” — na prática, essas redes “rasas” não aprendiam eficientemente.
Redes neurais profundas apresentam um grande número de camadas. Apesar de parecer contraintuitivo, essas redes têm se mostrado mais eficientes em seu aprendizado. Uma analogia pode ajudar: pense em uma criança, que aprende conceitos simples, e a partir disso vai construindo seu aprendizado de conceitos mais complexos, em uma cadeia de camadas de conhecimento que culmina em raciocínios complexos.
Vivemos agora a terceira era da inteligência artificial — e um dos protagonistas são as redes neurais profundas. É a era do deep learning. Temos agora a confluência de fatores cruciais para o sucesso do deep learning: grande capacidade computacional a custo acessível (computação em nuvem, GPUs, processadores multicore), grande disponibilidade de dados (big data) e o interesse de grandes corporações e nações em torno desse tema. Estamos finalmente vendo algumas das previsões ambiciosas dos anos 1950 se realizando — computadores estão demonstrando níveis super-humanos em tarefas antes consideradas impossíveis para as máquinas, como análise de linguagem natural ou de imagens.
Vivemos também um novo momento Deep Blue: em 2016, o programa de computador AlphaGo derrotou o coreano Lee Sedol, um dos melhores jogadores do mundo, em uma partida de gô. Assim como no xadrez, considerava-se que um computador jamais seria tão bem-sucedido em gô. E, de fato, dificilmente a estratégia usada no Deep Blue funcionaria em gô — com sua gama muito mais ampla de possibilidades de jogada por rodada, uma busca quase exaustiva pela melhor jogada não é viável. O diferencial do AlphaGo foram as redes neurais artificiais profundas.
Como se vê, as aplicações das redes neurais são bem amplas. Assim como os neurônios do cérebro humano, ainda não sabemos até onde elas são capazes de chegar.
* Fábio Ayres, doutor em Engenharia Elétrica pela University of Calgary, no Canadá, é professor de machine learning no curso de Ciência da Computação do Insper