Можно ли доверять визуализации ландшафта потерь глубоких нейронных сетей?

Введение

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

Метод

Весь процесс создания ландшафта потерь довольно прост и понятен.

  1. Обучить сеть
  2. Создавайте случайные направления
  3. Добавьте другое количество возмущений к фиксированным весам и посмотрите, как изменится величина потерь.

Единственное, что следует отметить, - это то, как создаются эти случайные направления. Давайте посмотрим на авторский метод.

Их метод называется нормализация фильтров, и его довольно легко понять. (Вот ссылка на авторский код). По сути, для тензоров с 4-мерным измерением, таких как (64,3,3,3), мы собираемся сопоставить норму относительно первого измерения, поэтому (64,1,1,1) между нормой веса и случайным направлением норма. (В более упрощенном виде мы можем понимать это как соответствие шкалы между весами и случайными направлениями).

Выше частичный результат при запуске авторского кода. Теперь мы можем упростить весь процесс, воспользовавшись тензорной операцией. (который я покажу позже)

Сеть

Зеленый шар → Входное изображение (64,64,3)
Синий прямоугольник → Свертка + активация ReLU
Красный прямоугольник → Выход Soft Max

Для этого поста я обучил три девятислойные полностью сверточные нейронные сети (как показано выше) на наборе данных CIFAR 10. Без какой-либо нормализации, с пакетной нормализацией и с локальной нормализацией ответа.

И из приведенных выше графиков мы видим, что сеть с пакетной нормализацией достигла наивысшей производительности.

С этого момента я буду называть каждую сеть следующим образом
Нормальная: сеть без какого-либо уровня нормализации
Пакетная норма: сеть с уровнем пакетной нормализации.
Local Norm: сеть с уровнем нормализации локального отклика.

Нормализация фильтра

В приведенном выше фрагменте показано, как выполнить нормализацию фильтра с помощью тензорных операций.

Когда мы используем метод нормализации фильтра для визуализации ландшафта потерь, мы видим, что каждый ландшафт не сильно отличается друг от друга. Только в том случае, когда мы показываем ландшафт в логарифмическом масштабе, мы видим, что на самом деле ландшафт для локальной нормализации реакции намного резче.

Когда мы наложим все три графика вместе в их исходных масштабах, мы увидим, насколько они похожи.

Ортогонализация фильтра

Вышеупомянутый метод является простой модификацией авторского метода, мы генерируем случайные направления из простого распределения Гаусса, но с помощью QR-разложения мы ортогонализируем направления.

Когда мы ортогонализируем направления по отношению к разным измерениям, мы сразу видим, как созданные ландшафты потерь отличаются друг от друга. По сравнению с авторским методом мы видим разницу в ландшафте потерь между тремя сетями.

Ортогональная проекция веса

Это в основном то же самое, что и фильтрация ортогонализации, с той лишь разницей, что отбеливание ZCA выполняется на другом измерении сходимых весов, а не на основе гауссовых распределений.

Подобно фильтру ортогонализации, мы можем видеть некоторые различия между сгенерированными визуализациями.

Основные указания от весов

Последний метод состоит в том, чтобы сместить веса в их основных направлениях, просто между разными измерениями.

И мы ясно видим разницу между созданными ландшафтами потерь.

Обсуждение

Единственная причина, по которой я пишу этот пост, - показать, что в зависимости от направлений, в которых мы используем, созданные ландшафты потерь могут резко измениться. Следовательно, нам необходимо поставить под сомнение достоверность созданных ландшафтов потерь, действительно ли они отражают характеристики обученной сети.

Код

Чтобы получить доступ к кодам для создания визуализаций, щелкните здесь.
Чтобы получить доступ к кодам для всего сообщения в блоге, щелкните здесь.

Заключительные слова

Я не хочу делать никаких смелых заявлений, но похоже, что при выборе разных направлений получаются разные визуализации. Остается вопрос, какое направление наиболее правильное? Может ли быть правильный, а какой раскрывает правду? Кроме того, я хочу упомянуть статью под названием Sharp Minima Can Generalize For Deep Nets, которая показывает, что глубокие нейронные сети, которые сошлись до резких минимумов, могут хорошо обобщаться, и теория не годится для сетей с активациями ReLU. Подобно тому, как этот документ доказывает, что в зависимости от нашего определения наши наблюдения могут измениться, мы должны стремиться создавать определения, отражающие истину.

Впереди еще много исследований, и я с нетерпением жду их. Если вы хотите видеть больше подобных сообщений, посетите мой сайт.

Ссылка

  1. Ли, Х., Сюй, З., Тейлор, Г., Студер, К., и Голдштейн, Т. (2017). Визуализация ландшафта потерь нейронных сетей. arXiv.org. Получено 3 мая 2019 г. с сайта https://arxiv.org/abs/1712.09913.
  2. tomgoldstein / loss-landscape. (2019). GitHub. Получено 3 мая 2019 г. с сайта https://github.com/tomgoldstein/loss-landscape.
  3. Https://prateekvjoshi.com/2016/04/05/what-is-local-response-normalization-in-convolutional-neural-networks/