Редактирование: Проблемы нейронных сетей

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[Нейронные сети, перцептрон | Нейронные сети]] считаются универсальными моделями в машинном обучении, поскольку позволяют решать широкий класс задач. Однако, при их использовании могут возникать различные проблемы.
+
Нейронные сети считаются универсальными моделями в машинном обучении, поскольку позволяют решать широкий класс задач. Однако, при их использовании могут возникать различные проблемы.
  
= Взрывающийся и затухающий градиент =
+
= Проблема взрывающегося (затухающего) градиента в нейронных сетях =
  
 
== Определение ==
 
== Определение ==
Строка 15: Строка 15:
 
== Причины ==
 
== Причины ==
  
[[Файл: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>]]
+
[[Файл: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)'':
 
Такая проблема может возникнуть при использовании нейронных сетях классической [[Практики реализации нейронных сетей#Функции активации | функцией активации]] ''(англ. activation function)'' сигмоиды ''(англ. sigmoid)'':
  
Строка 22: Строка 22:
 
Эта функция часто используется, поскольку множество ее возможных значений {{---}} отрезок $[0, 1]$ {{---}} совпадает с возможными значениями вероятностной меры, что делает более удобным ее предсказание. Также график сигмоиды соответствует многим естественным процессам, показывающим рост с малых значений, который ускоряется с течением времени, и достигающим своего предела<ref>[https://en.wikipedia.org/wiki/Sigmoid_function#Applications wikipedia.org {{---}} Sigmoid function, Applications]</ref> (например, рост популяции).
 
Эта функция часто используется, поскольку множество ее возможных значений {{---}} отрезок $[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.
+
Пусть сеть состоит из подряд идущих нейронов с функцией активации $\sigma(x)$; функция потерть ''(англ. loss function)'' $L(y) = MSE(y, \hat{y}) = (y - \hat{y})^2$ ''(англ. 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$
 
$\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$
Строка 58: Строка 58:
  
 
=== Использование другой функции активации ===
 
=== Использование другой функции активации ===
[[Файл:SigmoidTanhReLUSoftplus.png|upright=1.0|thumb|Рисунок 2. Графики функций активации: sigmoid, tanh, ReLU, softplus]]
+
[[Файл:SigmoidTanhReLUSoftplus.png|upright=1.0|thumb|Рисунок 2: Графики функций активации: sigmoid, tanh, ReLU, softplus]]
  
 
Как уже упоминалось выше, подверженность нейронной сети проблемам взрывающегося или затухающего градиента во многом зависит от свойств используемых [[Практики реализации нейронных сетей#Функции активации | функций активации]]. Поэтому правильный их подбор важен для предотвращения описываемых проблем.
 
Как уже упоминалось выше, подверженность нейронной сети проблемам взрывающегося или затухающего градиента во многом зависит от свойств используемых [[Практики реализации нейронных сетей#Функции активации | функций активации]]. Поэтому правильный их подбор важен для предотвращения описываемых проблем.
Строка 97: Строка 97:
 
=== Использование Residual blocks ===
 
=== Использование 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>]]
+
[[Файл: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, то есть расположенными несколько дальше следующего слоя.
 
В данной конструкции вывод нейрона подается как следующему нейрону, так и нейрону на расстоянии 2-3 слоев впереди, который суммирует его с выходом предшествующего нейрона, а функция активации в нем {{---}} ReLU (см. рисунок 3). Такая связка называется shortcut. Это позволяет при обратном распространении ошибки значениям градиента в слоях быть более чувствительным к градиенту в слоях, с которыми связаны с помощью shortcut, то есть расположенными несколько дальше следующего слоя.
  
 
=== Регуляризация весов ===
 
=== Регуляризация весов ===
  
[[Регуляризация | Регуляризация]] заключается в том, что слишком большие значения весов будут увеличивать функцию потерь. Таким образом, в процессе обучения нейронная сеть помимо оптимизации ответа будет также минимизировать веса, не позволяя им становиться слишком большими.
+
Регуляризация заключается в том, что слишком большие значения весов будут увеличивать функцию потерь. Таким образом, в процессе обучения нейронная сеть помимо оптимизации ответа будет также минимизировать веса, не позволяя становиться им слишком большими.
  
 
=== Обрезание градиента ===
 
=== Обрезание градиента ===
Строка 112: Строка 112:
 
= См. также =
 
= См. также =
  
* [[:Нейронные сети, перцептрон]]
 
 
* [[:Обратное распространение ошибки]]
 
* [[:Обратное распространение ошибки]]
 
* [[:Регуляризация]]
 
* [[:Регуляризация]]

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: