Краткое описание реализации, льгот, предостережений и использования часто используемых функций активации

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

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

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

Функцию можно построить, как показано на рисунке 2.

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

Мы видим, что за пределами [-4, 4], показанными зелеными и красными линиями, градиенты не так значительны. Это называется проблемой исчезающих градиентов. По этой причине использование сигмовидной функции в глубокой сети нежелательно. Более того, если вы думаете о непрерывном умножении меньших значений (‹1), вы получите очень маленькие значения. Это неблагоприятное условие для глубоких сетей. Так что сигмовидная просто не является желательной активацией для глубокого обучения. ReLU - это первый обходной путь, позволяющий преодолеть нежелательные результаты сигмовидной функции.

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

Функция ReLU (R ectified L inear Unit)

ReLU просто выводит неотрицательный результат нейрона. Математически это можно представить, как показано на рисунке 4.

Мы можем построить график функции и ее производной, как показано на рисунке 5.

Как показано на рисунке 5, производные никогда не мертвы в положительной области. Кроме того, поскольку значения выводятся без какого-либо демпфирования, значения не исчезнут, как мы видели в функции сигмоида. Таким образом, ReLU становится идеальным кандидатом для глубокого обучения. Однако, как вы могли заметить, ReLU просто не существует в отрицательном пространстве. Часто это нормально, поскольку входные и выходные значения нейронных сетей положительны. Однако, если у вас есть масштабированные или нормализованные значения в диапазоне [-1, 1], это может убить некоторые нейроны без возможности восстановления. Это явление называется умирающим РЭЛУ. Хотя это не то, о чем кто-то должен беспокоиться (можно избежать, масштабируя с помощью масштабатора min-max), стоит знать обходные пути. Обратите внимание, что из-за разноса значений через сеть ReLU часто желательно не использовать ReLU в выходном слое. Кроме того, увеличение значений может привести к появлению взрывных градиентов. Однако правильное отсечение и регуляризация может помочь.

Варианты ReLU и другие функции линейных единиц

Есть несколько вариантов ReLU, которые помогают решить проблему умирающего ReLU.

PReLU (Параметрическое ReLU) и Leaky ReLU

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

Мы построили диаграмму, показанную на рисунке 7, для заданного значения (0,1). Это сценарий Leaky ReLU с отрицательным множителем 0,1.

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

ELU (экспоненциальная линейная единица) Функция

В этой функции отрицательная составляющая моделируется с использованием экспоненциального представления. Однако у нас все еще будет обучаемый параметр 𝛂.

Мы можем построить график, как показано на рисунке 9. Здесь мы принимаем = 0,5 для лучшей видимости.

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

Функция Тань

Tanh - движущая сила сетей LSTM. Это помогает избежать недостатков RNN.

Мы можем построить его, как показано на рисунке 11.

Еще несколько функций активации

  • Функция идентичности. Это простая функция от f(x)=x с производной f'(x)=1.
  • Функция Softmax: эта функция гарантированно выводит значения для слоя, который в сумме дает 1. Это в основном используется в категориальной классификации с категориальной перекрестной энтропией как функция потерь и в основном используется в выходном слое.

Примечания

Функции активации разработаны в основном с учетом производных. Вот почему вы видите красивую упрощенную производную функцию.

Функции активации необходимо выбирать, глядя на диапазон входных значений. Однако ReLU или PReLU - хорошая отправная точка с сигмоидом или softmax для выходного слоя.

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

Надеюсь, вам понравилась эта статья.

Ваше здоровье! :)