Глава 7. Визуализация данных и моделей
309
7.2.2. Визуализируем именно то, к чему чувствительны
сверточные слои: наиболее активирующие
изображения
Еще один способ показать, что усвоила сверточная сеть: найти входные изображения,
к которым чувствительны ее разнообразные внутренние слои. Под фразой «фильтр
чувствителен к определенному входному изображению» мы понимаем максималь
ную активацию выходного сигнала фильтра (усредненного по выходным измерени
ям высоты и ширины) при этом входном изображении. Изучение подобных наиболее
активирующих входных сигналов для различных слоев сверточной сети позволяет
выяснить, на что именно обучился реагировать каждый из слоев.
А найдем мы наиболее активирующие изображения с помощью уловки, ставя
щей «нормальный» процесс обучения нейронной сети с ног на голову. В блоке A на
рис. 7.9 схематически показано, что происходит при обучении нейронной сети с по
мощью вызова
tf.Model.fit()
. Мы блокируем входные данные и позволяем весовым
коэффициентам модели (ядрам и смещениям всех обучаемых слоев) обновляться на
основе функции потерь
1
путем обратного распространения ошибки. Однако ничто
не запрещает нам поменять местами роли входного сигнала и весовых коэффициен
тов: заблокировать весовые коэффициенты, позволив
входному сигналу
обновляться
путем обратного распространения ошибки. Тем временем мы подправляем функцию
потерь так, чтобы обратное распространение ошибки «подталкивало» входной сиг
нал в сторону максимизации выходного сигнала конкретного сверточного фильтра
при усреднении по измерениям высоты и ширины.
Данный процесс изображен схематически в блоке Б на рис. 7.9 и называется
градиентным подъемом в пространстве входных данных
(gradient ascent in input
space), в отличие от
градиентного спуска в пространстве весовых коэффициентов
(gradient descent in weight space), лежащего в основе обычного обучения модели.
Код, реализующий градиентный подъем в пространстве входных данных, приведен
в следующем разделе.
На рис. 7.10 показан результат выполнения процесса градиентного подъема в про
странстве входных данных для четырех сверточных слоев модели VGG16 (той самой,
на которой мы демонстрировали внутренние активации). Как и на предыдущей
иллюстрации, глубина расположения слоев в модели растет сверху вниз. Из этих
наиболее активирующих входных изображений можно почерпнуть несколько ин
тересных паттернов.
z
z
Вопервых, это цветные изображения, а не внутренние активации в оттенках
серого, как в предыдущем разделе. А все потому, что их формат соответствует
формату фактического входного сигнала сверточной сети: изображение, состо
ящее из трех (RGB) каналов. Потому их можно отобразить в цвете.
1
Эту схему можно считать упрощенной версией рис. 2.9, на котором мы знакомили вас
с обратным распространением ошибки в главе 2.
Do'stlaringiz bilan baham: |