Багаточленна логістична втрата проти (Поперечна Ентропія проти Квадратної Помилки)


9

Я зауважив, що Caffe (глибока рамка навчання) використовувала рівень втрат Softmax SoftmaxWithLoss як вихідний шар для більшості зразків моделі .

Наскільки мені відомо, рівень втрати Softmax - це поєднання багатошарового логістичного рівня втрат та шару Softmax .

З Кафе вони сказали це

Розрахунок градієнта рівня втрат Softmax втрат більш чисельно стабільний

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

Однак я хотів би дізнатися більше, які відмінності / переваги / недоліки мають ці 3 функції помилок - це багатоцінна логістична втрата , перехресна ентропія (CE) та квадратична помилка (SE) в контрольованій перспективі навчання? Будь-які підтримуючі статті?


1
Лише натяк: я думаю, ви отримаєте швидшу відповідь, якщо до своїх питань додасте тег "caffe". Також розміщення його в stackoverflow замість stackexchange може приділити йому більше уваги).
mcExchange

1
Комбінація робить градієнт легким для обчислення, просто y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Відповіді:


11

На мою думку, функція втрат - це об'єктивна функція, яку ми хочемо, щоб наші нейронні мережі оптимізували її ваги відповідно до неї. Тому воно є конкретним завданням, а також якось емпіричним. Щоб зрозуміти, мультиноміальна логістична втрата та перехресна ентропія втрати однакові (дивіться на http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). Функція вартості мультиноміального логістичного втрати подібна до цього J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

Зазвичай використовується для завдання класифікації. Square Error має рівняння типу 12Ni=1Nxi1xi222.

Тому його зазвичай використовують для мінімізації з використанням деяких помилок конструкції.

EDIT: @MartinThoma Вищенаведена формула втрат мультиноміальної логістики стосується лише двійкового випадку, для загального випадку вона повинна бути , де K - кількість категорій.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]


2
У Caffe MultinomialLogisticLoss є , тож хто тут не так? 1Nn=1Nlog(pn,ln)
травень

Не помилково, - бінарні змінні, врешті-решт, це може бути зведено до вашої рецептури. yi
beahacker

Я подумав, що логістичні втрати для багатопоштових повідомлень без другої суми, томуJ(θ)=1m[i=1my(i)loghθ(x(i))]
Мартін Тома

1
@MartinThoma Моя формула призначена лише для двійкового випадку, для загального випадку вона повинна бутиJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker

@beahacker Скажіть, будь ласка, чому друга зведення не включена до мультимінального випадку, як вказував Мартін Тома. Я намагаюся зрозуміти, чому це робиться так. Принаймні, ти міг би вказати мені на якийсь ресурс, на який слід заглянути.
Нандееш

2

Мені хотілося б дізнатися більше, які відмінності / переваги / недоліки мають ці 3 функції помилок - це мультиноміальна логістична втрата, перехресна ентропія (CE) та квадратична помилка (SE) у контрольованій перспективі навчання?

Мультиноміальна логістична втрата фактично така ж, як перехресна ентропія. Подивіться на цю функцію (функція витрат у софтмаксі ): де m - номер вибірки, K - номер класу.

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

Функція індикатора ( ) визначає, чи є внизу 0 або 1 у визначенні перехресної ентропії , яке в навчальних даних позначено як одне гаряче, і - умовна вірогідність програмної макси (q (x), як показано нижче). 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

І MSE здебільшого стосується ситуації, коли функцією зв'язку є функція єдності (розподіл відповідей слід за нормальним розподілом), стандартна лінійна регресія, тоді як поперечна ентропія, як правило, там, де функцією зв'язку є функція logit. Ось дивовижне порівняння , на яке можна звернутися.

Будь-які підтримуючі статті?

Окрім тих, що містяться у посиланнях, рекомендую вам це ілюстративне: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md


1
MSE, застосований до (двійкового) класифікатора, називається Brier score.
Дейв

0

КОРОТКИЙ ВІДПОВІДЬ За іншими відповідями Мультиноміальна логістична втрата та перехресна ентропія втрати однакові.

Перехресна ентропійна втрата - це функція альтернативної вартості для NN з функцією активації сигмоїдів, що вводиться штучно для усунення залежності від від рівнянь оновлення. Деякі рази цей термін уповільнює процес навчання. Альтернативні методи - регульована функція витрат.σ

У таких типах мереж, можливо, потрібно мати ймовірності як вихід, але цього не відбувається з сигмоїдами в багаточленній мережі. Функція softmax нормалізує виходи та примушує їх у межах . Це може бути корисно, наприклад, у класифікації MNIST.[0,1]

ДОВГИЙ ВІДПОВІДЬ З деякими оглядами

Відповідь досить довга, але я спробую підсумувати.

Першими сучасними штучними нейронами, які були використані, є сигмоїди, функцією яких є:

σ(x)=11+ex
який має таку форму: введіть тут опис зображення

Крива хороша тим, що гарантує, що вихід знаходиться в діапазоні .[0,1]

Щодо вибору функції витрат, то природним вибором є квадратична витратна функція, похідна якої гарантовано існує, і ми знаємо, що вона має мінімум.

Тепер розглянемо NN з сигмоїдами, навченими квадратичною функцією витрат, з шарами.L

Ми визначаємо функцію витрат як суму квадратичних помилок у вихідному шарі для набору входів :X

C=12NxNj=1K(yj(x)ajL(x))2

де - j-й нейрон у вихідному шарі , потрібний вихід і - кількість навчальних прикладів.ajLLyjN

Для простоти розглянемо помилку для одного входу:

C=j=1K(yj(x)ajL(x))2

Тепер вихід активації для нейрона в шарі , :jaj

aj=kwjkaj1+bj=wjaj1+bj

Більшість випадків (якщо не завжди) NN тренується за допомогою однієї з методик спуску градієнта, яка в основному полягає в оновленні ваг і зміщення невеликими кроками до напрямку мінімізації. Мета полягає в застосуванні невеликої зміни ваг і ухилів у бік напрямку, що мінімізує функцію витрат.wb

Для невеликих кроків виконуються наступні дії:

ΔCCviΔvi

Наші - ваги та ухили. Будучи функцією витрат, ми хочемо мінімізувати, тобто знаходити належне значення . Припустимо, ми обираємо , тоді: viΔvi

Δvi=ηCvi
ΔCη(Cvi)

що означає зміну в параметрі зменшило функції витрат з допомогою .ΔviΔC

Розглянемо -й вихідний нейрон:j

C=12(y(x)ajL(x)2
ajL=σ=11+e(wjaj1+bj)

Припустимо, ми хочемо оновити вагу яка є вагою від нейрона у шарі до -го нейрона в шарі \ ell. Тоді ми маємо:wjkk1j

wjkwjkηCwjk
bjbjηCbj

Взяття похідних за допомогою ланцюгового правила:

Cwjk=(ajL(x)y(x))σak1
Cbj=(ajL(x)y(x))σ

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

Тепер похідна для загальної єдиної змінної сигмоїди дорівнює: z

dσ(z)dz=σ(z)(1σ(z))

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

Мотивація функції перехресної ентропії

Щоб побачити, як була створена перехресна ентропія, припустимо, щойно з'ясували, що термін уповільнює процес навчання. Ми можемо задатися питанням, чи можна вибрати функцію витрат, щоб термін зник. В основному можна захотіти:σσ

Cw=x(ay)Cb=(ay)
З ланцюгового правила у нас є: Порівнюючи потрібне рівняння з правилом ланцюга, отримуємо Використовуючи метод прикриття:
Cb=Caab=Caσ(z)=Caσ(1σ)
Ca=aya(1a)
Ca=[ylna+(1y)ln(1a)]+const
Щоб отримати функцію повної вартості, нам слід провести середнє значення для всіх навчальних зразків де константа тут є середнім показником окремих констант для кожного прикладу навчання.
Ca=1nx[ylna+(1y)ln(1a)]+const

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

Softmax

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

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

Якщо ви хочете, щоб вони дорівнювали до ви використовуєте функцію softmax, яка нормалізує результати, щоб сума дорівнювала .11

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

Однак

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