Чому танг майже завжди кращий за сигмоподібну як функцію активації?


33

У курсі " Нейронні мережі та глибоке навчання" Ендрю Нґ на "Coursera" він говорить, що використання майже завжди краще використовувати .тангодсiгмоiг

Причина, яку він наводить, полягає в тому, що результати, що використовують центр навколо 0, а не 0,5, і це "трохи спрощує навчання для наступного шару".тангодсiгмоiг

  1. Чому централізоване навчання швидкості виведення активації? Я припускаю, що він посилається на попередній шар, як навчання відбувається під час підключення?

  2. Чи є якісь особливості, які роблять кращим? Чи затримка крутішого градієнта зникає з градієнтами?тангод

  3. Чи є ситуації, коли був би кращим?сiгмоiг

Віддають перевагу математичні, інтуїтивні відповіді.


13
Сигмоїдна функція має S-подібну форму (звідси і назва). Імовірно, ви говорите про логістичну функцію . Крім масштабу та місця розташування, вони по суті однакові: . Тож справжній вибір - чи хочете виходи в інтервалі чи інтерваліех1+ехлогістичний(х)=12+12тан(х2)(-1,1)(0,1)
Генрі

Відповіді:


21

Ян Лекун та інші стверджують в Efficient BackProp це

Конвергенція зазвичай швидша, якщо середнє значення кожної вхідної змінної за навчальним набором близько до нуля. Щоб побачити це, розглянемо крайній випадок, коли всі вклади позитивні. Ваги до конкретного вузла в першому ваговому шарі оновлюються величиною, пропорційною де - (скалярна) помилка у цьому вузлі, а - вхідний вектор (див. Рівняння (5) та (10)). Коли всі компоненти вхідного вектора позитивні, усі оновлення ваг, які подаються у вузол, матимуть однаковий знак (тобто знак ( )). В результаті ці ваги можуть лише зменшитись або збільшитися разомδхδхδдля заданої схеми введення. Таким чином, якщо вектор ваги повинен змінити напрямок, він може зробити це лише за допомогою зигзагоподібного руху, який є неефективним і, таким чином, дуже повільним.

Ось чому ви повинні нормалізувати свої входи, щоб середнє значення дорівнювало нулю.

Ця ж логіка стосується і середніх шарів:

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

Postscript @craq вказує на те, що ця цитата не має сенсу для ReLU (x) = max (0, x), яка стала широко популярною функцією активації. Хоча ReLU уникає першої проблеми зі зигзагом, згаданої LeCun, вона не вирішує цю другу точку LeCun, яка каже, що важливо піднести середнє значення до нуля. Мені б хотілося знати, що LeCun може сказати з цього приводу. У будь-якому випадку є документ під назвою Batch Normalization , який базується на роботі LeCun і пропонує спосіб вирішити це питання:

Давно відомо (LeCun et al., 1998b; Wiesler & Ney, 2011), що мережеве навчання перетворюється швидше, якщо його входи побілені - тобто лінійно трансформуються, щоб мати нульові значення і відхилення одиниць, і декоррелюються. Оскільки кожен шар спостерігає за вхідними даними шарів нижче, було б вигідно досягти однакового відбілювання входів кожного шару.


До речі, це відео від Siraj багато що пояснює про функції активації за 10 веселих хвилин.


@elkout каже: "Реальною причиною того, що тан вважається кращим порівняно з сигмоїдним (...), є те, що похідні танху більші, ніж похідні сигмоїди".

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

Логістична функція має форму . Зазвичай ми використовуємо , але ніщо не забороняє вам використовувати інше значення для щоб зробити ваші похідні ширшими, якщо це була ваша проблема.σ(х)=11+е-кхк=1к


Нітпік: танг - це також сигмоподібна функція. Будь-яка функція, що має форму S, є сигмоподібною. Те, що ви, хлопці, називаєте сигмоїдом - це логістична функція. Причина, чому логістична функція є більш популярною, - це історичні причини. Її вже давно використовують статистики. Крім того, деякі вважають, що це більш біологічно правдоподібно.


