Máquinas que aprendem

Máquinas que aprendem

machineslearn

Quando se fala em tecnologia, um termo que está na boca do povo é aprendizado de máquina (machines learning em inglês). Mas o que exatamente é isso? Uma busca simples no Google, retorna uma multitude de artigos, fóruns, documentos, fontes. De fato, a área de aprendizado de máquina, às vezes chamada também de inteligência computacional, quebrou diversas barreiras nos últimos anos e possibilitou avanços significativos em diversas áreas, como robótica, tradução automática, redes sociais, e-commerce, e até em áreas como a medicina e saúde.

Existem diversas definições para o que é esse campo de estudo, mas uma que, na minha opinião, representa bem o que é machine learning, é a definição dada pelo Dr. Yoshua Bengio, professor da Universidade de Montréal e um dos maiores pesquisadores da área:

“A pesquisa em aprendizado de máquina é um campo de estudo dentro da pesquisa em inteligência artificial, que busca fornecer conhecimento aos computadores através de dados, observações e interações com o mundo. Esse conhecimento adquirido permite que computadores generalizem corretamente novos eventos e configurações” [1]

Apesar da definição resumida, existem inúmeros algoritmos de aprendizado diferentes e a área é uma das mais quentes no campo da computação, com diversas novas técnicas e algoritmos sendo publicados periodicamente.

Como funciona?

howworks

Um fato em comum para qualquer algoritmo de aprendizado é a necessidade de dados. Dado é, para machine learning, o mesmo que combustível é para um carro. Um não funciona sem o outro. Vamos a um exemplo ingênuo:

  • 3 – 9
  • 4 – 16
  • 5 – 25
  • 6 – 36
  • 7 – 49
  • 8 – 64
  • 9 – ?

Usando lógica, qual seria a resposta para o último caso? 81, certo? Mas como chegamos a essa resposta? Ao analisar os exemplos anteriores, identificamos que o segundo número é o quadrado do primeiro. O que nós fizemos, nada mais é do que encontrar um padrão para o fenômeno que nos foi apresentado. E é exatamente isso que os algoritmos de aprendizado fazem: utilizam de dados previamente disponibilizados (chamados de dado de treino) para treinar um modelo que seja capaz de generalizar bem o fenômeno e prever um resultado quando apresentado a novos dados (chamados de dado de teste).

Existem milhares de algoritmos de aprendizado diferentes (com vários sendo propostos diariamente) e, tipicamente, estes são agrupados pelo estilo de aprendizado (supervisionado, não-supervisionado, semi-supervisionado, aprendizado por reforço) ou por similaridade na forma ou função (classificação, regressão, agrupamento, deep learning, etc.).

Suponhamos então que temos uma aplicação ou problema que, em tese, poderia utilizar das técnicas de aprendizado de máquina para ser resolvido. O primeiro problema que aparece é: qual técnica utilizar? Uma forma para não se perder no mar de opções é, segundo o Prof. Pedro Domingos da Universidade de Washington[2], ter em mente que todo e qualquer algoritmo de aprendizado é composto de somente 3 componentes:

representation

  • Representação: um fenômeno qualquer deve ser representado em alguma linguagem formal que um computador consiga interpretar. De maneira análoga, escolher uma representação para um fenômeno significa escolher um conjunto de modelos que podem ser aprendidos a partir daquela representação. Esse conjunto é chamado de espaço de hipótese. Além disso, é importante também levar em conta quais características do fenômeno são importantes na sua representação.

evaluation

  • Avaliação: uma função de avaliação é necessária para distinguir bons modelos de modelos ruins. Existem funções internas e externas. Uma função interna é utilizada pelo modelo na sua tarefa de otimização (normalmente, algoritmos de aprendizado tem por objetivo a minimização do erro). Funções externas são utilizadas para avaliar o modelo final.

optimization

  • Otimização: por fim, é necessário um método para se encontrar, dentre os diversos modelos disponíveis, aquele que maximize o desempenho.

O objetivo fundamental do aprendizado de máquina é generalizar além dos exemplos no conjunto de treinamento. Isso porque, não importa quantos dados tenhamos para o treinamento do modelo, é muito improvável que vejamos esses exemplos exatos novamente no tempo de previsão. Um bom modelo deve ser capaz de observar dados de entrada e modelar o fenômeno de uma forma nem muito genérica e nem muito específica, pois se genérico demais, as previsões serão tão boas quanto um chute aleatório, e se específico demais, o modelo terá decorado os dados de entrada e não saberá como lidar com novos dados de entrada. Isso é chamado de generalização.

O que temos pela frente?

nextsteps

Soluções que utilizam inteligência computacional já conseguiram resolver diversos problemas históricos da humanidade, de máquinas autônomas até tradução automática. Com o surgimento das técnicas conhecidas como Deep Learning, máquinas estão sendo capazes de atingir um desempenho até melhor do que de seres humanos, em algumas aplicações, como detecção e reconhecimento de objetos.

Máquinas que aprendem são úteis para os seres humanos pois, com todo o seu poder de processamento, elas são capazes de destacar ou encontrar padrões mais rapidamente em grandes dados que, de qualquer outra forma, seria impraticável de ser feito por seres humanos. A inteligência computacional é uma ferramenta que pode ser usada para melhorar a capacidade dos seres humanos de resolver problemas e fazer inferências sobre uma ampla gama de problemas, desde diagnóstico de doenças até chegar a soluções para a mudança climática global.

A Enacom, contando com uma equipe altamente capacitada de Mestres e Doutores, desenvolve projetos de grande porte e complexidade na área de aprendizado de máquina com diversas aplicações diferentes. Alguns destaques:

Textos citados

  1. https://www.techemergence.com/the-rise-of-neural-networks-and-deep-learning-in-our-everyday-lives-a-conversation-with-yoshua-bengio/
  2. https://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf

Lucas Oliveira. Bacharel em sistemas de Informação pela UFMG. Mestrando na área de Ciência de Dados. Líder da Equipe de Ciência de Dados da Enacom.

3 thoughts on “Máquinas que aprendem

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *