Ян Лекун та інші стверджують в 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 + е- k xk = 1к
Нітпік: танг - це також сигмоподібна функція. Будь-яка функція, що має форму S, є сигмоподібною. Те, що ви, хлопці, називаєте сигмоїдом - це логістична функція. Причина, чому логістична функція є більш популярною, - це історичні причини. Її вже давно використовують статистики. Крім того, деякі вважають, що це більш біологічно правдоподібно.