Целевая функция, функция затрат, функция потерь: одно и то же?


80

В машинном обучении люди говорят о целевой функции, функции стоимости, функции потерь. Это просто разные названия одной и той же вещи? Когда их использовать? Если они не всегда ссылаются на одно и то же, в чем различия?


Ответы:


130

Это не очень строгие условия и они тесно связаны между собой. Тем не мение:

  • Функция потери обычно представляет собой функцию, определенную для точки данных, прогнозирования и метки, и измеряет штраф. Например:
    • квадратная потеря , используется в линейной регрессииL(е(Икся|θ),Yя)знак равно(е(Икся|θ)-Yя)2
    • потеря шарнира , используемая в SVML(е(Икся|θ),Yя)знак равноМаксимум(0,1-е(Икся|θ)Yя)
    • Потери 0/1 , используемые в теоретическом анализе и определении точностиL(е(Икся|θ),Yя)знак равно1е(Икся|θ)Yя
  • Функция стоимости обычно более общая. Это может быть сумма функций потерь в вашем тренировочном наборе плюс некоторый штраф за сложность модели (регуляризация). Например:
    • Средняя квадратическая ошибкаMSЕ(θ)знак равно1NΣязнак равно1N(е(Икся|θ)-Yя)2
    • Функция стоимости (существуют дополнительные ограничения, связывающие с и с обучающим набором)ξ iSВM(θ)знак равно| |θ| |2+СΣязнак равно1NξяξяС
  • Целевая функция - это наиболее общий термин для любой функции, которую вы оптимизируете во время тренировки. Например, вероятность создания обучающего набора в подходе максимального правдоподобия является четко определенной целевой функцией, но это не функция потерь или функция затрат (однако вы можете определить эквивалентную функцию затрат). Например:
    • MLE - это тип целевой функции (которую вы максимизируете)
    • Дивергенция между классами может быть целевой функцией, но это всего лишь функция стоимости, если только вы не определили что-то искусственное, такое как 1-Дивергенция, и назвали его стоимостью

Короче говоря, я бы сказал, что:

Функция потерь является частью функции затрат, которая является типом целевой функции.


9
+1. Я не видел источника для этого, но я догадался, что «цель» - это термин, который используется, потому что ваша цель или задача - оптимизировать эту функцию, что может означать максимизацию чего-то хорошего или минимизацию чего-то плохого, хотя эта разница тривиальна, как любая функция может быть сведена на нет. Напротив, уничижительные обертоны «потери» и «стоимости» действительно кусаются: я бы сказал, что было бы неправильно использовать любой термин, за исключением того, что нужно что-то минимизировать. Эти пункты являются неявными в вашем прекрасном ответе, но заслуживают немного большего внимания.
Ник Кокс

1
«M» в «MLE» означает «максимум», а не «минимум». Я упоминаю только эту педантичную деталь, потому что этот вопрос был перенесен из stackoverflow, и я был укушен ошибкой минимизации неправильной функции раньше
Тейлор

Фактически, целевая функция - это функция (например, линейная функция), которую вы стремитесь оптимизировать (обычно путем минимизации или максимизации) в условиях ограничения функции потерь (например, L1, L2). Примерами являются регрессия гребня или SVM. Вы также можете оптимизировать целевую функцию без какой-либо функции потерь, например, простой OLS или logit.
g3o2

1
@ Ник Кокс написал «уничижительный оттенок« потерь »и« затрат », которые делают укус: я бы сказал, что было бы неправильно использовать любой термин, за исключением того, что нужно что-то свести к минимуму». Я не согласен, потерю или стоимость можно максимизировать, чтобы найти наихудший возможный случай (с учетом любых ограничений). Это может быть полезно для анализа наихудшего случая.
Марк Л. Стоун

Мне трудно держать разницу между «потерями» и «затратами» прямо, кроме как с запоминанием наизусть. Проблема состоит в том, что определения слов в английском языке не дают никаких подсказок относительно того, какой из них должен быть, и при этом нет никакой очевидной мнемоники. Любые предложения приветствуются.
Стивен

8

По словам профессора Эндрю Нг (см. Слайды на стр. 11),

Функция h (X) представляет вашу гипотезу. Для фиксированных параметров подгонки тета это функция функций X. Я бы сказал, что это также можно назвать целевой функцией.

Функция стоимости J является функцией подгоночных параметров тета. J = J (тета).

Согласно учебнику Хасти и др. «Элементы статистического обучения» , с.37:

«Мы ищем функцию f (X) для предсказания Y заданных значений входа X». [...] функция потерь L (Y, f (X)) является «функцией штрафования за ошибки в прогнозировании»,

