Padrões bonitinhos.

Inteligência Artificial: o que é aprendizado de máquina?


29/1/15 às 16h07

Nota do editor: O Gabriel é leitor das antigas e fiquei muito feliz quando ele mandou um e-mail perguntando se tinha interesse em publicar este texto. Além de sempre aparecer nos comentários do Manual, ele é programador, graduado em Sistemas de Informação e mestrando em Ingeligência Artificial. Siga-o no Twitter e leia outros textos dele no Medium.


Stephen Hawking e Stuart Russel alertaram as pessoas sobre os perigos do avanço da Inteligência Artificial (IA). O temor é que os avanços estão ocorrendo muito rapidamente e não estamos preocupados o bastante com as implicações disso:

Os benefícios potenciais são grandes; tudo que a civilização tem a oferecer é produto da inteligência humana; nós não podemos prever o que poderemos atingir quando essa inteligência é amplificada pelas ferramentas que a IA pode prover, mas erradicação da guerra, doença e pobreza seriam as prioridades na lista de qualquer um. O sucesso na criação da IA seria o maior evento da história humana. Infelizmente, ele pode ser o último, a não ser que saibamos como evitar os riscos.

Apesar de ser tentador discutir a dominação pelas máquinas, esse é um problema a longo prazo. Acho que estamos preocupados até demais com ele e menos do que deveríamos com os mais imediatos. Hoje e a curto prazo, os possíveis problemas trazidos pela IA são menos apocalípticos.

Aprendizado de Máquina

É difícil definir sucintamente o que é IA. No famoso livro Inteligência Artificial, utilizado como bibliografia básica em várias universidades, os autores gastam 30 páginas discutindo o assunto. Há diversas abordagens diferentes de IA para solucionar uma grande variedade de problemas. Uma dessas abordagens é o aprendizado de máquina, uma das áreas mais relevantes dentro da IA e que será analisada a seguir.

Os algoritmos de aprendizado de máquina procuram padrões dentro de um conjunto de dados. Esses algoritmos existem há bastante tempo, mas nunca houve uma quantidade tão grande de dados digitais disponíveis para alimentar esses algoritmos como hoje graças a dois fatores: a informatização em massa e o surgimento da Internet.

Na época da mídia física, as possibilidades de recomendação automática eram bem limitadas: a sua biblioteca de CDs/fitas/LPs, por exemplo, era inacessível aos algoritmos. A Amazon poderia usar as suas compras de discos e comparar com as de outras pessoas, mas todos os discos que você ganhou de presente ou comprou em outro lugar continuariam inacessíveis a ela.

A venda digital de músicas aumentou as possibilidades, tanto que a Apple tentou emplacar o Genius e até a rede social Ping na iTunes Store. Não deu certo, mas não por falta de dados brutos. Assim, foram os serviços de streaming que realmente cumpriram a promessa do aprendizado de máquina aplicado à música.

Esses serviços (Spotify, Rdio, Pandora) conhecem todas as suas bibliotecas, playlists e quem você segue. Mais importante ainda, eles têm essas informações de vários outros usuários, podendo comparar o seu comportamento com o dos demais. Muitas outras áreas tiveram esse boom de informações disponíveis como as músicas, o que fez aumentar o interesse da academia e do mercado nas técnicas de aprendizado de máquina.

Redes neurais

Existem vários algoritmos de aprendizado de máquina. Um dos mais famosos são as chamadas redes neurais. A ideia das redes neurais é mimetizar o comportamento de nosso cérebro, pois há uma série de atividades melhor desempenhadas por pessoas do que por computadores.

Para uma criança é trivial olhar duas imagens distintas contendo uma laranja e identificar a existência da laranja em ambas, por exemplo. Já para um computador, a não ser que as imagens sejam exatamente iguais, é um problema longe de ser trivial verificar se existe uma laranja na imagem. Se as pessoas conseguem fazer essa tarefa com tanta facilidade, por que não tentar imitar o nosso sistema cognitivo nos algoritmos?

Um punhado de laranjas lado a lado.
Foto: free photos/Flickr.

Para entender como os algoritmos das redes neurais tentam imitar o nosso cérebro é requisito ter alguma bagagem em programação e matemática. Além disso, seria necessário um artigo razoavelmente extenso para esmiuçar os detalhes. Entretanto, é fácil explicar qual a utilidade delas. Um único tipo de rede neural é capaz de realizar tarefas complexas de classificação completamente distintas entre si: o algoritmo que identifica se há laranjas em fotos é o mesmo que identifica se uma notícia deve ser colocada na seção de esportes ou na de ciência, por exemplo.

A diferença de uma rede neural para outra é o processo de treinamento. A partir dos exemplos mostrados a ela, a rede neural vai ajustando seus parâmetros de acordo com as respostas. Pensando no problema de identificar laranjas: se a foto tiver uma laranja e a rede neural disser que não há, ela alterará seus parâmetros para tentar classificar corretamente os próximos exemplos. Ou seja, a rede neural regula as “sinapses” do “cérebro” para classificar novos exemplos automaticamente. Para treinar a rede neural com o intuito de classificar notícias, ao invés de imagens contendo laranjas, devem ser exibidos exemplos de notícias de cada categoria para a rede neural.

