Практики реализации нейронных сетей — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
 +
==Аугментация данных==
 +
==Дропаут==
 
==Функции активации==
 
==Функции активации==
Одним из важнейших аспектов глубокой нейронной сети является '''функция активации'''<ref>[https://en.wikipedia.org/wiki/Activation_function Activation function. Wikipedia]</ref>, которая определяет зависимость выходного сигнала нейронов от входного сигнала или набора входных сигналов.
+
Одним из важнейших аспектов глубокой нейронной сети являются функции активации.
 +
{{Определение
 +
|definition= '''Функция активации''' (англ. ''activation function'') определяет выходной сигнал нейрона в зависимости от результата взвешенной суммы входов и порогового значения.}}
 +
Рассмотрим нейрон Z с выходным значением <math>Z = \sum\limits_{i} w_{i}x_{i} + bias</math>, где <tex>w_{i}</tex> и <tex>x_{i}</tex> {{---}} вес и входное значение <tex>i</tex>-ого входа, а <tex>bias</tex> {{---}} смещение. Полученный результат передается в функцию активации, которая решает рассматривать этот нейрон как активированный, или его можно игнорировать.
  
Ниже представлены распространенные функции активации.
+
===Ступенчатая функция===
  
=== Sigmoid function ===
+
===Линейная функция===
У ступенчатых функций есть определенное количество ограничений, связанных с ее линейностью. Если функция активации является линейной, то независимо от количества складываемых скрытых слоев в нейронной сети, конечный результат по-прежнему будет являеться линейной комбинацией исходных входных данных. Эта линейность означает, что она не может реально охватить сложность нелинейных задач, таких как оператор XOR или различные паттерны, разделенные кривыми или кругами. Другой проблемой является то, что перцептрон с ступенчатой ​​функцией не очень «стабилен», то есть может перейти из состояния 0 в 1 и из 0 в 1 при небольших изменениях в любом из весов входного слоя.
 
  
Для того, чтобы избежать данных проблем, в нейронных сетях используется sigmoid функция в качестве активационной.  
+
===Сигмоида===
 +
У ступенчатых функций есть определенное количество ограничений, связанных с ее линейностью. Если функция активации является линейной, то независимо от количества складываемых скрытых слоев в нейронной сети, конечный результат по-прежнему будет являться линейной комбинацией исходных входных данных. Эта линейность означает, что она не может реально охватить сложность нелинейных задач, таких как оператор XOR или различные паттерны, разделенные кривыми или кругами. Другой проблемой является то, что перцептрон со ступенчатой ​​функцией не очень «стабилен», то есть может перейти из состояния 0 в 1 и из 0 в 1 при небольших изменениях в любом из весов входного слоя.
 +
 
 +
Для того, чтобы избежать данных проблем, в нейронных сетях используется сигмоидная функция в качестве активационной. Также ее еще называют логистической.
  
 
[[Файл:sigmoid_function.png|border|500px|thumb|center|Рис 1. Sigmoid Function]]
 
[[Файл:sigmoid_function.png|border|500px|thumb|center|Рис 1. Sigmoid Function]]
  
Функция sigmoid, в отличие от ступенчатой ​​функции, вводит нелинейность в выбранную модель нейронной сети. Нелинейность означает, что выход, получаемый из нейрона произведением некоторых входов <math>x (x_1, x_2, ..., x_m)</math> и весов <math>w (w_1, w_2, ..., w_m)</math> плюс смещение, преобразованный sigmoid функцией, не может быть представлен ​​линейной комбинацией входов <math>x (x_1, x_2, ..., x_m)</math>.
+
Sigmoid функция, в отличие от ступенчатой ​​функции, вводит нелинейность в выбранную модель нейронной сети. Нелинейность означает, что выход, получаемый из нейрона произведением некоторых входов <math>x (x_1, x_2, ..., x_m)</math> и весов <math>w (w_1, w_2, ..., w_m)</math> плюс смещение, преобразованный сигмоидной функцией, не может быть представлен ​​линейной комбинацией его входных сигналов.
  
=== Rectified Linear Units (ReLU) ===
+
===ReLU===
 
Несмотря на множество сильных сторон sigmoid функции, у нее есть значительные недостатки. Производная такой функции крайне мала во всех точках, кроме сравнительно небольшого промежутка. Это сильно усложняет процесс улучшения весов с помощью градиентного спуска. Эта проблема усугубляется в случае, если модель содержит больше слоев. Данная проблема называется проблемой исчезающего градиента.<ref>[https://en.wikipedia.org/wiki/Vanishing_gradient_problem Vanishing gradient problem, Wikipedia]</ref>
 
Несмотря на множество сильных сторон sigmoid функции, у нее есть значительные недостатки. Производная такой функции крайне мала во всех точках, кроме сравнительно небольшого промежутка. Это сильно усложняет процесс улучшения весов с помощью градиентного спуска. Эта проблема усугубляется в случае, если модель содержит больше слоев. Данная проблема называется проблемой исчезающего градиента.<ref>[https://en.wikipedia.org/wiki/Vanishing_gradient_problem Vanishing gradient problem, Wikipedia]</ref>
  
 
Функция ReLU имеет производную равную 0 для всех отрицательных значениях и 1 для положительных. Таким образом, когда обучение происходит на датасетах разумного размера, обычно находятся точки данных, дающие положительные значения для любого выбранного узла. Таким образом, средняя производная редко бывает близка к 0, что позволяет продолжать градиентный спуск.
 
Функция ReLU имеет производную равную 0 для всех отрицательных значениях и 1 для положительных. Таким образом, когда обучение происходит на датасетах разумного размера, обычно находятся точки данных, дающие положительные значения для любого выбранного узла. Таким образом, средняя производная редко бывает близка к 0, что позволяет продолжать градиентный спуск.
  
'''Rectified Linear Unit''' {{---}} это наиболее часто используемая активационная функция при глубоком обучении. Данная функция возвращает 0, если принимает отрицательный вход, в случае же положительного входа, функция возвращает само число. Таким образом функция может быть записана как <math>f(x)=max(0,x)</math>.
+
''Rectified Linear Unit'' {{---}} это наиболее часто используемая активационная функция при глубоком обучении. Данная функция возвращает 0, если принимает отрицательный вход, в случае же положительного входа, функция возвращает само число. Таким образом функция может быть записана как <math>f(x)=max(0,x)</math>.
  
 
[[Файл:Relu.png|500px|thumb|center|Рис 2. Rectified Linear Units]]
 
[[Файл:Relu.png|500px|thumb|center|Рис 2. Rectified Linear Units]]
  
 
Функция ReLU отлично работает в большинстве приложений, в результате чего она получила широкое распространение. Данная функция позволяет правильно учитывать нелинейности и взаимодействия.
 
Функция ReLU отлично работает в большинстве приложений, в результате чего она получила широкое распространение. Данная функция позволяет правильно учитывать нелинейности и взаимодействия.
 +
 +
===Функция гиперболического тангенса===
 +
 +
==См. также==
 +
 +
==Примечания==
 +
<references />
 +
 +
==Источники информации==

Версия 23:50, 25 февраля 2020

Аугментация данных

Дропаут

Функции активации

Одним из важнейших аспектов глубокой нейронной сети являются функции активации.

Определение:
Функция активации (англ. activation function) определяет выходной сигнал нейрона в зависимости от результата взвешенной суммы входов и порогового значения.

Рассмотрим нейрон Z с выходным значением [math]Z = \sum\limits_{i} w_{i}x_{i} + bias[/math], где [math]w_{i}[/math] и [math]x_{i}[/math] — вес и входное значение [math]i[/math]-ого входа, а [math]bias[/math] — смещение. Полученный результат передается в функцию активации, которая решает рассматривать этот нейрон как активированный, или его можно игнорировать.

Ступенчатая функция

Линейная функция

Сигмоида

У ступенчатых функций есть определенное количество ограничений, связанных с ее линейностью. Если функция активации является линейной, то независимо от количества складываемых скрытых слоев в нейронной сети, конечный результат по-прежнему будет являться линейной комбинацией исходных входных данных. Эта линейность означает, что она не может реально охватить сложность нелинейных задач, таких как оператор XOR или различные паттерны, разделенные кривыми или кругами. Другой проблемой является то, что перцептрон со ступенчатой ​​функцией не очень «стабилен», то есть может перейти из состояния 0 в 1 и из 0 в 1 при небольших изменениях в любом из весов входного слоя.

Для того, чтобы избежать данных проблем, в нейронных сетях используется сигмоидная функция в качестве активационной. Также ее еще называют логистической.

Рис 1. Sigmoid Function

Sigmoid функция, в отличие от ступенчатой ​​функции, вводит нелинейность в выбранную модель нейронной сети. Нелинейность означает, что выход, получаемый из нейрона произведением некоторых входов [math]x (x_1, x_2, ..., x_m)[/math] и весов [math]w (w_1, w_2, ..., w_m)[/math] плюс смещение, преобразованный сигмоидной функцией, не может быть представлен ​​линейной комбинацией его входных сигналов.

ReLU

Несмотря на множество сильных сторон sigmoid функции, у нее есть значительные недостатки. Производная такой функции крайне мала во всех точках, кроме сравнительно небольшого промежутка. Это сильно усложняет процесс улучшения весов с помощью градиентного спуска. Эта проблема усугубляется в случае, если модель содержит больше слоев. Данная проблема называется проблемой исчезающего градиента.[1]

Функция ReLU имеет производную равную 0 для всех отрицательных значениях и 1 для положительных. Таким образом, когда обучение происходит на датасетах разумного размера, обычно находятся точки данных, дающие положительные значения для любого выбранного узла. Таким образом, средняя производная редко бывает близка к 0, что позволяет продолжать градиентный спуск.

Rectified Linear Unit — это наиболее часто используемая активационная функция при глубоком обучении. Данная функция возвращает 0, если принимает отрицательный вход, в случае же положительного входа, функция возвращает само число. Таким образом функция может быть записана как [math]f(x)=max(0,x)[/math].

Рис 2. Rectified Linear Units

Функция ReLU отлично работает в большинстве приложений, в результате чего она получила широкое распространение. Данная функция позволяет правильно учитывать нелинейности и взаимодействия.

Функция гиперболического тангенса

См. также

Примечания

Источники информации