Активация Kazry: как кусочно-заданная функция обогнала популярную SiLU в тесте на CIFAR-100
Исследовательская работа на платформе Habr представила новую функцию активации для нейронных сетей — Kazry. Автор утверждает, что, несмотря на отсутствие бесконечной дифференцируемости в точке нуля, эта функция демонстрирует лучшие показатели сходимости по сравнению с устоявшимся стандартом SiLU, обеспечивая более мощный пропуск сигнала в отрицательной области входных данных.
# Kazry: новый подход к функциям активации в глубинном обучении
Проблема затухающего градиента в современных архитектурах
В индустрии машинного обучения функции активации являются фундаментом построения нейронных сетей. Долгое время стандартом де-факто стала функция SiLU (Smoothstep Linear Unit, ранее известная как Swish). Ее главная привлекательность заключается в бесконечной дифференцируемости, что упрощает процесс обратного распространения ошибки. Однако, согласно аналитике автора исследования, эта бесконечная гладность имеет оборотную сторону.
При рассмотрении графика производной SiLU становится очевидна ее слабость: в области отрицательных значений входа функция ведет себя так, что урезает величину градиента. В процессе обучения глубоких сетей это приводит к затуханию сигнала при передаче ошибки от выходных слоев к входным. Результатом становится замедленная сходимость моделей, особенно заметный эффект на начальных этапах тренировки.
Техническое пояснение: *Производная функции активации определяет силу сигнала, который проходит через нейрон во время обучения. Если производная мала (близка к нулю), градиент не доходит до предыдущих слоев сети в достаточной силе, чтобы обновить веса, что и называется «затухающим градиентом».*
Конструкция и преимущества Kazry
В противовес SiLU предложена функция Kazry, построенная на принципах кусочно-заданной структуры. Алгоритм работы функции разделен на две части: положительную и отрицательную ветви.
Ключевое отличие заключается в поведении на отрицательной стороне оси координат. SiLU в этой области подавляет сигнал, приближая его к нулю. Kazry, напротив, обеспечивает более мощный пропуск сигнала даже при отрицательных входах, а в положительной части она полностью сохраняет входной сигнал без изменений (линейно).
График производной Kazry подтверждает этот тезис: он демонстрирует значительно большую величину в начале отрицательной части по сравнению с SiLU. Это теоретически должно ускорить сходимость глубоких сетей, позволяя весам обновляться более эффективно с первых итераций обучения.
Цена эффективности
Как подчеркивает автор, любой прирост в одной области неизбежно создает уязвимости в другой. У Kazry есть два заметных недостатка:
1. Неряшливость второй производной: На стыке положительных и отрицательных ветвей (в точке нуля) вторая производная имеет разрыв. Большинство современных оптимизаторов, таких как AdamW или SGD, работают с первой производной, поэтому обучение не ломается на практике. Однако в теории этот излом может усложнить ландшафт функции потерь для более чувствительных алгоритмов второго порядка. 2. Производительность вычислений: Математически Kazry на отрицательной ветви требует меньше операций (одна экспонента и одно умножение против сложной структуры SiLU). Однако на уровне реализации в коде (например, в библиотеках PyTorch или с использованием Triton) возникают логические ветвления (torch.where). Кроме того, SiLU опирается на сигмоиду, расчет которой на GPU (CUDA) отлажен годами. В итоге реальная скорость обработки Kazry оказывается незначительно ниже, чем у SiLU.
Результаты экспериментов на CIFAR-100
Для проверки гипотезы была проведена серия экспериментов на стандартном датасете CIFAR-100. В качестве контрольных точек использовались архитектуры CNN и Transformer с модификациями GLU и NoPE-кодированием позиций. Сети состояли из 10 слоев со скрытой размерностью dim=64.
Сравнение показало явное преимущество Kazry (и ее модификации KazGLU) перед SiLU и SwiGLU:
* Снижение потерь: На финальном этапе обучения тестовая ошибка (val loss) с использованием Kazry была ниже у CNN на абсолютные 0.127 (около 5.3% в относительных показателях), а у Transformer на 0.057 (1.9%). * Качество сходимости: Графики показали, что Kazry обеспечивает лучшую сходимость на протяжении всего цикла обучения. В то время как у конкурентов наблюдались выраженные осцилляции (колебания) на графиках валидации, у Kazry эти колебания сглажены.
Стоит отметить, что за лучшую точность пришлось заплатить небольшим увеличением времени обучения: в среднем на 2.7% для CNN и на 7.8% для Transformer. Однако автор счел это приемлемой ценой за улучшение качества финальной модели.
Итоги и перспективы
Новая функция активация Kazry доказала свою эффективность в практическом тесте. Она решает проблему подавления градиентов в отрицательной области, свойственную SiLU, что приводит к более стабильной и быстрой сходимости моделей. Несмотря на наличие точки разрыва во второй производной и чуть меньшую скорость вычислений, баланс «цена-качество» выглядит выгодным для задач, где критична точность предсказания.
Автор открыл доступ к коду реализации активации и скриптам обучения в своих репозиториях, приглашая сообщество к дальнейшему исследованию метода и внедрению его в новые архитектуры нейронных сетей.