Как получить функцию softmax из требований к дизайну задачи классификации?

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

Каждый классификатор отвечает за распознавание своего собственного ассоциированного класса.

Во-первых, рассмотрите выбор дизайна для создания единого бинарного классификатора. Далее мы расширим схему до набора бинарных классификаторов.

В качестве отправной точки возьмем линейное уравнение, которое принимает вектор функций x и возвращает результат y, представляющий собой взвешенную сумму входных функций и ее параметров. Выходные данные y представляют собой вещественное число, которое следует сопоставить с решением: Представляет ли входное значение x объект, принадлежащий классу, который я должен обнаружить? Самый простой вариант — вернуть сообщение «мой класс», когда y принимает положительное значение, и оставить классификатор неактивным, когда y отрицательный.

Но тогда мы бы упустили информацию о неопределенности/достоверности вывода классификатора. Мы также можем вернуть необработанное значение вывода классификатора 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ᵢ. Мы снова хотим сделать проекцию yᵢ на pᵢ, но на этот раз синхронно со всеми другими классификаторами, чтобы

Синхронизация между классификаторами заключается во взаимном согласии относительно того, как проецировать независимо рассчитанные yᵢ на pᵢ. Для одного классификатора отношение шансов включало вероятности двух выходных данных: «мой класс» с вероятностью p и «не мой класс» с вероятностью вероятность 1-p. Чем выше значение y, тем вероятнее вывод «мой класс». Теперь вместо вывода «не мой класс» мы должны быть более конкретными и ввести вывод «ваш класс». Таким образом, более общая версия будет выглядеть так: «мой класс» с вероятностью pₖ против «ваш класс» с вероятностью pₗ. И чем выше мой вывод yₖ, чем ваш вывод yₗ, тем более вероятно, что 'мой класс", чем "ваш курс".

Требование к дизайну №3: взаимосвязи между вероятностями

Вот обновленная версия уравнения (1):

Обратите внимание, что это требование является расширенной версией требования к дизайну №1.

Задача состоит в том, чтобы взять оба проектных требования №2 и №3, представленные уравнениями (2) и (3), и вывести формулу для такой функции Φ_iчто:

Мы уже приняли решение использовать натуральный логарифм с основанием e, так что давайте использовать его для остальных наших рассуждений:

Чтобы использовать информацию, содержащуюся в уравнении (2), мы применяем суммирование для обеих сторон:

и извлечь элементы, которые не изменяются с k перед знаками суммирования. Обратите внимание, что согласно уравнению (2) сумма всех вероятностей равна 1:

Наконец, мы приходим к следующей функции:

который можно переписать для i вместо l как:

Еще раз поздравляем!

Таким образом, мы наконец заново открыли широко известную функцию softmax.

Последние мысли

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

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

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

Наконец, подумайте сами, можно ли всего этого добиться другим способом: используя независимо работающие классификаторы, нормализовав потом все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/