Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Функция softmax, также известная как softargmax [1] : 184 или нормализованная экспоненциальная функция , [2] : 198, является обобщением логистической функции на несколько измерений. Он используется в полиномиальной логистической регрессии и часто используется в качестве последней активации функции в виде нейронной сети , чтобы нормализовать выход сети к распределению вероятностей по предсказанным выходным классам, на основе выбора аксиомы Люса .

Функция softmax принимает в качестве входных данных вектор z из K действительных чисел и нормализует его в распределение вероятностей, состоящее из K вероятностей, пропорциональных экспонентам входных чисел. То есть до применения softmax некоторые компоненты вектора могут быть отрицательными или больше единицы; и не может суммировать до 1; но после применения softmax каждый компонент будет в интервале , а сумма компонентов будет равна 1, чтобы их можно было интерпретировать как вероятности. Кроме того, более крупные входные компоненты будут соответствовать большим вероятностям.

Стандартная (единичная) функция softmax определяется формулой

Проще говоря, он применяет стандартную экспоненциальную функцию к каждому элементу входного вектора и нормализует эти значения путем деления на сумму всех этих экспонент; эта нормализация гарантирует, что сумма компонентов выходного вектора равна 1.

Вместо e можно использовать другое основание b  > 0; выбор большего значения b создаст распределение вероятностей, которое более сконцентрировано вокруг позиций наибольших входных значений. Запись or [a] (для вещественного β ) [b] дает выражения: [c]

.

В некоторых полях база фиксирована, что соответствует фиксированному масштабу [d], в то время как в других параметр β варьируется.

Интерпретации [ править ]

Smooth arg max [ править ]

Название «softmax» вводит в заблуждение; функция не является гладким максимумом ( гладкое приближение к функции максимума ), а скорее является гладким приближением к функции arg max : функции, значение которой является индексом, имеющим максимум. Фактически, термин softmax также используется для тесно связанной функции LogSumExp , которая является сглаженным максимумом. По этой причине некоторые предпочитают более точный термин «softargmax», но термин «softmax» является общепринятым в машинном обучении. [3] [4] В этом разделе термин «softargmax» используется, чтобы подчеркнуть эту интерпретацию.

Формально, вместо того, чтобы рассматривать arg max как функцию с категориальным выводом (соответствующим индексу), рассмотрите функцию arg max с одноразовым представлением вывода (при условии, что существует уникальный максимальный arg):

где выходная координата тогда и только тогда, когда является аргументом max of , что означает уникальное максимальное значение . Например, в этой кодировке, т.к. третий аргумент является максимальным.

Это можно обобщить на несколько значений arg max (несколько равных максимальному), разделив 1 между всеми максимальными аргументами; формально 1 / k, где k - максимальное количество аргументов. Например, поскольку второй и третий аргументы являются максимальными. В случае, если все аргументы равны, это просто Точки z с несколькими значениями arg max являются особыми точками (или сингулярностями и образуют сингулярное множество) - это точки, в которых arg max является разрывным (с разрывом скачка ), а точки с один аргумент max известен как неособые или регулярные точки.

В последнем выражении, приведенном во введении, softargmax теперь является гладкой аппроксимацией arg max: as , softargmax сходится к arg max. Существуют различные понятия сходимости функции; softargmax сходится к arg max поточечно , что означает для каждого фиксированного входа z как , однако softargmax не сходится равномернов arg max, что интуитивно означает, что разные точки сходятся с разной скоростью и могут сходиться сколь угодно медленно. Фактически softargmax непрерывен, но arg max не является непрерывным на особом множестве, где две координаты равны, в то время как равномерный предел непрерывных функций непрерывен. Неспособность сойтись равномерно потому, что для входов, где две координаты почти равны (и одна является максимальной), arg max является индексом одной или другой, поэтому небольшое изменение ввода приводит к большому изменению вывода. Например, но и для всех входов: чем ближе точки к сингулярному множеству , тем медленнее они сходятся. Однако softargmax компактно сходится на неособом множестве.

Наоборот, as , softargmax сходится к arg min таким же образом, где особое множество - это точки с двумя значениями arg min . На языке тропического анализа softmax - это деформация или «квантование» arg max и arg min, соответствующая использованию логарифмического полукольца вместо полукольца max-plus (соответственно min-plus полукольца ) и восстановления arg max или arg min путем взятия предела называется «тропикализация» или «деквантование».

Также бывает, что для любого фиксированного β , если один вход намного больше других относительно температуры, выход приблизительно равен arg max. Например, разница в 10 больше по сравнению с температурой, равной 1:

