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

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

Parte II — O que é AutoML?

Link para o artigo principal

O que é AutoML?

De acordo com a Wikipédia, o AutoML (Automated Machine Learning) é o processo de automatizar o processo de aplicação de machine learning, que abrange inúmeras partes de um pipeline, que vão desde feature engineering até o treinamento e serialização de modelos.

O AutoML tem três principais componentes:

1) Hyperparameter Optimization, ou HPO (Otimização de hiperparâmetros);

2) Meta-Learning (Meta-Aprendizado) ; e

3) Neural Architecture Search ou NAS (Algoritmo de busca de arquitetura de redes neurais).

Hyperparameter Optimization: HPO (Otimização de hiperparâmetros)

A otimização de hiperparâmetros (HPO) é a técnica que busca a combinação ótima de conjuntos de hiperparâmetros dentro de um espaço de busca. O principal objetivo da HPO é reduzir a intervenção humana no processo de seleção de hiperparâmetros, e com isso obter um aumento da reprodutibilidade e melhora do desempenho dos modelos durante treinamento dos algoritmos de machine learning.

Para exemplificar, vamos imaginar que estamos realizando um treinamento de um classificador utilizando os parâmetros {a, b, c, d, e, f} e que possua 4 valores possíveis para cada um deles. Para descobrir qual a combinação ideal, seria necessário treinar 6⁴=1296 modelos, algo inviável para ser feito manualmente. Neste caso, a HPO entraria como uma busca automática dentro desse conjunto de valores, que visa otimizar uma métrica de desempenho do modelo estabelecida.

Colocando de forma simplificada, vamos imaginar que estamos realizando um treinamento de um classificador utilizando o RandomForest do Scikit-Learn com os parâmetros {criterion, max_depth, min_samples_split, max_features, min_impurity_decrease, min_impurity_decrease}.

Entretanto, saber qual é a combinação ideal depende de inúmeros fatores que vão desde o número de colunas no conjunto de dados até a distribuição dos dados nestas colunas. Neste caso especifico, a otimização de hiperparâmetros entraria como uma busca dentro de um conjunto de valores para cada um desses parâmetros (através de exploração deste espaço de busca) para obter a combinação de parâmetros que tivesse o melhor desempenho (e.g. curva ROC, Recall, Precision, Coeficiente de Matthews, etc.).

Essa estratégia de busca pode ser feita através de duas formas:

  • Via métodos de otimização black-box livres de modelo, isto é, sem uma estratégia de convergência propriamente dita, como, por exemplo, Grid Search, Random Search e otimização bayesiana (que leva em consideração os priors dos passos imediatamente anteriores; ou
  • via Multi-Fidelity Optimization que incorpora heurísticas de exploração de famílias de algoritmos utilizando inicialmente poucos dados ou com dados sintéticos que obedecem uma determinada distribuição, que vai realizando os ajustes dos hiperparâmetros (i.e. navegando no espaço de busca para acelerar a convergência). Na medida em que uma aproximação para um resultado ótimo é encontrada uma função de perda é usada para controlar essa convergência de forma a escalar com mais dados posteriormente.

Porém, em cenário que a base de dados de treinamento é grande, os métodos de black-box livres de modelo tendem a ter um desempenho ruim, dado que é custoso treinar um dataset grande em um tempo aceitável para testar cada configuração única de hiperparâmetros.

Comparação entre Grid Search e Random Search para minimizar a função com um parâmetro importante é outro parâmetro não importante. Fonte: Automated Machine Learning Methods, Systems, Challenges — Hutter, Frank, Kotthoff, Lars, Vanschoren, Joaquin pág.7, baseado na ilustração da figura 1 de Bergstra, J., Bengio, Y.: Random search for hyper-parameter optimization. Journal of Machine Learning Research 13, 281–305 (2012) — Traduzido pelos autores

Dessa forma o método Multi-Fidelity Optimization soluciona esse problema, dado que começa usando um pequeno conjunto de dados inicia a navegação no espaço de busca, e assim que uma configuração promissora é encontrada, é iniciada uma fase de exploração deste método.

Meta-Learning (Meta-Aprendizado)

O Meta-Learning é uma técnica que realiza o aprendizado sobre os metadados de outros algoritmos de machine learning. Em outras palavras, o algoritmo vai aprendendo como se aprende, e na medida em que isso é alcançado o algoritmo realiza uma estratégia de convergência para a família de algoritmos de machine learning mais adequada para aquela tarefa de aprendizado específica.

O Meta-Learning tem três principais métodos que são (a) Aprendizado através da avaliação dos modelos ( Learning from Model Evaluations), (b) Aprendizado através das propriedades da tarefa ( Learning from Task Properties) c) Aprendizado através de modelos treinados anteriormente ( Learning from Prior Models).

Na primeira técnica, de acordo com as configurações de um conjunto de algoritmos de aprendizado e seus hiperparâmetros, juntamente com alguma métrica de avaliação de modelos (e.g.como acurácia ou AUC), um meta learner faz a predição de um conjunto de configurações para cada nova tarefa de aprendizado; e essa predição é utilizada para cada nova interação.

O treinamento deste meta learner leva em consideração os dados do treinamento imediatamente anterior, e a convergência vai sendo feita através de novas interações através de recomendações de configurações de hiperparâmetros para cada nova tarefa de treinamento.

Na técnica de aprendizado através das propriedades da tarefa ( Learning from Task Properties), são usadas meta-features (chamadas de caracterizações) de cada tarefa específica. Estas tarefas são armazenadas em um vetor de meta-features, e de acordo com a similaridade da tarefa, uma outra mais similar é recomendada.Com isso o meta learner vai utilizando as avaliações das tarefas anteriores, e posteriormente recomenda uma configuração de parâmetros para a nova tarefa.

