разница между параметрами штрафа и потерь в библиотеке Sklearn LinearSVC
-
21-12-2019 - |
Вопрос
Я не очень знаком с теорией SVM и использую этот класс LinearSVC в Python:
http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC
Мне было интересно, в чем разница между параметрами штрафа и потерь?
Решение
В машинном обучении функция потерь измеряет качество вашего решения, а штрафная функция накладывает некоторые ограничения на ваше решение.
В частности, пусть Икс быть вашими данными, и й быть метками ваших данных.Затем функция потерь V(f(X),y) измеряет, насколько хорошо ваша модель ж сопоставляет ваши данные с метками.Здесь f(X) — вектор предсказанных меток.
Нормы L1 и L2 — это широко используемые и интуитивно понятные функции потерь (см. *). L1 норма: V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|
, где f(xi) — прогнозируемая метка i-го объекта, а yi — фактическая метка. L2 норма: V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2)
, где sqrt — квадратный корень.
Что касается штрафная функция, он используется для наложения некоторых ограничений Р(ф) о вашем решении ж.Норма L1 может быть R(f)=|f1| + ... + |fm|
, и аналогичным образом вы можете определить норму L2.Здесь, f1,..., фм являются коэффициентами модели.Изначально вы их не знаете, это значения, которые извлекаются из ваших данных с помощью алгоритма машинного обучения.
В конечном итоге общая функция стоимости будет равна V(f(X),y) + lambda*R(f)
.И цель состоит в том, чтобы найти f, которое минимизирует вашу функцию стоимости.Затем это f будет использоваться для прогнозирования новых невидимых объектов.Зачем нам нужна штрафная функция?Оказывается, функция штрафа может добавить к вашему решению некоторые приятные свойства.Например, если у вас слишком много функций, норма L1 помогает предотвратить переобучение, создавая разреженные решения.
* Это не совсем то, как работают машины опорных векторов, но это может дать вам некоторое представление о том, что означают эти термины.Например, в SVM используются функции потери шарнира L1 и потери шарнира L2. L1-петля:
V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn))
, и L2 аналогичен, но с квадратами членов.Вы можете найти хорошее введение в ML в Урок машинного обучения Эндрю Нг на Coursera