Можно ли доверять визуализации ландшафта потерь глубоких нейронных сетей?
Введение
Недавно был разработан метод визуализации ландшафта потерь глубоких нейронных сетей. Я лично считаю, что это огромный прорыв, однако я немного сомневаюсь в достоверности созданной визуализации. И сегодня я исследую авторский метод визуализации, а также расскажу о некоторых других методах, которые я считаю довольно крутыми.
Метод
Весь процесс создания ландшафта потерь довольно прост и понятен.
- Обучить сеть
- Создавайте случайные направления
- Добавьте другое количество возмущений к фиксированным весам и посмотрите, как изменится величина потерь.
Единственное, что следует отметить, - это то, как создаются эти случайные направления. Давайте посмотрим на авторский метод.
Их метод называется нормализация фильтров, и его довольно легко понять. (Вот ссылка на авторский код). По сути, для тензоров с 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. Подобно тому, как этот документ доказывает, что в зависимости от нашего определения наши наблюдения могут измениться, мы должны стремиться создавать определения, отражающие истину.
Впереди еще много исследований, и я с нетерпением жду их. Если вы хотите видеть больше подобных сообщений, посетите мой сайт.
Ссылка
- Ли, Х., Сюй, З., Тейлор, Г., Студер, К., и Голдштейн, Т. (2017). Визуализация ландшафта потерь нейронных сетей. arXiv.org. Получено 3 мая 2019 г. с сайта https://arxiv.org/abs/1712.09913.
- tomgoldstein / loss-landscape. (2019). GitHub. Получено 3 мая 2019 г. с сайта https://github.com/tomgoldstein/loss-landscape.
- Https://prateekvjoshi.com/2016/04/05/what-is-local-response-normalization-in-convolutional-neural-networks/