В этой статье подробно рассматривается развитие функций активации в глубоком обучении: от ранних сигмоидных функций и функций Тана до широко используемой серии ReLU и недавно предложенных новых функций активации, таких как Swish, Mish и GeLU. Проведен углубленный анализ математических выражений, характеристик, преимуществ, ограничений и применения различных функций активации в типовых моделях. Посредством систематического сравнительного анализа в этой статье обсуждаются принципы проектирования, стандарты оценки производительности и возможные будущие направления развития функций активации, а также предоставляются теоретические рекомендации по оптимизации и разработке моделей глубокого обучения.
1. Введение
Функция активации является ключевым компонентом нейронных сетей, который вводит нелинейные характеристики на выходе нейронов, позволяя нейронным сетям обучаться и представлять сложные нелинейные отображения. Без функции активации, какой бы глубокой ни была нейронная сеть, она, по сути, может представлять только линейные преобразования, что сильно ограничивает выразительные способности сети. С быстрым развитием глубокого обучения разработка и выбор функций активации стали важными факторами, влияющими на производительность модели. Различные функции активации имеют разные характеристики, такие как плавность градиента, вычислительная сложность, степень нелинейности и т. д. Эти характеристики напрямую влияют на эффективность обучения, скорость сходимости и конечную производительность нейронной сети. Целью этой статьи является всесторонний обзор эволюции функций активации, глубокий анализ характеристик различных функций активации и исследование их применения в современных моделях глубокого обучения. Мы обсудим следующие аспекты:
Классические функции активации: включая ранние часто используемые функции активации, такие как Sigmoid и Tanh.
ReLU и его варианты: включая ReLU, Leaky ReLU, PReLU, ELU и т. д.
Новые функции активации: недавно предложенные функции, такие как Swish, Mish и GeLU.
Специальные функции активации: такие как Softmax, Maxout и т. д.
Сравнение и выбор функций активации. Обсудите стратегии выбора функций активации в различных сценариях.
Перспективы на будущее: изучить возможные направления развития исследований функции активации.
Посредством этого систематического обзора и анализа мы надеемся предоставить исследователям и практикам исчерпывающую справочную информацию, которая поможет им лучше выбирать и использовать функции активации при разработке моделей глубокого обучения.
2. Классическая функция активации.
2.1 Сигмовидная функция
Сигмовидная функция — одна из самых ранних широко используемых функций активации, ее математическое выражение: σ ( x ) = 1 1 + e − x сигма(x) = frac{1}{1 + e^{-x}}σ(Икс)=1+е−Икс1
Особенности и преимущества:
Выходной диапазон ограничен: выходной диапазон сигмоидальной функции находится в диапазоне (0, 1), что делает ее особенно подходящей для решения вероятностных задач.
Гладкий и дифференцируемый: функция гладкая и дифференцируемая во всей области, что полезно для применения алгоритма градиентного спуска.
пояснительная: Выходные данные можно интерпретировать как вероятности, что особенно подходит для выходного слоя задач двоичной классификации.
Недостатки и ограничения:
проблема исчезающего градиента: Когда входное значение велико или мало, градиент близок к нулю, что может привести к проблеме исчезновения градиента в глубоких сетях.
Выходной ненулевой центр: выходные данные сигмоида полностью положительны, что может привести к тому, что входные данные нейрона в следующем слое всегда будут положительными, что повлияет на скорость сходимости модели.
Вычислительная сложность: включает экспоненциальные операции, а вычислительная сложность относительно высока.
Применимая сцена:
Ранние мелкие нейронные сети.
Выходной слой для задач двоичной классификации.
Сценарии, в которых выходные данные необходимо ограничить диапазоном (0, 1).
Сравнение с другими функциями:
По сравнению с появившимися позже такими функциями, как ReLU, применение Sigmoid в глубоких сетях было сильно ограничено, главным образом из-за проблемы исчезающего градиента. Однако в некоторых конкретных задачах (например, двоичной классификации) сигмовидная диаграмма по-прежнему остается эффективным выбором.
2.2 Функция Тан
Функцию Таня (гиперболический тангенс) можно рассматривать как улучшенную версию сигмоидальной функции, и ее математическое выражение имеет вид: tanh ( x ) = ex − e − xex + e − x tanh(x) = frac{e^x - e^{-x}}{e^x + e^{-x}}танх(Икс)=еИкс+е−ИксеИкс−е−Икс
Особенности и преимущества:
нулевой центральный выход: Выходной диапазон функции Таня находится между (-1, 1), что решает проблему ненулевого центра сигмоиды.
Более сильный градиент: В областях, где входные данные близки к нулю, градиент функции Тана больше, чем сигмовидной функции, что помогает ускорить обучение.
Гладкий и дифференцируемый: Подобно сигмовидной, Тан также является гладкой и дифференцируемой.
Недостатки и ограничения:
проблема исчезающего градиента: Несмотря на то, что Тань улучшен по сравнению с сигмоидой, у него все еще есть проблема исчезновения градиентов, когда входное значение велико или мало.
Вычислительная сложность: Подобно сигмоиде, Тан также включает в себя экспоненциальные операции и имеет высокую вычислительную сложность.
Применимая сцена:
Лучше, чем сигмоид в сценариях, требующих вывода с нулевым центром.
Часто используется в рекуррентных нейронных сетях (RNN) и сетях долгосрочной краткосрочной памяти (LSTM).
Используется в некоторых сценариях, где важен нормализованный вывод.
Улучшение и сравнение:
Функцию Таня можно рассматривать как улучшенную версию сигмовидной функции. Основное улучшение заключается в центрировании выходных данных по нулю. Эта функция позволяет Tanh работать лучше, чем Sigmoid во многих ситуациях, особенно в глубоких сетях. Однако по сравнению с появившимися позже такими функциями, как ReLU, у Tanh все еще есть проблема исчезновения градиента, что может повлиять на производительность модели в очень глубоких сетях. Две классические функции активации, сигмовидная и Тан, сыграли важную роль на заре глубокого обучения, а их характеристики и ограничения также способствовали развитию последующих функций активации. Хотя во многих сценариях они были заменены обновленными функциями активации, они по-прежнему имеют свою уникальную прикладную ценность для конкретных задач и сетевых структур.
3. ReLU и его варианты
3.1 ReLU (Выпрямленная линейная единица)
Предложение функции ReLU является важной вехой в развитии функций активации. Его математическое выражение просто: ReLU ( x ) = макс ( 0 , x ) текст {ReLU}(x) = макс (0, x)РеЛУ(Икс)=Макс(0,Икс)
Особенности и преимущества:
Расчет прост: Вычислительная сложность ReLU намного ниже, чем у Sigmoid и Tanh, что выгодно для ускорения обучения сети.
Градиент смягчения исчезает: для положительных входных данных градиент ReLU всегда равен 1, что эффективно решает проблему исчезновения градиента в глубоких сетях.
разреженная активация: ReLU может сделать выход части нейронов 0, что приводит к разреженной экспрессии сети, что выгодно в определенных задачах.
биологическое объяснение: Односторонние ингибирующие свойства ReLU аналогичны поведению биологических нейронов.
Недостатки и ограничения:
Проблема «мертвого ReLU»: Когда вход отрицательный, градиент равен нулю, что может привести к постоянной дезактивации нейрона.
ненулевой центральный выход: все выходные данные ReLU имеют неотрицательные значения, что может повлиять на процесс обучения следующего уровня.
Применимая сцена:
Широко используется в глубоких сверточных нейронных сетях (таких как ResNet, VGG).
Подходит для большинства нейронных сетей прямого распространения.
Сравнение с другими функциями:
По сравнению с Sigmoid и Tanh, ReLU демонстрирует значительные преимущества в глубоких сетях, главным образом с точки зрения скорости обучения и уменьшения исчезновения градиента. Однако проблема «мертвого ReLU» побудила исследователей предложить различные улучшенные версии.
3.2 Дырявый ReLU
Для решения проблемы «смерти» ReLU был предложен Leaky ReLU: Дырявый ReLU ( x ) = { x , если x > 0 α x , если x ≤ 0 текст{Дырявый ReLU}(x) ={Икс,еслиИкс>0αИкс,еслиИкс≤0Дырявый ReLU(Икс)={
Икс,αx,еслиИкс>0еслиИкс≤0 в, α альфаα — небольшая положительная константа, обычно 0,01.
Особенности и преимущества:
Облегчение проблемы «мертвого ReLU»: Сохраняйте небольшой градиент, когда входной сигнал отрицательный, чтобы избежать полной дезактивации нейронов.
Сохраните преимущества ReLU: Сохранение линейности на положительной полуоси, расчет прост и помогает смягчить исчезновение градиента.
Недостатки и ограничения:
Знакомство с гиперпараметрами: α альфаαПодбор значений требует настройки, что увеличивает сложность модели.
ненулевой центральный выход: Как и в случае с ReLU, вывод по-прежнему не имеет нулевого центра.
Применимая сцена:
В качестве альтернативы в сценариях, где ReLU работает плохо.
Используется в задачах, которым необходимо сохранить некоторую отрицательную информацию.
3.3 PReLU (параметрический ReLU)
PReLU — это вариант Leaky ReLU, где наклон отрицательной полуоси является обучаемым параметром: PReLU ( x ) = { x , если x > 0 α x , если x ≤ 0 текст{PReLU}(x) ={Икс,еслиИкс>0αИкс,еслиИкс≤0ПРЕЛУ(Икс)={
Икс,αx,еслиИкс>0еслиИкс≤0 здесь α альфаα — это параметры, полученные посредством обратного распространения ошибки.
Особенности и преимущества:
адаптивное обучение: Автоматическое определение наиболее подходящего отрицательного наклона полуоси на основе данных.
потенциал производительности: В некоторых задачах PReLU может обеспечить лучшую производительность, чем ReLU и Leaky ReLU.
Недостатки и ограничения:
Увеличение сложности модели: введение дополнительных обучаемых параметров увеличивает сложность модели.
Возможна переоснащение: в некоторых случаях может привести к переобучению, особенно для небольших наборов данных.
Применимая сцена:
Задачи глубокого обучения на крупномасштабных наборах данных.
Сценарии, требующие адаптивных функций активации.
3.4 ELU (Экспоненциальная линейная единица)
ELU пытается объединить преимущества ReLU и обработки отрицательных входных данных. Его математическое выражение: ELU ( x ) = { x , если x > 0 α ( ex − 1 ) , если x ≤ 0 текст {ELU}(x) ={Икс,еслиИкс>0α(еИкс−1),еслиИкс≤0ЭЛУ(Икс)=