LbfgsMaximumEntropyMulticlassTrainer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A IEstimator<TTransformer> previsão de um destino usando um classificador multiclasse de entropia máximo treinado com o método L-BFGS.
public sealed class LbfgsMaximumEntropyMulticlassTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsMaximumEntropyMulticlassTrainer.Options,Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.MaximumEntropyModelParameters>,Microsoft.ML.Trainers.MaximumEntropyModelParameters>
type LbfgsMaximumEntropyMulticlassTrainer = class
inherit LbfgsTrainerBase<LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer<MaximumEntropyModelParameters>, MaximumEntropyModelParameters>
Public NotInheritable Class LbfgsMaximumEntropyMulticlassTrainer
Inherits LbfgsTrainerBase(Of LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer(Of MaximumEntropyModelParameters), MaximumEntropyModelParameters)
- Herança
Comentários
Para criar esse treinador, use LbfgsMaximumEntropy ou LbfgsMaximumEntropy(Options).
Colunas de entrada e saída
Os dados da coluna do rótulo de entrada devem ser de tipo de chave e a coluna de recurso deve ser um vetor de tamanho conhecido.Single
Este treinador gera as seguintes colunas:
| Nome da coluna de saída | Tipo de Coluna | Descrição |
|---|---|---|
Score |
Vetor de Single | As pontuações de todas as classes. Valor mais alto significa maior probabilidade de cair na classe associada. Se o elemento i-th tiver o maior valor, o índice de rótulo previsto seria i. Observe que eu é um índice baseado em zero. |
PredictedLabel |
Tipo de chave | O índice do rótulo previsto. Se o valor for i, o rótulo real será a categoria i-th no tipo de rótulo de entrada com valor de chave. |
Características do Treinador
| Tarefa de machine learning | Classificação multiclasse |
| A normalização é necessária? | Yes |
| O cache é necessário? | No |
| NuGet necessário além de Microsoft.ML | None |
| Exportável para ONNX | Yes |
Função de pontuação
O modelo máximo de entropia é uma generalização da regressão logística linear. A principal diferença entre o modelo máximo de entropia e a regressão logística é o número de classes com suporte no problema de classificação considerado. A regressão logística é apenas para classificação binária, enquanto o modelo máximo de entropia manipula várias classes. Consulte a Seção 1 neste artigo para obter uma introdução detalhada.
Suponha que o número de classes seja $m$ e o número de recursos seja $n$. O modelo de entropia máxima atribui à classe $c$-th um vetor coeficiente $\textbf{w}_c \in {\mathbb R}^n$ e um viés $b_c \in {\mathbb R}$, por $c=1,\dots,m$. Dado um vetor de recurso $\textbf{x} \in {\mathbb R}^n$, a pontuação da classe $c$-th é $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. A probabilidade de $\textbf{x}$ pertencer à classe $c$ é definida por $\tilde{P}(c | \textbf{x}) = \frac{ e^{\\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$. Let $P(c, \textbf{ x})$ denote a probabilidade conjunta de ver $c$ e $\textbf{x}$. A função de perda minimizada por este treinador é $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, que é a função de probabilidade de log negativa.
Detalhes do algoritmo de treinamento
A técnica de otimização implementada baseia-se no método de memória limitada Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS é um método quase newtoniano, que substitui a computação cara da matriz hessiana por uma aproximação, mas ainda desfruta de uma taxa de convergência rápida como o método de Newton onde a matriz hessiana completa é computada. Como a aproximação L-BFGS usa apenas uma quantidade limitada de estados históricos para calcular a direção da próxima etapa, ela é especialmente adequada para problemas com um vetor de recursos de alta dimensão. O número de estados históricos é um parâmetro especificado pelo usuário, usando um número maior pode levar a uma melhor aproximação da matriz hessiana, mas também a um custo de computação mais alto por etapa.
Essa classe usa minimização de risco empírico (ou seja, ERM) para formular o problema de otimização criado com base nos dados coletados. Observe que o risco empírico geralmente é medido aplicando uma função de perda nas previsões do modelo em pontos de dados coletados. Se os dados de treinamento não contiverem pontos de dados suficientes (por exemplo, para treinar um modelo linear em $n espaço$-dimensional, precisamos de pelo menos $n$ pontos de dados), a sobreajuste pode acontecer para que o modelo produzido pelo ERM seja bom em descrever dados de treinamento, mas pode não prever os resultados corretos em eventos não vistos. A regularização é uma técnica comum para aliviar esse fenômeno, penalizando a magnitude (geralmente medida pela função norma) dos parâmetros de modelo. Este treinador dá suporte à regularização de rede elástica, que penaliza uma combinação linear de LASSO (L1-norm), $|| \textbf{w}_c ||_1$, e L2-norm (ridge), $|| \textbf{w}_c ||_2^2$ regularizações para $c=1,\dots,m$. As regularizações L1-norm e L2-norm têm efeitos e usos diferentes que são complementares em determinados aspectos.
Junto com o algoritmo de otimização implementado, a regularização de norma L1 pode aumentar a moderação dos pesos do modelo, $\textbf{w}_1,\dots,\textbf{w}_m$. Para conjuntos de dados altamente dimensionais e esparsos, se os usuários selecionarem cuidadosamente o coeficiente da norma L1, é possível obter uma boa qualidade de previsão com um modelo que tenha apenas alguns pesos não zero (por exemplo, 1% do total de pesos do modelo) sem afetar seu poder de previsão. Por outro lado, a norma L2 não pode aumentar a moderação do modelo treinado, mas ainda pode impedir a sobreajuste evitando valores de parâmetro grandes. Às vezes, o uso da norma L2 leva a uma melhor qualidade de previsão, portanto, os usuários ainda podem querer experimentá-la e ajustar os coeficientes de L1-norm e L2-norm. Observe que, conceitualmente, o uso da norma L1 implica que a distribuição de todos os parâmetros de modelo é uma distribuição Laplace , enquanto l2-norm implica uma distribuição gaussiana para eles.
Uma regularização agressiva (ou seja, atribuir grandes coeficientes a termos de regularização de norma L1 ou L2) pode prejudicar a capacidade preditiva excluindo variáveis importantes do modelo. Por exemplo, um coeficiente L1-norm muito grande pode forçar todos os parâmetros a serem zeros e levar a um modelo trivial. Portanto, escolher os coeficientes de regularização corretos é importante na prática.
Verifique a seção Consulte Também para obter links para exemplos de uso.
Campos
| Nome | Description |
|---|---|
| FeatureColumn |
A coluna de recursos que o treinador espera. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
A coluna de rótulo que o treinador espera. Pode ser |
| WeightColumn |
A coluna de peso que o treinador espera. Pode ser |
Propriedades
| Nome | Description |
|---|---|
| Info |
A IEstimator<TTransformer> previsão de um destino usando um classificador multiclasse de entropia máximo treinado com o método L-BFGS. (Herdado de LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Métodos
| Nome | Description |
|---|---|
| Fit(IDataView, MaximumEntropyModelParameters) |
Continua o treinamento de um usando um LbfgsMaximumEntropyMulticlassTrainer já treinado |
| Fit(IDataView) |
Treina e retorna um ITransformer. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
A IEstimator<TTransformer> previsão de um destino usando um classificador multiclasse de entropia máximo treinado com o método L-BFGS. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
Métodos de Extensão
| Nome | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Acrescente um 'ponto de verificação de cache' à cadeia do avaliador. Isso garantirá que os avaliadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que têm várias passagens de dados. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado um avaliador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um avaliador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário criar uma cadeia de avaliadores por meio EstimatorChain<TLastTransformer> de onde o avaliador para o qual queremos obter o transformador está enterrado em algum lugar nessa cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado assim que o ajuste for chamado. |
Aplica-se a
Confira também
- LbfgsMaximumEntropyMulticlassTrainer.Options
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, LbfgsMaximumEntropyMulticlassTrainer+Options)