Какие функции активации чаще всего используются в CV?
Функции активации — это важный элемент нейронных сетей, в том числе и в компьютерном зрении (CV), поскольку они вводят нелинейность в модель, позволяя ей обучаться сложным зависимостям в данных. В сверточных нейронных сетях (CNN) активации применяются после каждого слоя свёртки или полносвязного слоя. Ниже приведено подробное описание функций активации, которые чаще всего используются в задачах CV, их математическая формулировка, свойства, преимущества и недостатки.
1. ReLU (Rectified Linear Unit)
Формула:
f(x)=max(0,x)f(x) = \max(0, x)
Описание:
ReLU — самая популярная функция активации в CV. Она заменяет все отрицательные значения нулями, а положительные пропускает без изменений.
Преимущества:
-
Простота вычислений
-
Способствует быстрому обучению
-
Спарсит активации (многие становятся нулями)
Недостатки:
-
Проблема мертвых нейронов: если градиент становится равным нулю, нейрон перестает обновляться (x < 0).
-
Нет насыщения сверху, возможны нестабильные градиенты при больших значениях
Использование:
-
Почти все сверточные слои в CNN используют ReLU
-
Применяется во всех классических архитектурах: VGG, ResNet, AlexNet, MobileNet
2. Leaky ReLU
Формула:
f(x)={x,x≥0αx,x<0f(x) = \begin{cases} x, & x \geq 0 \\ \alpha x, & x < 0 \end{cases}
Где α\alpha — маленькая положительная константа (обычно 0.01)
Описание:
Leaky ReLU решает проблему мертвых нейронов, пропуская небольшое количество градиента даже при отрицательных входах.
Преимущества:
-
Сохраняет простоту ReLU
-
Поддерживает обновление нейронов при x<0x < 0
Недостатки:
- Небольшой контроль над параметром α\alpha, может требовать настройки
Использование:
- Используется в GAN, некоторых вариациях ResNet, особенно когда важна сохранность информации при отрицательных значениях
3. Parametric ReLU (PReLU)
Формула:
f(x)={x,x≥0ax,x<0f(x) = \begin{cases} x, & x \geq 0 \\ a x, & x < 0 \end{cases}
Где aa — обучаемый параметр
Описание:
Расширение Leaky ReLU, где коэффициент наклона на отрицательной части обучается вместе с остальными весами модели.
Преимущества:
-
Модель сама выбирает, насколько сильно подавлять отрицательные значения
-
Может повысить точность при достаточном количестве данных
Недостатки:
-
Увеличивает количество параметров
-
Может переобучаться на малых датасетах
Использование:
-
Использовалась в оригинальной версии He et al. ResNet (2015)
-
Встречается в моделях, где важна высокая адаптивность активаций
4. ELU (Exponential Linear Unit)
Формула:
f(x)={x,x≥0α(ex−1),x<0f(x) = \begin{cases} x, & x \geq 0 \\ \alpha (e^x - 1), & x < 0 \end{cases}
Обычно α=1\alpha = 1
Описание:
ELU сглаживает отрицательные значения и имеет насыщение в отрицательной области, что улучшает устойчивость градиента.
Преимущества:
-
Сохраняет активность нейронов для отрицательных значений
-
Центрирует данные ближе к нулю, что может ускорить обучение
Недостатки:
-
Более дорогие вычисления из-за экспоненты
-
При больших архитектурах может уступать ReLU по скорости
Использование:
- Встречается в медицинских и научных приложениях, где важна стабильность и устойчивость
5. Swish
Формула:
f(x)=x⋅σ(x)=x1+e−xf(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}}
Описание:
Swish была предложена Google как более плавная альтернатива ReLU. Она имеет S-образную форму и не имеет жесткой границы на нуле.
Преимущества:
-
Обеспечивает плавные градиенты
-
Не обнуляет отрицательные значения полностью
-
Может улучшить качество на глубоких сетях
Недостатки:
-
Медленнее по сравнению с ReLU
-
Может быть переизбыточной при малом количестве данных
Использование:
-
Применяется в EfficientNet, NASNet
-
Часто используется в AutoML-архитектурах
6. Mish
Формула:
f(x)=x⋅tanh(ln(1+ex))=x⋅tanh(softplus(x))f(x) = x \cdot \tanh(\ln(1 + e^x)) = x \cdot \tanh(\text{softplus}(x))
Описание:
Функция похожа на Swish, но имеет более гладкие производные. Mish считается одним из самых производительных вариантов на глубоких нейросетях.
Преимущества:
-
Гладкие производные на всём интервале
-
Повышает точность в некоторых задачах классификации и сегментации
-
Способствует лучшей обобщающей способности
Недостатки:
-
Дороже по вычислениям (log, exp, tanh)
-
Поддерживается не во всех фреймворках по умолчанию
Использование:
-
Встречается в кастомных CNN, UNet++, некоторых GAN
-
Часто применяется в исследованиях на Kaggle и других соревнованиях
7. Sigmoid
Формула:
f(x)=11+e−xf(x) = \frac{1}{1 + e^{-x}}
Описание:
Классическая S-образная функция, которая сжимает значения в диапазоне (0, 1). Используется редко как основная активация в скрытых слоях из-за затухающих градиентов.
Преимущества:
-
Подходит для задач бинарной классификации (на выходе)
-
Интерпретируется как вероятность
Недостатки:
-
Затухающий градиент при больших входах (особенно x≫0x \gg 0 или x≪0x \ll 0)
-
Не центрирована относительно нуля → может замедлять обучение
Использование:
-
В выходных слоях моделей бинарной классификации
-
В масках объектов (например, сегментация)
8. Tanh (Гиперболический тангенс)
Формула:
f(x)=tanh(x)=ex−e−xex+e−xf(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
Описание:
Сжимает значения в диапазон (-1, 1), центрирована относительно нуля, что делает её более эффективной, чем sigmoid, в некоторых ситуациях.
Преимущества:
-
Центрирована вокруг нуля
-
Подходит для нормализации сигналов
Недостатки:
-
Затухающий градиент при больших значениях x
-
Медленнее, чем ReLU
Использование:
-
В некоторых RNN-моделях
-
В выходных слоях автоэнкодеров или GAN (генерация изображений с нормированием)
9. Softmax
Формула:
f(xi)=exi∑j=1Kexjf(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{K} e^{x_j}}
Описание:
Функция активации, применяемая на последнем слое многоклассовой классификации. Преобразует логиты в вероятностное распределение.
Преимущества:
-
Гарантирует сумму выходов = 1
-
Хорошо интерпретируется как вероятности
Недостатки:
-
Используется только на выходе
-
Может быть чувствительной к выбросам (из-за экспоненты)
Использование:
- Последний слой CNN для многоклассовой классификации в CV (например, ImageNet)
10. Выбор активации в зависимости от задачи
Задача | Предпочтительная активация |
---|---|
Скрытые слои CNN | ReLU / Leaky ReLU / Swish / Mish |
--- | --- |
Классификация (2 класса) | Sigmoid на выходе |
--- | --- |
Классификация (много классов) | Softmax на выходе |
--- | --- |
Генерация изображений (GAN) | Tanh / Leaky ReLU / Mish |
--- | --- |
Медицинские задачи | ELU / Mish / Swish (устойчивые) |
--- | --- |
Сегментация | Sigmoid (для binary mask) / Softmax |
--- | --- |
Правильный выбор функции активации может существенно повлиять на эффективность, точность и устойчивость нейросетевой модели, особенно в задачах компьютерного зрения, где данные сложные, а глубина сетей велика.