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

По сути, важность функции активации состоит в том, чтобы внести нелинейность в выходной сигнал нейрона.

Когда человек случайно касается горячего объекта, он автоматически, не задумываясь, отдергивает руку. Это происходит, когда спинномозговые мотонейроны активируются и посылают сигналы в мозг.

Почему важны функции активации?

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

Теперь значение этого чистого ввода может быть любым от -inf до + inf. Нейрон на самом деле не знает, как связать значение и, следовательно, не может определять схему возбуждения. Таким образом, функция активации является важной частью нейронной сети. По сути, они решают, должен ли нейрон активироваться или нет. Таким образом, он ограничивает стоимость чистого входа.

Важность нелинейности

Мы читаем, что функция активации - это нелинейное преобразование, которое мы выполняем над входом, прежде чем отправить его следующему слою нейронов или завершить его как выход. Но зачем вводить нелинейность?

Что ж, если вы объедините несколько линейных преобразований в цепочку, все, что вы получите, это линейное преобразование. Например, скажем, f (x) = 2 x + 3 и g (x) = 5 x - 1, тогда объединение этих двух линейных функций даст вам еще одну линейная функция: f (g (x)) = 2 (5 x - 1) + 3 = 10 x + 1. Таким образом, если у вас нет некоторой нелинейности между слоями, то даже глубокая стопка слоев эквивалентна один слой: с его помощью вы не можете решить очень сложные проблемы.

Кроме того, если мы увидим представление простой линейной функции p (x) = ax

Когда мы дифференцируем функцию по x, результатом является коэффициент при x, который является константой (q (x) = a).

Градиент (или производная) здесь постоянный, который вообще не зависит от входного значения x. Это означает, что веса и смещения будут обновляться в процессе обратного распространения ошибки, но коэффициент обновления будет таким же. В этом сценарии нейронная сеть на самом деле не улучшит ошибку, поскольку градиент одинаков для каждой итерации. Сеть не сможет хорошо обучаться и захватывать сложные закономерности из данных.

ВИДЫ ФУНКЦИЙ АКТИВАЦИИ

Сигмовидная функция

Сигмовидная функция является широко используемой функцией активации и математически определяется как:

Эта S-образная функция отлично зарекомендовала себя для задач двоичной классификации, где результат равен 0 или 1. Можно легко спрогнозировать, что результатом будет 1, если значение больше 0,5, и 0 в противном случае.

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

Функция Тань

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

Подобно сигмоиде, функция tanh является непрерывной и дифференцируемой во всех точках. Градиент функции tanh круче по сравнению с сигмоидной функцией.

Обычно tanh предпочтительнее сигмовидной функции, это можно увидеть, сравнив графики производных обеих функций. Можно видеть, что производный график tanh более крутой по сравнению с графиком сигмовидной, то есть у нас есть более высокие значения градиента (производной) силы (в диапазоне от 0 до 1, тогда как у сигмовидной формы в диапазоне от 0 до 0,25) и, следовательно, может быть полезно быстро учиться (или сходиться).

Проблема исчезающего градиента

Одним из основных недостатков, которые разделяют функции Sigmoid и Tanh, является проблема исчезающего градиента.

Нам известно, что для уменьшения функции потерь для нейронной сети веса каждого слоя изменяются путем обратного распространения. Мы знаем, что градиент сигмоида колеблется от 0 до 0,25, а градиент Tanh колеблется от 0 до 1. Затем для n-слойной нейронной сети, если мы используем функцию сигмоида / tanh для каждого слоя, тогда градиент, как сигнал с обратным распространением, будет становиться все меньше и меньше.

Обратное распространение использует правило цепочки, которое имеет эффект умножения n этих малых долей для вычисления градиентов, которые экспоненциально уменьшают их, становясь почти эквивалентным 0. Это будет означать, что первый слой почти не имеет градиента, который парализовал бы обучение сети.

RELU

Rectified Linear Unit или RELU - одна из самых популярных функций активации, которая обычно используется в нейронных сетях глубокого обучения для распознавания речи и компьютерного зрения. Математически это можно определить как

График функции RELU может иметь те же характеристики, что и линейная функция на положительной оси. Но, прежде всего, ReLU не является линейным по своей природе.

Основное преимущество RELU заключается в том, что одновременно активируются только несколько нейронов, что делает сеть разреженной, что делает ее эффективной и простой для вычислений, т.е. выход равен 0, если входной сигнал отрицательный и 1, если введено положительное значение.

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

Ух ты, это была масса плюсов. Конечно, должны быть привязаны к нему ниточки.

Мы видим, что для отрицательных значений производная равна 0. По этой причине в процессе обратного распространения веса и смещения для некоторых нейронов не обновляются. Это может создать мертвые нейроны, которые никогда не активируются. Этим занимается Leaky RELU.

Дырявый RELU

Функция Leaky ReLU - это не что иное, как улучшенная версия функции ReLU. Как следует из названия, эта функция не имеет значения 0 для отрицательных значений, но вводит небольшое значение, известное как утечка.

Математически это можно определить как

Эта утечка или модификация является попыткой исправить проблему умирающего ReLU, чтобы мы больше не сталкивались с мертвыми нейронами в этой области.

Функция Softmax

Функция softmax - это тип функции активации, подобной функции сигмовидной кишки. Это удобно, когда мы пытаемся решить проблемы классификации. T Наиболее важным моментом является то, что это предпочтительнее на выходном уровне моделей глубокого обучения, особенно когда необходимо классифицировать более двух. Он позволяет определить вероятность того, что входные данные принадлежат определенному классу, он сообщает «оценку достоверности» для каждого класса. Поскольку здесь мы имеем дело с вероятностями, оценки, возвращаемые функцией softmax, в сумме будут равны 1.

Следовательно, прогнозируемый класс - это элемент в списке, где показатель достоверности является наивысшим.

Математически это можно определить как

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

Какую функцию активации использовать

Теперь, после всего этого обсуждения, единственным и самым важным остается вопрос, какие функции активации использовать. Означает ли это, что мы просто используем ReLu во всем, что делаем? Или сигмовидная, или сигмовидная? Ну и да, и нет. Было бы невероятно сложно порекомендовать функцию активации, которая работает для всех случаев использования. Есть много соображений - насколько сложно вычислить производную (если она вообще дифференцируема!), Как быстро сходится сеть с выбранной вами функцией активации, насколько она гладкая, удовлетворяет ли она условиям универсальной аппроксимационной теоремы, сохраняет ли он нормализацию и т. д.

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

Спасибо за прочтение.