Изменения

Перейти к: навигация, поиск

Обсуждение участника:Mishenkoil

1885 байт добавлено, 16:37, 9 мая 2022
инициализация He
Поэтому для начальной инициализации настраиваемых параметров стоит использовать такое распределение, что $\mathrm{Var}[w_i]=\frac{1}{n_{in}}$, которое позволит сохранить дисперсию входных данных.
===Метод инициализации Завьера (Xavier)<ref>[http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf Understanding the difficulty of training deep feedforward neural networks]</ref>.===
Предыдущий подход хорошо работает, когда размерность наших данных не изменяется после преобразований $(n_{in} == n_{out})$, но так бывает не всегда. В качестве компромисса Xavier Glorot и Yoshua Bengio предлагают инициализировать параметры из распределения с дисперсией $\mathrm{Var}[w_i]=\frac{2}{n_{in}+n_{out}}$.
Этот способ инициализации хорошо подойдет для симметричных относительно нуля функций активации (гиперболический тангенс, сигмоид), для ReLU<ref>[https://en.wikipedia.org/wiki/Rectifier_(neural_networks) ReLU, Wikipedia]</ref> данный способ не подходит.
 
===Метод инициализации He===
 
Поскольку ReLU несимметричная функция $f(x) = max(0, x)$, мы уже не можем утверждать, что среднее значение входных данных в каждом преобразовании будет нулевым:
*<tex>(\mathrm{E}[x_i] \neq 0, \mathrm{E}[w_i]=0)</tex><br><tex>\Rightarrow \mathrm{Var}[y_i]=\mathrm{E}[x_i]^2\mathrm{Var}[w_i] + \mathrm{Var}[w_i]\mathrm{Var}[x_i]=\mathrm{Var}[w_i](\mathrm{E}[x_i]^2 + \mathrm{Var}[x_i])=\mathrm{Var}[w_i]\mathrm{E}[x_i^2]</tex><br><tex>\Rightarrow \mathrm{Var}[y]=n_{in}\mathrm{Var}[w_i]\mathrm{E}[x_i^2]</tex>
 
Поэтому мы будем пытаться контролировать дисперсию не между слоями, а между функциями активации ReLU. Пусть представление на входе было получено после применения данной функции активации к предыдущему представлению $z_{prev}$:
*<tex>x=\mathrm{ReLU}(z_{prev})</tex>
Тогда с учётом поведения ReLU и того, что $\mathrm{E}(z_{prev})=0$, можно сказать, что:
*<tex>\mathrm{E}[x_i^2]=\frac{1}{2}\mathrm{Var}[z_{prev}]</tex><br><tex>\Rightarrow \mathrm{Var}[y]=\frac{1}{2}n_{in}\mathrm{Var}[w_i]\mathrm{Var}[z_{prev}]</tex>
 
Получается, что при использовании ReLU, нужно инициализировать параметры из распределения с дисперсией $\mathrm{Var}[w_i]=\frac{2}{n_{in}}$. Для нормального распределения $N$ это будет:
*<tex>w_i \sim N(0,\frac{2}{n_{in}})</tex>
== Граф вычислений ==
#[http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BA%D1%83%D1%80%D1%81_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9%2C_%D0%9A.%D0%92.%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D1%86%D0%BE%D0%B2%29 Курс лекций по машинному обучению] {{---}} Воронцов К.В.
#[https://ml-handbook.ru/chapters/neural_nets/training Онлайн-учебник по машинному обучению от ШАД]
# Riedmiller, M., & Braun, H. (1993). A direct adaptive method for faster backpropagation learning: The RPROP algorithm. In Neural Networks, 1993., IEEE International Conference on (pp. 586-591). IEEE.
50
правок

Навигация