Прежде чем погрузиться в список функций активации, доступных в Tensorflow v2.11. Давайте разберемся, что такое функция активации.
Что такое функция активации и зачем ее использовать?
Функция активации решает, должен ли нейрон быть активирован или нет, вычисляя взвешенную сумму и дополнительно добавляя к ней смещение. Функция активации предназначена для введения нелинейности в выходные данные нейрона.
Объяснение. Мы знаем, что в нейронной сети есть нейроны, которые работают в соответствии с весом, смещением и соответствующей им функцией активации. В нейронной сети мы будем обновлять веса и смещения нейронов на основе ошибки на выходе. Этот процесс известен как обратное распространение. Функции активации делают возможным обратное распространение, поскольку градиенты предоставляются вместе с ошибкой для обновления весов и смещений.
Зачем нам нужна нелинейная функция активации?
Нейронная сеть без функции активации — это, по сути, просто модель линейной регрессии. Функция активации выполняет нелинейное преобразование входных данных, что позволяет ей обучаться и выполнять более сложные задачи.
Вот список функций активации, доступных в TensorFlow v2.11, с простым объяснением:
- ReLU (выпрямленная линейная единица): простая функция активации, которая обнуляет все отрицательные значения и оставляет все положительные значения такими, какие они есть. Эта функция обычно используется в глубоких нейронных сетях, поскольку она может помочь предотвратить проблему исчезающего градиента.
- Leaky ReLU: вариант ReLU, допускающий небольшой градиент при отрицательном входном сигнале. Это помогает избежать «мертвых» нейронов, которые имеют нулевой выход и больше никогда не активируются.
- ELU (Экспоненциальная линейная единица): еще один вариант ReLU, использующий экспоненциальную функцию для отрицательных входных данных, что обеспечивает более плавный переход от отрицательных значений к положительным.
- SELU (масштабированная экспоненциальная линейная единица): самонормализующаяся версия функции активации ELU, которая помогает предотвратить взрыв или исчезновение градиентов в глубоких нейронных сетях.
- Softmax: используется для нормализации набора значений в вероятностное распределение. Softmax обычно используется в выходном слое нейронной сети для задач классификации нескольких классов.
- Sigmoid: еще одна функция активации, используемая в выходном слое для задач двоичной классификации. Sigmoid отображает любое входное значение в значение от 0 до 1.
- Tanh (гиперболический тангенс): похож на сигмоид, но отображает входные значения в диапазоне от -1 до 1. Tanh также используется в выходном слое для задач двоичной классификации.
- Swish: относительно новая функция активации, похожая на Sigmoid, но использующая линейную функцию для положительных входных данных, что делает ее более плавной, чем ReLU.
- GELU (линейная единица ошибки Гаусса): вариант функции активации Swish, основанный на функции кумулятивного распределения Гаусса. Известно, что GELU повышает производительность нейронных сетей в различных задачах.
- CReLU (конкатенированная ректифицированная линейная единица): объединяет выходные данные ReLU и отрицание ReLU для каждой входной карты объектов по измерению канала, что приводит к удвоению количества выходных карт объектов. Эта функция активации обычно используется в задачах компьютерного зрения.
- Softplus: аналогично ReLU, но использует функцию softplus для отрицательных входных данных, что приводит к более плавной кривой.
Это одни из наиболее часто используемых функций активации в TensorFlow v2.11. Если вы обнаружите что-то не так с этим постом, пожалуйста, прокомментируйте и дайте мне знать.
Спасибо за прочтение этого поста.
Хорошего дня!