Softmax

В математиці, функція Softmax, або ж нормована експоненційна функція[1]:198 — це узагальнення логістичної функції, що «стискує» K-вимірний вектор z {\displaystyle \mathbf {z} } із довільним значеннями компонент до K-вимірного вектора σ ( z ) {\displaystyle \sigma (\mathbf {z} )} з дійсними значеннями компонент в області [0, 1] що в сумі дають одиницю. Функція задається наступним чином:

σ : R K [ 0 , 1 ] K {\displaystyle \sigma :\mathbb {R} ^{K}\to [0,1]^{K}}
σ ( z ) j = e z j k = 1 K e z k {\displaystyle \sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}}    for j = 1, …, K.

В теорії ймовірності, результат софтмакс-функції може використовуватись для того щоб представити категорійний розподіл, тобто розподіл ймовірності при K різних можливих варіантах. Функція софтмакс використовується в різних методах багатокласової класифікації[en], таких, як наприклад мультиноміальна логістична регресія[en] (також відома як софтмакс-регресія)[1], багатокласовий лінійний розділювальний аналіз, наївний баєсів класифікатор, і штучні нейронні мережі.[2]

Інтерпретації

Згладжений arg max

Див. також: Arg max

Назва «softmax» вводить в оману — функція не є згладженим максимумом (гладке наближення до функції максимуму), а є скоріше гладким наближенням до функції arg max — аргумента максимального значення функції. Насправді, термін «softmax» також використовується для тісно пов'язаної функції LogSumExp[en], яка є згладженим максимумом. З цієї причини дехто вважає кращим більш точний термін «softargmax», але термін «softmax» є прийнятим у машинному навчанні.[3] У цьому розділі використовується термін «softargmax», щоб підкреслити цю інтерпретацію.

Теорія ймовірностей

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

Статистична механіка

У статистичній механіці функція Softargmax відома як розподіл Больцмана (або розподіл Гіббса):[4]:7набір індексів 1 , , k {\displaystyle {1,\dots ,k}}  — мікростани системи; входи z i {\displaystyle z_{i}}  — енергії цих станів; знаменник відомий як статистична сума, часто позначається як Z ; а коефіцієнт β називається термодинамічна бета, або обернена температура.

Застосування

Функція softmax використовується в різних методах багатокласової класифікації[en], таких як: мультиноміальна логістична регресія[en] (також відома як softmax регресія)[5]:206–209[6], багатокласовий лінійний дискримінантний аналіз, наївних баєсівих класифікаторах та штучних нейронних мережах.[2] Зокрема, у мультиноміальній логістичній регресії та лінійному дискримінантному аналізі вхідними даними функції є результати K різних лінійних функцій, а прогнозована ймовірність для j-го класу з урахуванням вектора вибірки x і вектора ваги w є:

P ( y = j x ) = e x T w j k = 1 K e x T w k {\displaystyle P(y=j\mid \mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}

Це можна розглядати як композицію K лінійних функцій x x T w 1 , , x x T w K {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}} і функції softmax (де x T w {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} } позначає внутрішній добуток x {\displaystyle \mathbf {x} } і w {\displaystyle \mathbf {w} } ). Операція еквівалентна застосуванню лінійного оператора, визначеного за допомогою w {\displaystyle \mathbf {w} } до векторів x {\displaystyle \mathbf {x} } , перетворюючи таким чином вхідний, можливо, багатовимірний, вектор аргументів на вектор у K -вимірному просторі R K {\displaystyle \mathbb {R} ^{K}} .

Нейронні мережі

Функція softmax часто використовується в останньому шарі класифікаторів на основі нейронних мереж. Такі мережі зазвичай навчаються за допомогою перехресної ентропії, що дає нелінійний варіант поліноміальної логістичної регресії.

Оскільки функція переводить вектор q {\displaystyle {\textbf {q}}} і певний індекс i {\displaystyle i} в дійсне число, то похідна повинна враховувати ще й індекс:

q k σ ( q , i ) = σ ( q , i ) ( δ i k σ ( q , k ) ) . {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},i)(\delta _{ik}-\sigma ({\textbf {q}},k)).}


Цей вираз є симетричним відносно індексів i {\displaystyle i} та k {\displaystyle k} , тому він також може бути виражений як

q k σ ( q , i ) = σ ( q , k ) ( δ i k σ ( q , i ) ) . {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},k)(\delta _{ik}-\sigma ({\textbf {q}},i)).}

