Escolher um algoritmo - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Escolher um algoritmo

O machine learning pode ajudá-lo a realizar tarefas empíricas que exigem algum tipo de inferência indutiva. Essa tarefa envolve indução, pois usa dados para treinar algoritmos para fazer inferências generalizáveis. Isso significa que os algoritmos podem fazer previsões ou decisões estatisticamente confiáveis, ou completar outras tarefas quando aplicados a novos dados que não foram usados para treiná-los.

Para ajudá-lo a selecionar o melhor algoritmo para sua tarefa, classificamos essas tarefas em vários níveis de abstração. No nível mais alto de abstração, o machine learning tenta encontrar padrões ou relacionamentos entre recursos ou itens menos estruturados, como texto em um conjunto de dados. As técnicas de reconhecimento de padrões podem ser classificadas em paradigmas distintos de machine learning, cada um dos quais aborda tipos de problemas específicos. Atualmente, existem três paradigmas básicos de machine learning usados para resolver vários tipos de problemas:

Os tipos de problemas que cada paradigma de aprendizado pode resolver são identificados considerando as inferências (ou previsões, decisões ou outras tarefas) que você deseja fazer a partir do tipo de dados que você tem ou poderia coletar. Os paradigmas de machine learning usam métodos algorítmicos para resolver seus vários tipos de problemas. Os algoritmos fornecem receitas para resolver esses problemas.

No entanto, muitos algoritmos, como redes neurais, podem ser implantados com diferentes paradigmas de aprendizado e em diferentes tipos de problemas. Vários algoritmos também podem tratar de um tipo de problema específico. Alguns algoritmos são de aplicação mais geral e outros são bastante específicos para certos tipos de objetivos e dados. Portanto, o mapeamento entre algoritmos de aprendizado de máquina e tipos de problemas é many-to-many. Além disso, há várias opções de implementação disponíveis para algoritmos.

As seções a seguir fornecem orientação sobre opções de implementação, paradigmas de machine learning e algoritmos apropriados para diferentes tipos de problemas.

Escolha uma implantação de algoritmo

Depois de escolher um algoritmo, você deve decidir qual implantação deseja usar. A Amazon SageMaker oferece suporte a três opções de implementação que exigem níveis crescentes de esforço.

  • Os modelos pré-treinados exigem o mínimo de esforço e são modelos prontos para serem implantados ou ajustados e implantados usando. SageMaker JumpStart

  • Os algoritmos integrados exigem mais esforço e escala se o conjunto de dados for grande e forem necessários recursos significativos para treinar e implantar o modelo.

  • Se não houver uma solução integrada que funcione, tente desenvolver uma que use imagens pré-fabricadas para estruturas de aprendizado de máquina e de aprendizado profundo para estruturas compatíveis, como Scikit-Learn,,, TensorFlow ou Chainer. PyTorch MXNet

  • Se você precisar executar pacotes personalizados ou usar qualquer código que não faça parte de uma estrutura compatível ou esteja disponível por meio de PyPi, crie sua própria imagem personalizada do Docker, configurada para instalar os pacotes ou softwares necessários. A imagem personalizada também deve ser enviada para um repositório online como o Amazon Elastic Container Registry.

Orientação de implantação de algoritmos

Implementação Requer código Algoritmos pré-codificados Support para pacotes de terceiros Support para código personalizado Nível de esforço
Integrado Não Sim Não Não Baixo
Scikit-learn Sim Sim PyPi somente Sim Médio
SparkML Sim Sim PyPi somente Sim Médio
XGBoost(código aberto) Sim Sim PyPi somente Sim Médio
TensorFlow Sim Não PyPi somente Sim Médio-alto
PyTorch Sim Não PyPi somente Sim Médio-alto
MXNet Sim Não PyPi somente Sim Médio-alto
Chainer Sim Não PyPi somente Sim Médio-alto
Imagem personalizada Sim Não Sim, de qualquer fonte Sim Alta

Use um algoritmo integrado.

Ao escolher um algoritmo para seu tipo de problema e dados, a opção mais fácil é usar um dos algoritmos integrados SageMaker da Amazon. Esses algoritmos integrados trazem dois grandes benefícios.

  • Os algoritmos integrados não precisam de codificação para começar a executar experimentos. As únicas entradas que você precisa fornecer são os dados, os hiperparâmetros e os recursos computacionais. Isso permite que você execute experimentos mais rapidamente, com menos sobrecarga para rastrear resultados e alterações no código.

  • Os algoritmos integrados vêm com paralelização em várias instâncias de computação e GPU oferecem suporte imediato a todos os algoritmos aplicáveis (alguns algoritmos podem não estar incluídos devido a limitações inerentes). Se você tiver muitos dados com os quais treinar seu modelo, a maioria dos algoritmos integrados pode ser facilmente escalada para atender à demanda. Mesmo que você já tenha um modelo pré-treinado, ainda pode ser mais fácil usar seu corolário SageMaker e inserir os hiperparâmetros que você já conhece do que transferi-lo usando o modo script em uma estrutura compatível.

