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

20

Применение функции softmax к вектору даст «вероятности» и значения между и . 01

Но мы также можем разделить каждое значение на сумму вектора, и это даст вероятности и значения между и .01

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

флойд
источник
1
Я думаю, что лучше, если вы сначала посмотрите на логистическую регрессию. Ваша «цель» - монотонно преобразовать в (0,1). Это то, что делает логистическая функция. Обратите внимание, что любая кумулятивная (вероятностная) функция распределения на реальной линии также работает - см. Регрессия пробита, которая использует функцию нормального распределения. (-,)
seanv507

Ответы:

36

Предложенная вами функция имеет особенность, когда сумма элементов равна нулю.

Предположим, ваш вектор . Этот вектор имеет сумму 0, поэтому деление не определено. Функция здесь не дифференцируема.[-1,13,23]

Кроме того, если один или несколько элементов вектора отрицательны, но сумма не равна нулю, ваш результат не является вероятностью.

Предположим, ваш вектор . Это имеет сумму 1, поэтому применение вашей функции приводит к , который не является вектором вероятности, поскольку имеет отрицательные элементы и элементы, превышающие 1.[-1,0,2][-1,0,2]

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

Выполнение таких действий, как получение абсолютных значений или квадратов, как предлагается в комментариях, означает, что и имеют одинаковую прогнозируемую вероятность; это означает, что модель не идентифицирована . Напротив, является монотонным и положительным для всех вещественных , поэтому результатом softmax является (1) вектор вероятности и (2) идентифицирована полиномиальная логистическая модель.-ИксИксэксп ( х ) хехр(Икс)Икс

Sycorax говорит восстановить Монику
источник
Огромное спасибо. Мы можем решить обе проблемы путем деления на сумму абсолютных значений, верно?
Флойд
2
Нет. Что произойдет, если вы сложите абсолютные значения обоих моих примеров, а затем поделите на эту сумму?
Сикоракс говорит восстановить Монику
большое спасибо. Я понимаю теперь. но мы можем решить эту проблему, взяв абсолютное значение числителя или, возможно, рассчитав для каждого значения в векторе. Я не пытаюсь быть упрямым, я просто нахожу странным, что люди изобрели сложную функцию, хотя есть и более простые для вычисления вероятностей. Я не знаю много математики, так что, возможно, есть другие математические свойстваИкся2/sUм(Икс2)
Флойд
8
[0,0,0]
8
Икся2/ΣJИксJ2|Икся|/ΣJ|ИксJ|ехр(Икс)
4

Softmax состоит из двух компонентов:

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

  2. Нормализуйте их сумму до 1, так как это общая вероятность, которая нам нужна.

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

Тривиальный случай однослойной сети с активацией softmax эквивалентен логистической регрессии.

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

CodesInChaos
источник