Навіщо використовувати softmax на відміну від стандартної нормалізації?


159

У вихідному шарі нейронної мережі типово використовувати функцію softmax для наближення розподілу ймовірностей:

введіть тут опис зображення

Це обчислити дорого через показники. Чому б просто не виконати перетворення Z так, щоб усі результати були позитивними, а потім нормалізувались, поділивши всі результати на суму всіх результатів?


8
Обчислити функцію не дорого через показники, а тому, що потрібно обчислювати кожен qj. Експоненція є дешевою порівняно із загальною кількістю необхідних обчислень.
Seppo Enarvi

Про яку Z перетворення ви говорите? Значення терміна обробки сигналу тут не підходить, а заміна значень їх z-балом дає негативний вихід, якщо вхід нижче середнього.
Девід Сіан

Дивіться також: Stats.SE
Мартін Тома

Відповіді:


166

Є один приємний атрибут Softmax порівняно зі стандартною нормалізацією.

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

У той час як стандартна нормалізація не стосується тих пір, поки частка однакова.

Подивіться, що відбувається, коли м'який макс має в 10 разів більший вклад, тобто ваша нейронна сітка отримала чітке зображення і багато нейронів активізувалося

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

А потім порівняйте його зі стандартною нормалізацією

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?

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

@IanDanforth Я згоден з тобою. повинні бути на початку.
Хітеш

11
Не впевнений, чому ця відповідь найбільше голосується. Чому [1,2] відповідає розмитому зображенню, тоді як [10,20] відповідає більш чіткому зображенню? Це просто питання масштабування, і обидва випадки по суті однакові. Якщо що, це, здається, підтримує стандартну нормалізацію, яка правильно вважає два випадки рівнозначними.
користувач118967

Коли значення вже гарантовано знаходяться в [0, 1], чи все-таки є якась перевага взяти софтмакс, а не просто ділити на суму?
Мартін Тома

58

У мене це питання було місяцями. Схоже, ми просто розумно відгадали софтмакс як функцію виводу, а потім інтерпретували вхід у софтмакс як імовірності журналу. Як ви сказали, чому б просто не нормалізувати всі результати, поділивши їх суму? Відповідь я знайшов у книзі « Глибоке навчання» Goodfellow, Bengio та Courville (2016) у розділі 6.2.2.

Скажімо, наш останній прихований шар дає нам z як активацію. Тоді софтмакс визначається як

Дуже коротке пояснення

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

Коротке пояснення

Найпопулярніший метод тренування нейронної мережі - це оцінка максимальної вірогідності. Ми оцінюємо параметри тети таким чином, щоб максимально збільшити ймовірність даних про навчання (розміром m). Оскільки ймовірність усього набору даних тренінгу є результатом ймовірності кожного зразка, простіше максимально збільшити ймовірність журналу набору даних, а отже, імовірність журналу кожного зразка, індексовану k:

Тепер ми зосередимось лише на softmax тут із уже заданим z, тому ми можемо замінити

при цьому я є правильним класом k-го зразка. Тепер ми бачимо, що, приймаючи логарифм софтмакс, для обчислення ймовірності вибірки журналу, ми отримуємо:

, що для великих відмінностей z приблизно дорівнює

Спочатку ми бачимо тут лінійну складову z_i. По-друге, ми можемо вивчити поведінку max (z) для двох випадків:

  1. Якщо модель правильна, то max (z) буде z_i. Таким чином, асимптоти часоподібної ймовірності дорівнюють нулю (тобто ймовірність 1) зі зростаючою різницею між z_i та іншими записами в z.
  2. Якщо модель невірна, то max (z) буде деяким іншим z_j> z_i. Отже, додавання z_i не повністю скасовує вихід -z_j, а ймовірність журналу приблизно (z_i - z_j). Це чітко говорить про модель, що потрібно зробити, щоб збільшити ймовірність журналу: збільшити z_i та зменшити z_j.

Ми бачимо, що в загальній ймовірності журналу будуть домінувати зразки, де модель неправильна. Крім того, навіть якщо модель справді неправильна, що призводить до насиченого софтмаксу, функція втрат не насичує. Це приблизно лінійно в z_j, це означає, що ми маємо приблизно постійний градієнт. Це дозволяє моделі швидко виправити себе. Зауважте, що це не стосується, наприклад, середньої помилки в квадраті.

Довге пояснення

Якщо софтмакс все ж здається вам довільним вибором, ви можете поглянути на виправдання використання сигмоїди в логістичній регресії:

Чому сигмоїдна функція замість чого-небудь іншого?

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


Привіт, можете пояснити, будь ласка, це твердження і як вам вдалося наблизитись? ", що для великих відмінностей z приблизно дорівнює",
хлопець з Лондона

45

Я знайшов пояснення тут дуже хорошим: CS231n: Конволюційні нейронні мережі для візуального розпізнавання.

На поверхні алгоритм softmax здається простим нелінійним (ми поширюємо дані експоненціально) нормалізацією. Однак є і більше того.

Зокрема, є кілька різних поглядів (те саме посилання, що і вище ):

  1. Інформаційна теорія - з точки зору теорії інформації функцію softmax можна розглядати як намагання мінімізувати перехресну ентропію між передбаченнями та істиною.

  2. Імовірнісний вигляд - з цієї точки зору ми насправді дивимося на ймовірності журналу, таким чином, коли ми здійснюємо експоненцію, ми закінчуємо необробленими ймовірностями. У цьому випадку рівняння softmax знаходить MLE (Максимальна оцінка ймовірності)

Підсумовуючи це, незважаючи на те, що рівняння софмакса здається, що воно може бути довільним, НЕ. Це фактично досить принциповий спосіб нормалізації класифікацій, щоб мінімізувати перехресну ентропію / негативну ймовірність між прогнозами та істиною.


2
Щоб додати до попередніх коментарів, похідна функції softmax - це просто softmax (1-softmax)
Rouzbeh

11
У мене з’являються причини використання крос-ентропійної втрати, але як це стосується софтмаксу? Ви сказали, що "функцію softmax можна розглядати як намагання мінімізувати перехресну ентропію між передбаченнями та істиною". Припустимо, я б застосував стандартну / лінійну нормалізацію, але все-таки використовую крос-ентропійну втрату. Тоді я б також намагався мінімізувати перехресну ентропію. Тож як софтмакс пов'язаний з перехресною ентропією, крім чисельних переваг?
Кіліан Батцнер

18
Щодо ймовірнісного погляду: яка мотивація перегляду ймовірностей журналу? Міркування здається трохи схожим на "Ми використовуємо e ^ x у софтмаксі, тому що ми інтерпретуємо х як імовірність журналу". З тими ж міркуваннями, які ми могли б сказати, ми використовуємо e ^ e ^ e ^ x у softmax, тому що ми інтерпретуємо x як log-log-log-імовірності (тут, звичайно, перебільшують). Я отримую чисельні переваги софмаксу, але яка теоретична мотивація його використання?
Кіліан Батцнер

5
@KilianBatzner Якщо вихід нейрона є ймовірністю журналу, то підсумовування виходів багатьох нейронів є множенням їх ймовірностей. Це частіше корисно, ніж сума ймовірностей.
alltom

1
@KilianBatzner Якщо ваші функції походять з різних гауссових кластерів (на кластері на клас), то ви можете отримати ідеальний класифікатор (логістична регресія). Існують деякі додаткові умови, але, по суті, ви можете виправдати / вивести softmax і logits з припущенням, що ви хочете відокремити гауссові кластери.
макси

16

Значення q_i представляють імовірність журналу. Щоб відновити значення ймовірності, вам потрібно їх експоненціювати.

