Northern Blog
  • A Northern

Machine Learning: o que é de fato aprendizado de máquina

Por netoconcon em Abril 27, 2022Abril 27, 2022

Hoje vamos falar do aprendizado de máquina, ou aprendizagem de máquina, isto é, vamos falar do Machine Learning. É um dos temas da moda, que iremos desmitificar nesse texto. O termo, que aparece em quase todo pitch de startup ou conversas sobre inteligência artificial. Bora lá?

O que é Machine Learning?

Antes de entender do aprendizado de máquina, vamos recordar um pouco sobre como funciona o aprendizado humano. Aprendemos observando situações, aprendemos errando, aprendemos fazendo coisas, enfim, existem várias formas de aprender. Lembro quando era criança, e minha mãe me falou para não colocar o dedo na boca do fogão, senão eu ia me queimar. Eu poderia ter aprendido ouvindo o conselho dela, mas eu decidi colocar o dedo mesmo assim, afinal ela podia estar errada… Aprendi da pior maneira, queimei meu dedo e fiquei ouvindo que deveria “ouvir minha mãe” por muitos meses/anos… rsrsrs… 

Note que, nesse exemplo, já colocamos algumas coisas que aparecem nos códigos de Machine Learning: se colocar o dedo na boca do fogão, então vai se queimar. Essa instrução, por mais banal que pareça, envolve um dos dilemas do cotidiano humano: a famosa tomada de decisão. Nessa situação, parece óbvio a decisão a ser tomada. Mas como diria o filosofo Voltaire, “Common sense is not so common”, ou seja, o senso comum não é tão comum assim. Imagine uma situação que você acha evidente agir de forma A, e seu melhor amigo acha evidente agir de forma B, e você acha uma extrema estupidez agir de forma B… Quando isso ocorrer, lembre-se de Voltaire… rsrsrs… Calma, esse texto não é focado em filosofia, mas é bom citar esse exemplo, para enfatizarmos que desenvolver algoritmos para a máquina aprender e tomar a melhor decisão não é uma tarefa fácil. Não é fácil nem para nós humanos. Portanto é um campo que tem muito a crescer, mas já apresenta vários resultados expressivos. Vamos citar alguns deles?

Como funciona o treinamento de um modelo de machine learning?

Vou começar por um trabalho da turma de Stanford. Eles queriam “ensinar um helicóptero” a realizar manobras difíceis, que apenas pilotos experientes eram capazes de realizar. Esse problema é muito interessante, pois um dos objetivos de colocar a máquina para fazer tarefas de humanos, é justamente tirar os humanos de situações que coloquem sua vida em perigo. 

Se o voo for de risco, seria melhor que não tivesse nenhuma pessoa envolvida, apenas a máquina. Então eles desenvolveram um algoritmo que inicialmente aprendia vendo as manobras difíceis (acrobacias, por exemplo) realizadas por um outro helicóptero. Eles explicaram os procedimentos nesse vídeo intitulado Autonomous Helicopters Teach Themselves to Fly Stunts (Helicópteros autônomos ensinam a si mesmos a fazer acrobacias). A situação é muito bacana, eles utilizaram Helicópteros de brinquedo, pilotados por controle remoto. Então o helicóptero “autônomo” olha, através de câmeras, um outro helicóptero controlado por um humano. Ele fica “observando as manobras”, aprendendo com o que o outro faz. Depois de um tempo de aprendizado, ele começa a realizar de forma similar o que o outro fazia. É um exemplo típico de aprendizado de máquina. Nesse caso, a máquina era o helicóptero. O aprendizado era por observação, e o objetivo era o de realizar manobras difíceis. Os detalhes do algoritmo não são triviais, e fogem do escopo desse texto. 

Outro exemplo muito bacana, está associado a um projeto de fazer o “computador ensinar a si mesmo” a jogar diversos jogos de Atari. Para quem não sabe, muitas décadas atrás existia um videogame chamado Atari, que fazia muito sucesso. Nesse projeto, foi desenvolvido um algoritmo que aprendia à medida que ia jogando o jogo.  No vídeo intitulado “Google DeepMind’s Deep Q-learning playing Atari Breakout!” é apresentado o software jogando o jogo “Atari Breakout”. É um vídeo curto, de pouco menos de 2 minutos, que vale a pena ver. É possível observar que no começo, o algoritmo joga muito mal, parece uma pessoa iniciante, fazendo erros básicos. Mas à medida que vai jogando, vai aprendendo a melhor maneira de jogar, e de ganhar mais pontos, dependendo da decisão que toma. No final, ele descobre “as manhas” do jogo, e fica craque. Isso ocorre depois de mais de 4 horas de treinamento, ou seja, mais de 4 horas jogando.

A performance de um modelo de Machine Learning

