stringtranslate.com

Функция Софтмакс

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

Определение

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

Для вектора действительных чисел стандартная (единичная) функция softmax , где , определяется по формуле

Другими словами, softmax применяет стандартную экспоненциальную функцию к каждому элементу входного вектора и нормализует эти значения путем деления на сумму всех этих экспонент. Нормализация гарантирует, что сумма компонентов выходного вектора равна 1. Термин «softmax» происходит от усиливающего воздействия экспоненты на любые максимумы входного вектора. Например, стандартное softmax равно приблизительно , ​​что означает присвоение почти всего общего веса единицы результата положению максимального элемента вектора (из 8).

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

Обратная величина β иногда называется температурой , , с . Более высокая температура приводит к более равномерному распределению выходного сигнала (т. е. с более высокой энтропией и «более случайным»), тогда как более низкая температура приводит к более резкому распределению выходного сигнала с доминированием одного значения.

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

Интерпретации

Сглаженный макс. аргумент

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

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

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

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

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

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

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

Теория вероятности

В теории вероятностей выходные данные функции 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.

Вычислительная сложность и способы устранения

В приложениях нейронных сетей число K возможных результатов часто велико, например, в случае моделей нейронного языка , которые предсказывают наиболее вероятный результат на основе словаря, который может содержать миллионы возможных слов. [8] Это может сделать вычисления для слоя softmax (т.е. умножение матриц для определения , с последующим применением самой функции softmax) с вычислительной точки зрения. [8] [9] Более того, метод обратного распространения ошибки градиентного спуска для обучения такой нейронной сети включает вычисление softmax для каждого обучающего примера, и количество обучающих примеров также может стать большим. Вычислительные усилия для softmax стали основным ограничивающим фактором в разработке более крупных моделей нейронного языка, побуждая использовать различные средства для сокращения времени обучения. [8] [9]

Подходы, которые реорганизуют слой softmax для более эффективного расчета, включают иерархический softmax и дифференцированный softmax . [8] Иерархический softmax (представленный Морином и Бенджио в 2005 году) использует бинарную древовидную структуру, где результаты (словарные слова) являются листьями, а промежуточные узлы представляют собой соответствующим образом выбранные «классы» результатов, образующие скрытые переменные . [9] [10] Желаемая вероятность (значение softmax) листа (результата) затем может быть рассчитана как произведение вероятностей всех узлов на пути от корня до этого листа. [9] В идеале, когда дерево сбалансировано, это уменьшит вычислительную сложность с до . [10] На практике результаты зависят от выбора хорошей стратегии кластеризации результатов по классам. [9] [10] Для этого в моделях Google word2vec (представленных в 2013 году) для достижения масштабируемости использовалось дерево Хаффмана . [8]

Второй тип средств основан на аппроксимации softmax (во время обучения) с помощью модифицированных функций потерь, которые позволяют избежать расчета полного коэффициента нормализации. [8] К ним относятся методы, которые ограничивают сумму нормализации выборкой результатов (например, выборка по значимости, целевая выборка). [8] [9]

Математические свойства

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

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

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

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

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

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

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

где функция LogSumExp определяется как .

История

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

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

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

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

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

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

Это преобразование можно рассматривать как многовходовое обобщение логистики, действующее на всем выходном уровне. Он сохраняет ранговый порядок входных значений и является дифференцируемым обобщением операции выбора максимального значения по принципу «победитель получает все». По этой причине мы называем его softmax . [15] : 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])

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

