Прежде чем погрузиться в список функций активации, доступных в Tensorflow v2.11. Давайте разберемся, что такое функция активации.

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

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

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

Зачем нам нужна нелинейная функция активации?

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

Вот список функций активации, доступных в TensorFlow v2.11, с простым объяснением:

  1. ReLU (выпрямленная линейная единица): простая функция активации, которая обнуляет все отрицательные значения и оставляет все положительные значения такими, какие они есть. Эта функция обычно используется в глубоких нейронных сетях, поскольку она может помочь предотвратить проблему исчезающего градиента.
  2. Leaky ReLU: вариант ReLU, допускающий небольшой градиент при отрицательном входном сигнале. Это помогает избежать «мертвых» нейронов, которые имеют нулевой выход и больше никогда не активируются.
  3. ELU (Экспоненциальная линейная единица): еще один вариант ReLU, использующий экспоненциальную функцию для отрицательных входных данных, что обеспечивает более плавный переход от отрицательных значений к положительным.
  4. SELU (масштабированная экспоненциальная линейная единица): самонормализующаяся версия функции активации ELU, которая помогает предотвратить взрыв или исчезновение градиентов в глубоких нейронных сетях.
  5. Softmax: используется для нормализации набора значений в вероятностное распределение. Softmax обычно используется в выходном слое нейронной сети для задач классификации нескольких классов.
  6. Sigmoid: еще одна функция активации, используемая в выходном слое для задач двоичной классификации. Sigmoid отображает любое входное значение в значение от 0 до 1.
  7. Tanh (гиперболический тангенс): похож на сигмоид, но отображает входные значения в диапазоне от -1 до 1. Tanh также используется в выходном слое для задач двоичной классификации.
  8. Swish: относительно новая функция активации, похожая на Sigmoid, но использующая линейную функцию для положительных входных данных, что делает ее более плавной, чем ReLU.
  9. GELU (линейная единица ошибки Гаусса): вариант функции активации Swish, основанный на функции кумулятивного распределения Гаусса. Известно, что GELU повышает производительность нейронных сетей в различных задачах.
  10. CReLU (конкатенированная ректифицированная линейная единица): объединяет выходные данные ReLU и отрицание ReLU для каждой входной карты объектов по измерению канала, что приводит к удвоению количества выходных карт объектов. Эта функция активации обычно используется в задачах компьютерного зрения.
  11. Softplus: аналогично ReLU, но использует функцию softplus для отрицательных входных данных, что приводит к более плавной кривой.

Это одни из наиболее часто используемых функций активации в TensorFlow v2.11. Если вы обнаружите что-то не так с этим постом, пожалуйста, прокомментируйте и дайте мне знать.

Спасибо за прочтение этого поста.

Хорошего дня!