Зачем использовать softmax в отличие от стандартной нормализации?

В выходном слое нейронной сети типично использовать функцию softmax для аппроксимации распределения вероятности:

enter image description here

Это дорого вычисляется из-за экспонентов. Почему бы просто не выполнить преобразование Z так, чтобы все выходы были положительными, а затем нормализовались просто делением всех выходов на сумму всех выходов?

Ответ 1

Существует один приятный атрибут Softmax по сравнению со стандартной нормировкой.

Он реагирует на низкую стимуляцию (думаю, размытое изображение) вашей нервной сети с довольно равномерным распределением и высокой стимуляцией (т.е. большими числами, думаю, четкое изображение) с вероятностями, близкими к 0 и 1.

В то время как стандартная нормализация не волнует, пока пропорция одинакова.

Посмотрите, что произойдет, когда soft max имеет в 10 раз больший вход, т.е. ваша нейронная сеть получила четкое изображение и активировано много нейронов.

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

И затем сравните его со стандартной нормировкой

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?

Ответ 2

Я нашел объяснение здесь очень хорошим: CS231n: сверточные нейронные сети для визуального распознавания.

На поверхности алгоритм softmax представляется простой нелинейной (мы распространяем данные с экспоненциальной) нормировкой. Однако есть и больше.

В частности, есть несколько разных представлений (та же ссылка, что и выше):

  • Теория информации - с точки зрения теории информации функция softmax может рассматриваться как попытка свести к минимуму кросс-энтропию между предсказаниями и истиной.

  • Вероятностный взгляд - с этой точки зрения мы фактически рассматриваем логарифмические вероятности, поэтому, когда мы выполняем возведение в степень, мы получаем исходные вероятности. В этом случае уравнение softmax находит MLE (оценка максимального правдоподобия)

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

Ответ 3

У меня был этот вопрос в течение нескольких месяцев. Кажется, что мы просто хитро угадали softmax как выходную функцию и затем интерпретировали входные данные softmax как логарифмические вероятности. Как вы сказали, почему бы просто не нормализовать все выходы путем деления на их сумму? Я нашел ответ в книге Гудфеллоу, Бенджо и Курвилля (2016) " Глубокое обучение" в разделе 6.2.2.

Допустим, наш последний скрытый слой дает нам z в качестве активации. Тогда softmax определяется как

Очень краткое объяснение

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

Краткое объяснение

Самый популярный метод обучения нейронной сети - оценка максимального правдоподобия. Мы оцениваем параметры тета таким образом, чтобы максимизировать вероятность тренировочных данных (размером m). Поскольку вероятность всего обучающего набора данных является произведением вероятностей каждой выборки, проще максимизировать логарифмическую вероятность набора данных и, таким образом, сумму логарифмической вероятности каждой выборки, индексированной k:

Теперь мы сосредоточимся только на softmax здесь с уже заданным z, поэтому мы можем заменить

я являюсь правильным классом k-го образца. Теперь мы видим, что когда мы берем логарифм softmax, чтобы вычислить логарифмическую правдоподобие, мы получаем:

что для больших различий в Z примерно приближается к

Сначала мы видим линейную составляющую z_i. Во-вторых, мы можем исследовать поведение max (z) для двух случаев:

  1. Если модель верна, то max (z) будет z_i. Таким образом, логарифмическая правдоподобие асимптотически равна нулю (т.е. вероятность 1) с растущей разницей между z_i и другими записями в z.
  2. Если модель неверна, то max (z) будет другим z_j> z_i. Таким образом, добавление z_i не полностью отменяет -z_j, и логарифмическая вероятность приблизительно равна (z_i - z_j). Это ясно говорит модели, что нужно сделать для увеличения вероятности записи: увеличить z_i и уменьшить z_j.

Мы видим, что в общем логарифмическом правдоподобии будут преобладать выборки, где модель неверна. Также, даже если модель действительно неверна, что приводит к насыщенному softmax, функция потерь не насыщается. Это приблизительно линейно по z_j, что означает, что у нас есть приблизительно постоянный градиент. Это позволяет модели исправлять себя быстро. Обратите внимание, что это не относится к среднеквадратичной ошибке, например.

Длинное объяснение

Если softmax все еще кажется вам произвольным выбором, вы можете взглянуть на обоснование использования сигмоида в логистической регрессии:

Почему сигмовидная функция вместо всего остального?

Softmax - обобщение сигмоида для мультиклассовых задач, обоснованное аналогично.

Ответ 4

Значения q_i представляют лог-правдоподобия. Чтобы восстановить значения вероятности, вам необходимо их проинформировать.

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

Другая причина заключается в том, что логарифмические вероятности возникают естественным образом при получении оценок для случайных величин, которые предполагаются взятыми из многомерных гауссовских распределений. См., Например, оценку максимального правдоподобия (ML) и способ ее подключения к наименьшим квадратам.

Как побочный элемент, я думаю, что этот вопрос более уместен для CS-теории или вычислительных научных обменов стека.

Ответ 5

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

где c - положительная константа. Обратите внимание, что c=1 соответствует стандартной функции softmax. Но если мы используем другое значение c, мы получаем другую функцию, которая, тем не менее, качественно похожа на softmax. В частности, покажите, что выходные активации образуют распределение вероятности, как и для обычного softmax. Допустим, что c станет большим, т.е. c→∞. Каково предельное значение для активации выхода a^L_j? После решения этой проблемы вам должно быть понятно, почему мы думаем о функции c=1 как о "смягченной" версии максимальной функции. Это источник термина "softmax". Вы можете следить за деталями из этого источника (уравнение 83).

Ответ 6

Я думаю, что одной из причин может быть обработка отрицательных чисел и деление на ноль, поскольку exp (x) всегда будет положительным и больше нуля.

Например, для a = [-2, -1, 1, 2] сумма будет равна 0, мы можем использовать softmax, чтобы избежать деления на ноль.

Ответ 7

Мы рассматриваем проблему с несколькими классификациями. Прогнозируемая переменная y может принимать один из значений k, где k > 2. По вероятности это удовлетворяет многочленному распределению, а многочленное распределение принадлежит большому семейству, называемому экспоненциальным семейством. Согласно свойству экспоненциальных семейных распределений, мы можем восстановить вероятность P(k=?|x), она совпадает с формулой softmax.

Для получения дополнительной информации и официальной справки по проверке примечания к лекции CS229 (регрессия Softmax).

Полезный трюк обычно выполняется для softmax: softmax (x) = softmax (x + c), то есть softmax инвариантен к постоянным смещениям на входе.

ввести описание изображения herse

Ответ 8

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

От " Изучение альтернатив Softmax, принадлежащих к семейству сферических потерь" https://arxiv.org/abs/1511.05042

Авторы исследовали некоторые другие функции, среди которых разложение Тейлора exp и так называемый сферический softmax, и выяснили, что иногда они могут работать лучше обычного softmax.

Ответ 9

Добавляя к ответу Петра Чапла, чем больше входные значения, тем больше вероятность максимального ввода для той же пропорции и по сравнению с другими входами:

enter image description here