AveragedPerceptronTrainer Clase

Definición

que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de clasificación binaria lineal entrenado con el perceptrón promedio.

public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
    inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
Herencia

Comentarios

Para crear este instructor, use AveragedPerceptron o AveragedPerceptron(Options).

Columnas de entrada y salida

Los datos de la columna de etiqueta de entrada deben ser Boolean. Los datos de columna de características de entrada deben ser un vector conocido de Single. Este instructor genera las columnas siguientes:

Nombre de columna de salida Tipo de columna Description
Score Single Puntuación sin enlazar calculada por el modelo.
PredictedLabel Boolean Etiqueta de predicción, según el signo de la puntuación. Una puntuación negativa se asigna a false y una puntuación positiva se asigna a true.

Características del entrenador

Tarea de aprendizaje automático Clasificación binaria
¿Se requiere normalización? Yes
¿Se requiere el almacenamiento en caché? No
NuGet necesario además de Microsoft.ML Ninguno
Exportable a ONNX Yes

Detalles del algoritmo de entrenamiento

El perceptron es un algoritmo de clasificación que realiza sus predicciones mediante la búsqueda de un hiperplano separador. Por ejemplo, con los valores de característica $f_0, f_1,..., f_{D-1}$, la predicción se da al determinar en qué lado del hiperplano entra el punto. Es lo mismo que el signo de la suma ponderada de las feautures, es decir, $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, donde $w_0, w_1,..., w_{D-1}$ son los pesos calculados por el algoritmo y $b$ es el sesgo calculado por el algoritmo.

El perceptrón es un algoritmo en línea, lo que significa que procesa las instancias del conjunto de entrenamiento uno a uno. Comienza con un conjunto de pesos iniciales (cero, aleatorio o inicializado a partir de un aprendiz anterior). A continuación, para cada ejemplo del conjunto de entrenamiento, se calcula la suma ponderada de las características. Si este valor tiene el mismo signo que la etiqueta del ejemplo actual, los pesos permanecen iguales. Si tienen signos opuestos, el vector de pesos se actualiza agregando o restando (si la etiqueta es positiva o negativa, respectivamente) el vector de característica del ejemplo actual, multiplicado por un factor 0 < a <= 1, denominado velocidad de aprendizaje. En una generalización de este algoritmo, las ponderaciones se actualizan agregando el vector de característica multiplicado por la velocidad de aprendizaje y por el degradado de alguna función de pérdida (en el caso específico descrito anteriormente, la pérdida es la pérdida de bisagra, cuyo degradado es 1 cuando no es cero).

En Perceptron promedio (también conocido como "perceptron", para cada iteración, es decir, pasar por los datos de entrenamiento, se calcula un vector de peso como se explicó anteriormente. A continuación, la predicción final se calcula mediante el promedio de la suma ponderada de cada vector de peso y mirando el signo del resultado.

Para obtener más información, vea La entrada de Wikipedia para perceptron o clasificación de margen grande mediante el algoritmo perceptrónico.

Consulte la sección Ver también para obtener vínculos a ejemplos de uso.

Campos

Nombre Description
FeatureColumn

Columna de características que el instructor espera.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Columna de etiqueta que el entrenador espera. Puede ser null, lo que indica que la etiqueta no se usa para el entrenamiento.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Columna de peso que espera el entrenador. Puede ser null, lo que indica que el peso no se usa para el entrenamiento.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)

Propiedades

Nombre Description
Info

que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de clasificación binaria lineal entrenado con el perceptrón promedio.

(Heredado de OnlineLinearTrainer<TTransformer,TModel>)

Métodos

Nombre Description
Fit(IDataView, LinearModelParameters)

Continúa el entrenamiento de un OnlineLinearTrainer<TTransformer,TModel> mediante un objeto ya entrenado modelParameters y devuelve un ITransformer.

(Heredado de OnlineLinearTrainer<TTransformer,TModel>)
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 clasificación binaria lineal entrenado con el perceptrón promedio.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)

Métodos de extensión

Nombre Description
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 se ha ajustado, por lo que el Fit(IDataView) método devuelve un objeto específicamente tipado, 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