Partilhar via


O que é o aprendizado de máquina automatizado (AutoML)?

APLICA-SE A: Python SDK azure-ai-ml v2 (atual)

A aprendizagem automática automatizada, também conhecida como ML automatizada ou AutoML, automatiza as tarefas iterativas e demoradas do desenvolvimento de modelos de aprendizagem automática. Com o ML automatizado, cientistas de dados, analistas e programadores podem construir modelos de aprendizagem automática em grande escala, com eficiência e produtividade, mantendo a qualidade do modelo. O ML automatizado no Azure Machine Learning baseia-se num avanço da divisão Microsoft Research.

Como funciona o AutoML?

Durante o treinamento, o Aprendizado de Máquina do Azure cria muitos pipelines em paralelo que tentam algoritmos e parâmetros diferentes para você. O serviço itera através de algoritmos de ML combinados com seleções de funcionalidades. Cada iteração produz um modelo com uma pontuação de treino. Quanto melhor for a pontuação para a métrica que pretende otimizar, melhor o modelo se ajusta aos seus dados. O processo termina assim que cumpre os critérios de saída definidos no experimento.

Usando o Azure Machine Learning, você pode projetar e executar seus experimentos de treinamento automatizados de ML com estas etapas:

  1. Identifique o problema de ML a resolver: classificação, previsão, regressão, visão computacional ou PLN.

  2. Opte por uma experiência de programação direta ou uma experiência web sem código no estúdio: Os utilizadores que prefiram uma experiência de programação direta podem usar o Azure Machine Learning SDKv2 ou o Azure Machine Learning CLIv2. Introdução ao Tutorial: Treinar um modelo de deteção de objetos com AutoML e Python. Os usuários que preferem uma experiência limitada ou sem código podem usar a interface Web no estúdio de Aprendizado de Máquina do Azure em https://ml.azure.com. Introdução ao Tutorial: Criar um modelo de classificação com ML automatizado no Azure Machine Learning.

  3. Especifique a origem dos dados de treino rotulados: Traga os seus dados para o Azure Machine Learning de várias formas diferentes.

  4. Configure os parâmetros automáticos de aprendizagem automática: defina o número de iterações em diferentes modelos, definições de hiperparâmetros, opções avançadas de pré-processamento e caracterização, e as métricas a avaliar ao determinar o melhor modelo.

  5. Apresentar o trabalho de formação.

  6. Analise os resultados.

O diagrama a seguir ilustra esse processo. Aprendizagem automática automática

Você também pode inspecionar as informações de trabalho registradas, que contêm métricas coletadas durante o trabalho. O trabalho de treinamento produz um objeto serializado Python (.pkl arquivo) que contém o modelo e o pré-processamento de dados.

Embora a construção de modelos seja automatizada, você também pode aprender como os recursos são importantes ou relevantes para os modelos gerados.

Quando usar o AutoML: classificação, regressão, previsão, visão computacional e PLN

Usa ML automatizado quando quiseres que o Azure Machine Learning treine e ajuste um modelo para ti usando a métrica alvo que especificas. O ML automatizado democratiza o processo de desenvolvimento de modelos de aprendizagem automática e capacita os seus utilizadores, independentemente da sua experiência em ciência de dados, a identificar um pipeline de aprendizagem automática de ponta a ponta para qualquer problema.

Profissionais e desenvolvedores de ML em todos os setores podem usar ML automatizado para:

  • Implemente soluções de ML sem amplo conhecimento de programação
  • Poupe tempo e recursos
  • Aplicar as melhores práticas de ciência de dados
  • Proporcionar uma resolução ágil de problemas

Classificação

A classificação é um tipo de aprendizagem supervisionada em que os modelos aprendem a usar dados de treinamento e aplicar esses aprendizados a novos dados. O Azure Machine Learning oferece caraterizações especificamente para estas tarefas, tais como extratores de características de texto de redes neurais profundas para classificação. Para obter mais informações sobre opções de featurização, consulte Featurização de dados. Você também pode encontrar a lista de algoritmos suportados pelo AutoML em Algoritmos suportados.

O principal objetivo dos modelos de classificação é prever em quais categorias os novos dados se enquadram com base nos aprendizados de seus dados de treinamento. Alguns exemplos comuns de classificação incluem deteção de fraude, reconhecimento de caligrafia e deteção de objetos.

Veja um exemplo de classificação e aprendizado de máquina automatizado neste caderno Python: Marketing Bancário.

Regressão

À semelhança da classificação, as tarefas de regressão são também uma tarefa comum de aprendizagem supervisionada. O Azure Machine Learning oferece featurização específica para problemas de regressão. Saiba mais sobre as opções de extração de características. Você também pode encontrar a lista de algoritmos suportados pelo AutoML em Algoritmos suportados.

Diferente da classificação em que os valores de saída previstos são categóricos, os modelos de regressão predizem valores numéricos de saída com base em preditores independentes. Na regressão, o objetivo é ajudar a estabelecer a relação entre essas variáveis de preditor independente ao calcular como uma variável afeta as outras. Por exemplo, o modelo pode prever o preço do automóvel com base em recursos como quilometragem do gás e classificação de segurança.

