Softmax Function

Оновлено: 31.07.2023

Що таке Softmax у машинному навчанні?

Функція softmax зменшує значення K до реальних значень, які складають 1. Softmax перетворює ці значення, які можуть бути від'ємними, нульовими, додатними або більшими за одиницю, до значень 0, 1 та чисел між ними, що дозволяє розуміти їх як ймовірності.

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

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

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

Як наслідок, зазвичай додають шар класифікації softmax як останній шар нейронної мережі.

Функція Softmax у нейронній мережі

Функцію можна використовувати, наприклад, в кінці нейронної мережі. Розглянемо згорткову нейронну мережу, яка може визначити, чи є зображення людини або собаки. Варто зазначити, що зображення може бути або людиною, або собакою, але не обома, отже, ці дві групи є взаємовиключними.

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

Це означає, що результат може бути показаний користувачеві; наприклад, програма знає, що це людина в 90% випадків. Це також означає, що вихідні дані не потрібно нормалізувати перед подачею в інші алгоритми машинного навчання, оскільки вони гарантовано потрапляють в діапазон від 0 до 1.

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

Коли ми подаємо на вхід мережі зображення собаки, в ідеальному світі вона має повертати вектор [1, 0]. Коли ми вводимо зображення людини, ми хочемо отримати на виході [0, 1].

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

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

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

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

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

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