Para obter mais informações sobre os algoritmos integrados fornecidos pelo SageMaker, consulteUse algoritmos SageMaker integrados da Amazon ou modelos pré-treinados.

Para obter informações importantes sobre caminhos de registro do docker, formatos de dados, tipos de EC2 instância recomendados e CloudWatch registros comuns a todos os algoritmos integrados fornecidos pelo SageMaker, consulte. Informações comuns sobre algoritmos integrados

Use o modo de script em uma framework compatível

Se o algoritmo que você deseja usar para seu modelo não for suportado por uma opção integrada e você se sentir confortável em codificar sua própria solução, considere usar uma estrutura SageMaker compatível com a Amazon. Isso é chamado de “modo de script” porque você escreve seu código personalizado (script) em um arquivo de texto com uma .py extensão. Como indica a tabela acima, é SageMaker compatível com a maioria das estruturas populares de aprendizado de máquina. Essas estruturas vêm pré-carregadas com a estrutura correspondente e alguns pacotes Python adicionais, como o Pandas e NumPy, para que você possa escrever seu próprio código para treinar um algoritmo. Essas estruturas também permitem que você instale qualquer pacote Python hospedado PyPi incluindo um arquivo requirements.txt com seu código de treinamento ou incluindo seus próprios diretórios de código. R também é suportado nativamente em kernels de SageMaker notebooks. Algumas estruturas, como scikit-learn e Spark ML, têm algoritmos pré-codificados que você pode usar facilmente, enquanto outras estruturas gostam TensorFlow e PyTorch podem exigir que você mesmo implemente o algoritmo. A única limitação ao usar uma imagem de estrutura compatível é que você não pode importar pacotes de software que não estejam hospedados PyPi ou que ainda não estejam incluídos na imagem da estrutura.

Para obter mais informações sobre as estruturas suportadas pelo SageMaker, consulteLinguagens e frameworks de Machine Learning.

Usar uma imagem do Docker personalizada

Os algoritmos integrados e as estruturas suportadas SageMaker da Amazon devem cobrir a maioria dos casos de uso, mas às vezes você pode precisar usar um algoritmo de um pacote não incluído em nenhuma das estruturas suportadas. Você também pode ter um modelo pré-treinado escolhido ou mantido em algum lugar que precise ser implantado. SageMaker usa imagens do Docker para hospedar o treinamento e a exibição de todos os modelos, para que você possa fornecer sua própria imagem personalizada do Docker se o pacote ou o software de que você precisa não estiver incluído em uma estrutura compatível. Esse pode ser seu próprio pacote Python ou um algoritmo codificado em uma linguagem como Stan ou Julia. Para essas imagens, você também deve configurar o treinamento do algoritmo e a veiculação do modelo adequadamente em seu Dockerfile. Isso requer conhecimento intermediário do Docker e não é recomendado, a menos que você se sinta confortável em escrever seu próprio algoritmo de machine learning. Sua imagem do Docker deve ser carregada em um repositório on-line, como o Amazon Elastic Container Registry (ECR), antes que você possa treinar e servir seu modelo adequadamente.

Para obter mais informações sobre imagens personalizadas do Docker em SageMaker, consulteUse contêineres Docker para treinar e implantar modelos.

Tipos de problemas para os paradigmas básicos de machine learning

As três seções a seguir descrevem os principais tipos de problemas abordados pelos três paradigmas básicos do machine learning. Para obter uma lista dos algoritmos integrados que SageMaker solucionam esses tipos de problemas, consulteUse algoritmos SageMaker integrados da Amazon ou modelos pré-treinados.

Aprendizado supervisionado

Se seu conjunto de dados consiste em recursos ou atributos (entradas) que contêm valores-alvo (saídas), então você tem um problema de aprendizado supervisionado. Se seus valores-alvo forem categóricos (matematicamente discretos), então você tem um problema de classificação. É uma prática padrão distinguir a classificação binária da multiclasse.

  • A classificação binária é um tipo de aprendizagem supervisionada que atribui um indivíduo a uma das duas classes predefinidas e mutuamente exclusivas com base em seus atributos. É supervisionado porque os modelos são treinados a partir de exemplos em que os atributos são fornecidos com objetos rotulados corretamente. Um diagnóstico médico para saber se um indivíduo tem uma doença ou não com base nos resultados de testes diagnósticos é um exemplo de classificação binária.

  • A classificação multiclasse é um tipo de aprendizagem supervisionada que atribui um indivíduo a uma das várias classes com base nos atributos do indivíduo. É supervisionada porque os modelos são treinados a partir de exemplos em que os atributos são fornecidos com objetos rotulados corretamente. Um exemplo é a previsão do tópico mais relevante para um documento de texto. Um documento pode ser classificado como sendo sobre religião, política ou finanças, ou como sendo sobre uma de várias outras classes de tópicos predefinidas.