Veja um exemplo de regressão e aprendizado de máquina automatizado para previsões nestes notebooks Python: Desempenho de hardware.

Previsão da série temporal

A criação de previsões faz parte de qualquer negócio, seja receita, inventário, vendas ou procura de clientes. Use ML automatizado para combinar técnicas e abordagens e obter uma previsão de série temporal recomendada e de alta qualidade. Para uma lista de algoritmos suportados pelo AutoML, veja Algoritmos suportados.

Um experimento automatizado de séries temporais trata o problema como um problema de regressão multivariada. Os valores de séries temporais passadas são "pivotados" para se tornarem mais dimensões para o regressor juntamente com outros preditores. Esta abordagem, ao contrário dos métodos clássicos de séries temporais, tem a vantagem de incorporar naturalmente múltiplas variáveis contextuais e a sua relação entre si durante o treino. O ML automatizado aprende um modelo único, mas muitas vezes ramificado internamente, para todos os itens no conjunto de dados e horizontes de previsão. Mais dados estão assim disponíveis para estimar os parâmetros do modelo e torna-se possível generalizar para séries invisíveis.

A configuração avançada de previsão inclui:

  • Deteção e caracterização de feriados
  • Alunos de séries cronológicas e DNN (Auto-ARIMA, Prophet, ForecastTCN)
  • Suporte para muitos modelos por meio de agrupamento
  • Validação cruzada de origem rolante
  • Atrasos configuráveis
  • Funcionalidades agregadas de janelas de implementação

Para um exemplo de previsão e aprendizagem automática automática, veja este caderno em Python: Procura de Energia.

Imagem digitalizada

O suporte para tarefas de visão computacional permite-lhe gerar facilmente modelos treinados com dados de imagem para cenários como classificação de imagens e deteção de objetos.

Com esta capacidade, pode:

  • Integre-se perfeitamente com o recurso de rotulagem de dados do Azure Machine Learning.
  • Use dados rotulados para gerar modelos de imagem.
  • Otimize o desempenho do modelo especificando o algoritmo do modelo e ajustando os hiperparâmetros.
  • Transfira ou implemente o modelo resultante como um serviço Web no Azure Machine Learning.
  • Operacionalize em escala, tirando partido das funcionalidades de MLOps e ML Pipelines do Azure Machine Learning.

Pode criar modelos AutoML para tarefas de visão usando o Azure Machine Learning Python SDK. Pode aceder aos trabalhos de experimentação, modelos e resultados resultantes a partir da interface do Azure Machine Learning studio.

Saiba como configurar o treinamento AutoML para modelos de visão computacional.

Exemplos de tarefas de visão computacional. Imagem de: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Imagem de: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

O ML Automatizado para imagens suporta as seguintes tarefas de visão computacional:

Tarefa Descrição
Classificação de imagens multiclasse Tarefas em que uma imagem é classificada com apenas um rótulo de um conjunto de classes - por exemplo, cada imagem é classificada como uma imagem de um "gato" ou um "cão" ou um "pato".
Classificação de imagens de várias etiquetas Tarefas em que uma imagem pode ter uma ou mais etiquetas de um conjunto de etiquetas - por exemplo, uma imagem pode ser rotulada com "gato" e "cão".
Deteção de objetos Tarefas para identificar objetos em uma imagem e localizar cada objeto com uma caixa delimitadora, por exemplo, localizar todos os cães e gatos em uma imagem e desenhar uma caixa delimitadora em torno de cada um.
Segmentação de instâncias Tarefas para identificar objetos numa imagem ao nível dos pixels, ao desenhar um polígono à volta de cada objeto na imagem.

Processamento de linguagem natural: PNL

O suporte para tarefas de processamento de linguagem natural (PLN) em ML automatizado permite-lhe gerar facilmente modelos treinados com dados de texto para classificação de texto e cenários de reconhecimento de entidades nomeadas. Pode criar modelos de NLP treinados em ML automatizado através do Azure Machine Learning Python SDK. Pode aceder aos trabalhos de experimentação, modelos e resultados resultantes a partir da interface do Azure Machine Learning studio.

O recurso de PNL suporta:

  • Treinamento completo de PNL em redes neurais profundas com os mais recentes modelos BERT pré-treinados
  • Integração perfeita com a rotulagem de dados do Azure Machine Learning
  • Usar dados rotulados para gerar modelos de PNL
  • Suporte multilíngue com 104 línguas
  • Formação distribuída com o Horovod

Saiba como configurar o treinamento AutoML para modelos de PNL.

Dados de treinamento, validação e teste

Com o ML automatizado, você fornece os dados de treinamento para treinar modelos de ML e pode especificar que tipo de validação de modelo executar. O ML automatizado executa a validação do modelo como parte do treinamento. Ou seja, o ML automatizado usa dados de validação para ajustar os hiperparâmetros do modelo com base no algoritmo aplicado para encontrar a combinação que melhor se ajusta aos dados de treinamento. No entanto, os mesmos dados de validação são usados para cada iteração de ajuste, o que introduz viés de avaliação do modelo, uma vez que o modelo continua a melhorar e se ajustar aos dados de validação.

