Automated Machine Learning (AutoML): Aspectos práticos, teóricos, vantagens e limitações

Flávio Clésio
Data Hackers
Published in
10 min readJun 10, 2020

Parte I — Qual é a graça do AutoML?

Link para o artigo principal

Nesta primeira parte vamos colocar alguns aspectos gerais em relação a utilização do AutoML. Em especial sobre como o AutoML pode ajudar em partes iniciais de um projeto de ciência de dados e machine learning, como por exemplo, na geração de baselines, e sobre a complexidade das tarefas relativas à profissão de ciência de dados.

Antes de mais nada, vamos olhar para o AutoML em relação a como esta técnica pode ajudar no uso do tempo em fases iniciais de projetos de ciência de dados e machine learning, e como o AutoML pode ser uma ferramenta no cinto de utilidades dos cientistas de dados.

A abordagem automatizada para criação de modelos como forma de otimização de tempo e recursos

No momento em que uma organização inicia um projeto de ciência de dados ou machine learning, inúmeros aspectos são levados em consideração como recrutamento, custos de hardware e software, custo de tempo das pessoas envolvidas, e principalmente o custo de oportunidade do projeto.

Sabendo disso existem inúmeras tarefas que devem ser feitas em um projeto de ciência de dados; tarefas que vão desde a extração e limpeza de dados, treinamento de algoritmos, chegando até em casos em que uma API deve ser construída. Isto sem falar de protótipos e provas de conceito, que geralmente são feitas no início de cada projeto.

Dessa forma podemos ver que o código ou o algoritmo em si ocupa uma parte muito pequena de um processo complexo e com muitas partes móveis, como discutido no trabalho da Google chamado “Hidden Technical Debt in Machine Learning System” (O débito técnico escondido em sistemas de machine learning, em tradução livre).

Sendo assim, a automação em um estágio inicial de um projeto (i.e. modelagem, treinamento, pipeline de dados, etc.) potencialmente pode ajudar no aumento da fluidez no desenvolvimento, quanto pode ajudar a economizar tempo e recursos.

Mas vamos colocar alguns pontos a favor do AutoML dentro da perspectiva das organizações e dos cientistas de dados.

Dentro da perspectiva das organizações, existem alguns pontos do porquê usar AutoML:

  • Devido ao fato de não haver um corpo de disciplinas formal e até mesmo uma fragmentação dos campos de ciência de dados, existe uma heterogeneidade muito grande no grau de conhecimento de algoritmos. Isso faz com que a contratação de um profissional seja semelhante a uma loteria, dado que além do perfil comportamental desejado, a organização precisa saber se o profissional tem as habilidades necessárias para fazer o trabalho. Neste caso, ferramentas como o AutoML acabam por dar o mesmo ponto de partida em relação à utilização de algoritmos de machine learning, independente do grau de expertise;
  • Em estágios iniciais da adoção de ciência de dados, talvez a organização ainda não esteja no grau de maturidade adequado para avaliar se faz sentido ou não ter projetos desta natureza em produção. É natural que algumas organizações sejam conservadoras em relação a este tipo de investimento, pois elas lidam com recursos escassos, custos de oportunidade, e tudo isso em ambientes de grande incerteza; e
  • Expertise em machine learning e ciência de dados é extremamente difícil de encontrar, e custa caro. Trazendo para a realidade da Europa, os serviços de um cientista de dados custam cerca EUR 80 mil/ano (fora custos de equipamento, computação em cloud, escritório, etc.). O investimento em um time de 3 pessoas pode chegar na casa ¼ de milhão de euros. Então dentro da perspectiva das organizações, o valor gerado deve necessariamente ultrapassar esta marca, e não se engane: nenhuma empresa racional vai colocar essa quantidade de dinheiro em algo que não prove valor de forma antecipada ou nos estágios iniciais de desenvolvimento.

Dentro da perspectiva dos profissionais de cientistas de dados, alguns aspectos a se considerar para ter o AutoML como parte do cinto de utilidades:

A amplitude do trabalho do cientista de dados está muito além da capacidade do AutoML mesmo considerando o estado da arte

Com um mercado de trabalho cada vez mais dinâmico e com decisões sendo tomadas rapidamente, é natural que tenhamos que provar o nosso valor a cada dia, principalmente com todo o hype e a avalanche de promessas sobre Inteligência Artificial e Ciência de Dados.

Isto não é fácil, em especial se a sua organização já realizou investimentos em IA e ciência de dados e estiver aguardando o retorno em forma de insights, relatórios, ou decisões automatizadas em plataformas utilizando machine learning.

Porém, apesar da maioria dos materiais de ciência de dados falarem da parte algorítimica, projetos dessa natureza envolvem inúmeras disciplinas e tarefas que são por definição altamente complexas se feitas de maneira correta.

Mesmo se considerarmos o atual estado da arte em relação à pesquisa em AutoML, existem muitas técnicas, especificidades, e aspectos gerais da profissão de ciência de dados que o AutoML ainda não cobre como:

Dados

Análise de dados

Técnicas estatísticas e de ML

MLOps ou ML em Produção

Cultura de Informação

  • Treinamento de áreas não técnicas
  • Comunicação sobre os modelos
  • Ajudar outras áreas a identificar oportunidades de ML

Isso são só algumas das técnicas/atribuições de um cientista de dados, dependendo do domínio essa lista pode aumentar muito mais. Em alguns casos, assim que pegamos o problema, já sabemos o que vamos implementar: uma regressão linear simples, um classificador de textos, uma rede neural para classificar imagens, etc. O que nem sempre está claro são aspectos ligados a disponibilidade e consistência de dados e a forma que vamos operacionalizar isso; aí não tem AutoML que ajude.

Usando novamente a analogia do chef de cozinha, picar a cebola em alguns casos pode ser o passo mais simples de um prato. Entretanto, saber se ela é de qualidade e adequada para o consumo e que depois de cozinhada ela vai ficar boa, é uma história totalmente diferente.

A acurácia ou o algoritmo não resume e nunca vai resumir toda a extensão do trabalho de um cientista de dados por completo, pois, no final do dia as hipóteses precisam ser validadas, o modelo precisa estar alinhado com o negócio, e os dados precisam representar a dinâmica da situação. Tudo isso em ambientes de maior incerteza como o que estamos vivendo agora.

Agora que falamos de aspectos próprios do trabalho de cientistas de dados, vamos ver alguns cenários em que o AutoML pode ajudar em termos técnicos.

No que mais o AutoML ajuda?

Geração de baselines fortes

Quando falamos de grid/random search lidamos grande parte das vezes apenas com uma família de algoritmos específica com alguns parâmetros pré-determinados. Algumas implementações de AutoML (como o H2O.ai por exemplo) não se trabalha somente dentro da mesma família algorítmos (ex: GBM, GLM, XGBoost) como usa também Stacked Ensembles; o que pode economizar um bom tempo antes de um ajuste inicial.

Por exemplo, usando o período de tempo de duas horas para geração dos modelos, pode-se ter a família de algoritmos que se adapta melhor aos dados, como também já ter indiretamente a estratégia de convergência (dentro do espaço de busca do AutoML) em relação aos hiperparâmetros.

Uma abordagem clássica foi esse baseline gerado pela Erin Ledell em que ela precisou apenas 100 minutos para ficar em oitavo lugar em uma Hackathon do Kaggle.

Fonte: Erin Ledell Twitter — https://twitter.com/ledell/status/1116533416155963392

Melhora a reprodutibilidade da pesquisa e aumento da robustez metodológica

Dado que o espaço de busca e o intervalo de tempo são definidos, o ranking com a performance dos modelos já vai ser de uma certa maneira a representação de todos os experimentos possíveis dentro daquele espaço de busca. Mesmo sem a estratégia de convergência utilizada, este ranking mostra uma maior robustez metodológica em termos de exploração, do que uma escolha de uma arquitetura ou conjunto de parâmetros feita ao acaso ou pelo cherry picking de resultados.

Isto é, troca-se um processo manual por uma forma sistemática de exploração do espaço de busca com apenas o tempo como fator limitante. Em outras palavras, menos alquimia e mais ciência.

Em termos de pesquisa científica, isso é um problema tão grave que uma revisão sistemática mostrou que muitos experimentos de machine learning não batem sequer uma regressão logística simples em termos de desempenho, o que mostra que mesmo na própria ciência há um problema a sistematização dos métodos e experimentos.

