Softmax против сигмоидальной функции в логистическом классификаторе?

63

От чего зависит выбор функции (Softmax vs Sigmoid) в классификаторе логистики?

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

маш
источник
16
Функция softmax - это не что иное, как обобщение сигмовидной кишки, поэтому не совсем понятно, что вы подразумеваете под «softmax против сигмовидной».
dsaxton
2
Это случай сигмовидной кишки. Когда мы используем сигмоид, один класс имеет вероятность а другой имеет вероятность . exp(βTx)/(exp(βTx)+1)1/(exp(βTx)+1)
dsaxton
3
Реддит постер делает различие, которое я считаю неправильным или, по крайней мере, неуместным. Независимо от того, имеет ли один из классов вес, это просто вопрос сдвига баллов, что никак не влияет на вероятности.
dsaxton
2
Возможный дубликат бинарной и полиномиальной логистической регрессии
Франк Дернонкур
3
«не совсем понятно, что вы подразумеваете под« софтмакс против сигмоида ».« чуть ниже заголовка, есть основная часть вопроса - очень легко пропустить, я знаю. Кроме того, это хороший заголовок, чтобы направлять запросы Google, чтобы они приходили сюда, чтобы точно ответить на вопрос.
Майкл

Ответы:

77

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


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

Pr(Yi=0)=eβXi1+eβ0XiPr(Yi=1)=1Pr(Yi=0)=11+eβXi

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

Pr(Yi=k)=eβkXi 0cKeβcXi

Можно заметить, что функция softmax является расширением сигмоидальной функции для случая мультикласса, как объяснено ниже. Давайте посмотрим на мультиклассовую логистическую регрессию с классами:K=2

Pr(Yi=0)=eβ0Xi 0cKeβcXi=eβ0Xieβ0Xi+eβ1Xi=e(β0β1)Xie(β0β1)Xi+1=eβXi1+eβXiPr(Yi=1)=eβ1Xi 0cKeβcXi=eβ1Xieβ0Xi+eβ1Xi=1e(β0β1)Xi+1=11+eβXi

с . Мы видим, что мы получаем те же вероятности, что и в двухклассовой логистической регрессии с использованием сигмоидальной функции. Википедия еще немного расширяется.β=(β0β1)

Франк Дернонкур
источник
1
Я наивен в этом, но я вижу это много раз β = - (β0 − β1) Что может быть возможным объяснением этого? Насколько я знаю, в сигмоидах β будет вектором. И они, как правило, один для данного пробега. Тогда почему β0 и β1 входят в картину?
Ишан Бхатт
1
@IshanBhatt этот комментарий может помочь.
Том Хейл,
как ни странно, я все еще могу вернуться к мультиклассам, используя только
сигмоид
15

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

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

(z0z1)=(w0Tw1T)x+(b0b1),
P(Ci|x)=softmax(zi)=eziez0+ez1,i{0,1}.

Давайте преобразуем его в эквивалентный двоичный классификатор, который использует сигмоид вместо softmax. Прежде всего, мы должны решить, какова вероятность того, что мы хотим, чтобы сигмоид выводил (который может быть для класса или ). Этот выбор абсолютно произвольный, и поэтому я выбираю класс . Тогда мой классификатор будет иметь вид:C0C1C0

z=wTx+b,
P(C0|x)=σ(z)=11+ez,
P(C1|x)=1σ(z).

Классификаторы эквивалентны, если вероятности одинаковы, поэтому мы должны наложить:

σ(z)=softmax(z0)

Замена , и их выражениями в терминах и и выполнения некоторых простых Алгебраические манипуляции, вы можете проверить, что равенство выше имеет место тогда и только тогда, когда и определены как:z0z1zw0,w1,w,b0,b1,bxwb