Se os valores de destino que você está tentando prever forem matematicamente contínuos, então você tem um problema de regressão. A regressão estima os valores de uma variável de destino dependente com base em uma ou mais outras variáveis ou atributos correlacionados com ela. Um exemplo é a previsão dos preços das casas usando características como o número de banheiros e quartos e a metragem quadrada da casa e do jardim. A análise de regressão pode criar um modelo que considera um ou mais desses recursos como uma entrada e prevê o preço de uma casa.

Para obter mais informações sobre os algoritmos de aprendizado supervisionado integrados fornecidos pela SageMaker, consulteAprendizado supervisionado.

Aprendizado não supervisionado

Se o seu conjunto de dados consiste em recursos ou atributos (entradas) que não contêm rótulos ou valores alvo (saídas), então você tem um problema de aprendizado não supervisionado. Neste tipo de problema, a saída deve ser prevista baseado no padrão descoberto nos dados de entrada. O objetivo dos problemas de aprendizado não supervisionado é descobrir padrões como agrupamentos nos dados. Há uma grande variedade de tarefas ou tipos de problemas aos quais a aprendizagem não supervisionada pode ser aplicada. As análises de componentes principais e clusters são dois dos principais métodos comumente implantados para pré-processamento de dados. Aqui está uma pequena lista de tipos de problemas que podem ser resolvidos por meio do aprendizado não supervisionado:

  • A redução de dimensão normalmente faz parte de uma etapa de exploração de dados usada para determinar os recursos mais relevantes a serem usados na construção do modelo. A ideia é transformar dados de um espaço de alta dimensão e pouco povoado em um espaço de baixa dimensão que retenha as propriedades mais significativas dos dados originais. Isso alivia a maldição da dimensionalidade que pode surgir com dados escassamente povoados e de alta dimensão, nos quais a análise estatística se torna problemática. Também pode ser usado para ajudar a entender os dados, reduzindo os dados de alta dimensão para uma dimensionalidade mais baixa que possa ser visualizada.

  • A análise de agrupamento é uma classe de técnicas usadas para classificar objetos ou casos em grupos chamados clusters. Ele tenta encontrar agrupamentos distintos dentro dos dados, em que os membros de um grupo sejam o mais semelhantes possível entre eles e o mais diferentes possível dos membros de outros grupos. Você define os recursos ou atributos que deseja que o algoritmo use para determinar a similaridade, selecione uma função de distância para medir a similaridade e especifique o número de clusters a serem usados na análise.

  • A detecção de anomalias é a identificação de itens, eventos ou observações raros em um conjunto de dados que levantam suspeitas porque diferem significativamente do resto dos dados. A identificação de itens anômalos pode ser usada, por exemplo, para detectar fraudes bancárias ou erros médicos. As anomalias também são chamadas de valores atípicos, novidades, ruídos, desvios e exceções.

  • A estimativa de densidade é a construção de estimativas de funções de densidade de probabilidade subjacentes não observáveis com base em dados observados. Um uso natural das estimativas de densidade é para exploração de dados. As estimativas de densidade podem descobrir características como assimetria e multimodalidade nos dados. A forma mais básica de estimativa de densidade é um histograma redimensionado.

SageMaker fornece vários algoritmos de aprendizado de máquina integrados que você pode usar para essas tarefas de aprendizado não supervisionadas. Para obter mais informações sobre os algoritmos integrados não supervisionados fornecidos pelo SageMaker, consulte. Aprendizado não supervisionado

Aprendizado por reforço

O aprendizado por reforço é um tipo de aprendizado baseado na interação com o meio ambiente. Esse tipo de aprendizado é usado por um agente que deve aprender o comportamento por meio de trial-and-error interações com um ambiente dinâmico no qual o objetivo é maximizar as recompensas de longo prazo que o agente recebe como resultado de suas ações. As recompensas são maximizadas trocando ações de exploração que têm recompensas incertas por ações de exploração que têm recompensas conhecidas.

Para obter mais informações sobre SageMaker estruturas, kits de ferramentas e ambientes para aprendizado por reforço, consulte. Use o aprendizado por reforço com a Amazon SageMaker