AutoML: aspectos e aplicações

Os algoritmos de machine learning são métodos numéricos implementados na forma de linguagem de programação, para que sejam processados por computadores. Estes métodos são formulados de forma que o algoritmo resolva um problema não através da sua modelagem matemática, que exigiria o conhecimento de uma equação específica que descreve o problema, mas sim através de um modelo mais genérico, capaz de aproximar a equação desconhecida, e que por um processo iterativo tende a convergir para uma solução. Seu grande sucesso se deve ao fato de que os computadores são ideais para implementar estas iterações, já que elas são blocos de operações matemáticas mais simples que se repetem até que a solução seja alcançada. Através das iterações, os algoritmos ajustam seus parâmetros internos de forma que o modelo seja capaz de reproduzir as respostas do problema a partir dos dados de entrada. É assim que os modelos de machine learning ganham a capacidade de fazer predições em novos dados.

Apesar de o processo descrito acima ser automatizado, existem alguns parâmetros que, via de regra, não podem ser ajustados de maneira automática. Isto se deve principalmente ao fato de que não existe uma relação matemática precisa entre estes hiperparâmetros e o desempenho do modelo, para que eles possam ser ajustados computacionalmente na direção da melhor solução. Além disso, eles costumam ser independentes entre si, de forma que diferentes combinações de valores de hiperparâmetros produzem resultados sem relação entre si, e pode ser que a solução ideal resida num espaço bastante distante de outras soluções adequadas. Os hiperparâmetros, que incluem a escolha do modelo e seus ajustes específicos, costumam ser configurados manualmente pelo desenvolvedor, que só vai saber sua qualidade ao final do processo de treinamento, avaliando as métricas de desempenho. O sucesso em sua escolha vai depender do conhecimento que o desenvolvedor tem sobre os dados com que está trabalhando, sua experiência em utilizar e ajustar os diferentes algoritmos disponíveis, e ainda uma boa dose de sorte.

Mais recentemente, surgiram algumas bibliotecas buscando automatizar esta etapa inerentemente exploratória do processo de desenvolvimento de algoritmos de machine learning. Elas funcionam basicamente testando diferentes valores de hiperparâmetros e suas combinações, orientados por alguma heurística que estabelece uma direção para esta busca, retornando o desempenho do modelo nestas diferentes situações. Se por um lado esta abordagem ignora a intuição do desenvolvedor na escolha dos hiperparâmetros a serem testados, por outro ela poupa tempo que o desenvolvedor gastaria escrevendo código, e agora pode dispender em outras tarefas. A bem da verdade, há vantagens e desvantagens na sua utilização, além de fases específicas de um projeto onde elas podem ser de grande utilidade.

AutoML na fase inicial do projeto

Quando um cientista de dados inicia um novo projeto, é essencial desenvolver rapidamente uma ideia sobre sua viabilidade, já que, em uma empresa, o principal objetivo deste profissional é entregar valor. Como a natureza dos dados começa geralmente desconhecida, usar ferramentas de machine learning automático nesta fase inicial ajuda a estabelecer uma ideia mínima sobre o custo de oportunidade do projeto. Os modelos gerados desta forma podem servir como baseline, estabelecendo o desempenho mínimo possível a partir do qual a empresa pode decidir se a ideia toda vale a pena, se é sensato investir mais tempo e recursos para tentar melhorar este panorama inicial.

O AutoML nesta fase inicial também ajuda a definir um cenário geral a ser explorado. Digamos que a abordagem revele que os melhores modelos são de uma determinada família de métodos numéricos. Então, é possível que os processos de otimização seguintes sejam melhor sucedidos se continuarem a exploração neste sentido. Assim, o cientista de dados já pula uma fase longa do desenvolvimento, podendo focar sua atenção na compreensão das tarefas mais específicas que o método de AutoML não é capaz de realizar.

Outra grande vantagem de recorrer a métodos de AutoML é quando a empresa está em transição para ser um negócio orientado por dados. Nesta fase, ela ainda pode estar reticente sobre desenvolver toda uma nova área, estabelecer toda uma nova cultura, e o AutoML fornece uma indicação para responder se é hora de tomar essa decisão. Em muitas situações, faz mais sentido reciclar um desenvolvedor interno da empresa para fazer este estudo inicial do que contratar um profissional específico, com conhecimento técnico suficiente, para obter a mesma resposta.

AutoML x Cientista de dados

Diante da possibilidade de otimizar modelos usando ferramentas automáticas, muitos se perguntam se ainda há espaço para os cientistas de dados que faziam este trabalho manualmente. Mas certamente há. O AutoML ainda é incapaz de incorporar conhecimento que não seja facilmente expresso em operações matemáticas simples; ele não faz, por exemplo, as etapas de feature engineering e análise causal, não resolve situações de data leakage, não considera como a escolha do modelo impacta a fase de produção do projeto, e não incorpora aspectos relacionados ao negócio. Pode ser que o AutoML encontre uma solução inviável em termos práticos. É papel do cientista de dados refinar seus resultados. De fato, a menor parte do tempo de um cientista de dados é gasta escrevendo código e desenvolvendo modelos; sua expertise está muito mais relacionada em como conectar o conhecimento oriundo dos dados com suas aplicações no mundo real.

Ao invés de um concorrente, o AutoML é mais uma ferramenta que o cientista de dados dispõe, que automatiza uma parte mais braçal de seu trabalho para que ele possa se concentrar nas tarefas mais complexas. Alguns de seus pontos fortes disponíveis ao cientista de dados são: geração de baselines confiáveis e consistentes, aumento da reprodutibilidade e da robustez metodológica, disponibilidade de várias heurísticas de treinamento, e maior possibilidade de experimentação.

Bibliotecas de AutoML

A seguir apresentamos algumas das bibliotecas mais citadas atualmente. Fazendo uso da extensa coleção de métodos do Scikit-Learn, temos a Auto-Sklearn e a Hyperopt-Sklearn, que fazem uma busca no espaço de soluções usando otimização bayesiana. A TPOT se baseia em um pipeline que busca valores de hiperparâmetros usando uma abordagem baseada em árvore de decisão. A AutoKeras permite a otimização de redes neurais construídas usando o Keras. A H2O pesquisa os melhores parâmetros para modelos baseados em árvores de decisão e redes neurais.

Via de regra, estas bibliotecas são extremamente fáceis de implementar. A ideia geral é fornecer os dados e alguns limitantes como o tempo disponível para rodar a otimização. Muito prático, não?

Conclusão

Assim como várias tarefas de outras profissões vão sendo substituídas por métodos automatizados, algumas atribuições do cientista de dados também são passíveis de passar por esta transformação. Mas a ciência de dados tem muito a ganhar com o uso das ferramentas de AutoML, explorando seus pontos fortes e deixando os profissionais livres para trabalharem em seus pontos fracos. No final do dia, o AutoML é uma ferramenta poderosa disponível no arsenal do cientista de dados, mas ainda assim apenas uma ferramenta, que precisa de um operador para coordenar como esta pequena parte do trabalho vai integrar com o todo.