Функция Софтмакс
Часть серии о |
Машинное обучение и интеллектуальный анализ данных |
---|
Функция 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 можно использовать . Как указано выше, если b > 1 , то более крупные входные компоненты приведут к увеличению выходных вероятностей, а увеличение значения b создаст распределения вероятностей, которые более сконцентрированы вокруг позиций наибольших входных значений. И наоборот, если 0 < b < 1, то меньшие входные компоненты приведут к увеличению выходных вероятностей, а уменьшение значения b создаст распределения вероятностей, которые более сконцентрированы вокруг позиций наименьших входных значений. Письмо или [а] (на самом деле б ) [б] дает выражения: [с]
Величину, пропорциональную обратной величине β , иногда называют температурой : , где k обычно равно 1 или постоянной Больцмана , а T — температура. Более высокая температура приводит к более равномерному распределению выходного сигнала (т.е. с более высокой энтропией ; оно «более случайное»), тогда как более низкая температура приводит к более резкому распределению выходного сигнала с доминированием одного значения.
В некоторых областях база фиксирована, что соответствует фиксированному масштабу. [д] в то время как в других параметр β (или T ) варьируется.
Интерпретации
[ редактировать ]Сглаженный макс. аргумент
[ редактировать ]Функция Softmax — это плавное приближение к функции arg max : функции, значение которой является индексом наибольшего элемента вектора. Название «softmax» может ввести в заблуждение. Softmax не является гладким максимумом (то есть плавным приближением к функции максимума ). Термин «softmax» также используется для обозначения тесно связанной функции LogSumExp , которая представляет собой плавный максимум. По этой причине некоторые предпочитают более точный термин «softargmax», хотя термин «softmax» является общепринятым в машинном обучении. [3] [4] В этом разделе для ясности используется термин «softargmax».
Формально, вместо рассмотрения arg max как функции с категориальным выходом (соответствует индексу), рассмотрим функцию arg max с горячим представлением вывода (при условии, что существует уникальный максимальный arg):
где выходная координата тогда и только тогда, когда это 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: Однако если разница невелика по отношению к температуре, значение не близко к arg max. Например, разница в 10 мала по сравнению с температурой в 100: Как , температура достигает нуля, , поэтому в конечном итоге все различия становятся большими (относительно снижения температуры), что дает другую интерпретацию предельного поведения.
Теория вероятностей
[ редактировать ]В теории вероятностей выходные данные функции softargmax можно использовать для представления категориального распределения , то есть распределения вероятностей по K различным возможным результатам.
Статистическая механика
[ редактировать ]В статистической механике функция softargmax известна как распределение Больцмана (или распределение Гиббса ): [5] : 7 набор индексов – микросостояния системы ; входы являются энергиями этого состояния; знаменатель известен как статистическая сумма , часто обозначаемая Z ; а фактор β называется холодностью (или термодинамической бета , или обратной температурой ).
Приложения
[ редактировать ]Функция softmax используется в различных методах многоклассовой классификации , таких как полиномиальная логистическая регрессия (также известная как регрессия softmax), [2] : 206–209 [6] многоклассовый линейный дискриминантный анализ , наивные классификаторы Байеса и искусственные нейронные сети . [7] В частности, в полиномиальной логистической регрессии и линейном дискриминантном анализе входными данными для функции является результат K различных линейных функций , а прогнозируемая вероятность для j -го класса с учетом выборочного вектора x и весового вектора w равна:
Это можно рассматривать как композицию функций K линейных и функция softmax (где обозначает внутренний продукт и ). Эта операция эквивалентна применению линейного оператора, определенного формулой векторам , преобразуя таким образом исходные, вероятно, многомерные входные данные в векторы в K -мерном пространстве .
Нейронные сети
[ редактировать ]Стандартная функция softmax часто используется на последнем уровне классификатора на основе нейронной сети. Такие сети обычно обучаются в режиме логарифмических потерь (или перекрестной энтропии ), что дает нелинейный вариант полиномиальной логистической регрессии.
Поскольку функция отображает вектор и конкретный индекс к реальному значению, производная должна учитывать индекс:
Это выражение симметрично по индексам и, таким образом, также может быть выражено как
Здесь для простоты используется дельта Кронекера (см. производную сигмовидной функции , выражаемую через саму функцию).
Чтобы обеспечить стабильные численные вычисления, обычно вычитают максимальное значение из входного вектора. Этот подход, хотя теоретически и не изменяет выходные данные или производную, повышает стабильность за счет прямого управления вычисленным максимальным значением показателя степени.
Если функция масштабируется с помощью параметра , то эти выражения нужно умножить на .
См. полиномиальный логит для вероятностной модели, которая использует функцию активации softmax.
Обучение с подкреплением
[ редактировать ]В области обучения с подкреплением можно использовать функцию softmax для преобразования значений в вероятности действий. Обычно используется следующая функция: [8]
где значение действия соответствует ожидаемому вознаграждению за выполнение действий a и называется температурным параметром (имеется в виду статистическая механика ). При высоких температурах ( ), все действия имеют почти одинаковую вероятность, и чем ниже температура, тем больше ожидаемое вознаграждение влияет на вероятность. При низкой температуре ( ), вероятность действия с наибольшим ожидаемым вознаграждением стремится к 1.
Вычислительная сложность и способы устранения
[ редактировать ]В приложениях нейронных сетей число K возможных результатов часто велико, например, в случае моделей нейронного языка , которые предсказывают наиболее вероятный результат на основе словаря, который может содержать миллионы возможных слов. [9] Это может привести к вычислениям для слоя softmax (т. е. умножению матриц для определения , с последующим применением самой функции softmax) требует больших вычислительных затрат. [9] [10] Более того, градиентного спуска метод обратного распространения ошибки для обучения такой нейронной сети включает вычисление softmax для каждого обучающего примера, и количество обучающих примеров также может стать большим. Вычислительные усилия для softmax стали основным ограничивающим фактором в разработке более крупных моделей нейронного языка, побуждая использовать различные средства для сокращения времени обучения. [9] [10]
Подходы, которые реорганизуют слой softmax для более эффективного расчета, включают иерархический softmax и дифференцированный softmax . [9] Иерархический softmax (представленный Морином и Бенджио в 2005 году) использует бинарную древовидную структуру, в которой результаты (словарные слова) являются листьями, а промежуточные узлы — соответствующим образом выбранными «классами» результатов, образующими скрытые переменные . [10] [11] Желаемая вероятность (значение softmax) листа (результата) затем может быть рассчитана как произведение вероятностей всех узлов на пути от корня до этого листа. [10] В идеале, когда дерево сбалансировано, это уменьшит сложность вычислений с к . [11] На практике результаты зависят от выбора хорошей стратегии кластеризации результатов по классам. [10] [11] дерево Хаффмана . использовалось Для этого в моделях Google word2vec (представленных в 2013 году) для достижения масштабируемости [9]
Второй вид средств основан на аппроксимации softmax (во время обучения) с помощью модифицированных функций потерь, которые позволяют избежать расчета полного коэффициента нормализации. [9] К ним относятся методы, которые ограничивают сумму нормализации выборкой результатов (например, выборка по важности, целевая выборка). [9] [10]
Математические свойства
[ редактировать ]Геометрически функция softmax отображает векторное пространство. до границы стандарта -simplex , сокращая размерность на единицу (диапазон представляет собой -мерный симплекс в -мерное пространство) из-за линейного ограничения , заключающегося в том, что сумма всех выходных данных равна 1, что означает, что они лежат на гиперплоскости .
По главной диагонали softmax — это просто равномерное распределение по выходам, : равные оценки дают равные вероятности.
В более общем смысле, softmax инвариантен при переносе на одно и то же значение по каждой координате: добавление ко входам урожайность , поскольку он умножает каждый показатель степени на один и тот же коэффициент, (потому что ), поэтому соотношения не меняются:
Геометрически softmax постоянен по диагоналям: это измерение, которое исключается и соответствует тому, что выходные данные softmax не зависят от перевода входных оценок (выбор 0 баллов). Можно нормализовать входные оценки, предположив, что сумма равна нулю (вычтите среднее значение: где ), а затем softmax принимает гиперплоскость точек, сумма которых равна нулю, , к открытому симплексу положительных значений, сумма которых равна 1 , аналогично тому, как показатель степени принимает значения от 0 до 1, и является положительным.
Напротив, softmax не инвариантен при масштабировании. Например, но
Стандартная логистическая функция — это частный случай одномерной оси в двумерном пространстве, скажем, оси x в плоскости (x, y) . Одна переменная имеет фиксированное значение 0 (скажем, ), так , а другая переменная может меняться, обозначим ее , так стандартная логистическая функция и его дополнение (то есть их сумма равна 1). Альтернативно одномерные входные данные могут быть выражены в виде линии , с выходами и
Функция softmax также является градиентом функции LogSumExp , плавным максимумом :
где функция LogSumExp определяется как .
История
[ редактировать ]Функция softmax использовалась в статистической механике как распределение Больцмана в основополагающей статье Больцмана (1868) : [12] формализовано и популяризировано во влиятельном учебнике Гиббса (1902) . [13]
Использование softmax в теории принятия решений приписывают Р. Дункану Люсу . [14] : 1 который использовал аксиому независимости нерелевантных альтернатив в теории рационального выбора, чтобы вывести softmax в аксиоме выбора Люса для относительных предпочтений. [ нужна ссылка ]
В машинном обучении термин «софтмакс» приписывается Джону С. Брайдлу в двух докладах на конференции 1989 года, Bridle (1990a) : [14] : 1 и Уздечка (1990b) : [3]
Нас интересуют нелинейные сети с прямой связью (многослойные перцептроны или MLP) с несколькими выходами. Мы хотим рассматривать выходные данные сети как вероятности альтернатив ( например, классов шаблонов), обусловленные входными данными. Мы ищем подходящие выходные нелинейности и подходящие критерии для адаптации параметров сети ( например, весов). Мы объясняем две модификации: оценку вероятности, которая является альтернативой минимизации квадратичной ошибки, и нормализованное экспоненциальное ( softmax ) многовходное обобщение логистической нелинейности. [15] : 227
Для любого входного сигнала все выходные данные должны быть положительными, а их сумма должна быть равна единице. ...
Учитывая набор неограниченных значений, мы можем обеспечить оба условия, используя нормализованное экспоненциальное преобразование:
Это преобразование можно рассматривать как многовходовое обобщение логистики, действующее на всем выходном уровне. Он сохраняет ранговый порядок входных значений и представляет собой дифференцируемое обобщение операции выбора максимального значения по принципу «победитель получает все». По этой причине мы называем его softmax . [16] : 213
Пример
[ редактировать ]При вводе (1, 2, 3, 4, 1, 2, 3) softmax составляет примерно (0,024, 0,064, 0,175, 0,475, 0,024, 0,064, 0,175) . Выходные данные имеют большую часть своего веса там, где в исходном вводе была цифра «4». Обычно эта функция используется для того, чтобы выделить самые большие значения и подавить значения, которые значительно ниже максимального значения. Но обратите внимание: изменение температуры меняет выходной сигнал. Когда температура умножается на 10, входные данные фактически равны (0,1, 0,2, 0,3, 0,4, 0,1, 0,2, 0,3) , а softmax составляет приблизительно (0,125, 0,138, 0,153, 0,169, 0,125, 0,138, 0,153) . Это показывает, что высокие температуры принижают значение максимального значения.
Вычисление этого примера с использованием кода Python :
>>> import numpy as np
>>> z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0])
>>> beta = 1.0
>>> np.exp(beta * z) / np.sum(np.exp(beta * z))
array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,
0.06426166, 0.1746813])
Альтернативы
[ редактировать ]Функция softmax генерирует вероятностные прогнозы, плотно распределенные по ее поддержке. Другие функции, такие как sparsemax или α- entmax, можно использовать, когда желательны прогнозы с разреженной вероятностью. [17]
См. также
[ редактировать ]- Софтплюс
- Полиномиальная логистическая регрессия
- Распределение Дирихле – альтернативный способ выборки категориальных распределений
- Функция разделения
- Экспоненциальный наклон - обобщение Softmax на более общие распределения вероятностей.
Примечания
[ редактировать ]- ^ Положительное значение β соответствует максимальному соглашению и обычно используется в машинном обучении, что соответствует наивысшему баллу, имеющему наибольшую вероятность. Отрицательное значение -β соответствует минимальному соглашению и является общепринятым в термодинамике и соответствует состоянию с наименьшей энергией, имеющему наибольшую вероятность; это соответствует соглашению о распределении Гиббса , интерпретирующем β как холодность .
- ^ Обозначение β относится к термодинамической бета-версии , которая является обратной температурой : ,
- ^ Для ( нулевая холодность , бесконечная температура), , и это становится постоянной функцией , соответствующий дискретному равномерному распределению .
- ^ В статистической механике фиксация β интерпретируется как холод и температура, равные 1.
Ссылки
[ редактировать ]- ^ Гудфеллоу, Ян ; Бенджио, Йошуа ; Курвиль, Аарон (2016). «6.2.2.3 Единицы Softmax для выходных распределений Мультинулли» . Глубокое обучение . МТИ Пресс. стр. 180–184. ISBN 978-0-26203561-3 .
- ^ Перейти обратно: а б Бишоп, Кристофер М. (2006). Распознавание образов и машинное обучение . Спрингер. ISBN 0-387-31073-8 .
- ^ Перейти обратно: а б Сако, Юсаку (2 июня 2018 г.). «Термин «софтмакс» сводит вас с ума?» . Середина .
- ^ Goodfellow, Bengio & Courville 2016 , стр. 183–184: Название «softmax» может сбить с толку. Эта функция более тесно связана с функцией arg max, чем с функцией max. Термин «мягкий» происходит от того факта, что функция softmax является непрерывной и дифференцируемой. Функция arg max, результат которой представлен в виде горячего вектора, не является ни непрерывной, ни дифференцируемой. Таким образом, функция softmax предоставляет «смягченную» версию arg max. Соответствующая мягкая версия функции максимума: . Возможно, было бы лучше назвать функцию softmax «softargmax», но нынешнее имя является устоявшимся соглашением.
- ^ ЛеКун, Янн ; Чопра, Сумит; Хэдселл, Райя; Ранзато, Марк'Аурелио; Хуан, Фу Цзе (2006). «Учебное пособие по энергетическому обучению» (PDF) . В Гёкхане Бакыре; Томас Хофманн; Бернхард Шёлкопф; Александр Дж. Смола; Бен Таскар; СВН Вишванатан (ред.). Прогнозирование структурированных данных . Серия «Нейронная обработка информации». МТИ Пресс. ISBN 978-0-26202617-8 .
- ^ «Учебное пособие по обучению функциям без присмотра и глубокому обучению» . ufldl.stanford.edu . Проверено 25 марта 2024 г.
- ^ ai-faq Что такое функция активации softmax?
- ^ Саттон, Р.С. и Барто А.Г. Обучение с подкреплением: Введение . MIT Press, Кембридж, Массачусетс, 1998. Выбор действий Softmax.
- ^ Перейти обратно: а б с д и ж г Онал, Кезбан Дилек; Чжан, Е; Алтинговде, Исмаил Сенгор; Рахман, доктор Мустафизур; Карагоз, Пинар; Брайлан, Алекс; Черт, Брэндон; Чанг, Хэн-Лу; Ким, Хна; Макнамара, Квинтен; Ангерт, Аарон (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 .
- ^ Перейти обратно: а б с д и ж Чен, Вэньлинь; Гранжер, Дэвид; Аули, Майкл (август 2016 г.). «Стратегии обучения нейронных языковых моделей с большим словарным запасом» . Материалы 54-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 1: Длинные статьи) . Берлин, Германия: Ассоциация компьютерной лингвистики: 1975–1985. arXiv : 1512.04906 . дои : 10.18653/v1/P16-1186 . S2CID 6035643 .
- ^ Перейти обратно: а б с Морен, Фредерик; Бенджио, Йошуа (6 января 2005 г.). «Языковая модель иерархической вероятностной нейронной сети» (PDF) . Международный семинар по искусственному интеллекту и статистике . ПМЛР: 246–252.
- ^ Больцман, Людвиг (1868). «Исследования баланса жизненной силы между движущимися материальными точками». Об этом сообщает Вена . 58 :517-560.
- ^ Гиббс, Джозайя Уиллард (1902). Элементарные начала статистической механики .
- ^ Перейти обратно: а б Гао, Болин; Павел, Лакра (2017). «О свойствах функции Softmax с применением в теории игр и обучении с подкреплением». arXiv : 1704.00805 [ math.OC ].
- ^ Уздечка, Джон С. (1990a). Сулье ФФ; Эро Ж. (ред.). Вероятностная интерпретация выходных данных сети прямой классификации с взаимосвязью со статистическим распознаванием образов . Нейрокомпьютеры: алгоритмы, архитектуры и приложения (1989). Серия НАТО ASI (Серия F: Компьютерные и системные науки). Том. 68. Берлин, Гейдельберг: Шпрингер. стр. 227–236. дои : 10.1007/978-3-642-76153-9_28 .
- ^ Уздечка, Джон С. (1990b). Д.С. Турецкий (ред.). Обучение алгоритмов распознавания стохастических моделей как сетей может привести к максимальному взаимному информационному оцениванию параметров . Достижения в области нейронных систем обработки информации 2 (1989). Морган-Кауфманн.
- ^ "Speeding Up Entmax" by Maxat Tezekbayev, Vassilina Nikoulina, Matthias Gallé, Zhenisbek Assylbekov, https://arxiv.org/abs/2111.06832v3