O que é aprendizado de maquina (machine learning) ?
O aprendizado de máquina (em inglês, machine learning) é um método de análise de dados que automatiza a construção de modelos analíticos ou tarefas que em abordagens tradicionais necessitam que de atualização constante de código. É o campo que dá a computadores a habilidade de aprender sem ser explicitamente programado.
A maioria das pessoas quando ouvem falar em “aprendizado de máquina” pensam em um robô exercendo alguma função futurista, mas a realidade é que ele já está a muito tempo entre nós! O primeiro aplicativo que realmente ficou famoso e conquistou o mundo na década de 1990 foi o filtro de spam. O filtro de spam foi seguido por centenas de aplicativos que agora, silenciosamente, fornecem centenas de produtos, recursos e sistemas de recomendações que nós utilizamos diariamente.
Para entender melhor o por que da utilização de aprendizado de máquina vamos tomar como exemplo a construção de um filtro de spam e ver as diferenças entre a abordagem tradicional e a utilização do mesmo. Nós escreveríamos o programa da seguinte forma:
- Na parte de estudo do problema iremos identificar as características do spam. Algumas palavras ou frases (“Compre”, “Aproveite”, “Imperdível”) costumam aparecer no campo do assunto e talvez você note outros padrões no nome do remetente, corpo do e-mail, e assim por diante.
- Por segundo, escreveríamos um algoritmo de detecção para cada um dos padrões observados, e, se fossem detectamos, nosso programa marcaria esses e-mails como spam.
- Por último, testamos nosso programa, e repetiremos os passos 1 e 2 até que tenhamos um resultado satisfatório.
Em contrapartida, uma solução baseada em técnicas de aprendizado de máquina aprende automaticamente através de conjuntos de treinamentos quais palavras e frases são bons indicadores de spam, detectando padrões de palavras frequentes em exemplos de spam se comparados aos exemplos dos e-mails que não são considerados spam.
Além disso, se os spammers percebem que todos os seus e-mails contendo determinada palavra são bloqueados, poderão começar a escrever novas variações da palavra. Um filtro de spam que utiliza as abordagens de programação tradicionais precisaria ser constantemente atualizado para marcar como spam a nova palavra. Em contrapartida, um filtro que utiliza o aprendizado de máquina perceberia automaticamente que a nova palavra tornou-se frequente no spam marcado pelo usuário e passaria a marcar como spam sem a intervenção do usuário.
Finalizando, situações em que o aprendizado de máquina se torna ótimo:
- Problemas para os quais as soluções existentes exigem muita configuração manual ou uma longas listas de regras.
- Problemas complexos para os quais não existe uma boa solução quando utilizamos uma abordagem tradicional.
- Ambientes que sofrem constantes mudanças: um sistema de aprendizado de máquina pode se adaptar constantemente a novos dados.
- Compreensão de problemas complexos que lidam com grandes quantidades de dados.
Obrigado pela leitura! O livro utilizado como base para elaboração desse artigo foi o Mãos à Obra: Aprendizado de Máquina com Scikit-Learn & TensorFlow.