От чего зависит выбор функции (Softmax vs Sigmoid) в классификаторе логистики?
Предположим, есть 4 выходных класса. Каждая из вышеприведенных функций дает вероятности того, что каждый класс является правильным выводом. Так какой же взять за классификатор?
Ответы:
Функция сигмовидной используется для двух классов логистической регрессии, в то время как SoftMax функция используется для мультиклассируют логистической регрессии (он же MaxEnt, полиномиальной логистической регрессии, SoftMax регрессии, максимальной энтропии по классификатору).
В двухклассовой логистической регрессии прогнозируемые вероятности следующие с использованием сигмоидальной функции:
В мультиклассовой логистической регрессии сK классами прогнозируемые вероятности следующие с использованием функции softmax:
Можно заметить, что функция softmax является расширением сигмоидальной функции для случая мультикласса, как объяснено ниже. Давайте посмотрим на мультиклассовую логистическую регрессию с классами:K=2
с . Мы видим, что мы получаем те же вероятности, что и в двухклассовой логистической регрессии с использованием сигмоидальной функции. Википедия еще немного расширяется.β=−(β0−β1)
источник
Фактически они эквивалентны в том смысле, что одно может быть преобразовано в другое.
Предположим, что ваши данные представлены вектором произвольной размерности, и вы создали для него двоичный классификатор, используя аффинное преобразование, за которым следует softmax:x
Давайте преобразуем его в эквивалентный двоичный классификатор, который использует сигмоид вместо softmax. Прежде всего, мы должны решить, какова вероятность того, что мы хотим, чтобы сигмоид выводил (который может быть для класса или ). Этот выбор абсолютно произвольный, и поэтому я выбираю класс . Тогда мой классификатор будет иметь вид:C0 C1 C0
Классификаторы эквивалентны, если вероятности одинаковы, поэтому мы должны наложить:
Замена , и их выражениями в терминах и и выполнения некоторых простых Алгебраические манипуляции, вы можете проверить, что равенство выше имеет место тогда и только тогда, когда и определены как:z0 z1 z′ w0,w1,w′,b0,b1,b′ x w′ b′
источник
Я заметил, что люди часто обращаются к этому вопросу при поиске, использовать ли сигмоид против софтмакса в нейронных сетях. Если вы один из тех, кто строит классификатор нейронной сети, вот как решить, применять ли sigmoid или softmax к необработанным выходным значениям из вашей сети:
Ссылка: для более подробного объяснения того, когда использовать сигмоид против софтмакса в дизайне нейронной сети, включая примеры расчетов, см. Эту статью: «Классификация: сигмоид против софтмакса».
источник
В дополнение ко всем предыдущим ответам - я хотел бы упомянуть тот факт, что любая проблема классификации нескольких классов может быть сведена к множественным задачам двоичной классификации, используя метод «один против всех», то есть наличие сигмоидов C (когда C - число классы) и интерпретация каждой сигмоидальной вероятности того, чтобы быть в этом конкретном классе или нет, и принятие максимальной вероятности.
Так, например, в примере с цифрами MNIST вы можете использовать softmax или десять сигмоидов. Фактически это то, что Эндрю Нг делает в своем курсе Coursera ML. Вы можете проверить здесь, как Эндрю Нг использовал 10 сигмоидов для мультиклассовой классификации (адаптировано мной из Matlab для python), и вот моя адаптация softmax в python.
Кроме того, стоит отметить, что хотя функции эквивалентны (для целей мультиклассовой классификации), они немного различаются по своей реализации (особенно в отношении их производных и того, как представлять y).
Большим преимуществом использования нескольких двоичных классификаций (например, сигмоидов) перед одной мультиклассовой классификацией (например, Softmax) является то, что если ваш softmax слишком велик (например, если вы используете встраивание одного горячего слова в словарь размером 10K или более) ) - тренировать его может быть неэффективно. Вместо этого вы можете взять небольшую часть вашего тренировочного набора и использовать его для тренировки только небольшой части ваших сигмоидов. Это основная идея Negative Sampling .
источник