Що визначає вибір функції (Softmax vs Sigmoid) у логістичному класифікаторі?
Припустимо, є 4 вихідні класи. Кожна з наведених вище функцій дає ймовірність правильного виходу кожного класу. То який із них взяти за класифікатор?
Що визначає вибір функції (Softmax vs Sigmoid) у логістичному класифікаторі?
Припустимо, є 4 вихідні класи. Кожна з наведених вище функцій дає ймовірність правильного виходу кожного класу. То який із них взяти за класифікатор?
Відповіді:
Функція сигмовидної використовується для двох класів логістичної регресії, в той час як SoftMax функція використовується для мультіклассіруют логістичної регресії (він же MaxEnt, полиномиальной логістичної регресії, SoftMax регресії, максимальної ентропії по класифікатору).
У двокласовій логістичній регресії прогнозовані ймовірності наступні, використовуючи сигмоїдну функцію:
У багатокласовій логістичній регресії з класами прогнозовані ймовірності виглядають наступним чином, використовуючи функцію softmax:
Можна помітити, що функція softmax - це розширення сигмоїдної функції до випадку багатокласового, як пояснено нижче. Давайте розглянемо багатокласну логістичну регресію з класами:
з . Ми бачимо, що ми отримуємо ті ж ймовірності, що і в двокласовій логістичній регресії за допомогою сигмоїдної функції. Wikipedia розширюється дещо більше з цього приводу.
Насправді вони рівнозначні, в тому сенсі, що одне може перетворитися на інше.
Припустимо, що ваші дані представлені вектором довільної розмірності, і ви створили для нього двійковий класифікатор, використовуючи афінну трансформацію з наступним софтмаксом:
Перетворимо його в еквівалентний двійковий класифікатор, який використовує сигмоїд замість софтмакс. Перш за все, ми маємо вирішити, яка ймовірність того, що ми хочемо вивести сигмоїду (що може бути для класу або ). Цей вибір абсолютно довільний, тому я вибираю клас . Тоді мій класифікатор матиме форму:
Класифікатори еквівалентні, якщо ймовірності однакові, тому ми повинні накласти:
Заміняючи , і їх виразами у вигляді і і робимо кілька прямих алгебраїчним маніпулюванням, ви можете переконатися, що рівність вище виконується, якщо і лише якщо і задано:
Я помітив, що люди часто звертаються до цього питання, коли шукають, чи використовувати сигмоїд проти софтмакс у нейронних мережах. Якщо ви один із тих, хто будує класифікатор нейронної мережі, ось як вирішити, чи застосовувати сигмоїд чи софтмакс до вихідних значень вихідної мережі з вашої мережі:
Довідка: для більш детального пояснення, коли використовувати сигмоїд проти софтмакс у дизайні нейронної мережі, включаючи приклади розрахунків, дивіться цю статтю: "Класифікація: Сигмоїд проти Софтмакс".
Додаючи до всіх попередніх відповідей - хотілося б зазначити той факт, що будь-яка проблема класифікації в багатьох класах може бути зведена до кількох задач класифікації бінарних методів, використовуючи метод "один проти всіх", тобто маючи сигмоїди C (коли C - число класи) та інтерпретація кожної сигмоїди є ймовірністю перебування в цьому конкретному класі чи ні, та прийняття максимальної ймовірності.
Так, наприклад, у прикладі цифр MNIST ви можете використовувати softmax або десять сигмоїдів. Насправді це робить Ендрю Нг у своєму курсі ML Coursera. Ви можете перевірити тут , як Andrew Ng використовували 10 сигмоид для мультіклассіруют класифікації (адаптовано з Matlab для пітона мною), і ось моя SoftMax адаптації в пітона.
Крім того, варто зазначити, що, хоча функції еквівалентні (з метою багатокласової класифікації), вони дещо відрізняються за своєю реалізацією (особливо щодо їх похідних та способів подання у).
Велика перевага використання декількох двійкових класифікацій (тобто Sigmoids) над однією багатокласовою класифікацією (тобто Softmax) - полягає в тому, що якщо ваша softmax занадто велика (наприклад, якщо ви використовуєте вбудовуване словник розміром словника розміром 10 К або більше, що використовується гаряче слово) ) - це може бути неефективним для його навчання. Що ви можете зробити замість цього, це взяти невелику частину вашого навчального набору і використовувати його для тренування лише невеликої частини сигмоїдів. Це головна ідея негативного відбору проб .