w=w0w1,
b=b0b1.
D ...
источник
@null Хорошо, если вы спросите об этом, вы не поняли моего объяснения. Позвольте мне обратиться к вашей конкретной проблеме: если вы скажете, что вы подаете свои данные в сигмовидную кишку, то это должно быть одномерное число, . При подаче его в сигмоид, вы получаете вероятность того, что будет в одном из ваших двух классов, например : . Тогда вероятность того, что находится в равна: . Теперь давайте заменим вашу сигмовидную оболочку на softmax. (Продолжение следует). xxC0P(C0|x)=σ(x)xC1P(C1|x)=1P(C0|x)=σ(x)
Д ...
(Продолжение). Чтобы применить softmax к задаче классификации с двумя классами, вам необходимо преобразовать одномерные данные в двумерный вектор. Поэтому нам нужно определить наши и . Давайте выберем . Так как должен удовлетворять , мы имеем , поэтому . Теперь у нас есть и . Используя это, вы можете сразу проверить, что . w0w1w0=1w1w=w0w11=1w1w1=0z0=w0x=xz1=w1x=0σ(x)=softmax(z0)
Д ...
Более того, любая комбинация и которая удовлетворяет (то есть ), приведет к точно же результату. Это показывает, что softmax имеет один избыточный параметр. Хотя это может показаться глупым, на самом деле это интересное свойство, поскольку оно позволяет нормализовать параметры , что способствует численной стабильности алгоритма обучения и логического вывода. Но это всего лишь дополнительный комментарий, не важно ответить на ваш вопрос :)w0w1w=w0w11=w1w0wi
D ...
Большое спасибо. Я понял. В вашем первом комментарии вероятность вероятно, должна быть . Теперь я понимаю, в чем идея трансформации. P(C1|x)1σ(x)
нуль
Рад, что вы это поняли;) Да, это опечатка, очевидно, она должна быть . Спасибо за указание на это! P(C1|x)=1σ(x)
Д ...
8

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

  • Если у вас есть проблема классификации с несколькими метками = существует более одного «правильного ответа» = выходы НЕ являются взаимоисключающими, тогда используйте сигмовидную функцию для каждого необработанного выхода независимо. Сигмоид позволит вам иметь высокую вероятность для всех ваших классов, некоторых из них или ни одного из них. Пример: классификация заболеваний по рентгенограмме. Изображение может содержать пневмонию, эмфизему и / или рак, или ничего из этих результатов.
  • Если у вас есть проблема классификации нескольких классов = есть только один «правильный ответ» = выходные данные являются взаимоисключающими, тогда используйте функцию softmax. Softmax обеспечит, чтобы сумма вероятностей ваших выходных классов была равна единице, поэтому, чтобы увеличить вероятность конкретного класса, ваша модель должна соответственно уменьшить вероятность по крайней мере одного из других классов. Пример: классификация изображений из набора данных MNIST рукописных цифр. Одно изображение цифры имеет только одну истинную идентичность - изображение не может быть 7 и 8 одновременно.

Ссылка: для более подробного объяснения того, когда использовать сигмоид против софтмакса в дизайне нейронной сети, включая примеры расчетов, см. Эту статью: «Классификация: сигмоид против софтмакса».

veritessa
источник
-1

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

Так, например, в примере с цифрами MNIST вы можете использовать softmax или десять сигмоидов. Фактически это то, что Эндрю Нг делает в своем курсе Coursera ML. Вы можете проверить здесь, как Эндрю Нг использовал 10 сигмоидов для мультиклассовой классификации (адаптировано мной из Matlab для python), и вот моя адаптация softmax в python.

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

Большим преимуществом использования нескольких двоичных классификаций (например, сигмоидов) перед одной мультиклассовой классификацией (например, Softmax) является то, что если ваш softmax слишком велик (например, если вы используете встраивание одного горячего слова в словарь размером 10K или более) ) - тренировать его может быть неэффективно. Вместо этого вы можете взять небольшую часть вашего тренировочного набора и использовать его для тренировки только небольшой части ваших сигмоидов. Это основная идея Negative Sampling .

Давид Рафаэли
источник
Функции не эквивалентны, потому что сеть softmax ограничена для создания распределения вероятностей по классам в качестве выходных данных: вектор неотрицателен и суммируется с 1. Сигмоидальные единицы неотрицательны, но они могут суммироваться с любым числом от 0 до ; это не допустимое распределение вероятностей. Это различие имеет решающее значение для характеристики различий между двумя функциями. CC
Восстановить Монику
Какое у вас определение эквивалента? Мой: вы можете использовать любой для мультиклассовой классификации без каких-либо проблем. Также - любая мультиклассовая классификация, которая использует softmax, может быть преобразована в двоичные классификации «один против всех», которые используют сигмоиды. Почему я должен заботиться о распределении выходов, суммирующих в 1?
Давид Рафаэли
Ваш аргумент о классификации по нескольким меткам показывает, почему сигмоид и софтмакс не эквивалентны. При использовании softmax увеличение вероятности одного класса уменьшает общую вероятность всех других классов (из-за суммы в 1). При использовании сигмоида увеличение вероятности одного класса не меняет общую вероятность других классов. Это наблюдение является причиной того, что сигмовидная форма является вероятной для классификации по нескольким меткам: один пример может принадлежать классамСумма к 1 также является причиной того, что softmax не подходит для классификации по нескольким меткам. 0,1,2,,C
Восстановить Монику
Я потерял тебя. Для всех известных мне практических целей множественные сигмоиды = 1 softmax. Я даже добавил случай отрицательной выборки, когда множественные сигмоиды на самом деле имеют преимущество перед softmax.
Дэвид Рафаэли