Инженеры Google Александр Мордвинцев, Крисофер Ола и Майк Тика визуализовали работу 22-слойной сверточной нейросети, которая составляет основу системы распознавания изображений Inception. Изображения, которые получились в результате «переворачивания системы с ног на голову», исследователи назвали «инцепционизмом». О методе получения таких изображений они рассказали в блоге Google Research.
Общая идея создания таких изображений основана на том, что в фотографии или картине усиливают те черты, которые напоминают системе что-то знакомое. Например, если система натренирована на распознавание лица, она даже в совершенно случайном изображении — например, облаков — увидит какие-то его фрагменты. Затем их можно будет усилить, получив изображения с лицами на облаках.
С технической точки зрения речь идет об алгоритме обратного распространения значений каждого из нейронов из произвольно выбранного слоя нейросети. Подав на вводный слой случайное изображение, инженеры брали значения из верхнего интересующего их слоя и распространяли значения обратно, искажая исходное изображение — по аналогии со стандартным алгоритмом обратного распространения ошибки, который используется для тренировки нейросети. Смысл такого переворачивания сети заключался в том, что оно позволяло визуализовать веса связей в слое любого уровня. На уровнях выше первого-второго сами по себе веса визуализовать очень сложно: обычно они напоминают белый шум.
Как и ожидалось, нижние уровни сети находили в исходной картинке простые геометрические черты: наклонные линии, круги и так далее. Слои высокого уровня позволяли увидеть на фотографиях что-то напоминающее людей и животных. С помощью нескольких итераций инженерам удалось получить целые абстрактные картины, стартовав при этом с полностью случайного изображения (строго говоря, изображения не были белым шумом, так как ученым пришлось нормализовать корреляцию между соседними пикселями до типичных значений «обычных изображений»).
Работа сделана на базе архитектуры Inception, по которой в Google построена сверточная нейронная сеть 22 уровнями GoogLeNet. Именно ее инженеры использовали для получения изображений. Ранее тот же подход к визуализации работы нейросетей неоднократно применяли и другие исследователи, однако в их распоряжении не было настолько масштабной системы. Описание системы Inception было опубликовано еще в сентябре прошлого года.
Интересно, что по современным данным нейрофизиологии распознавание изображений мозгом устроено очень похоже: «появление» объекта на картине зависит от порога чувствительности, на который влияют, например, галлюциногены или сенсорная депривация.