ЯК: глибока ініціалізація ваги нейронної мережі


10

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

  1. Нормалізуйте дані про якість & & handpick
  2. вибрати інший алгоритм навчання (наприклад, RMSprop замість Gradient Descent)
  3. вибрати більш круту градієнтну вартість вартості (наприклад, перехресна ентропія замість MSE)
  4. Використовуйте різні структури мережі (наприклад, шари згортання замість Feedforward)

Я чув, що є розумні способи ініціалізації кращого ваги. Наприклад, ви можете вибрати величину краще: Glorot та Bengio (2010)

  • для сигмоподібних одиниць: зразок a Uniform (-r, r) зr=6Niн+Nоут
  • або гіперболічні дотичні одиниці: зразок Уніформи (-r, r) зr=46Niн+Nоут

Чи є якийсь послідовний спосіб ініціалізації ваг краще?

Відповіді:


7

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


[1] вирішує питання:

По-перше, ваги не повинні встановлюватися на нулі, щоб порушити симетрію при зворотному програмуванні:

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

Деякі стратегії ініціалізації:

  • [2] та [3] рекомендують масштабувати обернену площу кореня вентилятора
  • Глоро і Бенджо (2010) та навчальні посібники з глибокого навчання використовують поєднання фан-ін і фан-ауту:
    • для сигмоподібних одиниць: зразок a Uniform (-r, r) з r=6вентилятор+вентилятор (вентилятор - це кількість входів пристрою).
    • для гіперболічних дотичних одиниць: зразок уніформи (-r, r) з r=46вентилятор+вентилятор (вентилятор - це кількість входів пристрою).
  • у випадку КВМ добре працює гаусівський нуль із невеликим стандартним відхиленням приблизно 0,1 або 0,01 (Hinton, 2010) для ініціалізації ваг.
  • Ортогональна ініціалізація випадкової матриці, тобто W = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)використовуйте uяк матрицю ініціалізації.

Також непідконтрольна попередня підготовка може допомогти в деяких ситуаціях:

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

Деякі бібліотеки ANN також мають цікаві списки, наприклад, Lasagne :

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[1] Бенджо, Йошуа. " Практичні рекомендації щодо градієнтної підготовки глибоких архітектур ". Нейронні мережі: трюки торгівлі. Спрингер Берлін Гейдельберг, 2012. 437-478.

[2] LeCun, Y., Bottou, L., Orr, GB, and Muller, K. (1998a). Ефективна підтримка. У нейромережах, хитрощі торгівлі .

[3] Глоро, Ксав'є та Йошуа Бенджо. " Розуміння труднощів підготовки глибоких нейронних мереж ". Міжнародна конференція з питань штучного інтелекту та статистики. 2010 рік.


2
Щось, що вам здається, вам не вистачає, - це пакетна нормалізація. Опис тут: arxiv.org/abs/1502.03167 Можливо, буде корисним.
Joonatan Samuel

Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun опублікували нову статтю, яка включає в себе варіацію ініціалізації ваги Ксав'є від Glorot та Bengio: "Заглиблення глибоко в випрямлячі: перевершення продуктивності людського рівня за класифікацією ImageNet" .
мюль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.