Por exemplo, em caso de meta learners em problemas de séries temporais, as features podem ser combinadas utilizando medidas comuns, como coeficientes de autocorrelação, métricas defasadas, informações sobre tendência e sazonalidade, ou até mesmo informações do próprio domínio podem ser usadas no meta learner.

E por fim, o aprendizado através de modelos treinados anteriormente ( Learning from Prior Models) é o método em que um meta learner aprende como treinar um modelo base (base-learner) para uma nova tarefa, levando em consideração tarefas de treinamento similares e os modelos otimizados e treinados anteriormente. Aqui costumam aparecer algumas técnicas como Transfer Learning, Few-Shot e Zero-Shot Learning, Meta Reinforcement Learning e Recurrent Model Meta-Learning (como por exemplo RNN e LSTM).

Neural Architecture Search ou NAS (Algoritmo de busca de arquitetura de redes neurais)

O Neural Architecture Search (NAS) é uma técnica que tem como finalidade encontrar a melhor arquitetura de uma rede neural, de acordo com um conjunto de dados que foi passado para a rede.

Dessa forma, o NAS vem para ajudar a reduzir o processo empírico de tentativa e erro para ajuste dessas redes, levando em consideração aspectos como o (i) espaço de busca dessas arquiteturas, (ii) estratégia de busca, e por fim a (iii) estratégia de avaliação da performance de cada uma das arquiteturas.

Ilustração abstrata de métodos de NAS. A estratégia de busca seleciona a arquitetura A a partir de um espaço de busca A*. A arquitetura é passada para uma estratégia que vai avaliar o desempenho desta mesma arquitetura, a qual retornará o desempenho estimado de A para a estratégia de busca. Fonte: Automated Machine Learning Methods, Systems, Challenges — Hutter, Frank, Kotthoff, Lars, Vanschoren, Joaquin

O espaço de busca seria algo como, dentro dos parâmetros disponíveis quais combinações de arquiteturas seriam exploradas para a tarefa de aprendizado.

Podem ser arquiteturas pré-definidas, ou o algoritmo pode usar heurísticas e meta-heurísticas para descobrir qual arquitetura adapta-se melhor aos dados.

A grosso modo, seria algo como inúmeros conjuntos de arquitetura(i.e. em que cada arquitetura fosse um parâmetro), semelhante a o exemplo abaixo usando o sequential_model do Keras:

Contudo, o processo de inclusão e exclusão de camadas, e/ou modificação de parâmetros seria realizada pela NAS.

Em linhas gerais, essa busca também pode ser feita na forma descrita no gráfico abaixo:

Ilustração do espaço de busca da célula. Na esquerda: Duas células distintas, e.g. uma célula normal (acima) e uma célula de redução (abaixo) (Zoph, B., Vasudevan, V., Shlens, J., Le, Q.V.: Learning transferable architectures for scalable image recognition. In: Conference on Computer Vision and Pattern Recognition (2018)). Na direita: Uma arquitetura construída através de um stacking das células de forma sequencial. Note que as células também podem ser combinadas de maneira mais complexa, como em espaços com múltiplas ramificações, pela simples substituição de camadas por células. (Nota dos autores: O contexto desta imagem é estes que blocos de camadas (ou células) são o espaço de busca na estratégia de NAS, ao invés da rede completa). Fonte: Automated Machine Learning Methods, Systems, Challenges — Hutter, Frank, Kotthoff, Lars, Vanschoren, Joaquin — Traduzido pelos autores

Na estratégia de busca é a representação de como serão os passos de exploração das arquiteturas disponíveis.

Os passos podem envolver funções que trabalhem com o tradeoff exploration (passos no espaço de busca que podem ser alcançados) e exploitation (Ao chegar em um ponto do espaço de busca que retorne um bom resultado, faça uma exploração neste ponto de forma a minimizar o erro), e é neste passo também que há a definição do caminho de convergência caso a arquitetura escolhida comece a apresentar resultados.

A estratégia de estimação de desempenho, é a parte que define quais arquiteturas têm as suas validações de acordo com alguma métrica de avaliação de modelos, geralmente usando dados holdout. Como esse processo pode ser relativamente caro em termos computacionais, a validação pode ser feita com uma pequena amostra dos dados.

Alguns estudos em relação à esta estratégia vão na direção do que é conhecido como Network Morphism (morfismo de redes, em tradução livre) em que redes filhas (child) aprenderiam de acordo com o resultado do treinamento de redes pais (parent); e o conhecimento passado não seria apenas através de modificação na arquitetura, mas também por outros parâmetros. Estes parâmetros seriam, por exemplo, valores de inicialização, pesos (bias), profundidade e amplitude da rede, funções de ativação, kernel e mecanismos de regularização.

A pesquisa em NAS tem alguns artigos e implementações que merecem destaque como a NASNet, AmoebaNet, ENAS, DARTS, e esta Survey que apresenta um bom panorama do estado da arte (até 2019).

Considerações Finais

Nesta parte falamos sobre HPO, Meta-Learning e NAS e de seus mecanismos, como componentes do AutoML. Existem outras aplicações de AutoML para feature engineering (pre-processing, extraction e selection), redução de dimensionalidade; mas até por questões de espaço, vamos ficar por hoje nestes exemplos no que se refere ao treinamento de modelos.

Na próxima parte, discutiremos algumas das limitações do AutoML e de aspectos de utilização que devem ser de conhecimento dos cientistas de dados.

--

--

Flávio Clésio
Data Hackers

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