For faster navigation, this Iframe is preloading the Wikiwand page for Softmax.

Softmax

Матеріал з Вікіпедії — вільної енциклопедії.

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

   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набір індексів  — мікростани системи; входи  — енергії цих станів; знаменник відомий як статистична сума, часто позначається як Z ; а коефіцієнт β називається термодинамічна бета, або обернена температура.

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

[ред. | ред. код]

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

Це можна розглядати як композицію K лінійних функцій і функції softmax (де позначає внутрішній добуток і ). Операція еквівалентна застосуванню лінійного оператора, визначеного за допомогою до векторів , перетворюючи таким чином вхідний, можливо, багатовимірний, вектор аргументів на вектор у K -вимірному просторі .

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

[ред. | ред. код]

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

Оскільки функція переводить вектор і певний індекс в дійсне число, то похідна повинна враховувати ще й індекс:


Цей вираз є симетричним відносно індексів та , тому він також може бути виражений як

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

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

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

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

[ред. | ред. код]

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

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

Властивості

[ред. | ред. код]

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

По головній діагоналі softmax стає просто рівномірним розподілом, : рівні ваги дають рівні ймовірності.

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

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

Але softmax не є інваріантним відносно масштабування. Наприклад, але

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

де функція LogSumExp визначена як .

Приклад

[ред. | ред. код]

Якщо ми візьмемо вектор вхідних значень [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.]
.mw-parser-output .hidden-begin{box-sizing:border-box;width:100%;padding:5px;border:none;font-size:95%}.mw-parser-output .hidden-title{font-weight:bold;line-height:1.6;text-align:left}.mw-parser-output .hidden-content{text-align:left}В іншому мовному розділі є повніша стаття Softmax function.mw-parser-output .ref-info{font-size:85%;cursor:help;margin-left:0.2em;color:var(--color-subtle,#54595d)}(англ.). Ви можете допомогти, розширивши поточну статтю за допомогою перекладу з англійської. Дивитись автоперекладену версію статті з мови «англійська». Перекладач повинен розуміти, що відповідальність за кінцевий вміст статті у Вікіпедії несе саме автор редагувань. Онлайн-переклад надається лише як корисний інструмент перегляду вмісту зрозумілою мовою. Не використовуйте невичитаний і невідкоригований машинний переклад у статтях української Вікіпедії! Машинний переклад Google є корисною відправною точкою для перекладу, але перекладачам необхідно виправляти помилки та підтверджувати точність перекладу, а не просто скопіювати машинний переклад до української Вікіпедії. Не перекладайте текст, який видається недостовірним або неякісним. Якщо можливо, перевірте текст за посиланнями, поданими в іншомовній статті. Докладні рекомендації: див. Вікіпедія:Переклад.
{{bottomLinkPreText}} {{bottomLinkText}}
Softmax
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?