O foco aqui não é a comparação de desempenho, dado que a maioria dos estudos sofrem de vieses altíssimos e falta de calibração, mas sim, “qual o método utilizado no momento em que se chega num resultado?”.

Uma amostra disso pode ser vista em inúmeros estudos como este que tem 53 registros como tamanho de amostra e os autores nem sequer especificaram os parâmetros que foram usados [N1]. Ou este trabalho da última RecSys que chegou em uma conclusão que a maioria dos trabalhos além de usarem baselines fracos, grande parte da pesquisa em Sistemas de Recomendação não é sequer reprodutível.

No momento em que se chega em um resultado usando algumas implementações do AutoML, o método utilizado (o como) grande parte das vezes já vem junto com o resultado. Isto é, tem-se dentro de uma estratégia de busca usando o AutoML no mínimo um indicador de qual família de algoritmos que funciona com os dados, permitindo mais investigações e otimizações.

Democratiza o ML

Com o uso de recursos como o AutoML para a otimização e exploração de modelos, cujo a facilidade de uso permite a experimentação de vários métodos; pessoas que não tenham expertise em machine learning podem ter acesso ao estado da arte ao que se refere à hiperparametrização de modelos e busca de arquiteturas eficientes para os seus dados, como podemos ver no trecho de código abaixo na linguagem R:

Disponibilidade de inúmeras heurísticas de treinamento

O AutoML simplifica e absorve inúmeras lições do passado em relação à estratégias de treino de modelos. Isso significa uma abordagem mais sistemática para chegar a um resultado usando abordagens testadas em competições e no mercado.

O que falamos aqui é que o AutoML, dependendo da sua configuração de busca, vai definir qual família de algoritmos e/ou parâmetros tem um maior grau de adaptabilidade aos dados, qual estratégias de stacking fazem sentido, ou como NAS pode ajudar a definir uma arquitetura adequada para uma rede neural.

Maior aproveitamento do tempo de treinamento dos modelos

Grande parte das implementações de AutoML utilizam mecanismos de definição de um espaço de tempo para realizar o treinamento. Com isto há a garantia de que o máximo de recursos computacionais disponíveis vão ser utilizados pelo o AutoML e após um determinado período de tempo, o treinamento será finalizado. Ou seja, o AutoML vai estressar possibilidades dentro de um espaço de busca. Caso o AutoML dê um modelo de boa performance, o mesmo pode ser utilizado em produção, do contrário o ranking de modelos pode ser utilizado como um indicador da estratégia de convergência para um posterior ajuste fino do algoritmo.

Automação de fluxos de tarefas de treinamento incremento das possibilidades de experimentação

O AutoML pode ser incorporado em um pipeline de CI/CD/CT, em que o treinamento pode ser quase que totalmente adaptativo; em que, uma vez que os dados passem por um sanity check para verificar aspectos como concept drift; um determinado pipeline pode deixar a parte de treinamento usando o AutoML por um período de horas (para modelos batch) e realizar a serialização e a promoção dos modelos em produção dentro do mesmo pipeline.

Considerações Finais

A profissão de ciência de dados envolve inúmeros aspectos técnicos interdisciplinares, juntamente com o necessário conhecimento do negócio. Dentro deste cenário, em algumas situações o treinamento de modelos vai ocupar uma parte muito pequena em relação a um sistema ou projeto de machine learning. Dentro deste cenário, o AutoML pode ajudar na geração de baselines e aumento da robustez metodológica dos experimentos. Na próxima parte, vamos entrar no detalhe de cada uma das principais técnicas usadas no AutoML como Hyperparameter Optimization (HPO), Meta-Learning e Neural Architecture Search (NAS).

Notas:

[N1] — Eu não vou citar direta/nominalmente nem os autores e nem o trabalho pois eu sou contra “author shaming” ciência é algo que se corrige dentro do devido processo e isso já está sendo feito. Solicitei aos autores as informações por e-mail e assim que eu receber as informações as mesmas serão compartilhadas aqui.

--

--

Flávio Clésio
Data Hackers

Father, Son, Brazilian, Machine Learning Engineer, Traveler, Blogger, and Smooth Operator @ flavioclesio.com