Изменится ли форма функции потери во время тренировки? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть некоторые проблемы с пониманием теории функции потерь, и я надеюсь, что кто-то может мне помочь.

Обычно, когда люди пытаются объяснить вам градиентный спуск, они показывают вам функцию потерь, которая выглядит как оченьпервое изображение в этом посте градиентный спуск: все, что вам нужно знать .Я понимаю, что вся теория градиентного спуска состоит в том, чтобы корректировать веса и минимизировать функцию потерь.

Мой вопрос заключается в том, изменится ли форма функции «Потеря» во время тренировки или она останется такой же, как изображение, показанное в предыдущем посте?Я знаю, что веса - это то, что мы всегда настраиваем, поэтому параметры, которые определяют форму функции Loss, должны быть входными данными X = {x1, x2, ... xn}.Давайте сделаем простой пример: предположим, что наши входные данные [[1,2,3,4,5], [5,4,3,2,1]] и метки [1,0] (только два обучающих образца для простотыи мы устанавливаем размер пакета в 1).Тогда функция потерь должна быть примерно такой же для первой обучающей выборки

L = (1-nonlinear(1*w1+2*w2+3*w3+4*w4+5*w5+b))^2

, а для второй обучающей выборки функция потерь должна быть:

L = (0-nonlinear(5*w1+4*w2+3*w3+2*w4+1*w5+b))^2

По-видимому, эти две потерифункции не выглядят одинаково, если мы их строим, значит ли это, что форма функции Loss меняется во время тренировки?Тогда почему люди все еще используют это одно изображение (точку, которая скользит вниз от функции потерь и находит глобальные минимумы), чтобы объяснить теорию градиентного спуска?

Примечание : я неизменяя функцию потерь, функция потерь все еще является среднеквадратичной ошибкой.Я пытаюсь сказать, что форма функции Loss, похоже, меняется.

Я знаю, откуда возникла моя проблема!Я думал, что мы не можем построить такую ​​функцию, как f (x, y) = x y без какой-либо константы, но мы на самом деле могли!Я искал график в Google для f (x, y) = x y, и мы действительно можем построить их!Итак, теперь я понимаю, что пока мы получаем потерянную функцию, мы можем получить сюжет!Спасибо, ребята

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

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

Для пояснения, давайтемы предполагаем, что мы предсказываем некоторую N -мерную порцию информации, и у нас есть вектор истинности земли, назовем его p, а функция потерь L принимает вектор предсказания p_hat, который мы определяем как

L(p_hat) := norm(p - p_hat).

Это очень примитивная (и довольно неэффективная) функция потерь, но, тем не менее, она одна.Как только мы начнем обучение, эта функция потерь будет функцией, которую мы постараемся свести к минимуму, чтобы наша сеть работала наилучшим образом.Обратите внимание, что эта функция потерь будет иметь разные значения для разных входов p_hat, это не означает, что функция потерь меняется!В конце, функция потерь будет N -мерной гиперповерхностью в N+1 -мерном гиперпространстве, которая останется неизменной независимо от того, что (подобно тому, что вы видите на изображении, где она 2 -мернаповерхность в 3 -мерном пространстве).

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

Обратите внимание, что все это является чрезмерным упрощением, но может быть полезным способом обдуматьэто начинается.

0 голосов
/ 14 февраля 2019

A Функция потерь - это показатель, который измеряет расстояние от ваших прогнозов до ваших целей.

Идея состоит в том, чтобы выбирать веса, чтобы ваши прогнозы были близки к вашим целям, то естьваша модель выучила / запомнила входные данные.

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

0 голосов
/ 14 февраля 2019

Функция остается прежней.Смысл градиентного приличия - найти самую низкую точку для заданной вами функции потерь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...