AveragedPerceptronTrainer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной двоичной классификации, обученной с помощью усредненного перцептрона.
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)
- Наследование
Комментарии
Чтобы создать этот обучающее средство, используйте AveragedPerceptron или AveragedPerceptron(Options).
Входные и выходные столбцы
Входные данные столбца меток должны иметь тип Boolean. Входные признаки данных столбцов должны быть вектором известного Singleразмера . Этот алгоритм обучения выводит следующие столбцы:
Имя выходного столбца | Тип столбца | Описание |
---|---|---|
Score |
Single | Несвязанная оценка, вычисляемая моделью. |
PredictedLabel |
Boolean | Прогнозируемая метка, зависящая от знака оценки. Отрицательная оценка соответствует значению false , а положительная — значению true . |
Характеристики тренера
Задача машинного обучения | Двоичная классификация |
Требуется ли нормализация? | Да |
Требуется ли кэширование? | нет |
Требуется NuGet в дополнение к Microsoft.ML | Нет |
Экспортируемый в ONNX | Да |
Сведения об алгоритме обучения
Перцептрон — это алгоритм классификации, который делает его прогнозы путем поиска разделяющего гиперплана. Например, с значениями признаков $f_0, f_1,..., f_{D-1}$, прогноз определяется путем определения стороны гиперплана точки. Это то же самое, что и знак взвешаемой суммы feautures, т. е. $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, где $w_0, w_1,..., w_{D-1}$ — это весовые коэффициенты, вычисляемые алгоритмом, а $b$ — смещение, вычисляемое алгоритмом.
Perceptron — это сетевой алгоритм, который означает, что он обрабатывает экземпляры в обучаемом наборе по одному за раз. Он начинается с набора начальных весов (ноль, случайный или инициализированный из предыдущего учащегося). Затем для каждого примера в обучаемом наборе вычисляется взвешаемая сумма признаков. Если это значение имеет тот же знак, что и метка текущего примера, весовые коэффициенты остаются прежними. Если они имеют противоположные признаки, вектор весов обновляется путем добавления или вычитания (если метка является положительной или отрицательной, соответственно) вектор признаков текущего примера, умноженный на коэффициент 0 < a <= 1, называемый скоростью обучения. В обобщении этого алгоритма весовые коэффициенты обновляются путем добавления вектора признаков, умноженного на скорость обучения, и на градиент некоторых функций потери (в конкретном случае, описанном выше, потеря зависит от потери, градиент 1, если он не равен нулю).
В усредненном Перцептроне (aka voted-perceptron) для каждой итерации, т. е. пройти через обучающие данные, вектор веса вычисляется, как описано выше. Затем окончательный прогноз вычисляется путем усреднения взвешаемой суммы из каждого вектора веса и просмотра знака результата.
Дополнительные сведения см. в записи Википедии для Perceptron или крупной классификации полей с помощью алгоритма Perceptron.
Ссылки на примеры использования см. в разделе "См. также".
Поля
FeatureColumn |
Столбец признаков, который ожидает тренер. (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Столбец метки, который ожидает тренер. Может иметь значение |
WeightColumn |
Столбец веса, который ожидает тренер. Может быть |
Свойства
Info |
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной двоичной классификации, обученной с помощью усредненного перцептрона. (Унаследовано от OnlineLinearTrainer<TTransformer,TModel>) |
Методы
Fit(IDataView, LinearModelParameters) |
Продолжает обучение OnlineLinearTrainer<TTransformer,TModel> использования уже обученного |
Fit(IDataView) |
Тренирует и возвращает .ITransformer (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной двоичной классификации, обученной с помощью усредненного перцептрона. (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
Методы расширения
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что подчиненные оценщики будут обучены на основе кэшированных данных. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько данных. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Учитывая оценщик, верните объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было положено, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако в то же время часто IEstimator<TTransformer> формируются в конвейеры со многими объектами, поэтому нам может потребоваться создать цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия. |