O que é Machine Learning: Um Ponto de Vista.

André Sardao
Bots Brasil
Published in
11 min readFeb 18, 2018

--

1. O Tamanho do Problema

Imagine a seguinte situação: temos no centro de um campo de futebol um objeto assimétrico, composto por diferentes partes. Você pode pensar que esse objeto é um jogo de esculturas de formas irregulares. Suponha que, distribuídas de maneira bagunçada pelas beiradas do campo, algumas pessoas observam tal objeto. Considere que cada um desses observadores dê uma descrição daquilo que vê. É natural que esperemos que esses relatos sejam diferentes um do outro, ao ponto de possivelmente não parecer versarem sobre o mesmo objeto. Essa disparidade é causada pelas divergências entre os distintos ângulos de visão. Nenhuma visão, por si só, basta para dar uma descrição completa da entidade observada. Se quisermos obter um conhecimento completo do objeto observado, devemos conciliar todos os pontos de vista de que dispomos.

Nosso objetivo é responder a uma tão interessante quanto caprichosa pergunta: “O que é Machine Learning?”. É necessário lembrar que existem diferentes espécies e abordagens de Machine Learning. Além disso, como Machine Learning resulta de esforços derivados de diferentes áreas do conhecimento humano, encontramos uma quantidade considerável de pontos de vistas, ou ângulos de visão, sobre o tema. O ponto de vista do cientista da computação pode diferir daquele do estatístico. Ou o ponto de vista do engenheiro eletricista pode ser muito distinto daquele do filósofo. Porém, todos descrevem essencialmente a mesma coisa. E nenhum desses ângulos de visão é capaz de oferecer uma imagem completa da situação. Por exemplo, a visão mais técnica e prática do engenheiro, carecerá de considerações mais amplas e teóricas de que um filósofo é capaz. Temos uma situação análoga a parábola do campo de futebol, descrita no parágrafo precedente.

Por isso, nunca pretenderíamos dar uma resposta definitiva para a pergunta colocada. Mas sim uma que conjugue um pouco da visão científica com uma linguagem, dentro dos limites da fidelidade ao assunto, leve.

É normal definir Machine Learning como reconhecimento de padrões supostamente presentes em extensos conjuntos de dados, com o fim de chegar a uma regra que nos permita “fazer previsões” sobre novos exemplos do mesmo contexto. Não jogaremos fora essa praxe: além de ilustrá-la, defenderemos que essa definição é um complemento natural do processo científico. Com o objetivo de exemplificar o que seria esse método científico, vejo aí a oportunidade de falar um pouco sobre Física, que talvez seja, quantitativa e conceitualmente, o mais bem-sucedido exemplo de ciência.

Em Português, é comum traduzir Machine Learning por “Aprendizado de Máquina”. Em geral, “aprender” pode ser descrito como o processo de transformar um dado conjunto de informações, obtido de alguma maneira, em conhecimento. Essa definição de aprendizado conforma com a definição acima de Machine Learning, nos seguintes termos:

(i) a “informação” é extraída de um conjunto de dados que temos a esperança de que sigam uma lógica subjacente, isto é, que sejam todos originários de uma mesma população. Por exemplo, no contexto de reconhecimento de imagens, o conjunto de dados seria formado por centenas de imagens de gatos, cada uma dessas imagens com o rótulo “gato”, mais centenas de fotos de cães, rotuladas com “cão”, mais centenas de fotos de carros com os devidos rótulos e assim por diante.

(ii) O “processo” é chamado de treinamento. É onde, através do uso de algum dos algoritmos usuais de Machine Learning, são reconhecidos os tais padrões presentes nos dados. Muitas vezes, tais algoritmos são versões de procedimentos já consolidados em Estatística. Em Machine Learning, os paradigmas de programação são diferentes da programação tradicional, o fluxo lógico é controlado mais por objetivos colocados por um processo de otimização matemática do que por regras rígidas impostas pelo programador. Continuando com o exemplo de (i): o modelo aprende por meio de uma espécie de “tentativa e erro”. O processo de otimização “pune” o modelo se classificações equivocadas acontecem, i.e., quando este fala que a imagem de um cão é um gato. O treinamento é considerado concluído quando o modelo finalmente “aprende” a classificar os objetos presentes no conjunto de dados da melhor forma que conseguiu. Essa “melhor forma” é atingida quando o modelo cessa de melhorar sua performance.

