Algoritmo de Aprendizagem linear - 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á.

Algoritmo de Aprendizagem linear

Modelos lineares são algoritmos de aprendizagem supervisionada para resolver problemas de classificação ou regressão. Para entrada, você dá ao modelo exemplos rotulados (x, y). x é um vetor altamente dimensional e y é um rótulo numérico. Para problemas de classificação binária, o rótulo deve ser 0 ou 1. Para problemas de classificação de várias classes, os rótulos devem ser de 0 a num_classes - 1. Para problemas de regressão, y é um número real. O algoritmo aprende uma função linear ou, para problemas de classificação, uma função de limite linear, e mapeia um vetor x para uma aproximação do rótulo y.

O algoritmo de Aprendizagem linear do Amazon SageMaker fornece uma solução para os problemas de classificação e regressão. Com o algoritmo SageMaker, é possível explorar simultaneamente diferentes objetivos de treinamento e escolher a melhor solução em um conjunto de validação. Você também pode explorar um grande número de modelos e escolher o melhor. O melhor modelo otimiza uma das seguintes opções:

  • Objetivos contínuos, como erro quadrático médio, perda de entropia cruzada e erro absoluto.

  • Objetivos discretos adequados para classificação, como medida F1, precisão, recall ou acurácia.

Comparado com métodos que fornecem uma solução apenas para objetivos contínuos, o algoritmo de aprendizagem linear do SageMaker proporciona um aumento significativo na velocidade em relação às técnicas de otimização de hiperparâmetros ingênuas. Ele também é mais conveniente.

O algoritmo de aprendizagem linear requer uma matriz de dados, com linhas representando as observações e colunas representando as dimensões dos recursos. Ele também requer uma coluna adicional que contenha os rótulos que correspondem aos pontos de dados. No mínimo, a aprendizagem linear do Amazon SageMaker exige que você especifique locais de dados de entrada e saída, bem como o tipo de objetivo (classificação ou regressão) como argumentos. A dimensão do recurso também é necessária. Para obter mais informações, consulte CreateTrainingJob. É possível especificar parâmetros adicionais no mapa de strings de HyperParameters do corpo da solicitação. Esses parâmetros controlam o procedimento de otimização ou as especificidades da função objetiva na qual o treinamento é feito. Por exemplo, o número de epochs, regularização e tipo de perda.

Se você estiver usandoTreinamento gerenciado de spots, o algoritmo de Aprendizagem linear oferece suporte ao usoPontos de verificação para tirar um snapshot do estado do modelo.

Interface de entrada/saída para o algoritmo de aprendizagem linear

O algoritmo de Aprendizagem linear do Amazon SageMaker do oferece suporte para três canais de dados: treinamento, validação (opcional) e teste (opcional). Se você fornecer dados de validação, o S3DataDistributionType deverá ser FullyReplicated. O algoritmo registra a perda de validação em todos os epochs e usa uma amostra dos dados de validação para calibrar e selecionar o melhor modelo. Se você não fornecer dados de validação, o algoritmo usará uma amostra dos dados de treinamento para calibrar e selecionar o modelo. Se você fornecer dados de teste, os logs do algoritmo incluirão a pontuação do teste para o modelo final.

Para treinamento, o algoritmo de Aprendizagem linear oferece suporte aos formatos recordIO-wrapped protobuf e CSV. Para o tipo de entrada application/x-recordio-protobuf, há suporte apenas para os tensores Float32. Para o tipo de entrada text/csv, a primeira coluna é considerada o rótulo, que é a variável de destino para previsão. É possível usar o modo de Arquivo ou de Pipe para treinar modelos de Aprendizagem linear em dados formatados como recordIO-wrapped-protobuf ou como CSV.

Para inferência, o algoritmo de Aprendizagem linear oferece suporte aos formatos application/json, application/x-recordio-protobuf e text/csv. Quando você faz previsões sobre novos dados, o formato da resposta depende do tipo de modelo. Para regressão (predictor_type='regressor'), o score é a previsão gerada pelo modelo. Para classificação (predictor_type='binary_classifier' ou predictor_type='multiclass_classifier'), o modelo retorna um score e um predicted_label. O predicted_label é a classe prevista pelo modelo e score mede a intensidade dessa previsão.

  • Para classificação binária, predicted_label é 0 ou 1, e score é um único número de ponto flutuante que indica a intensidade com que o algoritmo acredita que o rótulo deve ser 1.

  • Para classificação multiclasse, a predicted_class será um número inteiro de 0 a num_classes-1 e a score será uma lista de um número de ponto flutuante por classe.

Para interpretar o score em problemas de classificação, você deve considerar a função de perda usada. Se o valor do hiperparâmetro loss for logistic para classificação binária ou softmax_loss para classificação de várias classes, o score pode ser interpretado como a probabilidade da classe correspondente. Esses são os valores de perda usados pela aprendizagem linear quando o valor loss é o valor padrão auto. No entanto, se a perda for definido como hinge_loss, a pontuação não poderá ser interpretada como probabilidade. Isso ocorre porque a perda da dobradiça corresponde a um classificador Support Vector que não produz estimativas de probabilidade.

Para obter mais informações sobre formatos de arquivo de entrada e saída, consulte Formatos de resposta linear do aluno. Para obter mais informações sobre os formatos de inferência e sobre o Cadernos de amostra de alunos lineares.

Recomendação de instância do EC2 para o algoritmo de aprendizagem linear

Você pode treinar o algoritmo de Aprendizagem linear em instâncias de GPU e CPU de uma ou várias máquinas. Durante os testes, não encontramos evidências substanciais de que computadores com várias GPUs sejam mais rápidos que os computadores com uma única GPU. Os resultados podem variar dependendo do seu caso de uso específico.

Cadernos de amostra de alunos lineares

A tabela a seguir descreve uma variedade de blocos de notas de amostra que abordam diferentes casos de uso do algoritmo de aprendizado linear do Amazon SageMaker.

Título do notebook Descrição

Uma introdução com o conjunto de dados MNIST

Usando o conjunto de dados MNIST, treinamos um classificador binário para prever um único dígito.

Prever câncer de mama

Usando o conjunto de dados de Câncer de Mama da UCI, treinamos um modelo para prever o câncer de mama.

Como construir um classificador multiclass?

Usando o conjunto de dados Covertype da UCI, demonstramos como treinar um classificador multiclass.

Como construir um pipeline de Machine Learning (ML) para inferências?

Usando um contêiner SciKit-Learn, demonstramos como criar um pipeline de ML de ponta a ponta.

Para obter instruções sobre como criar e acessar instâncias de bloco de anotações Jupyter que podem ser usadas para executar o exemplo no SageMaker, consulteUsar as instâncias de bloco de anotações do Amazon. Depois de criar uma instância de bloco de anotações e abri-la, escolha oExemplos do SageMakerPara ver uma lista de todas as amostras do SageMaker. Os blocos de anotações de exemplo de modelagem de tópicos que usam os algoritmos de aprendizagem linear estão localizados na seção Introdução a algoritmos da Amazon. Para abrir um bloco de anotações, escolha sua guia Use (Uso) e depois escolha Create copy (Criar cópia).