Machine learning (ML) – ou aprendizado de máquina, como também é conhecido – é uma área da ciência da computação que tem como objetivo responder a uma simples questão: Como ensinar máquinas a aprender?
“Como assim, inteligência artificial? Tipo filmes de ficção?”
Isso mesmo, está totalmente relacionado com essa ideia de futuro que tínhamos há alguns anos atrás. Pois é, o futuro está chegando! Esperamos não ter de enfrentar os exterminadores do futuro, como John Connor fez…
Mas então, o estudo em Machine Learning vai se preocupar em responder a pergunta principal (acima), bem como, outras perguntas da área:
- Podemos criar algoritmos que se desenvolvam e tirem conclusões sem serem previamente programados para isso?
- É possível uma máquina ‘pensar sozinha’?
- É possível solucionarmos problemas do nosso cotidiano usando essa tecnologia?
- Que novidades essa tecnologia trás para a humanidade como um todo?
- Há aplicação e interesse pelas empresas?
Essas questões serão a base necessária para entender de vez o que é Machine Learning. Então, se você já ouviu falar sobre o termo e quer saber mais sobre esse campo de estudo, garantimos que depois desse post, você terá uma noção muito mais ampliada. E, além disso, ficará à par de tudo o que você precisa saber para se tornar um profissional da área, ou seja, ser um dos tão cobiçados Cientistas de Dados!
O que é Machine Learning?
Bom, vamos ao que interessa! Por definição, Machine Learning é uma automatização de modelos analíticos. Trata-se de um método que permite que máquinas tomem decisões e façam previsões baseadas em análise de dados, sem que tenham sido necessariamente programadas especificamente para isso.
Em outras palavras, consiste em desenvolver algoritmos que “aprendam” sozinhos, utilizando os cálculos feitos anteriormente, para assim, cruzar com novos dados e extrair insights que possam estar encobertos pelo grande volume de informações. Confuso? Bom, vamos tentar esclarecer as coisas.
Esses algoritmos inteligentes precisam ter dois elementos: uma tarefa a ser executada e uma medida de performance.
Exemplo Detector de SPAMs
Imagine que você vai construir um algoritmo que detecta quais e-mails são spam e quais não são. Nesse trecho já revelamos qual é a tarefa desse algoritmo. Agora só falta definirmos a medida de performance para essa ação. Consegue pensar em alguma? Que tal a porcentagem de e-mails excluídos corretamente.
A partir desses dois elementos definidos, pode-se dizer que esse algoritmo aprenderá sozinho caso ele consiga elevar a porcentagem de spams detectados corretamente, utilizando apenas a análise dos dados disponíveis, sem que haja alterações em seu código fonte. Ou seja, são algoritmos que melhoram sua performance em uma determinada tarefa por meio da análise de dados e não através de melhorias (implementadas de forma manual, por humanos) em seu código fonte.
Por que Machine Learning se popularizou tanto?
Se você ainda não ouviu esse termo por aí, certamente vai ouvir em breve! A Harvard Business Review está até considerando a profissão de Cientista de Dados como a mais sexy do século.
Trata-se de uma área do conhecimento que já é muito popular e vem ganhando da vez mais espaço. Não apenas no universo da TI. A área tem despertado a curiosidade de todos os setores.
Apesar de tudo, não é um método novo no mercado. Contudo, acabou se popularizando, atualmente, em função do grande volume de dados que geramos atualmente. Isso graças ao tal do Big Data. Outro termo da moda que explicamos com mais detalhes nesse artigo.
Além disso, o fato de termos processadores cada vez mais potentes, obviamente também contribui para o crescimento da área. De que adianta uma tecnologia se não temos hardware para suportar, certo? A evolução dos hardwares gerou um certo “barateamento” do processamento computacional. Atualmente é possível processar uma grande quantidade de dados com um baixo custo operacional.
Por último, mas não menos importante. É importante também destacar a facilidade de acesso aos dados produzidos. Hoje em dia, a grande maioria das aplicações possuem APIs que possibilitam a integração e comunicação entre softwares e aplicações. O que resulta também em uma troca massiva de dados. Para saber mais sobre o que é uma API, sugerimos esse outro post nosso.
Resumindo, o grande volume de dados gerados, a evolução dos processadores e a facilidade de obtenção desses dados são os ingredientes-base para se construir algoritmos que conseguem evoluir de forma rápida e eficiente.
Tipos de Aprendizagem de Máquina
Existem diferentes tipos de aprendizagem de máquina e, se você se interessou pela área até agora, vai precisar conhecer pelo menos os dois tipos básicos:
Aprendizagem supervisionada: o método de aprendizagem supervisionada consiste em um algoritmo que já possui modelos preestabelecidos, isto é, o algoritmo já conhece as categorias conhecidas. Esse tipo de aprendizagem é muito usado em algoritmos que precisam classificar dados em categorias. Fica sob responsabilidade do algoritmo apenas ajustar seus parâmetros para estabelecer uma divisão dos dados mais eficiente e assertiva.
Aprendizagem não supervisionada: nesse modelo de aprendizagem não é apresentado ao algoritmo nenhum modelo predeterminado. Ele deve ser capaz de agrupar e rotular modelos conforme a coleta e processamento de dados.
Tipos de tarefas de um algoritmo que aprende
Como falei antes, um algoritmo que aprende necessita executar alguma tarefa. Existem alguns tipos de tarefas que são mais presentes nesse tipo de algoritmo:
Classificação: o algoritmo possui o objetivo de classificar dados. Portanto, consegue classificar um tipo de dado com base em rótulos. Por exemplo, imagine que seu algoritmo conhece os modelos “animais, plantas e humano”. Caso você apresente um gato para o algoritmo, ele saberá classificá-lo como um animal.
Regressão: o algoritmo possui a tarefa de prever valores e comportamentos a partir da análise de dados. Por exemplo, digamos que você vai investir seu dinheiro em um imóvel. Não seria interessante saber qual casa irá valorizar mais no futuro, ou qual o bairro da cidade que terá o maior crescimento urbano? Desenvolver um algoritmo de regressão pode ser a maneira de obter as respostas para essas perguntas.
Agrupamento: o algoritmo possui a tarefa de separar os dados em grupos, segmentando por características similares. Pense comigo, não seria interessante a Netflix saber o que seus principais assinantes possuem em comum? Por exemplo, um algoritmo de agrupamento poderia dividir todos os usuários em grupos conforme as preferências. Uma possível situação seria agrupar conforme o tempo em que determinados usuários ficam assistindo um gênero de filme no final de semana ou até mesmo o número de séries assistidas ao mesmo tempo. Claro, esses são apenas alguns exemplos. Se você já acessou a Netflix, sabe que eles fazem muito mais que isso!
Por que as empresas só pensam em Machine Learning?
Se você pesquisar sobre empresas que utilizam Machine Learning, encontrará algumas gigantes do mercado, bem como, startups regionais que se destacam nas suas respectivas áreas de atuação. Certamente, uma parte da vantagem competitiva dessas empresas em seus segmentos está diretamente ligado a essa área do conhecimento.
Através das práticas de Machine learning, a Netflix consegue identificar diversos tipos de perfis de clientes e, com isso, pode fazer sugestões inteligentes de programação personalizada para seus usuários. Já o Google consegue selecionar os resultados que serão mais assertivos quando você realiza uma busca. O Spotify pode te indicar novas músicas, que você desconhece, baseado nas músicas que você já ouviu ou ouve com mais frequência.
Já aconteceu de você começar a digitar algo no campo de busca do Google e ele sugerir exatamente o que você estava pensando? Exato, o Google consegue prever o que você está pensando em digitar! É por isso que você tem a impressão de que o Google escuta o que você fala e pensa.
Além de todas as aplicações acima, o Machine Learning ainda está trazendo grandes avanços no seguimento de segurança digital, na manutenção de máquinas industriais, na medicina e até mesmo no recrutamento de profissionais para as empresas.
Resumindo, as empresas estão procurando se especializar nessa área justamente porque essa tecnologia proporciona um enorme diferencial competitivo para o negócio, serviço ou produto. Com as práticas de Machine Learning, as empresas conseguem criar um “produto” melhor, personalizado e que proporcione uma experiência incrível para o usuário.
Aplicabilidade do Machine Learning
Carros autônomos do Google que melhoram sua performance com o tempo, sistemas que detectam SPAMs automáticos e algoritmos que identificam quem é a pessoa que está em uma foto postada no Facebook, são alguns – entre tantos – exemplos de algoritmos que se desenvolvem de maneira autônoma.
Mas o exemplo mais conhecido de todos é o supercomputador Watson. Desenvolvido pela IBM, ele foi capaz de vencer um programa de perguntas e respostas dos Estados Unidos. Detalhe: jogando contra dois campeões. Segundo a IBM, o Watson consegue analisar 200 milhões de páginas de dados e responder questões em menos de 3 segundos. Hoje ele é usado no desenvolvimento de pesquisas médicas em duas universidades nos EUA.
Diversos processos que fazem parte do nosso dia a dia são realizados através de algoritmos de machine learning, entre eles:
- Detecção de fraudes
- Liberação de crédito
- Resultados de pesquisa na Web
- Anúncios em tempo real em páginas da web e dispositivos móveis
- Análise de sentimento baseada em texto
- Pontuação de crédito e próximas melhores ofertas
- Previsão de falhas em equipamento
- Novos modelos de precificação
- Detecção de invasão na rede
- Reconhecimento de padrões e imagem
- Filtragem de spams no e-mail
Por onde eu posso começar?
O primeiro passo você já deu! Demonstrou interesse no assunto, leu esse post e, por consequência, já conhece um pouco sobre Machine Learning. Contudo, ainda falta um longo caminho pela frente.
A linguagem Python tem crescido muito com essa expansão da cultura de dados no mercado e é uma das mais utilizadas por profissionais dessa área. Portanto, é importante adquirir um conhecimento prévio sobre Python antes de se aventurar na área. Na Becode, se você quiser dar o primeiro passo aprendendo mais sobre a linguagem, temos o curso de Python para Iniciantes.
Fora as linguagens de programação, ter bons conhecimentos em matemática e estatística são fundamentais, pois podem ajudar muito o seu entendimento, bem como, na aplicação das práticas de Machine Learning. Pensando nisso, procure aprender também sobre a linguagem R, o qual é voltada para cálculos estatísticos e gráficos.
Python e R são as linguagens mais utilizadas nessa área. Portanto, é a partir de alguma dessas duas linguagens que o profissional irá conseguir desenvolver os seus primeiros algoritmos inteligentes.
Esperamos que o post tenha ajudado você a de fato aprender o que é Machine Learning e tudo que permeia essa área. Se você ainda tiver dúvidas, curiosidades ou informações para agregar sobre esse assunto, comenta aqui embaixo! Críticas e elogios também são bem-vindos. Abraços e até a próxima!