Para ajudar a confirmar que esse viés não é aplicado ao modelo final recomendado, o ML automatizado suporta o uso de dados de teste para avaliar o modelo final que o ML automatizado recomenda no final do seu experimento. Quando você fornece dados de teste como parte da configuração do experimento AutoML, esse modelo recomendado é testado por padrão no final do experimento (visualização).

Importante

Testar seus modelos com um conjunto de dados de teste para avaliar os modelos gerados é um recurso de visualização. Esse recurso é um recurso de visualização experimental e pode ser alterado a qualquer momento.

Saiba como configurar experimentos de AutoML para usar dados de teste (visualização) com o SDK ou com o estúdio do Azure Machine Learning.

Desenvolvimento de funcionalidades

A engenharia de funcionalidades utiliza o conhecimento do domínio dos dados para criar funcionalidades que ajudam os algoritmos de ML a aprender melhor. No Azure Machine Learning, as técnicas de escalabilidade e normalização ajudam na engenharia de características. Coletivamente, essas técnicas e engenharia de recursos são chamadas de featurização.

Para experiências automatizadas de aprendizagem automática, a caracterização acontece automaticamente, mas também pode personalizá-la com base nos seus dados. Saiba mais sobre que características de featurização estão incluídas (SDK v1) e como o AutoML ajuda a evitar o sobreajuste e desequilíbrios de dados nos modelos.

Nota

Passos automatizados de preparação de características de aprendizagem automática, como normalização de características, tratamento de dados faltantes e conversão de texto para numérico, integram o modelo subjacente. Quando utiliza o modelo para previsões de resultados, as mesmas etapas de featurização aplicadas durante a formação são automaticamente aplicadas aos seus dados de entrada.

Personalizar características

Também pode usar outras técnicas de engenharia de características, como codificação e transformações.

Habilite essa configuração com:

Modelos Ensemble

O aprendizado de máquina automatizado suporta modelos de conjunto, que são habilitados por padrão. A aprendizagem em conjunto melhora os resultados da aprendizagem automática e o desempenho preditivo ao combinar múltiplos modelos em vez de usar modelos únicos. As iterações de conjunto aparecem como as iterações finais do seu trabalho. O aprendizado de máquina automatizado usa métodos de votação e conjunto de empilhamento para combinar modelos:

  • Votação: prevê com base na média ponderada das probabilidades de classe previstas (para tarefas de classificação) ou metas de regressão previstas (para tarefas de regressão).
  • Empilhamento: Combina modelos heterogêneos e treina um metamodelo com base na saída dos modelos individuais. Os metamodelos padrão atuais são LogisticRegression para tarefas de classificação e ElasticNet para tarefas de regressão/previsão.

O algoritmo de seleção de conjunto Caruana com inicialização ordenada de conjunto decide que modelos usar dentro do conjunto. Em um nível alto, este algoritmo inicializa o conjunto com até cinco modelos com as melhores pontuações individuais, e verifica se esses modelos estão dentro do limiar de 5% da melhor pontuação para evitar um conjunto inicial ruim. Em seguida, para cada iteração de conjunto, um novo modelo é adicionado ao conjunto existente e a pontuação resultante é calculada. Se um novo modelo melhorar a pontuação do conjunto existente, o conjunto é atualizado para incluir o novo modelo.

Consulte o pacote AutoML para alterar as configurações padrão do conjunto no aprendizado de máquina automatizado.

AutoML & ONNX

Com o Azure Machine Learning, você pode usar ML automatizado para criar um modelo Python e convertê-lo para o formato ONNX. Uma vez que os modelos estejam no formato ONNX, pode executá-los em várias plataformas e dispositivos. Saiba mais sobre como acelerar modelos de ML com ONNX.

Veja como converter para o formato ONNX neste exemplo de bloco de anotações Jupyter. Saiba quais algoritmos são suportados no ONNX.

O tempo de execução ONNX também suporta C#, para que você possa usar o modelo criado automaticamente em seus aplicativos C# sem qualquer necessidade de recodificação ou qualquer uma das latências de rede que os pontos de extremidade REST introduzem. Saiba mais sobre como usar um modelo ONNX AutoML numa aplicação .NET com ML.NET e inferir modelos ONNX com a API ONNX runtime C#.

Próximos passos

Use os seguintes recursos para começar a funcionar com o AutoML.

Tutoriais e artigos explicativos

Os tutoriais são exemplos introdutórios completos de cenários de AutoML.

Os artigos explicativos fornecem mais detalhes sobre as funcionalidades que o ML automatizado oferece. Por exemplo,

Amostras de cadernos Jupyter

Analise os exemplos de código e casos de utilização detalhados no Repositório do bloco de notas do GitHub para amostras de machine learning automatizado.

Referência SDK Python

Aprofunde os seus conhecimentos em padrões de design SDK e especificações de classe com a documentação de referência da classe AutoML Job.

Nota

Os recursos de aprendizado de máquina automatizado também estão disponíveis em outras soluções da Microsoft, como ML.NET, HDInsight, Power BI e SQL Server.