Поделиться через


SdcaMulticlassTrainerBase<TModel> Класс

Определение

Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейного многоклассового классификатора, обученной с помощью метода спуска координат. В зависимости от используемой функции потери обученная модель может быть, например, максимальным классификатором энтропии или многоклассовой машиной поддержки векторов.

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)

Параметры типа

TModel
Наследование
Производный

Комментарии

Чтобы создать этот тренер для максимального классификатора энтропии, используйте SdcaMaximumEntropy или SdcaMaximumEntropy(Options). Чтобы создать этот тренер для функции потери (например, потери вектора поддержки вектора) по своему усмотрению, используйте SdcaNonCalibrated или SdcaNonCalibrated(Options).

Входные и выходные столбцы

Входные данные столбца меток должны быть типом ключа , а столбец компонента должен быть вектором известного Singleразмера.

Этот алгоритм обучения выводит следующие столбцы:

Имя выходного столбца Тип столбца Описание
Score Вектор Single Оценки всех классов. Более высокое значение означает большую вероятность попадания в связанный класс. Если i-й элемент имеет самое большое значение, индекс прогнозируемой метки будет равен i. Обратите внимание, что индекс i отсчитывается от нуля.
PredictedLabel Тип key Индекс прогнозируемой метки. Если его значение равно i, фактическая метка будет i-й категорией во входном типе метки с ключевым значением.

Характеристики тренера

Задача машинного обучения Многоклассовая классификация
Требуется ли нормализация? Да
Требуется ли кэширование? Нет
Обязательный NuGet в дополнение к Microsoft.ML Нет
Экспортируемый в ONNX Да

Функция оценки

Эта модель обучает линейную модель для решения проблем многоклассовой классификации. Предположим, что количество классов составляет $m$, а количество признаков — $n$. Он назначает класс $c$-th вектор коэффициента $\textbf{w}_c \in {\mathbb R}^n$ и предвзятость $b_c \in {\mathbb R}$, для $c=1,\dots,m$. Учитывая вектор признаков $\textbf{x} \in {\mathbb R}^n$, оценка класса $c$-th будет $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Если $\textbf{x}$ принадлежит к классу $c$, $\hat{y}^c$ должен быть намного больше 0. В отличие от этого, $\hat{y}^c$ гораздо меньше 0 означает, что требуемая метка не должна быть $c$.

Если и только если обученная модель является максимальным классификатором энтропии, можно интерпретировать вектор оценки выходных данных как вероятности прогнозируемого класса, так как функция softmax может применяться к результатам после обработки всех классов. В частности, вероятность $\textbf{x}$, принадлежащей классу $c$, вычисляется $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{{ y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }} }$ и хранится в элементе $c$-th в векторе оценки. В других случаях вектор оценки выходных данных составляет всего $[\hat{y}^1, \dots, \hat{y}^m]$.

Сведения о алгоритме обучения

Алгоритм оптимизации — это расширение метода спуска координат после аналогичного пути, предложенного в предыдущем документе. Обычно это гораздо быстрее , чем L-BFGS и усеченные методы Ньютона для крупномасштабных и разреженных наборов данных.

Этот класс использует эмпирическую минимизацию рисков (т. е. ERM) для формирования задачи оптимизации, созданной на основе собранных данных. Обратите внимание, что эмпирический риск обычно измеряется путем применения функции потери для прогнозов модели на собранных точках данных. Если обучающие данные не содержат достаточно точек данных (например, для обучения линейной модели в $n$-размерном пространстве, нам потребуется по крайней мере $n$ точек данных), возможно, переобучение может произойти, чтобы модель, созданная ERM, хорошо описывала обучающие данные, но может не прогнозировать правильные результаты в незавиденных событиях. Нормализация является распространенным методом для облегчения такого явления путем наказания величины (обычно измеряемой нормой функции) параметров модели. Этот тренер поддерживает упорядочение эластичных сетей, которое наказывает линейное сочетание L1-норм (LASSO), $|| \textbf{w}_c || _1$, и L2-норм (ридж), $|| \textbf{w}_c || _2^2$ регуляризации для $c=1,\dots,m$. Нормализации норм L1 и L2-норм имеют различные эффекты и использование, которые являются взаимодополняющими в определенных отношениях.

Вместе с реализованным алгоритмом оптимизации нормализация L1-норм может увеличить разреженность весов модели, $\textbf{w}_1,\dots,\textbf{w}_m$. Для многомерных и разреженных наборов данных, если пользователи тщательно выбирают коэффициент L1-норм, можно достичь хорошего качества прогнозирования с моделью, которая имеет только несколько ненулевых весов (например, 1% от общего веса модели), не влияя на ее мощность прогнозирования. В отличие от этого, L2-норма не может увеличить разреженность обученной модели, но по-прежнему может предотвратить переполнение, избегая больших значений параметров. Иногда использование L2-норм приводит к лучшему качеству прогнозирования, поэтому пользователи могут по-прежнему хотеть попробовать его и точно настроить коэффициенты L1-норм и L2-норм. Обратите внимание, что концептуально использование L1-норм подразумевает, что распределение всех параметров модели является распределением Laplace , а L2-норм подразумевает гаусское распределение для них.

Агрессивная регуляризация (т. е. присвоение больших коэффициентов терминам нормализации L1-норм или норм L2) может нанести вред прогнозной емкости за счет исключения важных переменных из модели. Например, очень большой коэффициент норм L1 может привести ко всем параметрам нули и привести к тривиальной модели. Поэтому выбор правильных коэффициентов регуляризации важен на практике.

Ознакомьтесь с разделом "См. также" ссылки на примеры использования.

Поля

FeatureColumn

Столбец признаков, который ожидает тренер.

(Унаследовано от TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Столбец меток, который ожидает тренер. Может иметь значение null, указывающее, что метка не используется для обучения.

(Унаследовано от TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Столбец веса, который ожидает тренер. Может быть null, что указывает, что вес не используется для обучения.

(Унаследовано от TrainerEstimatorBase<TTransformer,TModel>)

Свойства

Info

Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейного многоклассового классификатора, обученной с помощью метода спуска координат. В зависимости от используемой функции потери обученная модель может быть, например, максимальным классификатором энтропии или многоклассовой машиной поддержки векторов.

(Унаследовано от StochasticTrainerBase<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> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия.

Применяется к

См. также раздел