Machine Learning: a tecnologia que está impulsionando a inovação, por Rafael Kehl*
/ Se algum aplicativo que você usa for responsável pela interpretação, reconhecimento ou, até mesmo, ranqueamento de alguma ação, pode apostar que ele usa machine learning em alguma parte do processo. Um exemplo que você certamente já usou é o Google, que possui um algoritmo complexo que vai interpretar sua pesquisa e trazer os resultados mais relevantes. Para quem tem algum produto da Apple, o Face ID usa um conjunto de sensores da parte frontal do aparelho para criar um mapa tridimensional do seu rosto e, em seguida, validar a sua identidade, usando um algoritmo de machine learning. Isso tudo acontece em uma fração de segundo e possui um alto grau de precisão, que só é possível de ser alcançado por meio de algoritmos de machine learning.
Mas, afinal, o que é Machine Learning?
Existem muitas maneiras de definir o que é machine learning. Entre elas, a definição que originou este termo, dada por Arthur Samuel, em 1959: “Machine learning é a área de estudo que dá aos computadores a habilidade de aprender sem serem explicitamente programados.”
Apesar de parecer um pouco óbvia, essa definição deixa claro dois fatores: machine learning é um campo de estudo e, portanto, está sempre evoluindo, e os computadores não são explicitamente programados para resolver aquela tarefa, ou seja, esses algoritmos são mais gerais e podem nos ajudar a resolver problemas similares àqueles para os quais eles foram originalmente pensados.
Samuel desenvolveu um método que evoluiu, junto a outros, para o que hoje conhecemos como algoritmos de aprendizado por reforço, que são usados para resolver os mais variados problemas de planejamento e otimização, como planejamento de gastos ou custos, rotas de entrega e minimização de riscos.
E esse foi só o começo do que hoje é um robusto conjunto de ferramentas capaz de fazer de tudo um pouco. Para melhor organizar esses algoritmos, eles são, geralmente, separados em três grandes categorias: aprendizado por reforço, aprendizado supervisionado e aprendizado não-supervisionado. Cada categoria é boa em resolver um tipo de problema e, por isso, é importante conhecer bem todas elas para conseguir aplicar o machine learning de maneira efetiva.
Aprendizado supervisionado
Um algoritmo de aprendizado supervisionado é treinado com um ou mais exemplos, que são conjuntos de dados juntamente com o resultado desejado para cada dado desses conjuntos. Esses algoritmos têm como objetivo criar um modelo matemático que vai mapear cada nova entrada a um resultado aproximado, baseado no conjunto de treino que ele recebeu.
Os algoritmos mais comuns de aprendizado supervisionado são os de regressão e classificação. Algoritmos de regressão buscam encontrar uma relação entre duas ou mais variáveis, usando uma função matemática, e são treinados, geralmente, com dados históricos. A forma mais simples de regressão é a regressão linear, que tenta encaixar uma reta em um conjunto de pontos da melhor maneira possível. Um exemplo seria um algoritmo que recebe o tamanho, número de quartos e número de banheiros de uma casa e responde com um valor de venda aproximado para ela.
Já os algoritmos de classificação, como diz o nome, buscam classificar um novo dado de acordo com o treinamento que ele recebeu. Ao contrário da regressão, o algoritmo busca uma função matemática que separe, da melhor forma possível, as diferentes classes que ele recebeu como exemplo. Novamente, o classificador mais simples é o linear, que separa as classes usando retas.
Aprendizado não-supervisionado
Um algoritmo de aprendizado não-supervisionado é treinado somente com um conjunto de dados, sem os resultados esperados, e tem como objetivo identificar características ou estruturas nesse conjunto. Esses algoritmos são, em geral, usados para agrupar dados similares, o que chamamos de clustering, para facilitar a análise dos dados ou permitir um tratamento diferenciado para cada grupo. O mais simples dos métodos de aprendizado não-supervisionado é o k-means, ou k-médias, que agrupa os pontos por proximidade.
Ele recebe como input os dados e a posição inicial de k pontos, que serão nossas médias. Cada dado do nosso conjunto é, então, agrupado com o ponto mais próximo. Por fim, a posição média, ou central, desse cluster recém-formado é calculada e o ponto que define esse conjunto é movido para essa posição. Os clusteres são recalculados e o processo se repete até que não haja mais mudança, quando dizemos que o método convergiu.
Esses algoritmos são bem mais complexos que os supervisionados, e possuem aplicações importantíssimas para problemas em que o volume de dados é muito grande, onde seria muito custoso ou, até mesmo, impossível dizer o resultado esperado para o conjunto. Um exemplo seria para campanhas de marketing, em que o algoritmo agrupa e caracteriza os usuários para que eles recebam anúncios mais relevantes.
Aprendizado por reforço
Como vimos anteriormente, algoritmos de aprendizado por reforço são usados para resolver problemas de planejamento e otimização, e eles são bons nisso porque foram feitos para maximizar suas recompensas ao longo do tempo, por meio da interação com o ambiente que ele está inserido.
Esse tipo de método busca treinar o computador para agir da mesma maneira que um agente inteligente iria se colocar nesse mesmo ambiente, e, por isso, eles são tão gerais e úteis. Basicamente, em qualquer processo que exista alguma tomada de decisão com uma recompensa associada, esse tipo de algoritmo terá alguma aplicação, em especial na teoria de jogos, estatística e teoria de controle. Os exemplos mais famosos dessas aplicações geralmente envolvem jogos complicados onde o computador venceu os melhores do mundo, como no xadrez, go e no Dota 2. Neste último exemplo, o algoritmo não só venceu o time campeão mundial, mas os bots tiveram que trabalhar em equipe.
O feito chamou a atenção de Bill Gates, que comentou em seu Twitter: “#AI bots just beat humans at the video game Dota 2. That’s a big deal, because their victory required teamwork and collaboration – a huge milestone in advancing artificial intelligence” (Isso é um grande resultado, porque sua vitória exigiu trabalho em equipe e colaboração – um grande marco no avanço da inteligência artificial, em tradução livre).
*Rafael Kehl é Engenheiro de Dados na ilegra