Я заметил, что Caffe (структура глубокого обучения) использовала Softmax Loss Layer в SoftmaxWithLoss
качестве выходного слоя для большинства образцов модели .
Насколько я знаю, слой Softmax Loss представляет собой комбинацию Multinomial Logistic Loss Layer и Softmax Layer .
От Кафе они сказали, что
Расчет градиента слоя потерь Softmax более численно стабилен
Тем не менее, это объяснение - не тот ответ, который мне нужен, а объяснение - просто сравнить комбинацию слоя Multinomial Logistic Loss Layer и Softmax Loss вместо слоя за слоем. Но не сравнить с другим типом функции потери.
Тем не менее, я хотел бы узнать больше, в чем заключаются различия / преимущества / недостатки этих 3-х ошибочных функций, таких как Мультивыносимая Логистическая Потеря , Кросс-Энтропия (CE) и Квадратная Ошибка (SE) с точки зрения контролируемого обучения? Любые поддерживающие статьи?
y-t
. willamette.edu/~gorr/classes/cs449/classify.htmlОтветы:
На мой взгляд, функция потерь - это целевая функция, которую мы хотим, чтобы наши нейронные сети оптимизировали свои веса в соответствии с ней. Следовательно, это зависит от конкретной задачи, а также как-то эмпирически. Просто для ясности, многочленные логистические потери и перекрестные энтропийные потери одинаковы (пожалуйста, посмотрите на http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). Функция стоимости полиномиальной логистической потери выглядит следующим образом:J(θ)=−1m[∑mi=1y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))].
Обычно используется для классификации проблемы. Square Error имеет уравнение типа12N∑Ni=1∥x1i−x2i∥22.
Следовательно, он обычно используется для минимизации некоторых конструкционных ошибок.
РЕДАКТИРОВАТЬ: @MartinThoma Приведенная выше формула многочлена логистических потерь только для двоичного случая, для общего случая это должно быть , где K - количество категорий.J(θ)=−[∑mi=1∑Kk=11{y(i)=k}logP(y(i)=k|x(i);θ)]
источник
Полиномиальные логистические потери в действительности такие же, как и перекрестная энтропия. Посмотрите на эту функцию (функция стоимости в softmax ): где m - номер выборки, K - номер класса.
Функция индикатора ( ) определяет, является ли значение ниже 0 или 1 в определении кросс-энтропии , которое помечено как горячее в данных обучения, и - условная вероятность softmax (q (x), как показано ниже).1{y(i)=k} p(x) p(y(i)=k∣x(i);θ)
И MSE в основном для ситуации, когда функция связи - это функция единства (распределение ответов следует за нормальным распределением), стандартная линейная регрессия, в то время как кросс-энтропия обычно для случая, когда функция связи - это функция логита. Вот отличное сравнение, к которому вы можете обратиться.
Кроме тех, что в ссылках, рекомендую вам это иллюстрирующее: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md
источник