Automated Machine Learning (AutoML): Aspectos práticos, teóricos, vantagens e limitações
TL;DR: Esse post tem como objetivo alguns aspectos práticos e teóricos sobre o AutoML e discutir algumas potencialidades e limitações. Se o leitor quiser apenas o código, este repositório tem algumas implementações que usa AutoML para tarefas de classificação e regressão.
Este artigo é baseado principalmente em “Automated Machine Learning Methods, Systems, Challenges” de Frank Hutter, Lars Kotthoff e Joaquin Vanschoren, que segue a licença CC BY 4.0 e está de graça no site da editora Springer. Como este artigo é uma simplificação, é fortemente recomendado ler a fonte original.
Agradecimentos especiais a Adamastor pela revisão e edição do artigo.
Introdução
Com o avanço de disciplinas como Machine Learning e Deep Learning, inúmeros materiais novos são escritos sobre diversos assuntos: Natural Language Processing, Sistemas de Recomendação, Visão Computacional, Algoritmos de Otimização, Natural Language Understanding, Aprendizado por Reforço, Generative Adversarial Networks (GANs), etc.
Dentro dessa pletora de novidades, torna-se cada vez mais difícil manter-se atualizado(a) de todos os avanços e especificidades na àrea; ainda mais com o tsunami diário de pre-prints.
Isto sem falar do conhecimento de domínio de negócio que um engenheiro de machine learning ou cientista de dados deve ter para executar bem as suas tarefas. Tudo isso em um ambiente cada vez mais ágil que reduz cada vez mais o prazo de entrega destas novidades para os ambientes de produção.
Com esse aumento da complexidade está cada dia mais difícil ter um alto grau de especialização em relação ao treinamento de modelos de ML. Fica claro que profissionais de dados precisam realizar um bom gerenciamento do tempo e automatizar o máximo de tarefas possível.
E é neste cenário que o AutoML entra para ajudar nessa busca do modelo ideal de ML com uma abordagem orientada a dados, objetiva, sistemática e automatizada.
Em relação à esta automação, eu gosto muito do argumento [N1] no qual o cientista de dado seria como um(a) chef de cozinha, em que partes do seu trabalho seriam totalmente automatizadas via a utilização de utensílios como as tarefas de moer, cortar, triturar, bater, ou misturar ingredientes. O ponto principal é que ao invés de ter um foco nestas tarefas (i.e. em que os utensílios executariam as tarefas de forma mais uniforme e rápida) o chef nesse caso focaria no prato em si (i.e. no tempo de entrega do prato, textura, sabor final, redução de pressão na cozinha, etc).
Saindo do mundo gastronomico e indo para a realidade de ciência de dados e machine learning, o AutoML entraria para automatizar o treinamento de modelos, liberando tempo para o cientista de dados foque em aspectos como a a definição do problema, agregar conhecimento de domínio no problema, interpretação e comunicação dos resultados, reproducibilidade, replicabilidade e como colocar esses modelos em produção.
Ao longo deste ensaio, vamos pincelar alguns aspectos e técnicas de AutoML, suas vantagens e limitações, como também alguns cenários de implementação.
Na Parte I vamos comentar sobre qual é graça do AutoML em que vamos falar sobre alguns casos de uso e do porque o AutoML não vem para acabar com a profissão de Cientista de Dados.
Na Parte II vamos entrar um pouco mais no aspecto técnico do AutoML em que vamos falar de maneira geral sobre algumas das suas técnicas.
Por fim, na Parte III vamos colocar alguns pontos relativos às limitações do AutoML.
Links:
Parte I — Qual é a graça do AutoML?
Parte III — Limitações do AutoML
Referências
Livros
Papers
- An Open Source AutoML Benchmark (Este paper fala que mesmo em intervalos de 4 horas, em algumas vezes o AutoML não conseguiu bater uma implementação de Random Forests)
- AutoML-Zero: Evolving Machine Learning Algorithms From Scratch
- Learning to Learn: A Gentle Introduction to Meta-Learning
- Neural Architecture Search with Reinforcement Learning (Paper precursor do NAS)
- EfficientDet: Scalable and Efficient Object Detection Mingxing Tan, Ruoming Pang, Quoc V. Le (Repositório)
- Autostacker: A Compositional Evolutionary Learning System
- OBOE
- Cross-disciplinary perspectives on meta-learning for algorithm selection
Ferramentas
- Hyperopt-Sklearn: Automatic Hyperparameter Configuration for Scikit-Learn
- AutoML no H2O.ai
- DataRobot
- TPOT
- Facebook FastText — Automatic Hyperparameter optimization with Autotune
- AWS Sage Maker Autopilot
- Auto-SKLearn
- AutoKeras
- Keras Tune
- AutoML Zero (Repo)
- Google Cloud AutoML
- Genetic Programming Machine Learning
- MLBox
- FeatureTools
- Arbiter
- Xcessiv
- Advisor
- Spearmint
- BayesianOptimization
- RoBo
- Optunity
- AT
- HyberBand
- Hyperas
- Hyperopt
- Dask Hyperparameter Search
- SMAC v3 Project
- Microsoft NNI
- ENAS
- Darts
- MLBase
- Rafiki
- TransmogrifAI
- SmartML
- MLPlan
- Hyperopt-sklearn
- AutoXGBoost
- Gama
Artigos e blogposts
- Different flavours of AutoML
- Posts do Jeremy Horward sobre AutoML dentro da perspectiva do NAS (Parte 1, 2 e 3)
- An End-to-End AutoML Solution for Tabular Data at KaggleDays
- Google’s AI Experts Try to Automate Themselves
- AutoML Overview
Conferências e grupos de pesquisa
- Auto-WEKA: combined selection and hyperparameter optimization of classification algorithms
- AutoML Workshops
- ICLR Workshop on Neural Architecture Search (NAS 2020)
- 7th ICML Workshop on Automated Machine Learning (AutoML)
- The Fourth International Workshop on Automation in Machine Learning
- Grupo de pesquisa de AutoML de Hannover (Alemanha)
Notas
[N1] — Por mais que o autor do argumento tenha sido pego em situação de plágio (ler mais aqui, aqui, aqui, e aqui), eu citei (e estou fazendo a referência) apenas pela simplicidade da analogia.