Тут для простоти використовується символ Кронекера (похідна від сигмоїдної функції виражається через саму функцію).

Якщо функція масштабується за допомогою параметра β {\displaystyle \beta } , то ці вирази потрібно помножити на β {\displaystyle \beta } .

Див. Мультиноміальний logit[en] для ймовірнісної моделі, яка використовує функцію активації softmax.

Навчання з підкріпленням

У сфері навчання з підкріпленням функція softmax може використовуватися для перетворення значень у ймовірності дії. Зазвичай використовується наступна функція:[7]

P t ( a ) = exp ( q t ( a ) / τ ) i = 1 n exp ( q t ( i ) / τ ) , {\displaystyle P_{t}(a)={\frac {\exp(q_{t}(a)/\tau )}{\sum _{i=1}^{n}\exp(q_{t}(i)/\tau )}}{\text{,}}}

де цінність дії q t ( a ) {\displaystyle q_{t}(a)} відповідає очікуваній винагороді за наступну дію a {\displaystyle a} , а τ {\displaystyle \tau } називається параметром температури (натяк на статистичну механіку). Для високих температур ( τ {\displaystyle \tau \to \infty } ), всі дії мають майже однакову ймовірність, а чим нижча температура, тим більше очікувана винагорода впливає на ймовірність обирання дії. Для низької температури ( τ 0 + {\displaystyle \tau \to 0^{+}} ), ймовірність дії з найбільшою очікуваною винагородою наближається до 1.

Властивості

Геометрично функція softmax відображає векторний простір R K {\displaystyle \mathbb {R} ^{K}} на межі ( K 1 ) {\displaystyle (K-1)} -вимірного симплекса, зменшуючи розмірність на одиницю (діапазоном значень стає ( K 1 ) {\displaystyle (K-1)} -вимірний симплекс в K {\displaystyle K} -вимірному просторі), через лінійне обмеження, що сума елементів вихідного вектору дорівнює 1, що означає, що він лежить на гіперплощині.

По головній діагоналі ( x , x , , x ) , {\displaystyle (x,x,\dots ,x),} softmax стає просто рівномірним розподілом, ( 1 / n , , 1 / n ) {\displaystyle (1/n,\dots ,1/n)} : рівні ваги дають рівні ймовірності.

Загалом, softmax є інваріантним щодо зсуву на одне й те саме значення в кожній координаті: додавання c = ( c , , c ) {\displaystyle \mathbf {c} =(c,\dots ,c)} до вектору вхідних значень z {\displaystyle \mathbf {z} } дає σ ( z + c ) = σ ( z ) {\displaystyle \sigma (\mathbf {z} +\mathbf {c} )=\sigma (\mathbf {z} )} , оскільки softmax множить кожен показник на один і той же коефіцієнт, e c {\displaystyle e^{c}} (тому що e z i + c = e z i e c {\displaystyle e^{z_{i}+c}=e^{z_{i}}\cdot e^{c}} ), тобто співвідношення не змінюється:

σ ( z + c ) j = e z j + c k = 1 K e z k + c = e z j e c k = 1 K e z k e c = σ ( z ) j . {\displaystyle \sigma (\mathbf {z} +\mathbf {c} )_{j}={\frac {e^{z_{j}+c}}{\sum _{k=1}^{K}e^{z_{k}+c}}}={\frac {e^{z_{j}}\cdot e^{c}}{\sum _{k=1}^{K}e^{z_{k}}\cdot e^{c}}}=\sigma (\mathbf {z} )_{j}.}

Геометрично, softmax є постійним уздовж діагоналей: це відповідає тому, що вихідне значення softmax не залежить від зсуву вхідних значень. Можна нормалізувати вхідні бали, якщо сума дорівнює нулю (відняти середнє: c {\displaystyle \mathbf {c} } , де c = 1 n z i {\textstyle c={\frac {1}{n}}\sum z_{i}} ), тоді softmax відображає гіперплощину точок, сума яких дорівнює нулю, z i = 0 {\textstyle \sum z_{i}=0} , до відкритого симплекса додатних значень, сума яких дорівнює 1: σ ( z ) i = 1 {\textstyle \sum \sigma (\mathbf {z} )_{i}=1} , аналогічно тому, як експонента відображає 0 на 1, e 0 = 1 {\displaystyle e^{0}=1} .