Os exemplos do Atari e do Helicóptero são típicos de aprendizado de máquina, mas você poderia dizer: não estou nem aí para isso, quero saber como posso aplicar a técnica em minha linha de produção, em meu e-commerce, etc… O princípio é o mesmo. Os algoritmos iriam “observar”, monitorar o que vem sendo feito, e buscar formas mais otimizadas, melhores de obter os resultados. Aprender com o que vem sendo feito, e fazer melhor. A ideia é essencialmente essa, e pode ser aplicada em várias áreas. Vamos ver o exemplo de aplicação de uma métrica para o caso de avaliação de qualidade de testes de Covid?

As métricas de um modelo de Machine Learning

O pessoal do Google (já disse isso antes, esse pessoal é fera…), disponibilizou um curso de Aprendizado de Máquina chamado Machine Learning Crash Course. Se você clicar no link, indiquei a página que mostra especificamente algumas métricas de classificação utilizadas em Machine Learning. Existe a precisão, que é uma métrica que pretende responder à seguinte pergunta: Qual proporção de identificações positivas foi efetivamente correta? Para facilitar o entendimento, vamos pensar que queremos que a máquina aprenda a identificar quem tem Covid e quem não tem, da melhor forma possível. Imagine que precisamos aprender com os diversos testes disponíveis no mercado. Temos os testes que dão o verdadeiro positivo (VP), ou seja, a pessoa testou positivo e realmente tem Covid. Tem o falso positivo (FP), que é o caso que a pessoa deu positivo, mas não tinha covid. Tem o falso negativo (FN), nesse caso o teste deu que a pessoa não tinha covid, mas ela tinha. E por fim, tem o verdadeiro negativo (VN), que é quando o teste dá um resultado negativo, e a pessoa realmente não tem Covid. A precisão é uma métrica calculada da seguinte maneira: Precisão = VP/(VP + FP). Então se tivermos 700 verdadeiros positivos e 300 falsos positivos, podemos dizer que a precisão é 700/(700 + 300) = 0,70 = 70%. Podemos colocar essa métrica em nosso algoritmo, e esse valor servir de referência para uma tomada de decisão. Informar, por exemplo, se o teste em questão é confiável ou não. O algoritmo de ML poderia aprender com diversos testes, que possuem diferentes precisões, e sugerir que um teste confiável tenha mais que 85% de precisão, por exemplo. Existem várias outras métricas, para quem tiver interesse, existe esse material em Python que pode ajudar.Existe um kit para desenvolver projetos em Machine Learning, que é o scikit-learn. Quem tiver interesse, vale a pena dar uma olhada. O assunto é muito vasto, e hoje vamos parar por aqui. Espero que o texto tenha dado uma noção geral. Quem estiver pensando em colocar a mão na massa, em algum projeto prático, é só dar um toque. Bons negócios e até a próxima.

Categorias: Estratégia

netoconcon

Neto Concon é economista e administrador pelo Insper. Trabalhou com turnaround de empresas antes de virar empreendedor. Hoje é fundador da Northern Ventures, co-fundador do Wabafood, mentor de startups no Founder Institute, mentor na disciplina Resolução Eficaz de Problemas no Insper e professor de desenvolvimento web e produtos no Le Wagon

1 comentário

Clarissa Liguori · Abril 28, 2022 às 16:00

WOW, super didático! Parabéns.

Responder

Deixe um comentário Cancelar resposta

Avatar placeholder

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Encontre um artigo
Categorias
  • Ciência de dados
  • Consultor de TI
  • Destaque
  • e-commerce
  • Empresa de programação
  • Estratégia
  • Inteligência Artificial
  • LGPD
  • Mais Lidos
  • Produto Digital
  • Segurança da Informação
  • software services
  • Tecnologia
  • Times
  • Transformação Digital

Artigos relacionados

Software de contabilidade
Estratégia

Como contratar desenvolvedores web para startups e evitar turnover?

Contratar desenvolvedores web para startups pode parecer uma tarefa desafiadora, especialmente quando a empresa ainda está dando seus primeiros passos.  A tecnologia desempenha um papel essencial no crescimento e na escalabilidade de negócios, e encontrar Ler mais…

melhores plataformas para desenvolvimento de aplicativos
Estratégia LGPD

Como extrair leads do google?

Você já se perguntou como as empresas conseguem leads qualificados a partir do Google? Estudos indicam que mais de 70% dos usuários fazem pesquisas online antes de realizar uma compra. No ambiente digital atual, entender Ler mais…

Ciência de dados Estratégia Segurança da Informação Tecnologia Transformação Digital

5 maneiras que a IA é usada em aplicações web para seguradoras

A Inteligência Artificial (IA) é uma das tecnologias mais importantes da nossa era. Está sendo usada para criar soluções eficientes e inteligentes para problemas antigos. Este artigo abordará como a IA está sendo usada em Ler mais…

  • Blog
2022 © Copyright - Northern. Todos os direitos reservados.