Desaprendizado de máquina: desmistificando machine learning

http://dilbert.com/strip/2013-02-02

Saudações! Esse é o primeiro capítulo da série que pretendo escrever sobre alguns temas importantes da área de machine learning e dados em geral, com informações importantes que aprendi ao estudar e trabalhar com isso na prática. As terminologias utilizadas nos posts serão em inglês, simplesmente, porque é a linguagem mais utilizada na área e, caso você se interesse em saber mais, não precisará “destraduzir” minha tradução. De acordo com Andriy Burkov:

O que é machine learning?

Uma rápida pesquisa no Google imagens nos faz acreditar que machine learning são robôs que leem livros, cérebros feitos de circuitos ou humanóides que encaram, com olhar pensativo, ícones conectados sem algum nexo:

O que a mídia fala que é e o que realmente é:

É possível se resumir machine learning como um conjunto de algoritmos que tentam extrair informações de dados, muitos dados! Modelos de machine learning já são presentes no nosso dia-a-dia: o reconhecimento de pessoas ao postar uma foto no Facebook, as traduções do Google tradutor, a busca por áudio do Google (essa é impressionante!), a previsão de demanda feita pelo Uber para alocar melhor seus carros, as recomendações de produto da loja online da Amazon, entre centenas de outras.

Se dermos todos os dados do Google para uma máquina, ela pode se tornar um super-humano, não? Calma, não é bem assim. Hoje em dia, muito se fala em inteligência artificial, computadores cognitivos e inúmeras palavras sensacionalistas que surgem por aí. Esses termos têm sido muito mal-empregados e geralmente tem a intenção de vender ou chamar atenção para o conteúdo, sem representar a realidade. Quando se fala de IA, todos imaginam o famoso menino do filme de Spielberg. Esse robô-humano, presente em muitos filmes, na verdade é uma AGI: Artificial General Intelligence. Observe aqui que a palavra General, que pode ser traduzida como “genérica”, aparece. Genérica porque é como nós, humanos: consegue jogar videogames, tocar instrumentos musicais, conversar sobre diversos assuntos, dirigir carros, fazer outras milhares de coisas diferentes, ter emoções.

Um estudo muito interessante mostra que a estimativa de chegada da inteligência artificial em nível humano parece sempre estar perto de nós, em média 20 anos a frente. Em 1960 achavam que a chegada seria em 1980, em 1980 achavam que seria em 2000, não vamos nos enganar achando que ela está muito próxima!

Fonte: How We’re Predicting AI — or Failing To, 2012.

A grande verdade é que a “Inteligência Artificial” que muito se fala na mídia e praticada pelos cientistas de dados não é nada genérica: ela é treinada para desempenhar funções muito específicas. A marca de carros Tesla utiliza Deep Learning (um ramo de machine learning) para dirigir seus carros de modo autônomo. Sem dúvida, é uma aplicação muito complexa, que necessita de grande capacidade de processamento, engloba muitos algoritmos, mas é incapaz de realizar qualquer outra tarefa além das que foi feita para fazer.

Vamos colocar o pé no chão: machine learning nada mais é do que matemática (complexa, é verdade). São algoritmos que se moldam aos dados, tem parâmetros flexíveis, como roupas que se ajustam ao corpo. São funções que se alimentam de dados e produzem saídas. Essa matemática é traduzida para linguagem de máquina, alimentada em computadores, que realizam bilhões de cálculos por segundo. É isso que chamamos de treinar um algoritmo: realizar cálculos para encontrar os números (parâmetros) que, combinados com os dados, produzem respostas próximas às obtidas no mundo real.

Podemos dizer que o boom da área de machine learning se deve a principalmente 3 fatos: O poder computacional crescente, a geração exponencial de dados (o twitter tem uma média de 500 milhões de tweets por dia!) e principalmente às pesquisas científicas na área, que cresceram muito nos últimos anos.

Grande parte da atenção que a mídia tem voltado à área se deve aos algoritmos de Deep Learning, que possuem milhões de parâmetros (as vezes mais parâmetros do que dados de entrada), esses algoritmos mostraram resultados impressionantes, principalmente nas áreas de visão computacional, análise de textos e áudios. Uma macro visão é mostrada abaixo:

Fonte: KDNuggets — https://www.kdnuggets.com/2017/07/rapidminer-ai-machine-learning-deep-learning.html

Para mostrar a transformação que Deep Learning trouxe para a área, quero mostrar alguns exemplos: todos os anos, uma competição de reconhecimento de imagens coloca em disputa algoritmos que tentam identificar o que está presente em imagens, utilizando um conjunto chamado ImageNet, que contém um milhão de imagens divididas em 1.000 categorias (raças de cachorros, carros, animais, etc). Em 2015 algoritmos de Deep Learning superaram a assertividade humana e, desde então, nunca mais perderam para os humanos.

Fonte: https://blog.inovia.vc/our-investment-in-darwinai-2fa35157dc88

Em 2017, um paper ganhou notoriedade em uma das principais revistas científicas do mundo, a Nature. Nele, os pesquisadores desenvolveram um algoritmo capaz de identificar e rotular canceres de pele em imagens melhor do que muitos médicos, que dedicaram anos para aperfeiçoar a técnica.

Outra revista muito impactante na área científica, a Science, destacou como um dos maiores avanços do ano de 2016 o algoritmo que venceu o melhor jogador do mundo de Go, conhecido como o jogo mais difícil do mundo. Uma curiosidade: especialistas duvidavam que qualquer algoritmo fosse capaz de ganhar esse jogo.

Hoje, segmentações de imagem desse tipo são possíveis:

Fonte: https://towardsdatascience.com/using-tensorflow-object-detection-to-do-pixel-wise-classification-702bf2605182

Estudando sobre machine learning é possível notar como é complexo criar um algoritmo para fazer uma fração do que muitos bebês conseguem fazer intuitivamente (apesar dessa comparação ser um pouco injusta, afinal, são milhões de anos de evolução). Talvez tenhamos que desaprender o que aprendemos para ver como fazemos e replicar em algoritmos. Pode ser que daqui 20 anos consigamos chegar lá.

Como você pode aprender mais sobre aprendizado de máquina?

Existem diversas fontes excelentes para se aprender, de graça! Seria um pouco redundante parafrasear ótimos conteúdos aqui. Posso dar uma dica: para responder essa pergunta não é possível escapar da matemática.

Essa é uma área onde o estudo é praticamente solitário: cursos EAD, leitura de blogs, papers, aplicação de códigos e muitos vídeos do Youtube. Afie seu inglês, pois 99% dos conteúdos são nessa língua. Isso não é motivo para desânimo, pois é uma área fascinante, com descobertas diárias, que se estende por diversos segmentos: visão computacional, processamento de linguagem natural, detecção de fraude, otimização, previsão de demanda, entre muitos outros.

Uma lista completa de links muito úteis pode ser encontrada em um post meu no linkedin. Espero que você tenha gostado e aprendido um pouco mais sobre o assunto!