Яку функцію втрати слід використовувати для двійкового виявлення при виявленні обличчя / без обличчя в CNN?


11

Я хочу використовувати глибоке навчання для тренування бінарного виявлення обличчя / без обличчя, яку втрату я повинен використовувати, я думаю, що це SigmoidCrossEntropyLoss або Hinge-loss .

Це правильно, але мені також цікаво, чи варто використовувати софтмакс, але лише з двома класами?

Відповіді:


9

Втрати шарніру та перехресна ентропія зазвичай мають схожі результати. Ось ще один пост порівняння різних функцій втрат Які наслідки вибору різних функцій втрат в класифікації апроксимувати 0-1 втрати .

Це правильно, але мені також цікаво, чи варто використовувати софтмакс, але лише з двома класами?

Softmax - це не втрата, а нормалізаційна функція, її часто використовують разом із перехресною втратою ентропії, яка по суті еквівалентна SigmoidCrossEntropyLoss. Дивіться також перехресну ентропію чи ймовірність журналу у вихідному шарі


7

0

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

Ось кілька посилань для вас. Сподіваюся, вони допоможуть.
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss- функція для використання для машинного навчання


Не могли б ви пролити трохи світла на логістичну регресію на останньому шарі DNN? Я прочитав публікації, але насправді не бачу корисності sigmoid(як активації останнього шару). Спасибі
bit_scientist

2

Ви, безумовно, можете використовувати softmax лише з 2 класів "Face" та "Not Face" і інтерпретувати вихід softmax як оцінки довіри, що є приємною особливістю отримати деяку інтуїцію щодо вашої глибокої мережі.

Спробуйте втрату програмного забезпечення 2-класу і бінарні петлі. Нещодавно з’явився документ « Глибоке навчання» за допомогою лінійних векторних машин підтримки, що використовують SVM замість класифікатора softmax поверх глибоких конвертних мереж, і там є деякі перспективні результати.


2

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


Вам слід оновити своє перше посилання.
nbro

0

Теоретично софтмакс з 2-х класів можна переписати як сигмоподібний, отже, різниці в результатах між ними не повинно бути. Практично, як зазначав @dontloo, кількість параметрів у вихідному шарі буде подвоєною (не впевнений, що це може призвести до проблем із накладанням), і, звичайно, у вас буде два бали для двох класів (Face та Non_Face).

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