1
Вам не потрібно цитування, щоб показати, що , лише обчислення середньої школи. Ми знаємо, що це правда, тому що , тому вам просто потрібно максимізувати a увігнутий квадратик. що може бути перевірено інспекцією. σ ( x ) = σ ( x ) ( 1 - σ ( x ) ) 0,25 0 < σ ( x ) < 1 tanh ( x ) = sech 2 ( x ) = 2maxxσ(x)<maxxtanh(x)
σ(x)=σ(x)(1σ(x))0.25
0<σ(x)<1
tanh(x)=sech2(x)=2exp(x)+exp(x))1.0
Sycorax повідомляє про відновлення Моніки

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

затриматися ... це звучить правдоподібно, але якщо середні шари повинні мати середній нульовий вихід, то як ReLU працює так добре? Хіба це не протиріччя?
craq

@ekoulier, похідна від що перевищує , не є проблемою. Ви можете просто масштабувати його, якщо це вас турбує. сигмовидноїтансигмовидної
Рікардо Крус

@craq, хороший момент, я думаю, що це є недоліком аргументу LeCun. Я додав посилання на документ про нормалізацію партії, де вона детальніше обговорює це питання та як його можна покращити. На жаль, цей документ не порівнює релу з таном, він лише порівнює релу з логістичним (сигмоїдним).
Рікардо Крус

14

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

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

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

Сигмоїд проти гіперболічного дотичного

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

танх=2σ(2х)-1

І взагалі, ми можемо довести, що у більшості випадків .|тан(х)х|>|σ(х)х|


То чому б проф. Нг сказав, що вигода функції в середньому становить ? 0
Том Хейл

2
Не факт, що середнє значення становить близько 0, що робить швидшими. Справа в тому, що знаходження навколо нуля означає, що діапазон також є тертим (порівняно з приблизно 0,5 у випадку ), що призводить до отримання більших похідних, що майже завжди призводить до більш швидкого зближення до мінімуму. Я сподіваюсь, що зараз це зрозуміло. Ng правильно, що ми віддаємо перевагу функції оскільки вона зосереджена навколо 0, але він не надав повного обґрунтування. сигмовидний тантансигмовидноїтан
ekoulier

Нульове центрування важливіше, ніж коефіцієнт , оскільки воно перекриває розподіл активацій і це шкодить продуктивності. Якщо ви візьмете і в менший рівень навчання, він навчиться нарівні з . 2 х2хsigmoid(x) - 0.52хtanh
Максим

@Maxim Яке "це" перекосує розподіл активацій, нульове центрування або ? Якщо нульове центрування є доброю річчю, я все ще не відчуваю, що "чому" цього було відповідено. 2х
Том Хейл

3

Відповідаючи на частину питання, поки що не було вирішено:

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

Оскільки очікується, що вихід мережі буде від до , логістика є ідеальним вибором, оскільки саме його діапазон . Не потрібно масштабування та зміщення .01(0,1)тангод


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

Звідки ти знаєш, що це задумано в ОП? Здається, він задавав загальне запитання.
Том Хейл

2

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

Функція tanh, з іншого боку, має похідну до 1,0, що робить оновлення W і b значно більшими.

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

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

введіть тут опис зображення

Повний зошит, який я написав, тут https://www.kaggle.com/moriano/a-showcase-of-how-relus-can-speed-up-the-learning

Якщо це допомагає, ось графіки похідних функції tanh та сигмоїдної (зверніть увагу на вертикальну вісь!)

введіть тут опис зображення

введіть тут опис зображення


(-1) Хоча це цікава ідея, вона не стоїть на своєму. Зокрема, більшість методів оптимізації, використовуваних для DL / NN, - це градієнтні методи першого порядку, які мають ступінь навчання . Якщо максимальна похідна стосовно однієї функції активації занадто мала, можна було б просто просто підвищити рівень навчання. α
Cliff AB

Ви не ризикуєте не мати стабільної кривої навчання з більш високою швидкістю навчання?
Хуан Антоніо Гомес Моріано

Ну а якщо похідні є більш стабільними, то підвищення рівня навчання менше шансів дестабілізувати оцінку.
Cliff AB

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