O termo machine learning (aprendizado de máquina ou aprendizado automático) é um dos termos mais falados na atualidade em temas relacionados à tecnologia e avanço na ciência de análise de dados. Com o rápido avanço da informática nos anos 2000 a busca por algoritmos mais eficientes para desempenhar diversas funções analíticas ou responsivas de sistemas virtuais tem sido constante. Nesse contexto tem havido um rápido desenvolvimento de novos algoritmos, os quais representam uma sequência finita de ações executáveis que tem por objetivo solucionar um determinado tipo de problema. Esse é um dos principais motivos que muitos formatos tradicionais de trabalho na atualidade têm sido reformulados, fazendo com que a mão de obra humana venha sendo substituída em diversos setores. Dessa forma, uma parte considerável do novo mercado trabalhista em diversas áreas tem buscado pessoas que dominam conceitos, aplicações e execução de programação computacional e modelos inteligentes para execução de trabalhos cotidianos e busca de soluções de problemas de um mundo moderno superpopuloso (exemplo: RH virtual, com algoritmos que examinam de forma automatizada e inteligente os perfis de candidatos a uma determinada vaga de emprego).
Afinal de contas o que é e como funciona o machine learning?
O machine learning trata de um subcampo da ciência da computação baseado no reconhecimento computacional de padrões e com isso o aprendizado computacional em inteligência artificial. Arthur Samuel (pioneiro nos campos dos jogos de computador, inteligência artificial e aprendizado de máquina) conceitua o aprendizado de máquina como o campo de estudo que dá aos computadores a habilidade de aprender sem serem explicitamente programados. Assim, o aprendizado automático pelos computadores explora o estudo e construção de algoritmos que podem aprender de seus erros e fazer previsões cada vez mais robustas e eficientes sobre dados. Os algoritmos construídos para aprendizagem inteligente funcionam criando um modelo matemático-estatístico a partir de uma entrada de dados amostrais no computador, permitindo previsões e promovendo tomadas de decisões a partir de reconhecimento de padrões desses dados. Ao contrário da inteligência artificial que se baseia em duas linhas computacionais de raciocínio (a indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo), o aprendizado de máquina só opera com o indutivo. Um exemplo simplório pode ser o uso de padrões faciais em programas de construção de retratos de pessoas, no qual um banco de dados com grande amostragem de padrões de rostos de diversas pessoas de um determinado local, região ou país é fornecido para um algoritmo aprender a extrair padrões desses rotos e criar comparação facial automática com base nos padrões aprendidos para dizer se duas fotos distintas correspondem a uma mesma pessoa.
As relações do aprendizado de máquina com estatística e aplicações
Há ramos do aprendizado de máquinas que funcionam conectados ou sobrepostos à estatística computacional. Dessa forma, a estatística computacional é focada em fazer previsões (exemplo: modelos estatísticos de regressão (decisão) ou classificação) usando computadores, baseando-se nas propriedades dos métodos estatísticos e sua complexidade computacional. No aprendizado de robôs, por exemplo, ocorre o uso de técnicas como aprendizado ativo, no qual há criação de suas próprias sequências para adquirir continuamente padrões para novas habilidades, através de uma exploração autônoma e da interação social com humanos.
Com base na natureza de sinal fornecida por padrões de dados para um sistema de aprendizado há três categorias para as tarefas de aprendizado de máquina:
Aprendizado supervisionado: são fornecidas ao computador entradas e saídas desejadas de dados, que são fornecidos por uma pessoa (pesquisador, programador ou professor), objetivando promover um mapeamento dessas entradas e saídas.
Aprendizado não supervisionado: não é fornecido qualquer tipo de padrão dos dados ao algoritmo de aprendizagem, o qual deve por si só encontrar esses padrões nas entradas de dados fornecidas. Assim, esse tipo de aprendizado comumente objetiva descobrir novos padrões nos dados.
Aprendizado por reforço: ocorre uma interação precisa entre um programa computacional e um ambiente dinâmico para que o programa desempenhe uma função (ex: controlar automaticamente máquinas de extração de madeira numa plantação florestal).
Ao se considerar a saída desejada num sistema de aprendizado de máquina temos as seguintes categorias:
Classificação: as entradas são divididas em duas ou mais classes, e o usuário de modelos estatísticos aplicando essa abordagem deve produzir um modelo supervisionado que vincula entradas não vistas a uma ou mais dessas classes. Um exemplo dessa abordagem é a filtragem de e-mails recebidos e direcionados para caixa de spam, isto é, as entradas são as mensagens de e-mails e as classes são “spam” ou “não spam”. Exemplos de modelos estatísticos que englobam algoritmos com funções de classificação incluem: SVM (Support vector machine), PLS (Partial Least Squares), ANN (Artificial Neural Network, Random Forest etc.
Regressão: também opera sobre um problema supervisionado, sendo que as saídas são contínuas em vez de discretas. A aplicação de um modelo ANN para testar a eficácia de predição de dados numéricos de natureza contínua para decréscimo de cobertura vegetal por um amplo grupo de variáveis preditivas climáticas e de solos é um exemplo.
Clustering: é uma abordagem não supervisionada na qual é criado um grupo a partir de um conjunto de entradas de dados. Isto é, a tarefa consiste em agrupar um conjunto de objetos de forma que os objetos do mesmo grupo (chamados de cluster) sejam mais semelhantes uns aos outros do que àqueles de outros grupos. Um exemplo de técnica com essa abordagem é a NCA (Neighbourhood components analysis), na qual é usado um modelo supervisionado classificar dados multivariados em classes distintas de acordo com uma determinada métrica de distância sobre esses dados.
Exemplos de importantes aplicações cotidianas do aprendizado de máquina
Além de coisas triviais, porém, fundamentais, como filtragem de spam, uma série de outras aplicações de grande importância usando aprendizado de máquinas engloba: mecanismos de busca na internet, mineração de opinião, detecção de fraude de cartão de crédito, recuperação de informação, detecção de fraude virtual, reconhecimento ótico de caracteres (OCR), processamento de linguagem natural, diagnósticos médicos, bioinformática, reconhecimento de fala, reconhecimento de escrita, visão computacional e locomoção de robôs, Bioinformática, interface cérebro-computador, classificação de sequências de DNA, visão computacional, incluindo reconhecimento de objetos, gogos de estratégia, marketing etc.
Softwares amplamente usados para aplicar aprendizado de máquina
Há hoje diversos softwares com uma ampla variedade de algoritmos de aprendizado de máquina, incluindo aqueles que são pagos como MATLAB, SAS Enterprise Miner e STATISTICA Data Miner. Mas cada vez mais tem sido preferido os softwares livres por não carecerem de licença, investimento financeiro e, principalmente, por serem mais constantemente atualizados em seus algoritmos e pacotes, o que é feito com auxílio dos próprios usuários que possuem conhecimento avançado de programação computacional. Esses softwares livres destacam o R e Python.
Leituras recomendadas:
Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwalkar. (2012). Foundations of Machine Learning, The MIT Press. ISBN 978-0-262-01825-8.
Gareth, James; Witten, Daniela; Hastie, Trevor; Tibshirani, Robert. (2013). An Introduction to Statistical Learning. Springer. ISBN 978-1-4614-7137-0
E aí gostou do conteúdo desse texto? Foi informativo, mas você gostaria de saber mais a respeito ou talvez precisa aplicar essas técnicas e precisa de um protocolo para executá-las? Então venha trocar uma ideia com a Beta Analítica e vamos ampliar ou construir juntos esse conhecimento.