Однією з причин того, що статистичні алгоритми часто використовують функції втрати імовірності ймовірності, є те, що вони є чисельнішими стабільними: добуток ймовірностей може бути представлений дуже невеликим числом плаваючої точки. Використовуючи функцію втрати ймовірності ймовірності, добуток ймовірностей стає сумою.

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

Як сторона, я вважаю, що це питання є більш підходящим для обміну теорією CS або обчисленнями стека науки.


12
q_i неявно не представляють імовірності журналу. Лише тоді, коли ми використовуємо softmax, явно припускаємо, що вони це роблять.
Том

6

Ми розглядаємо проблему класифікації багатокласових. Тобто, передбачувана змінна yможе приймати одну з kкатегорій, де k > 2. У теорії ймовірностей це, як правило, моделюється багаточленним розподілом. Мультиноміальний розподіл є членом експоненціальних розподілів сім'ї. Ми можемо реконструювати ймовірність, P(k=?|x)використовуючи властивості експоненціальних сімейних розподілів, вона збігається з формулою softmax.

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

Для отримання додаткової інформації та формального виведення, зверніться до конспектів лекцій CS229 (9.3 Softmax Regression) .

Крім того, корисний прийом зазвичай виконує до SoftMax є: SoftMax (х) = SoftMax (х + с) , SoftMax інваріантної до постійних зсувів у вхідних даних.

введіть опис зображення herse


Як це працює як функція активації, оскільки вона повертає однакові значення для 'x' і 'x + c'?
Суреш Похарел

1
Строго кажучи, softmaxце не функція активації. Функція активації - це елементарна операція - надання тензорному елементу розумно виконує нелінійну операцію для отримання іншого тензора. Але softmaxце векторна операція, вона створює вам нормалізований вектор, є внутрішні залежності між кожним елементом.
ГабріельЧу

5

Я думаю, що однією з причин може бути поводження з від’ємними числами та діленням на нуль, оскільки exp (x) завжди буде позитивним і більшим за нуль.

Наприклад, для a = [-2, -1, 1, 2]суми буде 0, ми можемо використовувати softmax, щоб уникнути поділу на нуль.


3
Зазвичай ви б віднімали мінімум, а потім ділили на max / sum. У вашому випадку це зробило б [0, 1, 3, 4]тоді поділ.
ubershmekel

1
@ubershmekel Це стикається з проблемою, що класу з найменшим балом завжди буде призначена ймовірність 0.
Alessandro Power

4

Припустимо, ми змінимо функцію softmax, щоб активація виводу була задана символом введіть тут опис зображення

де cпозитивна константа. Зверніть увагу, що c=1відповідає стандартній функції softmax. Але якщо ми використовуємо інше значення, cми отримуємо іншу функцію, яка, тим не менш, якісно схожа на softmax. Зокрема, покажіть, що активізація виходу утворює розподіл ймовірностей, як і для звичайної софтмакси. Припустимо, ми дозволяємо cстати великими, тобто c→∞. Яке граничне значення для вихідних активацій a^L_j? Після вирішення цієї проблеми вам повинно бути зрозуміло, чому ми думаємо про c=1функцію як "пом’якшену" версію максимальної функції. Це походження терміна "софтмакс". Ви можете прослідкувати деталі з цього джерела (рівняння 83).


Для мене ідея "пом’якшеної" версії максимальної функції - найкращий простий спосіб виправдати використання softmax.
ташушка

3

Якщо додати відповідь Пьотра Чапла, чим більше вхідних значень, тим більша ймовірність максимального введення для тієї ж пропорції та порівняно з іншими входами:

введіть тут опис зображення


2

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

З « Дослідження альтернатив Softmax, що належать до сфери сферичних втрат » https://arxiv.org/abs/1511.05042

Автори дослідили деякі інші функції, серед яких розширення Тейлора expі так званий сферичний софтмакс, і з’ясували, що іноді вони можуть виконуватись краще, ніж зазвичай softmax.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.