Sans-serif

Aa

Serif

Aa

Font size

+ -

Line height

+ -
Light
Dark
Sepia

O que é Machine Learning?

Entenda sobre esta tecnologia que está se tornando cada vez mais importante em nossas vidas, sem mesmo percebermos que utilizamos ela todos os dias.

Machine learning pode ser traduzido como aprendizado de máquina e é um termo que se situa entre as áreas da ciências da computação e estatística. Em termos simples, Machine Learning explora a criação de algoritmos que utilizam dados para tomar decisões, ou seja, um algoritmo pode executar diferentes ações dependendo do teor dos dados fornecidos para ele.

Interesse pelo termo “Machine Learning” nos últimos 15 anos. Fonte: Google Trends.

Apesar de ser um termo que está sendo cada vez mais falado e utilizado (virando uma espécie de buzzword atualmente), na verdade Machine Learning teve sua origem lá atrás na década de 1950, quando os primeiros computadores estavam sendo desenvolvidos. Mas, nas últimas décadas, o acesso a dados e força computacional pela maioria das pessoas se tornou algo fácil e barato, possibilitando que qualquer empresa, startup ou indivíduo consiga implementar Machine Learning no que estiver desenvolvendo sem grandes dificuldades.

 

Principais técnicas de Machine Learning

 

Supervised Learning (Aprendizagem Supervisionada)

Esta técnica faz com que o algoritmo aprenda com dados previamente catalogados, por isso o termo Supervised (supervisionado), de forma que o algoritmo estabelece um padrão de acordo com os dados fornecidos para ele e faz uma previsão para os dados novos.

O exemplo mais comum de Supervised Learning é o filtro de Spam em emails. O provedor de email (Gmail, Outlook, etc.) possui uma grande lista de emails catalogados como spam e não spam, que servem como dados de treino para ensinar o algoritmo. Então, quando chega um email novo, o algoritmo de Machine Learning compara com os dados passados pré-catalogados a fim de descobrir a probabilidade deste novo email ser spam ou não e decidindo para qual pasta o email deve ir.

O aprendizado supervisionado é uma das técnicas de Machine Learning mais utilizadas e fáceis de implementar, uma vez que em diversas situações o resultado do algoritmo já consegue ser satisfatório mesmo com uma quantidade não muito grande de dados.

 

Reinforcement Learning (Aprendizagem por reforço)

Imagine colocar um algoritmo para aprender a jogar um jogo sozinho, de forma que ele se torne melhor a cada jogada e vire um especialista no jogo (e possivelmente melhor que um ser-humano). Esta é a técnica de Reinforcement Learning ou Aprendizagem por reforço.

O algoritmo é submetido a um ambiente onde ele precisa maximizar determinada recompensa e pode repetir as suas ações por muitas vezes (milhões quem sabe) a fim de aprender qual é a melhor forma de maximizar o seu objetivo.

Um exemplo de Reinforcement Learning seria um algoritmo que consiga resolver um labirinto rapidamente de acordo com as suas experiências passadas. A cada tentativa o algoritmo tenta uma combinação de passos até chegar ao final (sua recompensa) e sempre procurando finalizar o labirinto com o menor número de passos possíveis. Depois de percorrer este labirinto muitas vezes, o algoritmo sabe exatamente qual o melhor caminho, ou seja, o caminho que faz ele percorrer o labirinto em menos passos e chegar mais rápido ao final.

Esta técnica é muito utilizada em situações em que é possível colocar o algoritmo repetindo determinada ação até encontrar a melhor solução. Além disso, a combinação de Reinforcement Learning com outras técnicas um pouco mais complexas como Deep Learning e Redes Neurais, podem criar uma inteligência artificial muito habilidosa, como é o caso do AlphaGo, inteligência artificial do Google que conseguiu vencer os melhores jogadores do antigo jogo chinês “Go”.

 

Unsupervised Learning (Aprendizagem não-supervisionada)

A técnica de Aprendizagem não-supervisionada representa a identificação de padrões em dados não previamente catalogados. O algoritmo olha um conjunto de dados e tenta tirar suas próprias conclusões, classificando os dados em aglomerados (clusters) diferentes de acordo com os padrões que ele encontrar nos dados.

Esta técnica tem sido utilizada de forma importante na identificação de anomalias em dados, como em serviços financeiros ou servidores, uma vez que um ser humano não consegue analisar manualmente um grande volume de informações e um algoritmo consegue realizar isso de forma muito mais rápida e segura.

Unsupervised Learning é também muito útil para criar experiências personalizadas para usuários dentro de sites e aplicativos, onde o algoritmo consegue identificar usuários com preferências parecidas e recomendar conteúdos que sejam relevantes.

 

Aplicações interessantes

Aqui na Openimob utilizamos Machine Learning para várias tarefas importantes como: responder e-mails automaticamente de forma personalizada, ler e interpretar o conteúdo de mensagens e entender o comportamento dos usuários dentro de nossa plataforma. Machine Learning também é o núcleo do nosso sistema de busca, que permite que os usuários encontrem os imóveis que possuem as melhores características e ao mesmo tempo os menores preços em uma determinada região. Nosso algoritmo aprende com os dados de milhares de ofertas de imóveis e filtra as melhores oportunidades para os usuários.

A Uber, por exemplo, utiliza Machine Learning para aprimorar e melhorar o máximo possível o “match” entre passageiro e motorista. De forma que a pessoa que pediu um Uber espere o menor tempo possível e o motorista, do outro lado, sempre tenha corridas para realizar.

Carros autônomos também fazem uso extensivo de Machine Learning para conseguirem se locomover pela cidade sem a necessidade de um motorista, mas para isto utilizam uma técnica mais avançada chamada Deep Learning, que certamente merece um Post mais aprofundado somente detalhando sobre ela.

 

Compartilhe este post com outras pessoas que você ache que possam gostar.

Deixe um comentário com dúvidas ou sugestões.