(iii) “Conhecimento” é obtido da seguinte forma: uma vez que temos um modelo treinado, podemos ter esperança de que futuros casos apresentarão padrões parecidos. “Parecidos”, mas não necessariamente iguais, pois possivelmente exibirão variações dentro da “lógica” dos exemplos que já vimos no treinamento. De “entender” essas possíveis variações, num sentido estatístico, deriva a capacidade de fazer predições sobre situações futuras. Seguindo o exemplo de reconhecimento de imagens, suponha que o modelo treinado é apresentado com uma foto de um gato que não estava no conjunto de dados original. Se o treinamento foi executado de maneira adequada, esperamos que o modelo classifique corretamente essa nova foto como sendo mesmo de um bichano.

2. Um Caso de Sucesso

Por milênios o homem olhou para o céu, fazendo mapas astronômicos. Em termos modernos, pode-se dizer que essas observações buscavam coletar dados a fim de reconhecer os padrões de movimentos dos corpos celestes. Baseados nessas observações primitivas, os Babilônios eram capazes de prever, com acurácia considerável, eclipses Lunares. Séculos depois, o matemático e filósofo Tales de Mileto seria creditado por ter sido o primeiro a prever um eclipse solar. Ambos os casos, antes de se conhecerem os princípios mais básicos de Física.

Porém, percebemos que ser capaz de prever eclipses lunares não foi muito útil para o caso dos eclipses solares, caso contrário não teríamos que ter esperado centenas de anos até Tales, que foi o primeiro a prever eclipses solares: os Babilônios teriam aproveitado o conhecimento que tinham sobre o caso lunar e o extrapolariam para o caso do eclipse solar. Ou seja, se esses dois fenômenos seguem as mesmas leis físicas, por que a solução de um caso não implicou imediatamente na possibilidade de resolver o outro? Porque, como já observado no parágrafo anterior, àquela altura nenhuma lei fundamental que explica esses fenômenos havia sido descoberta (ainda acreditava-se que a terra era plana).

O poder de predição de eclipses na época dos Babilônios derivava puramente de inferências baseadas na periodicidade apresentada nas observações (o “Big Data” da época). Por exemplo, que os eclipses lunares se repetiam a cada 18 anos, dez dias e oito horas (ciclo de Saros). Esse tipo de informação se aplicava apenas a casos particulares, sem er útil a casos gerais. Ora, se você comprou um salmão de dois quilos não implica que todos os salmões tenham o mesmo peso. Ou seja, reconhecer o padrão apenas do período com que uma manifestação específica de um certo fenômeno se repete não é suficiente para descrever os períodos de todas as possíveis manifestações diferentes do mesmo tipo de fenômeno. Neste caso, algo mais tem que ser aprendido. Em Machine Learning, a pior coisa que pode acontecer é que seu modelo falhe em servir a situações gerais.

A Física busca entender a natureza de “objetos” como matéria, tempo, espaço, energia e, essencialmente, como funcionam as interações entre tais “objetos”. A essas coisas, e à relação entre elas, chamamos de “fenômenos físicos”. Em outras palavras, a Física visa descobrir os princípios fundamentais que regem esses fenômenos. Essas descrições devem ser expressadas em forma de leis básicas, usualmente por fórmulas matemáticas. Tipicamente, tais princípios são induzidos a partir de observações (feitas em tempo passado, e que correspondem aos “dados”) e têm a sua exatidão testada contra observações futuras (isso significa que o conhecimento contido nesses princípios e fórmulas deve bastar para descrever o que vai acontecer em ocorrências futuras do mesmo fenômeno). Ou seja, é crucial que tais leis sejam coerentes tanto com o passado quanto com o futuro. A capacidade de prever o resultado de observações futuras, no mundo do Machine Learning, é chamado de poder de generalização. No exemplo da tarefa de reconhecimento de imagens, um bom poder de generalização pode ser ilustrado pela capacidade do seu modelo classificar corretamente novas imagens de carros, cães, gatos que não faziam parte do conjunto usado para o treinamento.

