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


LbfgsMaximumEntropyMulticlassTrainer Класс

Определение

Прогнозирование IEstimator<TTransformer> целевого объекта с помощью максимального многоклассового классификатора, обученного с помощью метода 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)
Наследование

Комментарии

Чтобы создать этот тренер, используйте LbfgsMaximumEntropy или LbfgsMaximumEntropy(Options).

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

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

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

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

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

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

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

Максимальная модель энтропии — это обобщение линейной логистической регрессии. Основное различие между максимальной энтропией модели и логистической регрессией — это количество классов, поддерживаемых в рассматриваемой проблеме классификации. Логистическая регрессия применяется только для двоичной классификации, а максимальная энтропия модели обрабатывает несколько классов. Подробные сведения см. в разделе 1 этого документа .

Предположим, что количество классов составляет $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$, определяется $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$. Пусть $P(c, \textbf{ x})$ обозначает общую вероятность просмотра $c$ и $\textbf{x}$. Функция потери, свернутая этим тренером, составляет $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, что является отрицательной функцией вероятности ведения журнала.

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

Реализация метода оптимизации основана на ограниченном методе памяти Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS — это метод квази-Ньютониан, который заменяет дорогостоящие вычисления шестнадцатеричной матрицы приближением, но по-прежнему пользуется быстрой скоростью конвергенции, как метод Ньютона , где вычисляется полная матрица Гессиана. Так как приближение L-BFGS использует только ограниченное количество исторических состояний для вычисления следующего направления шага, оно особенно подходит для проблем с вектором признаков с высоким размером. Количество исторических состояний является пользовательским параметром, используя большее число, может привести к лучшему приближению матрицы Hessian, но и более высокой стоимости вычислений на шаг.

Этот класс использует эмпирическую минимизацию рисков (т. е. 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> целевого объекта с помощью максимального многоклассового классификатора, обученного с помощью метода L-BFGS.

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

Методы

Fit(IDataView, MaximumEntropyModelParameters)

Продолжает обучение использования уже обученного LbfgsMaximumEntropyMulticlassTrainermodelParameters и возвращает значение MulticlassPredictionTransformer<TModel>.

Fit(IDataView)

Поезда и возвращается ITransformer.

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

Прогнозирование IEstimator<TTransformer> целевого объекта с помощью максимального многоклассового классификатора, обученного с помощью метода L-BFGS.

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

Методы расширения

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Добавьте "контрольную точку кэширования" в цепочку оценщика. Это обеспечит обучение подчиненных оценщиков на основе кэшированных данных. Рекомендуется создать контрольную точку кэширования перед обучением, которые принимают несколько передач данных.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Учитывая оценщик, возвращает объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было в форме, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако, в то же время, IEstimator<TTransformer> часто формируются в конвейеры со многими объектами, поэтому нам может потребоваться построить цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия.

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

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