Демистификация softmax
Обычный подход к многоклассовой классификации заключается в использовании отдельного бинарного классификатора для каждого класса.
Каждый классификатор отвечает за распознавание своего собственного ассоциированного класса.
Во-первых, рассмотрим варианты дизайна, лежащие в основе построения единого бинарного классификатора. Далее мы расширим схему до набора бинарных классификаторов.
В качестве отправной точки возьмем линейное уравнение, которое принимает вектор признаков x и возвращает результат y , представляющий собой взвешенную сумму входных признаков и его параметров. Выход y — это действительное число, которое должно быть сопоставлено с решением: представляет ли вход x объект, принадлежащий классу, который я должен обнаружить ? Самый простой вариант — вернуть сообщение « мой класс» , когда у принимает положительное значение, и оставить классификатор неактивным, когда у отрицательное значение.
Но тогда мы бы упустили информацию о неопределенности/достоверности вывода классификатора. Мы также могли бы вернуть необработанное значение вывода классификатора y как меру уверенности классификатора в результате . Однако диапазон от -∞ до +∞ был бы неудобен для интерпретации, сравнения и постобработки.
Требование к дизайну №1: выход как вероятность
Вместо этого лучше возвращать значение в строго ограниченном диапазоне, которое можно интерпретировать как вероятность p того, что вход x представляет объект, принадлежащий « моему классу ».
Таким образом, вопрос заключается в том, как спроецировать y на значение p , которое можно приблизительно интерпретировать как вероятность?
Сначала это значение должно принадлежать диапазону <0,1>. Далее 0,5 должно быть поворотной точкой решения. Наконец, значения больше 0,5 должны свидетельствовать о положительном обнаружении класса.
С математической точки зрения мы ищем непрерывную функцию φ :
так что 0 приземляется на 0,5 , +∞ проецируется на 1 и -∞ на 0 .
В этом случае самым простым способом является обратное проектирование: начните с p и вернитесь к y . Вероятность класса p может быть легко спроецирована из <0,1> в интервале < 0 , +∞) с использованием отношения шансов:
Следующее отображение должно привести полученные значения к (-∞, +∞) . Очевидным выбором является логарифмическая функция.
Затем два конца встречаются здесь. Мы начали с интервала < 0 , 1 > и достигли интервала (-∞,+∞) , который вначале предполагался возвращаемым y :
На данный момент основание B логарифма остается неопределенным.
Следующие шаги должны вернуть отношение к желаемому p = φ ( y ):
В итоге приходим к искомой формуле:
Теперь нам нужно определиться со значением B . Посмотрим на график, показывающий варианты функции φ для разных значений B .
Наименьший из них, кажется, B=2,71 . Удивительно, но подобное значение имеет свой символ e и называется натуральным основанием. Следовательно, для натурального логарифма с основанием последняя формула принимает следующий вид:
Поздравляем!
Мы только что заново открыли знаменитую сигмовидную функцию.
Вопрос к вам : действительно ли e лучший выбор? Что было бы, если бы мы выбрали другое значение? Потеряли бы мы вероятностную интерпретацию?
Учтите также следующее : почему бы не использовать некоторую нелинейную связь между y и x ? Напомним, что для получения φ мы только предположили, что значение y лежит в интервале (-∞,+∞) .
Имея дело со многими (скажем, M ) классами, мы назначаем каждому классу свой собственный двоичный классификатор.
Если классификаторы работают независимо, может случиться так, что все возвращаемые вероятности не будут составлять в сумме 1 , что сделает вероятностную интерпретацию их выходных данных некорректной. Это вызов , который нужно решить сейчас.
Требование к дизайну №2: суммирование к единице
Все классификаторы принимают один и тот же x . i - й классификатор вычисляет y_i . Мы снова хотим сделать проекцию y_i на p_i , но на этот раз синхронно со всеми другими классификаторами , так что
Синхронность между классификаторами заключается во взаимном согласии относительно того, как проецировать независимо вычисленные значения y_i на p_i . Для одного классификатора отношение шансов включало вероятности двух выходов: « мой класс » с вероятностью p и « не мой класс » с вероятностью 1-p . Чем выше значение y , тем вероятнее вывод « мой класс ». Теперь вместо вывода « не мой класс » мы должны быть более конкретными и ввести вывод « ваш класс ». Следовательно, более общая версия будет выглядеть так: « мой класс » с вероятностью p_kпо сравнению с « вашим классом » с вероятностью p_l . И чем выше мой вывод y_k , чем ваш вывод y_l , тем более вероятным является « мой класс », чем « ваш класс ».
Требование к дизайну №3: взаимосвязи между вероятностями
Вот обновленная версия уравнения (1):
Обратите внимание, что это требование является расширенной версией требования к дизайну №1.
Задача состоит в том, чтобы взять оба проектных требования №2 и №3, представленные уравнениями (2) и (3), и вывести формулу для такой функции Φ_i , что :
Мы уже приняли решение использовать натуральный логарифм с основанием , поэтому давайте использовать его для остальных наших рассуждений:
Чтобы использовать информацию, содержащуюся в уравнении (2), мы применяем суммирование для обеих сторон:
и извлекать элементы, которые не меняются с k до знаков суммирования. Обратите внимание, что согласно уравнению (2) сумма всех вероятностей равна 1 :
Наконец, мы приходим к следующей функции:
который можно переписать для i вместо l как:
Поздравляем еще раз!
Таким образом, мы наконец заново открыли широко известную функцию softmax .
Последние мысли
Я надеюсь, вы оцените, что мы сделали наш путь к функции softmax понятным способом. Мы не прибегали к откровениям, свободным аналогиям из физической науки или авторитетам в наших рассуждениях. В этой статье функция softmax является результатом прямых рассуждений, возникших из естественных требований, предъявляемых к многоклассовым задачам .
Я намерен дать вам более четкое представление об истоках функции softmax в решении задач машинного обучения.
Рекомендую вам ознакомиться с другим очень вдохновляющим подходом к выводу сигмовидной функции, сделанным в блоге Will Wolf .
Наконец, подумайте сами , можно ли всего этого добиться другим способом: используя независимо работающие классификаторы, нормализовав потом все p_i , а затем заменив p_i нормализованными значениями.
Рекомендации
[1] Габриэль Фурньер : Функции Sigmoid и SoftMax за 5 минут . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9
[2] Уилл Вольф : вывод Softmax из первых принципов .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































