[Кадр дня ML] Преимущества ReLU перед активацией сигмовидной кишки
Почему активация ReLU предпочтительнее сигмовидной активации?
Погружение глубже в глубокое обучение - функция ReLU vs Sigmoid Activation.
- За последние несколько лет архитектуры глубоких нейронных сетей сыграли ключевую роль в решении некоторых из самых сложных проблем машинного обучения.
- Обучение глубокой нейронной сети нетривиально и часто включает миллиарды параметров, обученных на терабайтах данных.
- Построение надежной обучаемой сети - это искусство, требующее практики и понимания того, как основные строительные блоки взаимодействуют друг с другом.
- В этом сообщении блога мы собираемся глубже погрузиться в выбор функций активации, в частности, обсудим преимущества использования активации ReLU по сравнению с функцией активации сигмовидной формы.
Ускоренный курс по ReLU и активации сигмовидной кишки:
- Рассмотрим архитектуру однослойной нейронной сети с 1 единицей (также известной как логистическая регрессия) с входом размера n и одномерным (скалярным) выходом.
Активация ReLU:
- ReLU - это монотонно возрастающая функция линейной активации.
- Важно отметить, что функция активации ReLU преобразует отрицательные входные значения в ноль.
- В результате отрицательная предварительная активация приводит к активации 0. Поскольку производная константы является константой, при нулевой активации градиент равен 0.
- Это явление получило название «мертвые нейроны». Такие нейроны по сути бесполезны и могут привести к неоптимальной работе сети.
- Проблема «мертвых нейронов» может возникнуть либо из-за высокой скорости обучения, либо из-за большого отрицательного смещения.
- Использование небольшой скорости обучения или вариаций ReLU (Leaky ReLU, ELU) может помочь решить проблему «мертвых нейронов».
Активация сигмовидной кишки:
- Активация сигмовидной формы представляет собой «S-образную» кривую, которая отображает входные значения в диапазоне от 0 до 1.
- Значение сигмовидной функции асимптотически приближается к 0 и 1. Это соответствует принципу работы вероятностей.
Большинство архитектур глубоких нейронных сетей с современными результатами используют активацию ReLU по умолчанию, а не сигмовидную активацию. Возникает вопрос: Почему ReLU предпочтительнее Sigmoid?
Ответ заключается в обратном распространении.
- Обучение глубокой нейронной сети включает в себя два этапа: прямое и обратное распространение.
- Обратное распространение включает вычисление градиента функции стоимости относительно весов. Это, в свою очередь, включает вычисление градиента функции активации по весам.
- Можно видеть, что градиент сигмовидной функции является произведением g (x) и (1- g (x)). Поскольку g (x) всегда меньше 1, умножение двух значений меньше 1 дает еще меньшее значение.
- Легче увидеть, что повторяющееся вычисление градиента сигмовидной функции приведет к значению, приближающемуся к 0.
- В дополнение к этому, вычисление градиента текущего слоя зависит от градиента следующего слоя. Для n скрытых слоев это в конечном итоге приводит к умножению n малых значений, что препятствует эффективному обучению ранних слоев нейронной сети.
- Это называется проблемой исчезающих градиентов. Проблема исчезающих градиентов не позволяет нам создавать глубокие нейронные сети.
Как предотвратить исчезновение градиентов?
- Один из самых простых способов решить проблему исчезающих градиентов - заменить сигмовидную функцию активации активацией ReLU, градиент которой является постоянным.
- Некоторые из более сложных решений включают использование остаточных сетей, в которых активации из предыдущих уровней добавляются к предварительной активации уровня, расположенного глубже в сети.
Последние мысли:
- Кто-то может возразить, что использование активации ReLU может привести к проблеме взрывных градиентов.
- Однако взрывные градиенты легче исправить с помощью отсечения градиента.
- Важно отметить, что проблема «мертвых нейронов», а также «исчезающих градиентов» является препятствием на пути обучения оптимальной сети.
- Однако в архитектурах глубоких нейронных сетей вероятность столкнуться с проблемой исчезающих градиентов выше, что приводит к тому, что ранние слои не могут изучить функции.
- С другой стороны, мертвые нейроны на более поздних этапах сети не влияют на то, насколько хорошо обучаются ранние слои.