# Янник Килхер о слоях EvoNorm: «Это поиск на стероидах для конкретных задач»

Источник: https://www.youtube.com/watch?v=klPuEHCKG9M
Канал: Yannic Kilcher
Опубликовано: 09.04.2020

---

Исследователи из Google Brain и Google DeepMind представили новый подход к проектированию архитектур нейронных сетей, заменив привычную комбинацию слоев нормализации и активации едиными структурами, полученными в результате эволюционного поиска. Ведущий Янник Килхер (Yannic Kilcher) анализирует статью «Evolving Normalization-Activation Layers», разбирая, как автоматизированный поиск позволяет создавать слои EvoNorm, которые превосходят классические Batch Norm и ReLU на задачах классификации и сегментации изображений.

## 🧬 Объединение нормализации и активации: концепция EvoNorm
[[JUMP:00:00]]

Современные архитектуры глубокого обучения для работы с изображениями, такие как ResNet, MobileNet и EfficientNet, строятся по схожим принципам [0:41]. Основу этих сетей составляют блоки, включающие в себя сверточные слои, механизмы проброса градиента (skip connections) и обязательную связку из нормализации (например, Batch Normalization) и нелинейной активации (например, ReLU) [1:24].

По словам Янника Килхера, авторы статьи предложили пересмотреть этот стандартный подход [1:37]:

*   **Идея EvoNorm:** вместо использования двух раздельных слоев (нормализация + активация), исследователи решили объединить их функции в единый слой «EvoNorm».
*   **Метод создания:** структура этих слоев не проектируется человеком вручную, а выводится с помощью эволюционного алгоритма поиска.
*   **Результат:** найденные слои, такие как EvoNorm-S0, представляют собой математические выражения, комбинирующие входной сигнал, среднее значение, стандартное отклонение и обучаемые параметры [3:48].

Янник Килхер отмечает, что структура EvoNorm-S0 во многом напоминает существующие функции активации, но включает в себя более сложные зависимости от статистики данных внутри групп (Group Normalization) [4:03].

## 🛠 Механика эволюционного поиска: примитивы и мутации
[[JUMP:04:19]]

Для поиска оптимальных слоев исследователи определили пространство поиска, состоящее из базовых математических «примитивов» [4:19]. Эти примитивы включают в себя:

*   **Арифметические операции:** сложение, умножение, вычитание.
*   **Математические функции:** логарифм, квадратный корень, абсолютное значение.
*   **Специальные функции:** Max (аналог ReLU), Sigmoid.
*   **Статистические показатели:** среднее по батчу (batch mean), стандартное отклонение по группе (group standard deviation) [5:10].

Сам процесс поиска организован по принципу эволюционного турнира [5:23]:

1.  **Создание популяции:** генерируется несколько сотен или тысяч вариантов архитектур слоев.
2.  **Прокси-задача:** каждая архитектура тестируется на небольшом наборе данных CIFAR-10. Янник Килхер поясняет, что это необходимо для ускорения процесса, так как обучение на CIFAR-10 занимает минуты, а не часы [6:18].
3.  **Турнирный отбор:** выбирается несколько случайных слоев, их производительность сравнивается, и определяется «победитель».
4.  **Мутация:** победивший слой подвергается случайным изменениям (добавление новых узлов в граф вычислений, изменение родителей в операциях), после чего возвращается в популяцию [6:58].

Янник Килхер подчеркивает, что мутации происходят случайным образом, но за счет постоянного отбора лучших моделей (селективного давления) популяция постепенно эволюционирует в сторону более эффективных решений [7:24].

## 🧪 Протоколы отклонения: борьба с нестабильностью
[[JUMP:13:40]]

Ключевым элементом работы, по мнению Янника Килхера, является «шаг отклонения» (rejection step) [13:40]. Авторы ввели жесткие критерии, чтобы не тратить вычислительные ресурсы на заведомо бесполезные или нестабильные архитектуры.

Исследователи используют два основных критерия:

*   **Критерий качества:** если слой не достигает точности 20% на CIFAR-10 за первые 100 шагов обучения, он удаляется. Это позволяет отсеять «мусорные» варианты, которые работают не лучше случайного угадывания (10% для CIFAR-10) [14:59].
*   **Критерий стабильности:** слои проверяются на численную нестабильность и взрыв градиентов [16:08].

Для проверки стабильности используется состязательный подход: исследователи пытаются найти такое минимальное изменение весов сверточных слоев, которое максимально изменит значение функции потерь (градиент) [17:31]. Если норма градиента в худшем случае превышает 10^8, слой отклоняется [18:35].

Янник Килхер критически замечает, что эти протоколы кажутся «подогнанными» под конкретные проблемы [19:54]. По его мнению, авторы, вероятно, столкнулись со взрывом градиентов при переносе моделей на ImageNet и только после этого внедрили критерий стабильности в процесс эволюции [19:13]. Килхер утверждает, что такая ручная настройка протоколов поиска ослабляет универсальность метода, делая его слишком зависимым от конкретных архитектур и наборов данных [20:31].

## 📊 Результаты и обобщающая способность
[[JUMP:21:40]]

Эксперименты показали, что найденные слои EvoNorm стабильно превосходят классическую связку Batch Norm + ReLU на прокси-задаче CIFAR-10 [22:07]. Однако при переносе на более сложный датасет ImageNet результаты оказались менее однозначными.

Основные наблюдения Янника Килхера по результатам:

*   **Сравнение с ImageNet:** EvoNorm показывает конкурентные результаты, но прирост точности по сравнению со стандартными методами часто оказывается маржинальным (незначительным) [23:47].
*   **Случайный поиск:** если использовать просто случайный поиск слоев без эволюции, результаты будут очень плохими [25:07]. Однако случайный поиск в сочетании с протоколами отклонения (rejection protocols) дает на удивление хорошие показатели, иногда даже превосходя классические методы [25:19].

Янник Килхер предполагает, что успех метода во многом обусловлен не столько «интеллектом» эволюции, сколько огромным количеством переборов в поисках того, что сработает на конкретных архитектурах [25:58].

## 🖼 Применение в других задачах: COCO и GAN
[[JUMP:26:37]]

Чтобы доказать универсальность EvoNorm, авторы протестировали слои на задачах детекции объектов (датасет COCO) и генерации изображений (GAN) [26:37].

*   **Детекция и сегментация:** в архитектурах Mask R-CNN слои EvoNorm показали результаты выше базовых моделей, хотя разрыв в цифрах остается небольшим [26:50].
*   **Генеративные сети:** в моделях BigGAN использование EvoNorm позволило улучшить метрики FID (Fréchet Inception Distance) и Inception Score, хотя в некоторых случаях стандартный Batch Norm всё еще показывал себя лучше [28:14].

В заключении Янник Килхер выражает сомнение в том, что найденные слои останутся лучшими при переходе к совершенно иным доменам данных [29:22]. Он считает, что EvoNorm — это результат глубокой оптимизации под ResNet-подобные структуры и задачи визуального распознавания, и при смене архитектуры или типа задач (например, на обработку текста) придется запускать весь процесс эволюции заново для поиска новых оптимальных решений [29:49].