Однако, если разница небольшая по сравнению с температурой, значение не близко к arg max. Например, разница в 10 мала по сравнению с температурой 100:

Поскольку температура стремится к нулю, поэтому в конечном итоге все различия становятся большими (по сравнению с температурой сжатия), что дает другую интерпретацию предельного поведения.

Теория вероятностей [ править ]

В теории вероятностей выходные данные функции softargmax могут использоваться для представления категориального распределения, то есть распределения вероятностей по K различным возможным исходам.

Статистическая механика [ править ]

В статистической механике функция softargmax известна как распределение Больцмана (или распределение Гиббса ): [5] : 7 набор индексов - это микросостояния системы; входы - это энергии этого состояния; знаменатель известен как статистическая сумма , часто обозначаемая Z ; а коэффициент β называется холодностью (или термодинамической бета , или обратной температурой ).

Приложения [ править ]

Функция softmax используется в различных методах многоклассовой классификации , таких как полиномиальная логистическая регрессия (также известная как регрессия softmax) [2] : 206–209 [1] , многоклассовый линейный дискриминантный анализ , наивные байесовские классификаторы и искусственные нейронные сети . [6] В частности, в полиномиальной логистической регрессии и линейном дискриминантном анализе входные данные функции являются результатом K различных линейных функций , и прогнозируемая вероятность для j -го класса с учетом выборочного вектора x и весового вектора.w это:

Это можно рассматривать как композицию из K линейной функции и функции SoftMax (где обозначает скалярное произведение и ). Операция эквивалентна применению линейного оператора, определенного с помощью к векторам , таким образом преобразуя исходный, вероятно многомерный, ввод в векторы в K -мерном пространстве .

Нейронные сети [ править ]

Функция softmax часто используется на последнем уровне классификатора на основе нейронной сети. Такие сети обычно обучаются в режиме логарифмических потерь (или кросс-энтропии ), что дает нелинейный вариант полиномиальной логистической регрессии.

Поскольку функция сопоставляет вектор и конкретный индекс с действительным значением, производная должна учитывать индекс:

Это выражение симметрично по индексам и, следовательно, также может быть выражено как

Здесь для простоты используется дельта Кронекера (ср. Производную сигмовидной функции , выражаемую через саму функцию).

Если функция масштабируется с параметром , то эти выражения необходимо умножить на .

См. Полиномиальный логит для модели вероятности, в которой используется функция активации softmax.

Обучение с подкреплением [ править ]

В области обучения с подкреплением функция softmax может использоваться для преобразования значений в вероятности действия. Обычно используется следующая функция: [7]

где значение действия соответствует ожидаемому вознаграждению за следующее действие a и называется температурным параметром (со ссылкой на статистическую механику ). Для высоких температур ( ) все действия имеют примерно одинаковую вероятность, и чем ниже температура, тем больше ожидаемых наград влияет на вероятность. При низкой температуре ( ) вероятность действия с наибольшим ожидаемым вознаграждением стремится к 1.

Свойства [ править ]

Геометрически SoftMax функция отображает векторное пространство к границе в стандартной -симплекс , сокращая размерность на единицу (диапазон является -мерный симплекс в n - мерном пространстве), в связи с линейным ограничением , что все выходные данные сумму 1 означает , что она лежит на гиперплоскости . ( K − 1 ) {\displaystyle (K-1)}

По главной диагонали softmax - это просто равномерное распределение по выходам : равные баллы дают равные вероятности.

В более общем плане softmax инвариантен при переводе на одно и то же значение в каждой координате: добавление к входным данным дает , потому что оно умножает каждый показатель на один и тот же коэффициент (потому что ), поэтому отношения не меняются:

Геометрически softmax постоянен по диагоналям: это размер, который исключается, и соответствует тому, что выход softmax не зависит от перевода во входных оценках (выбор 0 баллов). Можно нормализовать входные оценки, предположив, что сумма равна нулю ( вычтите среднее: где ), а затем softmax переводит гиперплоскость точек, сумма которых равна нулю,, в открытый симплекс положительных значений, сумма которых равна 1 , аналогично тому, как показатель степени принимает значение от 0 до 1 и является положительным.

Напротив, softmax не инвариантен при масштабировании. Например, но

Стандартная логистическая функция является частным случаем для 1-мерной оси в 2-мерном пространстве, скажем х оси х в (х, у) плоскости. Одна переменная фиксирована на 0 (скажем ), поэтому другая переменная может меняться, обозначать ее , так что стандартная логистическая функция и ее дополнение (то есть они складываются до 1). В качестве альтернативы одномерный вход может быть выражен как линия с выходами и

