Neste artigo, quero falar sobre as principais dificuldades da automação de aprendizado de máquina, sua natureza e vantagens, e também considerar uma abordagem mais flexível que permita que você se afaste de algumas das deficiências.
Automação, por definição, Mikell P. Groover é uma tecnologia pela qual um processo ou procedimento é realizado com o mínimo envolvimento humano. A automação tem sido capaz de obter maior produtividade, o que geralmente leva a custos mais baixos por unidade de produto. Os métodos de automação, bem como suas áreas de aplicação, estão melhorando rapidamente e, nos últimos séculos, evoluíram de mecanismos simples para robôs industriais. A automação começa a afetar não apenas o trabalho físico, mas também intelectual, chegando a áreas relativamente novas, incluindo aprendizado de máquina - aprendizado de máquina automatizado (auto ml, aml). Ao mesmo tempo, a automação do aprendizado de máquina já encontrou sua aplicação em vários produtos comerciais (por exemplo, Google AutoML, SAP AutoML e outros).


aviso LegalEste artigo não pretende ser dogmático no campo e é a visão do autor.
Aprendizado de máquina automatizado
As tarefas no campo de processamento de dados e aprendizado de máquina estão associadas a muitos fatores que surgem devido à complexidade do sistema e complicam sua solução. Eles incluem (de acordo com Charles Sutton ):- A presença de incerteza e incerteza, o que leva à falta de conhecimento a priori dos dados e das dependências desejadas. Assim, o elemento de pesquisa está sempre presente.
- "Morte por mil cortes." Na prática, ao criar um pipeline para processamento e análise de dados e modelagem subseqüente, você precisa tomar muitas decisões grandes e pequenas. Por exemplo, é necessário normalizar os dados, se sim, qual método e quais parâmetros esse método deve ter? Etc.
- A presença de loops de feedback resultantes da incerteza. Quanto maior a imersão na tarefa e nos dados, mais você poderá aprender sobre eles. Isso leva à necessidade de dar um passo atrás e fazer alterações nos mecanismos de processamento e análise existentes.
- Além disso, os resultados dos modelos obtidos pelos algoritmos de aprendizado de máquina são apenas uma aproximação da realidade, ou seja, obviamente não é preciso.
Assim, o processo de obtenção de um pipeline completo de processamento e análise de dados pode ser considerado como um sistema complexo (isto é, um sistema complexo).Sistema complexoPeter Sloot, « » « », . , () , , () , () .. , , .
Por um lado, a presença desses fatores complica a solução de problemas de aprendizado profundo e de máquina e sua automação. Por outro lado, os recursos de computação cada vez maiores e cada vez mais acessíveis nos permitem anexar mais recursos à tarefa.
De acordo com o padrão CRISP-DM comum, o ciclo de vida de um projeto de análise de dados consiste em seis etapas principais: compreensão de uma tarefa de negócios, compreensão e estudo de dados (compreensão de dados), processamento de dados (preparação de dados), modelagem ( modelagem), avaliação da qualidade (avaliação) e aplicação prática (implantação, aplicação). Na prática, nem todas essas etapas podem ser efetivamente automatizadas hoje.A maioria das obras ou bibliotecas existentes (h2o, auto-sklearn, autokeras) se concentra na automação de modelagem e, em parte, na avaliação da qualidade. No entanto, a expansão da abordagem para a automação do processamento de dados permite cobrir mais etapas (que, por exemplo, foram aplicadas no serviço Google AutoML).Formulação do problema
As tarefas de aprendizado de máquina com um professor podem ser resolvidas por vários métodos, a maioria dos quais é reduzida para minimizar a função de perda ou maximizar a função de probabilidade , para obter uma estimativa dos parâmetros com base na amostra disponível - conjunto de dados de treinamento :ou θ^m=argminθm(J(yt;θm))Onde θm- parâmetros do modelo treinado (por exemplo, coeficientes em caso de regressão).Para não limitar a automação apenas à modelagem, é possível estender o escopo do método para outros estágios do pipeline. Por exemplo, para automatizar a tomada de decisões sobre quais métodos de processamento de dados aplicar, sobre a escolha de um modelo ou suas combinações, além de selecionar os hiperparâmetros ideais.Ilustramos o que é descrito com um exemplo simples, no qual existe uma escolha entre dois métodos de processamento de dados ( escalonador padrão e escalonador quantil ) e dois modelos ( floresta aleatória e rede neural ), incluindo a seleção de alguns hiperparâmetros. A estrutura de seleção pode ser representada como uma árvore:
Cada seleção feita é um parâmetro do sistema, enquanto a própria árvore se torna o espaço de parâmetros possíveis. Uma análise desse problema nos permite subir mais alto ao nível de abstração e formular a tarefa de obter o pipeline final, incluindo métodos de processamento de dados, modelos e seus parâmetros, como um processo de minimizar ou maximizar uma função:ω^=argmaxω(L(yt,ycv;ω))ou ω^=argminω(J(yt,ycv;ω))Onde ω- parâmetros de não aprendizagem, ycv- seleção de controle atrasado (conjunto de dados para validação cruzada).As principais vantagens dessa automação de aprendizado incluem:- Seleção de um número maior de parâmetros do sistema na presença de um ponto de entrada na estrutura de um único processo de otimização.
- Rotina de automação que salva o pesquisador ou desenvolvedor dos "mil cortes".
- "Democratização" do aprendizado de máquina por meio de sua automação, o que permite que muitos não especialistas apliquem muitos métodos.
No entanto, a automação não tem desvantagens:- Com o aumento do número de parâmetros, seu espaço também aumenta, o que mais cedo ou mais tarde leva a uma explosão combinatória, exigindo o desenvolvimento de algoritmos e um aumento no número de recursos de computação.
- Métodos totalmente automáticos nem sempre fornecem uma solução flexível com base no princípio da "caixa preta", o que reduz o controle sobre o resultado.
- O espaço de parâmetros ω é não linear e possui uma estrutura complexa, o que complica o processo de otimização.
Da automação à semi-automação
Tentando preservar o máximo de vantagens possível e, ao mesmo tempo, evitar uma série de deficiências, em particular, devido ao desejo de obter controle adicional sobre a solução, chegamos a uma abordagem chamada semi-auto ml. Esse é um fenômeno relativamente novo no campo, que pode ser indiretamente evidenciado por uma análise rápida do Google Trends:
alcançar esse compromisso pode ser condicionalmente comparado com vários métodos de troca de marchas em transmissões de automóveis (ou seja, métodos de troca, mas não sua estrutura interna):No decorrer do trabalho em projetos internos, criamos uma ferramenta que nos permite resolver o problema do aprendizado de máquina semiautomático com base em um sistema híbrido de configuração declarativa funcional. Essa abordagem de configuração usa não apenas tipos de dados padrão, mas também funções de bibliotecas modernas comuns para aprendizado de máquina e profundo. A ferramenta permite automatizar a criação de métodos simples de processamento de dados, o design básico de recursos (engenharia de recursos), a seleção de modelos e seus hiperparâmetros, além de executar cálculos em um cluster Spark ou GPU. A listagem formaliza o exemplo dado anteriormente neste artigo. O exemplo usa modelos simples do sk-learn e hyperopt (que até conseguiram fazer uma contribuição insignificante para o código-fonte aberto) para distribuição e otimização de parâmetros.'preprocessing': {
'scaler': hp.choice('scaler', [
{
'func': RobustScaler,
'params': {
'quantile_range': (10, 90)
}},
{
'func': StandardScaler,
'params': {
'with_mean': True
}}
]),
},
'model': hp.choice('model', [
{
'func': RandomForestClassifier,
'params': {
'max_depth': hp.choice('r_max_depth', [2, 5, 10]),
'n_estimators': hp.choice('r_n_estimators', [5, 10, 50])
}
},
{
'func': MLPClassifier,
'params': {
'hidden_layer_sizes': hp.choice('hidden_layer_sizes', [1, 10, 100]),
'learning_rate_init': hp.choice('learning_rate_init', [0.1, 0.01])
}
},
])
Esse sistema semi-automático, incluindo um mecanismo de configuração, possibilita a criação de cenários padrão pré-preparados nos casos em que, por exemplo, uma certa família de modelos é mais adequada para solucionar problemas. Estes, em particular, podem incluir pontuação de crédito; no entanto, essa etapa requer pesquisa adicional em uma ampla gama de tarefas semelhantes. Além disso, ao trabalhar no mecanismo de pesquisa, é possível manter automaticamente o equilíbrio no dilema da troca de desvio e desvio, levando em consideração simultaneamente os valores da função otimizada nas amostras de treinamento e de validação cruzada.Conclusão
A completa falta de automação na prática é bastante rara, pois mesmo enumerar os valores de um hiperparâmetro em um ciclo já é um passo em direção à automação. Ao mesmo tempo, a automação completa de todo o processo de construção do oleoduto também é praticamente inatingível atualmente. Assim, no desenvolvimento da maioria dos projetos modernos, as abordagens de automação são aplicadas consciente ou inconscientemente.O uso do aprendizado de máquina semi-automático permite um uso mais eficiente dos recursos de um pesquisador ou desenvolvedor devido à automação de uma rotina, sem tirar uma parte significativa da flexibilidade no trabalho. Como vemos, a solução proposta requer a participação de uma pessoa, limitando o espaço de possíveis parâmetros do sistema. Além disso, a introdução de cenários padrão obtidos com base no sistema de configuração permite o uso não apenas de abordagens parciais de automação, mas também de abordagens completas que não requerem envolvimento humano.