Изменения

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

Проблемы нейронных сетей

284 байта добавлено, 00:41, 23 января 2021
Внесение второго набора правок
[[Нейронные сети , перцептрон | Нейронные сети]] считаются универсальными моделями в машинном обучении, поскольку позволяют решать широкий класс задач. Однако, при их использовании могут возникать различные проблемы.
= Проблема взрывающегося (затухающего) градиента в нейронных сетях Взрывающийся и затухающий градиент =
== Определение ==
== Причины ==
[[Файл:SigmoidDerivative.png|upright=1.0|thumb|Рисунок 1: . График сигмоиды и ее производной<ref>[https://towardsdatascience.com/derivative-of-the-sigmoid-function-536880cf918e towardsdatascience.com {{---}} Derivative of the sigmoid function]</ref>]]
Такая проблема может возникнуть при использовании нейронных сетях классической [[Практики реализации нейронных сетей#Функции активации | функцией активации]] ''(англ. activation function)'' сигмоиды ''(англ. sigmoid)'':
Эта функция часто используется, поскольку множество ее возможных значений {{---}} отрезок $[0, 1]$ {{---}} совпадает с возможными значениями вероятностной меры, что делает более удобным ее предсказание. Также график сигмоиды соответствует многим естественным процессам, показывающим рост с малых значений, который ускоряется с течением времени, и достигающим своего предела<ref>[https://en.wikipedia.org/wiki/Sigmoid_function#Applications wikipedia.org {{---}} Sigmoid function, Applications]</ref> (например, рост популяции).
Пусть сеть состоит из подряд идущих нейронов с функцией активации $\sigma(x)$; функция потерть ''(англ. loss function)'' $L(y) = MSE(y, \hat{y}) = (y - \hat{y})^2$ ''(англ. MSE {{---}} [[ Оценка качества в задачах классификации и регрессии#Средняя квадратичная ошибка (англ. Mean Squared Error, MSE) | Mean Square Error]])''; $u_d$ {{---}} значение, поступающее на вход нейрону на слое $d$; $w_d$ {{---}} вес нейрона на слое $d$; $y$ {{---}} выход из последнего слоя. Оценим частные производные по весам такой нейронной сети на каждом слое. Оценка для производной сигмоиды видна из рисунка 1.
$\frac{\partial(L(y))}{\partial(w_d)} = \frac{\partial(L(y))}{\partial(y)} \cdot \frac{\partial(y)}{\partial(w_d)} = 2 (y - \hat{y}) \cdot \sigma'(w_d u_d) u_d \leq 2 (y - \hat{y}) \cdot \frac{1}{4} u_d$
=== Использование другой функции активации ===
[[Файл:SigmoidTanhReLUSoftplus.png|upright=1.0|thumb|Рисунок 2: . Графики функций активации: sigmoid, tanh, ReLU, softplus]]
Как уже упоминалось выше, подверженность нейронной сети проблемам взрывающегося или затухающего градиента во многом зависит от свойств используемых [[Практики реализации нейронных сетей#Функции активации | функций активации]]. Поэтому правильный их подбор важен для предотвращения описываемых проблем.
=== Использование Residual blocks ===
[[Файл:Residual.png|upright=1.0|thumb|Рисунок 3: . Устройство residual block<ref>[https://en.wikipedia.org/wiki/Residual_neural_network wikipedia.org {{---}} Residual neural network]</ref>]]
В данной конструкции вывод нейрона подается как следующему нейрону, так и нейрону на расстоянии 2-3 слоев впереди, который суммирует его с выходом предшествующего нейрона, а функция активации в нем {{---}} ReLU (см. рисунок 3). Такая связка называется shortcut. Это позволяет при обратном распространении ошибки значениям градиента в слоях быть более чувствительным к градиенту в слоях, с которыми связаны с помощью shortcut, то есть расположенными несколько дальше следующего слоя.
=== Регуляризация весов ===
[[Регуляризация | Регуляризация]] заключается в том, что слишком большие значения весов будут увеличивать функцию потерь. Таким образом, в процессе обучения нейронная сеть помимо оптимизации ответа будет также минимизировать веса, не позволяя им становиться им слишком большими.
=== Обрезание градиента ===
= См. также =
* [[:Нейронные сети, перцептрон]]
* [[:Обратное распространение ошибки]]
* [[:Регуляризация]]
13
правок

Навигация