Раскрывая нейронную магию погружение в функции активации

Погружение в функции активации раскрытие нейронной магии

 

Почему использовать функции активации

 

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

Два основных преимущества использования функций активации:

 

Вводит нелинейность

 

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

 

Позволяет использовать глубокие нейронные слои

 

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

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

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

 

Сигмоида

 

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

   

Уравнение выше выглядит следующим образом:

   

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

 

Недостатки

 

 

Точки насыщения

 

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

 

Не является нулевым центром

 

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

 

Tanh

 

Гиперболическая тангенс функция является улучшением функции сигмоиды. Вместо диапазона [0,1], функция TanH отображает вещественные числа между -1 и 1.

   

Функция Tanh выглядит следующим образом:

   

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

 

Недостатки

 

Точки насыщения

 

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

 

Вычислительная сложность

 

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

 

ReLU

 

Самая часто используемая функция активации на практике, активация Rectified Linear Unit (ReLU) является самой простой, но самой эффективной возможной нелинейной функцией.

   

Она сохраняет все неотрицательные значения и устанавливает все отрицательные значения в 0. Визуально функции ReLU выглядят следующим образом:

 

 

Недостатки

 

 

Dying ReLU

 

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

 

Неограниченная активация

 

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

 

Ненулевой центр

 

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

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

 

Основные выводы

 

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

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

  • Sigmoid подходит только для выходных активаций бинарных задач, когда целевые метки равны 0 или 1.
  • Tanh теперь в основном заменен на ReLU и аналогичные функции. Однако он все еще используется в скрытых слоях для RNN.
  • Во всех остальных сценариях ReLU выбирается по умолчанию для скрытых слоев в архитектурах глубокого обучения.

    Мухаммад Архам – инженер глубокого обучения, работающий в области компьютерного зрения и обработки естественного языка. Он работал над развертыванием и оптимизацией нескольких приложений искусственного интеллекта, которые достигли мировых успехов в Vyro.AI. Он интересуется созданием и оптимизацией моделей машинного обучения для интеллектуальных систем и верит в непрерывное совершенствование.