Há outros algoritmos para classificação, mas baseados em princípios de funcionamento distintos que nada têm a ver com o conceito de neurônios e cérebro. Por exemplo, algoritmos de classificação bayesianos baseados em cálculo de probabilidades. O algoritmo procura solucionar a seguinte equação:

arg max c P(c|o)

Traduzindo da matemática para o português: encontrar a classe c mais provável (arg max c) dado o que foi observado (P(c|o)). Para classificar notícias em categorias, o objetivo do algoritmo poderia ser interpretado da seguinte forma: dadas as palavras encontradas no texto da notícia, definir se é mais provável pertencer a classe de notícias de esportes ou de ciência.

Apesar de usar um conceito completamente diferente das redes neurais, o classificador estatístico tem o mesmo objetivo, ou seja, a partir de um conjunto de exemplos classificados, o algoritmo é treinado para fazer isso automaticamente. Ambos os algoritmos são considerados como aprendizado de máquina.

Além da tarefa de classificação, há algoritmos que resolvem outros tipos de problemas. O famoso cientista Andrew Ng trocou o Google pelo Baidu e disse que focará no aprendizado não supervisionado. Nesse tipo de técnica, a ideia é que o algoritmo identifique grupos sem que ninguém mostre exemplos de classes. Por exemplo, imagine que o Facebook submeta os artistas curtidos de cada usuário para um algoritmo de agrupamento não supervisionado. Ele provavelmente criará grupos de pessoas que gostam de determinados gêneros musicais.

As técnicas de aprendizado de máquina passaram por notáveis melhorias nos últimos anos, mas o mais impressionante é como elas estão presentes de diversas formas em nosso dia a dia. Pela flexibilidade desses algoritmos com funcionamento baseado em informações estatísticas, eles estão sendo utilizados para muitas finalidades, inclusive algumas menos óbvias que as citadas.

Aprendizado de máquina é pensar?

Alan Turing aos 16 anos.
Alan Turing. Foto: Sherborne School/AFP/Getty Images.

O computador que passou no teste de Turing gerou burburinho na Internet, mas não é algo tão impressionante do ponto de vista técnico. Inclusive, outros computadores já tinham passado em testes similares. É um teste com validade prática para aplicações como chatbots e assistentes como a Siri e a Cortana, mas não está muito relacionado com o avanço em outras áreas, como o reconhecimento de imagens discutido anteriormente. Por isso, muitos cientistas simplesmente não estão preocupados em passar nesse teste.

O algoritmo que passa no teste de Turing não conseguirá classificar notícias em classes, muito menos identificar laranjas em fotos. Ele está focado em enganar um ser humano, não em pensar como um ser humano completo que conseguiria fazer essas duas tarefas e muitas outras. Isso nos leva a outro questionamento: quando a máquina estará realmente pensando?

Alguns acham que é uma impossibilidade o computador pensar, independentemente do quanto eles avancem, pois um computador não é um ser consciente. Um computador, para ser pensante, deveria conseguir concluir a famosa frase Descartes: “Penso, logo existo.” Outros, como eu, acham isso irrelevante: o computador não precisa funcionar como cérbero humano, mas ser inteligente à sua própria maneira. O famoso cientista da computação Edsger Dikjstra disse que “a questão de saber se as máquinas podem pensar (…) é tão relevante como a questão se os submarinos sabem nadar”. Não importa se é um modelo estatístico ou uma rede neural e sim as competências do computador. Se ele puder fazer tudo com um ser humano, ele está pensando.

Não importa qual seja a sua visão sobre o problema, a ideia de um computador pensante é para depois. Os algoritmos ainda estão sendo aplicados com o objetivo de resolver problemas específicos, como os descritos nesse texto, e não com um caráter generalista de reproduzir as competências de um ser humano completo no computador.

Lendo as notícias, pode-se ter a falsa sensação que a IA está próxima da singularidade. Uma manchete “Rede neural com aprendizado profundo sabe identificar rosto de pessoas em fotos” soa muito mais interessante do que “Máquina de Suporte de Vetores com função kernel não-linear identifica rosto de pessoas em fotos”. Entretanto, são feitos mais ou menos equivalentes que pouco têm a ver com a ideia de construir um computador pensante.

Questões filosóficas à parte, as tecnologias de IA me parecem muito limitadas no atual estágio para que nos preocupemos com uma versão real de Matrix. Entretanto, isso não significa que não devemos nos preocupar com a disseminação do aprendizado de máquina e outras áreas da Inteligência Artificial. Mas esse é um assunto que fica para os próximos textos.

Imagem do topo: Fabricio Marques.

Colabore
Assine o Manual

Privacidade online é possível e este blog prova: aqui, você não é monitorado. A cobertura de tecnologia mais crítica do Brasil precisa do seu apoio.

Assine
a partir de R$ 9/mês