Я задаю собі це питання місяцями. У відповідях CrossValided та Quora всі перераховані приємні властивості логістичної сигмоїдної функції, але все здається, що ми вміло здогадалися про цю функцію. Те, що я пропустив, було виправданням його вибору. Нарешті я знайшов його у розділі 6.2.2.2 книги «Глибоке навчання» Бенджо (2016) . Моїми власними словами:
Коротше кажучи, ми хочемо, щоб логарифм виводу моделі був придатним для градієнтної оптимізації логістичної ймовірності навчальних даних.
Мотивація
- Ми хочемо лінійну модель, але ми не можемо використовувати безпосередньо як .z=wTx+bz∈(−∞,+∞)
- Для класифікації має сенс припустити розподіл Бернуллі та моделювати його параметр в .θP(Y=1)=θ
- Отже, нам потрібно зіставити від до щоб зробити класифікацію.z(−∞,+∞)[0,1]
Чому функція логістичної сигмоїди?
Відсічення з дає нульовий градієнт для поза . Нам потрібен сильний градієнт всякий раз, коли прогноз моделі невірний, оскільки ми вирішуємо логістичну регресію з градієнтним спуском. Для логістичної регресії рішення закритої форми не існує.zP(Y=1|z)=max{0,min{1,z}}z[0,1]
Логістична функція має приємну властивість асимптотизувати постійний градієнт, коли прогноз моделі невірний, враховуючи, що ми використовуємо Максимальну оцінку ймовірності для відповідності моделі. Це показано нижче:
Для чисельних переваг можна оцінити максимальну ймовірність, зменшивши негативну ймовірність даних про навчання. Отже, наша витратна функція:
J(w,b)=1m∑i=1m−logP(Y=yi|xi;w,b)=1m∑i=1m−(yilogP(Y=1|z)+(yi−1)logP(Y=0|z))
Оскільки , ми можемо зосередитись на випадку . Отже, питання полягає в тому, як моделювати враховуючи, що у нас .P(Y=0|z)=1−P(Y=1|z)Y=1P(Y=1|z)z=wTx+b
Очевидними вимогами до функції відображення в є:fzP(Y=1|z)
- ∀z∈R:f(z)∈[0,1]
- f(0)=0.5
- f має бути обертально симетричним wrt , тобто , так що перегортання знаків класів не впливає на функцію витрат.(0,0.5)f(−x)=1−f(x)
- f має бути зменшуваним, безперервним та диференційованим.
Ці вимоги виконуються за допомогою зміни масштабів сигмоїдних функцій . І і їх виконують. Однак сигмоїдні функції відрізняються залежно від їх поведінки під час градієнтної оптимізації вірогідності ймовірностей. Різницю ми можемо побачити, включивши логістичну функцію у нашу функцію витрат.f(z)=11+e−zf(z)=0.5+0.5z1+|z|f(z)=11+e−z
Насичення дляY=1
Для і , вартість однієї неправильно класифікованої вибірки (тобто ) становить:P(Y=1|z)=11+e−zY=1m=1
J(z)=−log(P(Y=1|z))=−log(11+e−z)=−log(ez1+ez)=−z+log(1+ez)
Ми можемо бачити, що існує лінійна складова . Тепер ми можемо розглянути два випадки:−z
- Коли велике, передбачення моделі було правильним, оскільки . У функції витрат термін додає асимптоти до для великого . Таким чином, він приблизно скасовує вихід, що призводить до приблизно нульової вартості для цього зразка та слабкого градієнта. Це має сенс, оскільки модель вже передбачає правильний клас.zY=1log(1+ez)zz−z
- Коли мало (а велика), прогноз моделі було НЕ правильно, так . У функції витрат термін додає асимптоти до для малих . Таким чином, загальна вартість для цього зразка становить приблизно , тобто градієнт wrt становить приблизно . Це полегшує моделлю виправити неправильне передбачення на основі постійного градієнта, який вона отримує. Навіть для дуже маленького не відбувається насичення, яке може спричинити зникнення градієнтів.z|z|Y=1log(1+ez)0z−zz−1z
Насичення дляY=0
Вище ми зосередили увагу на випадку . Для функція витрат поводиться аналогічно, забезпечуючи сильні градієнти лише тоді, коли прогноз моделі невірний.Y=1Y=0
Це функція витрат для :J(z)Y=1
Це функція softplus в горизонтальному напрямку. Для це функція softplus.Y=0
Альтернативи
Ви згадали альтернативи логістичної сигмоїдної функції, наприклад . У нормі це означатиме, що ми моделюємо .z1+|z|[0,1]P(Y=1|z)=0.5+0.5z1+|z|
Під час MLE функцією витрат для буде тодіY=1
J(z)=−log(0.5+0.5z1+|z|) ,
що виглядає приблизно так:
Ви можете бачити, що градієнт функції витрат стає слабкішим і слабшим для .z→−∞