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 SageMaker linear do Amazon Learner fornece uma solução para problemas de classificação e regressão. Com o SageMaker algoritmo, você pode 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.

Em comparação com métodos que proporcionam 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 nativas. 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, o Amazon SageMaker Linear Learner exige que você especifique os locais dos dados de entrada e saída e o tipo de objetivo (classificação ou regressão) como argumentos. A dimensão do recurso também é necessária. Para ter 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 usando o Managed Spot Training, o algoritmo linear do aluno suporta o uso de pontos de verificação para tirar uma foto do estado do modelo.

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

O algoritmo de aprendizado SageMaker linear da Amazon oferece suporte a 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 da aprendizagem linear. Para obter mais informações sobre os formatos de inferência e sobre o Cadernos de amostra para aprendizagem linear.

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

O algoritmo linear do aluno é compatível com instâncias de CPU e GPU para treinamento e inferência. Para GPU, o algoritmo de aprendizagem linear é compatível com as famílias de GPU P2, P3, G4dn e G5.

Durante os testes, não encontramos evidências substanciais de que instâncias com várias GPUs sejam mais rápidos que as instâncias com uma única GPU. Os resultados podem variar dependendo do seu caso de uso específico.

Cadernos de amostra para aprendizagem linear

A tabela a seguir descreve uma variedade de exemplos de cadernos que abordam diferentes casos de uso do algoritmo de aprendizado SageMaker linear da Amazon.

Título do caderno Descrição

Uma introdução ao conjunto de dados MNIST

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

Como construir um classificador multiclasse?

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

Como criar um pipeline de Machine Learning (ML) para inferência?

Usando um contêiner Scikit-learn, demonstramos como criar um end-to-end pipeline de ML.

Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo SageMaker, consulte. Instâncias do Amazon SageMaker Notebook Depois de criar uma instância do notebook e abri-la, escolha a guia SageMakerExemplos para ver uma lista de todas as SageMaker amostras. 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 caderno, escolha sua guia Use (Uso) e depois escolha Create copy (Criar cópia).