Innovatrix

O algoritmo constrói a inteligência artificial

post4

O ano de 2012 é um marco no atual surto de interesse e investimentos em AIs. Inteligências artificiais são algoritmos que separam “sinal” de “ruído” mergulhando em bases de dados inimaginavelmente grandes – originadas de Googles, Facebooks, You Tubes, Blogs, Twitters – e do que mais houver, e com esses sinais constroem “inteligências” de todo tipos. O interesse em AIs é antigo – pesquisas na área são feitas há mais de sessenta anos, sem nunca terem levado a nada muito espetacular. O que aconteceu em 2012? Uma equipe liderada por um sujeito chamado Andrew Ng produziu um gato usando uma AI. Eles construíram um algoritmo (que operava de forma distribuída em dezesseis supercomputadores interconectados), para aprender a reconhecer imagens de objetos, pessoas e coisas. Note: o algoritmo foi programado para aprender, não para reconhecer nada específico.

A partir de 10 milhões de vídeos do You Tube que ele escolheu aleatoriamente e alimentou nessa “rede neural” de supercomputadores, ela aprendeu a reconhecer gatos. Ninguém tinha falado em gatos e ninguém dera qualquer definição do que fosse um gato, mas a rede apreendeu a reconhecer o padrão que chamamos “gato” e produziu a imagem de um!

Essa “inteligência sintética” opera na força bruta. Ao receber milhões de imagens como inputs, o algoritmo é instruído a examinar cada uma, bit a bit (pixel a pixel). Com isso, começa identificando vagos contornos, ou beiradas (edges), que parecem ter alguma estabilidade, e podem ser por exemplo, contornos difusos de olhos, narizes, bocas, orelhas… Não porque gatos tenham essas coisas (o algoritmo não sabe o que é um gato, nem uma orelha, nem um nariz..), mas porque elas aparecem com alta frequência nas imagens alimentadas. Depois, o algoritimo muda de nível – passa para uma “camada mais profunda” na rede, e agrega novas “molduras” às beiradas que identificou na etapa anterior. Essas são mais abrangentes, mas ainda pouco nítidas. Cada camada da rede lida com um nível diferente de abstração.

O algoritmo desempenha esse processo seguindo instruções que poderíamos descrever meio fantasiosamente assim: “geralmente contornos como os que estão sendo identificados, são de objetos que aparecem aos pares (olhos), procure outros como este. Se achou, entre esses dois objetos pode haver um outro (chamado nariz), verifique se nas imagens que você está examinando existe entre os dois olhos algum contorno mais ou menos definido (que possivelmente será um nariz)”. Camada a camada, vão aparecendo padrões que lembram olhos, narizes, pelos, barbatanas , sobrancelhas… E o algoritmo vai ajustando a si próprio por meio de um processo matemático, inspirado no funcionamento dos neurons no cérebro, de modo a tornar o padrão da imagem cada vez mais nítido.

O resultado final é a imagem de um gato. A chave da coisa é organizar a rede de neurons (simulada pelo algoritmo) em camadas. `A medida que avança em suas computações, o algoritmo vai dando pesos às contribuições de cada “neuron” em cada camada, e modificando esses pesos em função do que vai aprendendo. Esse processo que descrevi muito grosseiramente é chamado de deep learning, pois quanto mais profundas as camadas de neurons formos capazes de simular, mais preciso será o aprendizado do algoritmo. Deep learning (sem supervisão neste caso) é uma das variantes de uma categoria mais geral de algoritmos computacionais chamada de machine learning – uma maneira de fazer com que computadores identifiquem coisas quando as vêem, produzindo por si mesmos as regras que seus programadores não conseguem especificar.

Leia também