Юля> А = [ 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,02364 054 0,06426166 0,17468130          

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

iex> t = Nx . тензор ([[ 1 , 2 ], [ 3 , 4 ]]) iex> Nx . делить ( Nx . exp ( t ), Nx . сумма ( Nx . exp ( t )))      #Nx.Tensor<  f64[2][2]  [  [0.03205860328008499, 0.08714431874203257],  [0.23688281808991013, 0.6439142598879722]  ] >

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

> мой  @z = [ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ];> скажи  @z . карта: { exp ( $_ )/ sum ( @z . map: { exp ( $_ )})}( 0.023640543021591385  0.06426165851049616  0.17468129859572226  0.4748329997443803  0.023640543021591385  0.06426165851049616  0 .17468129859572226 )

Альтернативы

Функция softmax генерирует вероятностные прогнозы, плотно распределенные по ее поддержке. Другие функции, такие как sparsemax или α-entmax, можно использовать, когда желательны прогнозы с разреженной вероятностью. [17]

Смотрите также

Примечания

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

Рекомендации

  1. ^ Гудфеллоу, Ян ; Бенджио, Йошуа ; Курвиль, Аарон (2016). «6.2.2.3 Единицы Softmax для выходных распределений Мультинулли». Глубокое обучение. МТИ Пресс. стр. 180–184. ISBN 978-0-26203561-3.
  2. ^ аб Бишоп, Кристофер М. (2006). Распознавание образов и машинное обучение . Спрингер. ISBN 0-387-31073-8.
  3. ^ Аб Сако, Юсаку (2 июня 2018 г.). «Термин «софтмакс» сводит вас с ума?». Середина .
  4. ^ Goodfellow, Bengio & Courville 2016, стр. 183–184: Название «softmax» может сбить с толку. Эта функция более тесно связана с функцией arg max, чем с функцией max. Термин «мягкий» происходит от того факта, что функция softmax является непрерывной и дифференцируемой. Функция arg max, результат которой представлен в виде горячего вектора, не является непрерывной или дифференцируемой. Таким образом, функция softmax предоставляет «смягченную» версию arg max. Соответствующая мягкая версия функции максимума — . Возможно, было бы лучше назвать функцию softmax «softargmax», но нынешнее имя является устоявшимся соглашением.
  5. ^ ЛеКун, Янн ; Чопра, Сумит; Хэдселл, Райя; Ранзато, Марк'Аурелио; Хуан, Фу Цзе (2006). «Учебное пособие по энергетическому обучению» (PDF) . В Гёкхане Бакыре; Томас Хофманн; Бернхард Шёлкопф; Александр Дж. Смола; Бен Таскар; СВН Вишванатан (ред.). Прогнозирование структурированных данных. Серия «Нейронная обработка информации». МТИ Пресс. ISBN 978-0-26202617-8.
  6. ^ ai-faq Что такое функция активации softmax?
  7. ^ Саттон, Р.С. и Барто А.Г. Обучение с подкреплением: Введение . MIT Press, Кембридж, Массачусетс, 1998. Выбор действий Softmax.
  8. ^ abcdefg Онал, Кезбан Дилек; Чжан, Е; Алтинговде, Исмаил Сенгор; Рахман, доктор Мустафизур; Карагоз, Пинар; Брайлан, Алекс; Черт, Брэндон; Чанг, Хэн-Лу; Ким, Хна; Макнамара, Квинтен; Ангерт, Аарон (01 июня 2018 г.). «Нейронный поиск информации: в конце ранних лет». Информационно-поисковой журнал . 21 (2): 111–182. дои : 10.1007/s10791-017-9321-y . hdl : 11245.1/008d6e8f-df13-4abf-8ae9-6ff2e17377f3 . ISSN  1573-7659. S2CID  21684923.
  9. ^ abcdef Чен, Вэньлинь; Гранжер, Дэвид; Аули, Майкл (август 2016 г.). «Стратегии обучения моделей нейронного языка с большим словарным запасом». Материалы 54-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 1: Длинные статьи) . Берлин, Германия: Ассоциация компьютерной лингвистики: 1975–1985. arXiv : 1512.04906 . дои : 10.18653/v1/P16-1186 . S2CID  6035643.
  10. ^ abc Морен, Фредерик; Бенджио, Йошуа (6 января 2005 г.). «Языковая модель иерархической вероятностной нейронной сети» (PDF) . Международный семинар по искусственному интеллекту и статистике . ПМЛР: 246–252.
  11. ^ Больцманн, Людвиг (1868). «Studien über das Gleichgewicht der lebendigen Kraft zwischen bewegten materiellen Punkten» [Исследования баланса жизненной силы между движущимися материальными точками]. Винер Берихте . 58 : 517–560.
  12. ^ Гиббс, Джозайя Уиллард (1902). Элементарные начала статистической механики .
  13. ^ Аб Гао, Болин; Павел, Лакра (2017). «О свойствах функции Softmax с применением в теории игр и обучении с подкреплением». arXiv : 1704.00805 [math.OC].
  14. ^ Уздечка, Джон С. (1990a). Сулье ФФ; Эро Ж. (ред.). Вероятностная интерпретация выходных данных сети прямой классификации с взаимосвязью со статистическим распознаванием образов . Нейрокомпьютеры: алгоритмы, архитектуры и приложения (1989). Серия НАТО ASI (Серия F: Компьютерные и системные науки). Том. 68. Берлин, Гейдельберг: Шпрингер. стр. 227–236. дои : 10.1007/978-3-642-76153-9_28.
  15. ^ Уздечка, Джон С. (1990b). Д.С. Турецкий (ред.). Обучение алгоритмов распознавания стохастических моделей как сетей может привести к максимальному взаимному информационному оцениванию параметров. Достижения в области нейронных систем обработки информации 2 (1989). Морган-Кауфманн.
  16. ^ «Nx/Nx в основном · эликсир-nx/Nx» . Гитхаб .
  17. ^ «Ускорение Entmax» Максата Тезекбаева, Василины Никулиной, Маттиаса Галле, Женисбека Асылбекова, https://arxiv.org/abs/2111.06832v3