A Física tem tido muito êxito nessa busca. Por exemplo, a teoria da gravitação universal de Newton (assim como, de maneira mais geral, a relatividade geral de Einstein) é capaz de descrever o movimento da terra em torno do sol (dito translação). Os objetos físicos aqui são o sol, o planeta Terra, as respectivas massas, a distância que o separam e a interação entre os dois. A translação da terra segue um claro padrão: descreve uma elipse em torno do sol, onde cada uma das voltas dura o tempo que chamamos de um ano. Com base em dados de observações astronômicas feitas durantes milênios e seguindo esforços de Copérnico, Kepler, Galileu e outros, Newton entendeu, pelo menos em primeira aproximação, os princípios gerais que regem a gravidade: a força é proporcional ao produto das massas e inversamente proporcional ao quadrado da distância. Isso enfim possibilitou descrever os padrões presentes tanto na “queda de uma maçã” quanto no movimento de todos os planetas (com exceção de Mercúrio, que teve que esperar por mais de dois séculos até que Einstein apresentasse uma teoria que “explicasse” sua órbita) do sistema solar e também de suas luas, cometas que se aproximam e assim por diante. Isso é um caso de generalização bem-sucedida. Em Machine Learning, a qualidade de seu algoritmo deve ser medida por sua capacidade de generalização.

Machine Learning busca encontrar uma terceira via: através de uma extensiva análise de dados, obter um poder de generalização similar ao da Física, mesmo quando os princípios teóricos fundamentais forem desconhecidos.

3. Se Tudo Fosse Tão Simples Assim….

Já pensou em quanto um elétron é mais simples do que um ser humano? Ou em quanto prever o tempo de queda de uma maçã, do alto de uma árvore de 3 metros, é mais fácil do que tentar prever, agora, o resultado das eleições que acontecerão no ano que vem?

Em parte, o êxito da Física se explica pela simplicidade dos fenômenos com os quais ela lida.

Em outras áreas, essa simplicidade não costuma se repetir. Enquanto a Física estuda objetos relativamente primários como o movimento de corpos maciços e partículas elementares, campos que estudam interações de entes mais complexos, como as entre seres humanos, tendem a falhar quando se propõe a determinar os princípios básicos que regem tais interações. Nosso intelecto costuma decepcionar quando os dados apresentam grande complexidade. Esta última pode ser causada tanto por sua quantidade quanto por complexidade excessiva em seus supostos padrões. Quando não conseguimos entender todos os princípios básicos do fenômeno do qual queremos fazer previsões, o Machine Learning oferece esperança de utilidade prática.

Alguém pode apontar: “Mas esse já é um dos papéis da Estatística (mais corretamente, da Estatística Inferencial), prover tratamento científico a situações onde desconhecemos os princípios que regem o fenômeno de interesse”. Sim, isso é correto. Então seria Machine Learning um concorrente da Estatística? Não exatamente: Machine Learning e Estatística são aliados nessa empreitada de extrair informações de conjunto de dados, que sirvam de base para boas decisões. Estão unidos pela teoria que em inglês se chama “Statistical Learning Theory”, ou “Teoria estatística do aprendizado” em tradução livre.

O ponto é que uma vez que os princípios que regem um fenômeno são conhecidos, imediatamente conhecemos os padrões gerados por esse fenômeno. Por outro lado, reconhecer padrões não necessariamente implica em imediatamente conhecer os princípios fundamentais por trás do fenômeno. Porém, na maioria das vezes, reconhecer padrões é o melhor a que podemos aspirar.

E aqui, quando a quantidade de dados é muito grande e sua natureza é complexa, o Machine Learning pode ser de grande ajuda. Ou seja, Machine Learning é uma extensão do método científico no sentido de que espera auxiliar-nos na obtenção de conhecimento mesmo quando somos incapazes de entender completamente o fenômeno que estamos estudando.

Por exemplo, é muito complicado tentar explicar o que faz de um cão, um cão, e de um gato, um gato. Nós humanos sabemos diferenciar os dois animais de maneira mais sintética do que analítica. Isto é, ao reconhecermos um cão, o fazemos de maneira automática, sem ter que recorrer a complexos processos analíticos. Ou, na mesma linha, quando você encontra uma pessoa conhecida, como você sabe de quem se trata? Como você sabe que João não é José? Você mede a distância entre os olhos ou a espessura do lábio dessa pessoa? Não, você simplesmente a reconhece.