Таким образом, кажется, что «функция потерь» является несколько более общим термином, чем «функция затрат». Если вы ищете «потери» в этом PDF, я думаю, что они используют «функцию затрат» и «функцию потерь» в некоторой степени как синонимы.

Действительно, с. 502

«Ситуация [в кластеризации] чем-то похожа на спецификацию функции потерь или затрат в задачах прогнозирования (контролируемое обучение)».

Возможно, эти термины существуют, потому что они развивались независимо в разных академических сообществах. «Целевая функция» - это старый термин, используемый в исследованиях операций и инженерной математике. «Функция потерь» может быть более популярной среди статистиков. Но я размышляю здесь.


5
Функция потерь далеко не является «более общей», чем функция затрат. В частности, f (X) - это функция ваших параметров (то есть J (тета)), что делает ее (функцию потерь) определенным типом функции стоимости. Кроме того, у Хасти есть упрощение: он принимает аддитивные функции потерь , которые создают определенный класс функций затрат
lejlot

Я просто попытался ответить на этот вопрос ссылками из академической литературы, источники которых легко понять. Ваша точка зрения на «аддитивные функции потерь» может быть правильной, но она выходит за рамки задаваемого вопроса, и я не могу найти этот конкретный термин в книге ESL
knb

3
Esl - отличная книга, но не единственный источник знаний о Ml.
lejlot

Это «я бы сказал» от Нг или от вас? h - модель (h для гипотезы). Цель в том, чтобы h работал хорошо. Целевая функция измеряет, насколько хорошо h делает и обычно отличается от h.
Иоахим Вагнер

ссылка на esl не работает
Talespin_Kit

4

По словам Андрея Н.Г.

«Наконец, функция потерь была определена по отношению к одному примеру обучения. Она измеряет, насколько хорошо вы делаете на одном примере обучения. Теперь я собираюсь определить то, что называется функцией стоимости, которая измеряет, насколько хорошо вы выполнение всего обучающего набора. Таким образом, функция J стоимости, которая применяется к вашим параметрам W и B, будет средней величиной с одним из m суммы функции потерь, примененной к каждому из обучающих примеров и хода. "


3

Из раздела 4.3 в «Глубокое обучение» - Йен Гудфеллоу, Йошуа Бенжио, Аарон Курвилль http://www.deeplearningbook.org/

«Функция, которую мы хотим минимизировать или максимизировать, называется целевой функцией или критерием. Когда мы минимизируем ее, мы можем также назвать ее функцией стоимости, функцией потерь или функцией ошибки. В этой книге мы используем эти термины взаимозаменяемо, хотя некоторые публикации по машинному обучению придают особое значение некоторым из этих терминов ".

В этой книге, по крайней мере, потери и стоимость одинаковы.


0

Чтобы дать вам краткий ответ, по моему мнению, они являются синонимами. Однако функция стоимости больше используется в задаче оптимизации, а функция потерь - в оценке параметров.


0

Термины «затраты и потери» являются синонимами, некоторые люди также называют это функцией ошибки. Более общий сценарий - сначала определить целевую функцию, которую мы хотим оптимизировать. Эта целевая функция может быть

  1. максимизировать апостериорные вероятности (например, наивный байесовский)
  2. максимизировать фитнес-функцию (генетическое программирование)
  3. максимизировать общую функцию вознаграждения / ценности (обучение с подкреплением)
  4. максимизировать получение информации / минимизировать примеси дочерних узлов (классификация дерева решений CART). 5. минимизировать среднеквадратичную функцию стоимости (или потери) ошибки (CART, регрессия дерева решений, линейная регрессия, адаптивные линейные нейроны,…
  5. максимизировать логарифмическую вероятность или минимизировать кросс-энтропийную потерю (или стоимость) минимизировать потерю шарнира (машина опорных векторов)

0

На самом деле все будет просто Если у вас есть m тренировочных данных, таких как (x (1), y (1)), (x (2), y (2)),. , , (x (m), y (m)) Мы используем функцию потерь L (ycap, y), чтобы найти потери между ycap и y одного тренировочного набора. Если мы хотим найти потери между ycap и y всего обучающего набора, который мы используем функция стоимости.

Примечание: - ycap означает вывод из нашей модели, а y означает ожидаемый вывод.

Примечание: - Кредит идет Andrew ng Ресурс: Coursera нейронной сети и глубокое обучение


-1

Функция потерь вычисляет ошибку для отдельного примера обучения, в то время как функция затрат является средним значением функций потерь всего обучающего набора.


Посмотрите на ссылку Ника Кокса.
Майкл Черник,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.