Математика двух наиболее часто используемых функций активации в машинном обучении
Функции 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