Para que um modelo de Machine Learning para reconhecimento de imagens tenha sucesso na tarefa de classificar se uma dada imagem é de um gato ou de um cão, ele precisa apenas ser capaz de replicar o processo de classificação após ser exposto a uma infinidade de exemplos, devidamente rotulados, de fotos desses dois animais.

Ou seja, quando é difícil encontrar os princípios básicos que regem um dado fenômeno, nossa próxima opção é tentar explicar os padrões encontrados em nossas observações como sendo gerado por alguma “regra estatística” conhecida, usualmente chamadas de “distribuição de probabilidades”. Muito antes do nascimento do Machine Learning, a Estatística era uma área consolidada da Matemática e já era amplamente utilizada em pesquisas científicas das mais diversas áreas. Isso significa que essas distribuições de probabilidades já haviam sido largamente testadas em aplicações.

4. Uma Certa Decepção Pessoal

Confesso ter ficado absolutamente fascinado ao ouvir pela primeira vez o termo Machine Learning.

Qual é o sentido de se dizer que uma máquina aprende? Ela fica contente com o que aprendeu? Ela entende o que aprendeu ao ponto de extrapolar tal conhecimento para contextos totalmente diferentes? Será que as pessoas que fazem essa tal de Machine Learning sabem alguma coisa que os membros de outras comunidades científicas ainda nem desconfiam?

Devo admitir que em seguida, quando comecei a entender do que se tratava, senti-me um pouco blasé: “aprendizado de máquina” clássico muitas vezes se trata de técnicas estatísticas relativamente antigas aliadas ao poder de processamento dos computadores atuais. E no fundo, eu esperava uma coisa mais mágica. Porém é um certo alívio que tudo não passe de uma evolução natural da busca por conhecimento que o homem há milênios trava.

E por que dizemos que a máquina aprende? Ela aprende no sentido de que não precisa de uma programação rígida, i.e. o programador não precisa prever todos os tipos de situações que podem acontecer em tal contexto, por exemplo: “se acontecer A, faça B”. Tudo é controlado por um processo de otimização matemática, escolhido pelo programador. O tipo de modelo estatístico que ela aprende é também pré-determinado por quem programa, porém a máquina, com auxílio do algoritmo de otimização, aprende a ajustar os parâmetros necessários.

Essencial em Machine Learning (supervisionado) é a introdução de uma “função erro”, o objetivo do processo de otimização é fazer com que o valor dessa função seja o mínimo possível. Se o modelo “vê” a foto de um cão e “chuta” que é um carro, isso faz com que a função erro tenha seu valor aumentado, o que não é bom, pois contraria o objetivo. O algoritmo de otimização (o mais usado tem suas origens há mais de duzentos anos) então força que o modelo ajuste seus parâmetros de modo que a próxima vez em que aquela mesma foto de um cão apareça, o chute não seja “é um carro”. Normalmente, os parâmetros são em quantidade colossal e devem ser ajustados, a cada passo, de uma maneira que o erro geral diminua, e não apenas o erro daquela determinada foto. Por outro lado, sempre que o modelo acerta o rótulo, o erro diminui. Quando o erro fica tão pequeno quanto possível, o treinamento está completo. Num caso ideal, teremos aprendido qual é a distribuição de probabilidade a qual os nossos dados pertencem. Assim o modelo está pronto para nos auxiliar em nossas tarefas. Talvez, no fundo, sejamos nós que aprendemos através máquina.

Ou pode ser que tudo o que escrevi acima seja besteira: pode ser que as máquinas aprendam sim os princípios fundamentais por trás dos fenômenos que examinam e que tenham decidido que, pelo menos por enquanto, não vão nos revelar o segredo!

PS: Texto originalmente publicado em Inglês no Nama Blog:

https://medium.com/nama-blog/what-is-machine-learning-a-point-of-view-e41b3de632ef

--

--

André Sardao
Bots Brasil

I’m a Machine Learning person at Nama Softwares. My interests range from Mathematics to Music, Machine Learning to Philosophy, Physics to Poetry and a lot more.