Математика двух наиболее часто используемых функций активации в машинном обучении

Функции Sigmoid и SoftMax определяют функции активации, используемые в машинном обучении и, в частности, в области глубокого обучения для методов классификации.

Функция активации: функция, преобразующая взвешенную сумму нейрона таким образом, чтобы результат был нелинейным.

Примечание. Сигмовидную функцию также называют логистической функцией, поскольку она впервые была представлена ​​в алгоритме логистической регрессии.

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

Обозначение: P(Y=k|X=x) читается как Вероятность того, что Y равно k при условии, что вход X равен x.

Но если обе функции отображают одно и то же преобразование (то есть выполняют одно и то же), в чем между ними разница?
Сигмоид используется для методов бинарной классификации, где мы имеют только 2 класса, тогда как SoftMax применяется к мультиклассовым задачам. На самом деле функция SoftMax является расширением функции Sigmoid.
Следовательно, ввод и вывод обеих функций немного отличаются, поскольку Sigmoid получает только один ввод и выводит только одно число, которое представляет вероятность принадлежности к классу1 (помните, что у нас всего 2 класса, поэтому вероятность принадлежности к классу2 = 1 - P(класс1)). С другой стороны, SoftMax является векторизованным, что означает, что он берет вектор с тем же количеством записей, что и классы, которые у нас есть, и выводит другой вектор, где каждый компонент представляет вероятность принадлежности к этому классу.

Мы уже знаем, что делает каждая функция и в каких случаях их использовать. Осталась только математическая формулировка (Больше математических обозначений!)

Математическая формулировка функций Sigmoid и SoftMax

Сигмовидная функция

Представьте, что наша модель выводит единственное значение X, которое может принимать любое значение из действительных чисел X ∈ (-∞, +∞), и мы хотим преобразовать это число в вероятность P ∈ [0,1] что представляет вероятность принадлежности к первому классу (у нас всего 2 класса).

Однако, чтобы решить эту проблему, мы должны мыслить противоположным образом. Как мне преобразовать вероятность P ∈ [0,1] в значение X ∈ (-∞,+∞)?
Хотя это кажется нелогичным, решение заключается в ставках на лошади(Математикам всегда нравились игры).

В ставках на лошадей широко используется термин коэффициенты[1]. Когда мы утверждаем, что шансы на победу лошади под номером 17 равны 3/8, мы на самом деле говорим, что после 11 забегов лошадь выиграет 3 из них и проиграет 8. Математически шансы можно рассматривать как отношение между двумя независимыми событиями и выражаются как:

Шансы могут принимать любое положительное значение и, следовательно, не имеют максимального ограничения [0,+∞). Однако, если мы возьмем нечетный логарифм, мы обнаружим, что значение диапазона изменяется на (-∞, +∞). Журнал шансов называется логит-функцией:

Наконец, функция, которую мы искали, то есть логистическая функция или СИГМОИД-ФУНКЦИЯ, является обратной логит (сопоставляет значения из диапазона (-∞, +∞) в [0,1])

Таким образом, получив формулу:

Где X обозначает вход (в случае нейронных сетей вход представляет собой взвешенную сумму последнего нейрона, обычно представляемую как z = x1·w1 + x2·w2 + … + xn·wn)

Функция SoftMax

С другой стороны, мы видели, что SoftMax принимает вектор в качестве входных данных. Этот вектор имеет ту же размерность, что и наши классы. Мы назовем его X (хотя другим распространенным обозначением в нейронных сетях является Z, где каждый элемент вектора является выходом предпоследнего слоя)

Как и в случае с сигмовидной функцией, входные данные принадлежат действительным значениям (в данном случае каждому элементу вектора) xi ∈ (-∞,+∞), и мы хотим вывести вектор, в котором каждый компонент есть вероятность P ∈ [0,1]. Кроме того, выходной вектор должен быть распределением вероятностей по всем прогнозируемым классам, т. е. все элементы вектора в сумме должны давать 1. Это ограничение можно перевести так, что каждый вход должен принадлежать одному классу и только к одному.

Мы можем думать о X как о векторе, который содержит логиты P(Y=i|X) для каждого из классов, поскольку логиты могут быть любыми действительными числами (здесь я представляю номер класса). Помните, что logit ∈ (-∞, +∞)

Однако, в отличие от задачи бинарной классификации, мы не можем применить сигмовидную функцию. Причина в том, что при применении Sigmoid мы получаем изолированные вероятности, а не распределение вероятностей по всем прогнозируемым классам, и поэтому элементы выходного вектора не составляют в сумме 1 [2].

Чтобы преобразовать X в распределение вероятностей, мы можем применить экспоненциальную функцию и получить шансы ∈ [0,+∞)

После этого мы видим, что нечет является монотонно возрастающей функцией по вероятности. Таким образом, когда вероятность увеличивается, нечетное делает то же самое экспоненциальным образом [2].

Следовательно, мы можем использовать нечет (или его эквивалент exp(logit)) в качестве оценки для прогнозирования вероятности, поскольку чем выше нечет, тем выше вероятность.

Наконец, мы можем просто нормализовать результат, разделив его на сумму всех шансов, чтобы значение диапазона изменилось от [0,+∞) до [0,1], и мы убедились, что сумма всех элементов равна к 1, тем самым строя распределение вероятностей по всем прогнозируемым классам.

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

Ссылки и ресурсы

[1] Логит-функция. Хартманн, К., Кройс, Дж., Васке, Б. (2018): Проект электронного обучения SOGA: Статистика и анализ геопространственных данных. Департамент наук о Земле, Свободный университет Берлина.

[2] Ютуб. logit и softmax в глубоком обучении. Минсук Хео. 2019