SdcaMulticlassTrainerBase<TModel> Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de clasificador multiclase lineal entrenado con un método de descenso de coordenadas. Según la función de pérdida usada, el modelo entrenado puede ser, por ejemplo, el clasificador de entropía máximo o la máquina de vectores de soporte de varias clases.
public abstract class SdcaMulticlassTrainerBase<TModel> : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,Microsoft.ML.Data.MulticlassPredictionTransformer<TModel>,TModel> where TModel : class
type SdcaMulticlassTrainerBase<'Model (requires 'Model : null)> = class
inherit SdcaTrainerBase<SdcaMulticlassTrainerBase<'Model>.MulticlassOptions, MulticlassPredictionTransformer<'Model>, 'Model (requires 'Model : null)>
Public MustInherit Class SdcaMulticlassTrainerBase(Of TModel)
Inherits SdcaTrainerBase(Of SdcaMulticlassTrainerBase(Of TModel).MulticlassOptions, MulticlassPredictionTransformer(Of TModel), TModel)
Parámetros de tipo
- TModel
- Herencia
-
SdcaTrainerBase<SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,MulticlassPredictionTransformer<TModel>,TModel>SdcaMulticlassTrainerBase<TModel>
- Derivado
Comentarios
Para crear este instructor para el clasificador de entropía máximo, use SdcaMaximumEntropy o SdcaMaximumEntropy(Options). Para crear este instructor para una función de pérdida (como la pérdida de bisagra de la máquina vectorial de soporte) de su elección, use SdcaNonCalibrated o SdcaNonCalibrated(Options).
Columnas de entrada y salida
Los datos de columna de etiqueta de entrada deben ser de tipo clave y la columna de característica debe ser un vector de tamaño conocido de Single.
Este instructor genera las siguientes columnas:
Nombre de columna de salida | Tipo de columna | Descripción |
---|---|---|
Score |
Vector de Single | Puntuaciones de todas las clases. Un valor más alto indica mayor probabilidad de que caigan en la clase asociada. Si el elemento i-th tiene el valor más grande, el índice de la etiqueta de predicción sería i. Tenga en cuenta que i es el índice de base cero. |
PredictedLabel |
Tipo de clave | Índice de la etiqueta de predicción. Si su valor es i, la etiqueta real sería la categoría de i-th en el tipo de etiqueta de entrada con valores de clave. |
Características del entrenador
Tarea de Machine Learning | Clasificación multiclase |
¿Se requiere normalización? | Sí |
¿Se requiere el almacenamiento en caché? | No |
NuGet necesario además de Microsoft.ML | None |
Exportable a ONNX | Sí |
Función de puntuación
Esto entrena el modelo lineal para resolver problemas de clasificación multiclase. Supongamos que el número de clases es $m$ y el número de características es $n$. Asigna al $c$-th clase un vector de coeficiente $\textbf{w}_c \in {\mathbb R}^n$ y un sesgo $b_c \in {\mathbb R}$, para $c=1,\dots,m$. Dado un vector de característica $\textbf{x} \in {\mathbb R}^n$, la puntuación de la clase $c$-th sería $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Si $\textbf{x}$ pertenece a la clase $c$, $\hat{y}^c$ debe ser mucho mayor que 0. Por el contrario, $\hat{y}^c$ mucho menor que 0 significa que la etiqueta deseada no debe ser $c$.
Si y solo si el modelo entrenado es un clasificador de entropía máximo, puede interpretar el vector de puntuación de salida como probabilidades de clase predichas porque la función softmax se puede aplicar a las puntuaciones de todas las clases posteriores al proceso. Más concretamente, la probabilidad de $\textbf{x}$ que pertenece a la clase $c$ se calcula mediante $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ y almacene en el elemento $c$-th del vector de puntuación. En otros casos, el vector de puntuación de salida es solo $[\hat{y}^1, \dots, \hat{y}^m]$.
Detalles del algoritmo de entrenamiento
El algoritmo de optimización es una extensión de un método de descenso de coordenadas después de una ruta similar propuesta en un documento anterior. Normalmente es mucho más rápido que L-BFGS y métodos Newton truncados para conjuntos de datos dispersos y a gran escala.
Esta clase usa la minimización de riesgos empíricas (es decir, ERM) para formular el problema de optimización basado en los datos recopilados. Tenga en cuenta que el riesgo empírica se mide normalmente aplicando una función de pérdida en las predicciones del modelo en los puntos de datos recopilados. Si los datos de entrenamiento no contienen suficientes puntos de datos (por ejemplo, para entrenar un modelo lineal en $n espacio dimensional, necesitamos al menos $n$ puntos de datos), el sobreajuste puede ocurrir para que el modelo generado por ERM sea bueno para describir los datos de entrenamiento, pero puede no predecir los resultados correctos en eventos no vistos. La regularización es una técnica común para aliviar este fenómeno penalizando la magnitud (normalmente medida por la función norm) de los parámetros del modelo. Este instructor admite la regularización de red elástica, que penaliza una combinación lineal de L1-norm (LASSO), $|| \textbf{w}_c || _1$, y L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularizaciones para $c=1,\dots,m$. Las regularizaciones L1-norm y L2-norm tienen diferentes efectos y usos que son complementarios en ciertos aspectos.
Junto con el algoritmo de optimización implementado, la regularización L1-norm puede aumentar la dispersión de los pesos del modelo, $\textbf{w}_1,\dots,\textbf{w}_m$. En el caso de los conjuntos de datos dispersos y dimensionales, si los usuarios seleccionan cuidadosamente el coeficiente de la norma L1, es posible lograr una buena calidad de predicción con un modelo que tenga solo unos pocos pesos distintos de cero (por ejemplo, el 1 % de los pesos totales del modelo) sin afectar a su potencia de predicción. Por el contrario, la norma L2 no puede aumentar la dispersidad del modelo entrenado, pero puede evitar el sobreajuste evitando valores de parámetros grandes. A veces, el uso de la norma L2 conduce a una mejor calidad de predicción, por lo que es posible que los usuarios quieran probarlo y ajustar los coeficientes de la norma L1 y la norma L2. Tenga en cuenta que, conceptualmente, el uso de la norma L1 implica que la distribución de todos los parámetros del modelo es una distribución de Laplace , mientras que la norma L2 implica una distribución gaussiana para ellos.
Una regularización agresiva (es decir, asignar coeficientes grandes a los términos de regularización L1-norm o L2-norm) puede dañar la capacidad predictiva excluyendo variables importantes del modelo. Por ejemplo, un coeficiente L1-norm muy grande puede forzar que todos los parámetros sean ceros y dar lugar a un modelo trivial. Por lo tanto, elegir los coeficientes de regularización correctos es importante en la práctica.
Consulte la sección Consulte también los vínculos a ejemplos de uso.
Campos
FeatureColumn |
Columna de características que espera el instructor. (Heredado de TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Columna de etiqueta que espera el instructor. Puede ser |
WeightColumn |
Columna de peso que espera el entrenador. Puede ser |
Propiedades
Info |
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de clasificador multiclase lineal entrenado con un método de descenso de coordenadas. Según la función de pérdida usada, el modelo entrenado puede ser, por ejemplo, el clasificador de entropía máximo o la máquina de vectores de soporte de varias clases. (Heredado de StochasticTrainerBase<TTransformer,TModel>) |
Métodos
Fit(IDataView) |
Entrena y devuelve un ITransformer. (Heredado de TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de clasificador multiclase lineal entrenado con un método de descenso de coordenadas. Según la función de pérdida usada, el modelo entrenado puede ser, por ejemplo, el clasificador de entropía máximo o la máquina de vectores de soporte de varias clases. (Heredado de TrainerEstimatorBase<TTransformer,TModel>) |
Métodos de extensión
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit. |
Se aplica a
Consulte también
- SdcaNonCalibrated(MulticlassClassificationCatalog+MulticlassClassificationTrainers, SdcaNonCalibratedMulticlassTrainer+Options)
- SdcaNonCalibrated(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, ISupportSdcaClassificationLoss, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaNonCalibratedMulticlassTrainer.Options
- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, SdcaMaximumEntropyMulticlassTrainer+Options)
- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaMaximumEntropyMulticlassTrainer.Options