Функция активации — это функция, добавленная в искусственную нейронную сеть, чтобы помочь сети изучить сложные закономерности в данных. Подобно моделям на основе нейронов в человеческом мозге,Функция активации в конечном счете решает, что активировать следующему нейрону.
В искусственных нейронных сетях функция активации узла определяет выход этого узла для данного входа или набора входов. Стандартную схему компьютерного чипа можно рассматривать как функцию активации цифровой схемы, которая получает выход (1) или выключает (0) в зависимости от входа. Следовательно, функция активации — это математическое уравнение, определяющее выход нейронной сети.
Во-первых, давайте разберемся с принципом работы искусственных нейронов, который примерно таков:
Описанный выше процесс можно представить как:
1. Сигмовидная функция активации
График сигмовидной функции имеет вид S-образной кривой.
Выражение функции выглядит следующим образом:
При каких обстоятельствах уместно использовать сигмовидную функцию активации?
- Выходной диапазон сигмовидной функции составляет от 0 до 1. Поскольку выходное значение ограничено от 0 до 1, оно нормализует выход каждого нейрона;
- Модель для использования с предсказанными вероятностями в качестве выходных данных. Поскольку диапазон вероятности составляет от 0 до 1, сигмовидная функция очень подходит;
- Сглаживание градиента, чтобы избежать "прыгающих" выходных значений;
- Функции дифференцируемы. Это означает, что можно найти наклон сигмовидной кривой для любых двух точек;
- Однозначные прогнозы, т.е. очень близкие к 1 или 0.
Каковы недостатки сигмовидных функций активации?
- Имеет тенденцию к исчезновению градиентов;
- Вывод функции не центрирован по 0, что снижает эффективность обновления весов;
- Сигмовидная функция выполняет экспоненциальные операции, и компьютер работает медленнее.
2. Функция активации тангенса/гиперболического тангенса
График функции активации тангенса также имеет сигмоидальный вид.
Выражение функции выглядит следующим образом:
tanh — функция гиперболического тангенса. Кривые функции тангенса и сигмовидной функции относительно похожи. Но у нее есть некоторые преимущества перед сигмовидной функцией.
- Во-первых, когда входные данные большие или маленькие, выходные данные почти гладкие, а градиент небольшой, что не очень хорошо для обновления веса. Разница между ними заключается в выходном интервале, выходной интервал tanh равен 1, а вся функция центрируется на 0, что лучше, чем сигмовидная функция;
- На диаграмме тангенса отрицательные входные данные будут строго отображаться как отрицательные, а нулевые входные данные отображаются близко к нулю.
Примечание. В общей задаче бинарной классификации функция тангенса используется для скрытого слоя, а сигмовидная функция — для выходного слоя, но это не фиксировано и требует корректировки для конкретной задачи.
3. Функция активации ReLU
Изображение функции активации ReLU показано на рисунке
Выражение функции выглядит следующим образом:
Функция ReLU — популярная функция активации в глубоком обучении.По сравнению с сигмовидной функцией и функцией тангенса она имеет следующие преимущества:
- Когда вход положительный, проблема насыщения градиента отсутствует.
- Расчеты намного быстрее. В функции ReLU существует только линейная зависимость, поэтому ее вычисление выполняется быстрее, чем сигмоид и тангенс.
Конечно, есть у него и недостатки:
- Мертвая проблема ReLU. Когда вход отрицательный, ReLU полностью выходит из строя, при прямом распространении это не проблема. Некоторые области чувствительны, а некоторые нет. Но во время обратного распространения, если вход отрицательный, градиент будет полностью равен нулю, сигмовидная функция и функция tanh также имеют ту же проблему;
- Мы обнаружили, что выход функции ReLU равен 0 или положительному числу, что означает, что функция ReLU не является 0-центрированной функцией.
4. Leaky ReLU
Это функция активации, специально разработанная для решения проблемы Dead ReLU.
Выражение функции выглядит следующим образом:
Почему Leaky ReLU лучше, чем ReLU?
- Leaky ReLU корректирует проблему нулевых градиентов для отрицательных значений, подавая очень маленькую линейную составляющую x на отрицательный вход (0,01x);
- утечка помогает расширить диапазон функции ReLU, обычно значение a составляет около 0,01;
- Диапазон функций Leaky ReLU (от отрицательной бесконечности до положительной бесконечности).
Примечание: Теоретически Leaky ReLU обладает всеми преимуществами ReLU без каких-либо проблем с Dead ReLU, но на практике не было полностью доказано, что Leaky ReLU всегда лучше, чем ReLU.
5. ELU
Предложение ELU также решает проблему ReLU. По сравнению с ReLU, ELU имеет отрицательные значения, что делает среднее число активаций близким к нулю. Средняя активация, близкая к нулю, может ускорить обучение, поскольку приближает градиент к естественному градиенту.
Выражение функции выглядит следующим образом:
Очевидно, что ELU обладает всеми преимуществами ReLU, а также:
- Нет проблем с мертвым ReLU, среднее значение вывода близко к 0 с центром в 0;
- ELU приближает нормальный градиент к единичному естественному градиенту за счет уменьшения влияния смещения смещения, тем самым ускоряя изучение среднего значения до нуля;
- ELU насыщается до отрицательных значений на меньших входных данных, уменьшая прямое распространение вариаций и информации.
Небольшая проблема заключается в том, что он требует больших вычислительных ресурсов. Подобно Leaky ReLU, хотя теоретически он лучше, чем ReLU, в настоящее время на практике недостаточно доказательств того, что ELU всегда лучше, чем ReLU.
6. PReLU (параметрический ReLU)
PReLU также является улучшенной версией ReLU:
Взгляните на формулу для PReLU: параметр α обычно представляет собой число от 0 до 1 и обычно относительно мал.
- если, тогда f становится ReLU
- если, тогда f становится негерметичным ReLU
- еслиявляется обучаемым параметром, тогда f становится PReLU
Преимущества PReLU заключаются в следующем:
- В отрицательном диапазоне наклон PReLU меньше, что также позволяет избежать проблемы Dead ReLU.
- По сравнению с ELU, PReLU работает линейно в отрицательном диапазоне. Хотя наклон небольшой, он не стремится к 0.
7. Softmax
Softmax — это функция активации для задач классификации нескольких классов, где членство в классе требуется для более чем двух меток классов. Для любого реального вектора длины K Softmax может сжать его в реальный вектор длины K, значения находятся в диапазоне (0, 1), а сумма элементов в векторе равна 1.
Softmax отличается от обычной функции max: функция max выводит только максимальное значение, но Softmax гарантирует, что меньшие значения имеют меньшую вероятность и не отбрасываются напрямую. Мы можем думать об этом как о вероятностной или «мягкой» версии функции argmax.
Знаменатель функции Softmax объединяет все факторы исходного выходного значения, что означает, что различные вероятности, полученные функцией Softmax, связаны друг с другом.
Основными недостатками функции активации Softmax являются:
- не дифференцируем в нуле;
- Градиент отрицательного входа равен нулю, что означает, что для активаций в этой области веса не обновляются во время обратного распространения, что приводит к образованию мертвых нейронов, которые никогда не активируются.
8. Swish
Выражение функции:
Дизайн Swish вдохновлен использованием сигмовидной функции для стробирования в LSTM и высокоскоростных сетях. Мы используем одно и то же значение стробирования, чтобы упростить механизм стробирования, который называется самостробированием.
Прелесть самостробирования заключается в том, что для него требуются только простые скалярные входные данные, тогда как для обычного стробирования требуется несколько скалярных входных данных. Это позволяет автономным функциям активации, таким как Swish, легко заменять функции активации, которые принимают один скаляр в качестве входных данных (например, ReLU), не изменяя скрытую емкость или количество параметров.
Основные преимущества функции активации Swish заключаются в следующем:
- «Неограниченность» помогает предотвратить постепенное приближение градиента к 0 и вызывание насыщения при медленном обучении; (в то же время ограниченность также выгодна, потому что ограниченные функции активации могут иметь сильную регуляризацию, и большие отрицательные входные задачи также могут быть решены) ;
- Производная константа > 0;
- Гладкость играет важную роль в оптимизации и обобщении.
9. Maxout
В слое Maxout функция активации представляет собой максимальное значение входных данных, поэтому многослойный персептрон только с двумя узлами maxout может соответствовать произвольным выпуклым функциям.
Один узел Maxout можно интерпретировать как кусочно-линейное приближение (PWL) к функции с действительным знаком, где отрезок линии между любыми двумя точками на графике функции находится над графиком (выпуклая функция).
Maxout также может быть реализован для d-мерных векторов (V):
Предполагая две выпуклые функции h_1(x) и h_2(x), аппроксимированные двумя узлами Maxout, функция g(x) является непрерывной функцией PWL.
Следовательно, слой Maxout, состоящий из двух узлов Maxout, может хорошо аппроксимировать любую непрерывную функцию.
10. Softplus
Функция софтплюс:
Также известны как логистические/сигмоидальные функции.
Функция Softplus похожа на функцию ReLU, но работает относительно плавно и, как и ReLU, является односторонним подавлением.