Функция softmax также является градиентом функции LogSumExp , плавным максимумом ; определение:

частные производные:

Выражение частных производных в виде вектора с градиентом дает softmax.

История [ править ]

Функция softmax использовалась в статистической механике как распределение Больцмана в основополагающей статье Boltzmann (1868 г.) , [8], формализованной и популяризированной во влиятельном учебнике Gibbs (1902 г.) . [9]

Использование softmax в теории принятия решений приписывают Люсу (1959) , [10] : 1, который использовал аксиому независимости нерелевантных альтернатив в теории рационального выбора, чтобы вывести softmax в аксиоме выбора Люса для относительных предпочтений.

В машинном обучении термин «softmax» приписывается Джону С. Брайдлу в двух документах конференции 1989 года: Bridle (1990a) : [10] : 1 и Bridle (1990b) : [3]

Нас интересуют нелинейные сети с прямой связью (многослойные персептроны или MLP) с несколькими выходами. Мы хотим рассматривать выходы сети как вероятности альтернатив ( например , классы шаблонов), обусловленные входами. Мы ищем соответствующие нелинейности на выходе и соответствующие критерии для адаптации параметров сети ( например, весов). Мы объясняем две модификации: оценку вероятности, которая является альтернативой минимизации квадратичной ошибки, и нормализованное экспоненциальное ( softmax ) обобщение логистической нелинейности с множеством входов. [11] : 227

Для любого входа все выходы должны быть положительными, и их сумма должна быть равна единице. ...

Учитывая набор неограниченных значений, мы можем обеспечить оба условия, используя Нормализованное экспоненциальное преобразование:

Это преобразование можно рассматривать как обобщение логистики с множеством входов, действующее на весь выходной слой. Он сохраняет порядок ранжирования входных значений и является дифференцируемым обобщением операции выбора максимального значения «победитель получает все». По этой причине мы называем его softmax . [12] : 213

Пример [ править ]

Если мы возьмем на входе [1, 2, 3, 4, 1, 2, 3], softmax будет [0,024, 0,064, 0,175, 0,475, 0,024, 0,064, 0,175]. Выход имеет большую часть своего веса там, где в исходном входе была цифра «4». Это то, для чего функция обычно используется: для выделения наибольших значений и подавления значений, которые значительно ниже максимального значения. Но обратите внимание: softmax не масштабно инвариантен, поэтому, если бы входные данные были [0,1, 0,2, 0,3, 0,4, 0,1, 0,2, 0,3] (что в сумме составляет 1,6), softmax будет [0,125, 0,138, 0,153, 0,169, 0,125, 0,138, 0,153]. Это показывает, что для значений от 0 до 1 softmax фактически уменьшает максимальное значение (обратите внимание, что 0,169 не только меньше 0,475, но и меньше начальной пропорции 0,4 / 1,6 = 0,25).

Вычисление этого примера с использованием кода Python :

>>>  импортировать  numpy  как  np >>>  a  =  [ 1.0 ,  2.0 ,  3.0 ,  4.0 ,  1.0 ,  2.0 ,  3.0 ] >>>  np . ехр ( а )  /  нп . sum ( np . exp ( a ))  массив ([ 0,02364054 ,  0,06426166 ,  0,1746813 ,  0,474833 ,  0,02364054 ,  0,06426166,  0,1746813 ])

Вот пример кода Джулии :

julia>  A  =  [ 1.0 ,  2.0 ,  3.0 ,  4.0 ,  1.0 ,  2.0 ,  3.0 ];  # точка с запятой для подавления интерактивного выводаЮлия>  опыт . ( A )  ./  sum ( exp . ( A )) 7-элементный массив {Float64,1}: 0,0236405 0,0642617 0,174681 0,474833 0,0236405 0,0642617 0,174681

Вот пример кода R :

>  z  <-  c ( 1.0 ,  2.0 ,  3.0 ,  4.0 ,  1.0 ,  2.0 ,  3.0 ) >  softmax  <-  exp ( z ) / sum ( exp ( z )) >  softmax [ 1 ]  0,02364054  0,06426166  0,17468130  0,47483300  0,02364054  0,06426166  0,17468130

Вот пример кода на Эликсире : [13]

iex >  t  =  Nx . тензор ([[ 1 ,  2 ],  [ 3 ,  4 ]]) iex >  Nx . разделить ( Nx . exp ( t ),  Nx . sum ( Nx . exp ( t )))# Nx.Tensor <  f64 [ 2 ] [ 2 ]  [  [ 0,03205860328008499 ,  0,08714431874203257 ],  [ 0,23688281808991013 ,  0,6439142598879722 ]  ] >

См. Также [ править ]

  • Softplus
  • Полиномиальная логистическая регрессия
  • Распределение Дирихле - альтернативный способ выборки категориальных распределений
  • Функция разделения

Заметки [ править ]

  1. ^ Положительный β соответствует максимальному соглашению и обычен в машинном обучении, соответствующий наивысшему баллу с наибольшей вероятностью. Отрицательный - β соответствует условию минимума и является общепринятым в термодинамике, соответствующим самому низкоэнергетическому состоянию, имеющему наивысшую вероятность; это соответствует соглашению в распределении Гиббса , интерпретируя β как холодность .
  2. ^ Обозначения β является для термодинамических бета , которая является обратной температурой :,
  3. ^ Для(нулевой холод , бесконечная температура) ,, и это становится постоянной функцией, соответствующей дискретному равномерному распределению .
  4. ^ В статистической механике фиксация β интерпретируется как наличие холода и температуры, равных 1.

Ссылки [ править ]

  1. ^ Goodfellow, Ян ; Бенхио, Йошуа ; Курвиль, Аарон (2016). «6.2.2.3 Модули Softmax для многоуровневого распределения выходных сигналов» . Глубокое обучение . MIT Press. С. 180–184. ISBN 978-0-26203561-3.
  2. ^ Б Бишоп, Кристофер М. (2006). Распознавание образов и машинное обучение . Springer. ISBN 0-387-31073-8.
  3. ^ а б Сако, Юсаку (2018-06-02). "Термин" softmax "сводит вас с ума?" . Средний .
  4. Goodfellow, Bengio & Courville, 2016 , стр. 183–184: Название «softmax» может сбивать с толку. Функция более тесно связана с функцией arg max, чем с функцией max. Термин «мягкий» происходит от того факта, что функция softmax является непрерывной и дифференцируемой. Функция arg max, результат которой представлен в виде горячего вектора, не является непрерывной или дифференцируемой. Таким образом, функция softmax обеспечивает «смягченную» версию arg max. Соответствующий программный вариант максимальной функции. Возможно, было бы лучше называть функцию softmax «softargmax», но текущее имя - это устоявшееся соглашение.
  5. ^ ЛеКун, Янн ; Чопра, Сумит; Хадселл, Райя; Ранзато, Марк'Аурелио; Хуан, Фу Цзе (2006). «Учебное пособие по обучению на основе энергии» (PDF) . В Гекхане Бакыре; Томас Хофманн; Бернхард Шёлкопф; Александр Дж. Смола; Бен Таскар; СВН Вишванатан (ред.). Прогнозирование структурированных данных . Серия «Нейронная обработка информации». MIT Press. ISBN  978-0-26202617-8.
  6. ^ ai-faq Что такое функция активации softmax?
  7. ^ Саттон, RS и Барто А.Г. Обучение с подкреплением: Введение . MIT Press, Кембридж, Массачусетс, 1998. Выбор действия Softmax.
  8. ^ Больцман, Людвиг (1868). "Studien über das Gleichgewicht der lebendigen Kraft zwischen bewegten materiellen Punkten" [Исследования баланса жизненной силы между движущимися материальными точками]. Wiener Berichte . 58 : 517–560.
  9. ^ Гиббс, Джозия Уиллард (1902). Элементарные принципы статистической механики .
  10. ^ a b Гао, Болин; Павел, Лакра (2017). «О свойствах функции Softmax с применением в теории игр и обучении с подкреплением». arXiv : 1704.00805 [ math.OC ].
  11. ^ Уздечка, Джон С. (1990а). Soulié FF; Эро Ж. (ред.). Вероятностная интерпретация выходных данных сети прямой классификации с взаимосвязью со статистическим распознаванием образов . Нейрокомпьютеры: алгоритмы, архитектуры и приложения (1989). Серия НАТО ASI (Серия F: Компьютерные и системные науки). 68 . Берлин, Гейдельберг: Springer. С. 227–236. DOI : 10.1007 / 978-3-642-76153-9_28 .
  12. ^ Уздечка, Джон С. (1990b). Д.С. Турецкий (ред.). Обучение алгоритмов распознавания стохастических моделей как сетей может привести к оценке параметров с максимальной взаимной информацией . Достижения в системах обработки нейронной информации 2 (1989). Морган-Кауфманн.
  13. ^ https://github.com/elixir-nx/nx/tree/main/nx#examples