Під час впровадження ResNet Tensorflow я вважаю, що вони використовують ініціалізатор дисперсійного масштабування, а також ініціалізатор xavier є популярним. Я не маю надто багато досвіду щодо цього, що краще на практиці?
Під час впровадження ResNet Tensorflow я вважаю, що вони використовують ініціалізатор дисперсійного масштабування, а також ініціалізатор xavier є популярним. Я не маю надто багато досвіду щодо цього, що краще на практиці?
Відповіді:
Ініціалізація Ксав'є , спочатку запропонована Ксав'є Глоро та Йошуа Бенджіо в «Розумінні труднощів дресирування нейронних мереж глибокої подачі» , - це техніка ініціалізації ваг, яка намагається зробити відхилення виходів шару рівним дисперсії його входів. . Ця ідея виявилася дуже корисною на практиці. Природно, що ця ініціалізація залежить від функції активації шару. І у своїй роботі Глорот та Бенджо розглядали функцію логістичної активації сигмоїдів , що було вибором за замовчуванням на той момент.
Пізніше активація сигмоїдів була перевершена ReLu, оскільки вона дозволила вирішити проблему градієнтів, що зникають / вибухають. Отже, з'явилася нова техніка ініціалізації, яка застосувала ту саму ідею (врівноваження дисперсії активації) до цієї нової функції активації. Це було запропоновано Каймінг Хе в ін "Роботи глибоко в випрямлячі: перевершення продуктивності людського рівня за класифікацією ImageNet" , і тепер його часто називають ініціалізацією Він .
У tensorflow Ініціалізація He реалізована в variance_scaling_initializer()
функції (яка, власне, є більш загальним ініціалізатором, але за замовчуванням виконує функцію He ініціалізації), тоді як ініціалізатор Xavier є логічним xavier_initializer()
.
Підводячи підсумок, головна відмінність практиків машинного навчання полягає в наступному:
tanh()
функції активації, яку функцію ініціалізації я повинен використовувати.
Варіантне масштабування - це лише узагальнення Xavier: http://tflearn.org/initializations/ . Вони обидва діють за принципом, що масштаб градієнтів повинен бути однаковим у всіх шарах. Xavier, ймовірно, безпечніше використовувати, оскільки він витримав експериментальний тест часу; спроба вибрати власні параметри для масштабування дисперсії може перешкоджати навчанню або призвести до того, що ваша мережа взагалі не заробляє.