Але softmax не є інваріантним відносно масштабування. Наприклад, σ ( ( 0 , 1 ) ) = ( 1 / ( 1 + e ) , e / ( 1 + e ) ) {\displaystyle \sigma {\bigl (}(0,1){\bigr )}={\bigl (}1/(1+e),e/(1+e){\bigr )}} але

σ ( ( 0 , 2 ) ) = ( 1 / ( 1 + e 2 ) , e 2 / ( 1 + e 2 ) ) . {\displaystyle \sigma {\bigl (}(0,2){\bigr )}={\bigl (}1/(1+e^{2}),e^{2}/(1+e^{2}){\bigr )}.}

Функція softmax — це градієнт функції LogSumExp[en] — згладженого максимуму.

z i LSE ( z ) = exp z i j = 1 K exp z j = σ ( z ) i ,  for  i = 1 , , K , z = ( z 1 , , z K ) R K , {\displaystyle {\frac {\partial }{\partial z_{i}}}\operatorname {LSE} (\mathbf {z} )={\frac {\exp z_{i}}{\sum _{j=1}^{K}\exp z_{j}}}=\sigma (\mathbf {z} )_{i},\quad {\text{ for }}i=1,\dotsc ,K,\quad \mathbf {z} =(z_{1},\dotsc ,z_{K})\in \mathbb {R} ^{K},}

де функція LogSumExp визначена як LSE ( z 1 , , z n ) = log ( exp ( z 1 ) + + exp ( z n ) ) {\displaystyle \operatorname {LSE} (z_{1},\dots ,z_{n})=\log \left(\exp(z_{1})+\cdots +\exp(z_{n})\right)} .

Приклад

Якщо ми візьмемо вектор вхідних значень [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,153 0,125, 0,138, 0,153]. Це показує, що для значень від 0 до 1 softmax фактично деакцентує максимальне значення (зверніть увагу, що 0,169 не тільки менше 0,475, це також менше, ніж початкове відношення 0,4/1,6=0,25).

Коду мовою Python для обчислення для цього прикладу:

>>> import numpy as np
>>> a = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
>>> np.exp(a) / np.sum(np.exp(a)) 
array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,
       0.06426166, 0.1746813])

Примітки

  1. а б Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer.
  2. а б ai-faq What is a softmax activation function? [Архівовано 12 листопада 2016 у Wayback Machine.]
  3. Goodfellow, Bengio та Courville, 2016, с. 183–184.
  4. LeCun, Yann; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc’Aurelio; Huang, Fu Jie (2006). A Tutorial on Energy-Based Learning. У Gökhan Bakır (ред.). Predicting Structured Data. Neural Information Processing series. MIT Press. ISBN 978-0-26202617-8. Архів оригіналу за 15 липня 2018. Процитовано 2 грудня 2021.
  5. Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer. ISBN 0-387-31073-8.
  6. Unsupervised Feature Learning and Deep Learning Tutorial. ufldl.stanford.edu. Архів оригіналу за 28 листопада 2021. Процитовано 5 грудня 2021.
  7. Sutton, R. S. and Barto A. G. Reinforcement Learning: An Introduction. The MIT Press, Cambridge, MA, 1998. Softmax Action Selection [Архівовано 7 січня 2022 у Wayback Machine.]
В іншому мовному розділі є повніша стаття Softmax function(англ.). Ви можете допомогти, розширивши поточну статтю за допомогою перекладу з англійської.
  • Дивитись автоперекладену версію статті з мови «англійська».
  • Перекладач повинен розуміти, що відповідальність за кінцевий вміст статті у Вікіпедії несе саме автор редагувань. Онлайн-переклад надається лише як корисний інструмент перегляду вмісту зрозумілою мовою. Не використовуйте невичитаний і невідкоригований машинний переклад у статтях української Вікіпедії!
  • Машинний переклад Google є корисною відправною точкою для перекладу, але перекладачам необхідно виправляти помилки та підтверджувати точність перекладу, а не просто скопіювати машинний переклад до української Вікіпедії.
  • Не перекладайте текст, який видається недостовірним або неякісним. Якщо можливо, перевірте текст за посиланнями, поданими в іншомовній статті.
  • Докладні рекомендації: див. Вікіпедія:Переклад.
  • п
  • о
  • р
Диференційовні обчислення
Загальне
Поняття
Мови програмування
Застосування
Апаратне забезпечення
Програмні бібліотеки
Втілення
Аудіовізуальні
Словесні
Вирішувальні
Люди
Організації

Портал Портали: Програмування  • Техніка

Категорія Категорії: Штучні нейронні мережі  • Машинне навчання