Перевод статьи подготовлен для студентов курса «Нейронные сети на Python» в образовательном проекте OTUS.
11 апреля ученые и инженеры из команды телескопа Горизонта Событий совершили настоящий прорыв в вопросе понимания процессов, которые происходят в космическом пространстве. Они представили первое изображение (фотографию) черной дыры. Это еще больше укрепило общую теорию относительности Эйнштейна, а именно гипотезу, согласно которой «массивные объекты вызывают искажение в пространстве-времени, которое отражается в виде гравитационных изменений».
Что ж, я не физик и не астроном, чтобы понимать или объяснять, как это работает, но я, как и миллионы людей, работающих в различных сферах, очарован космосом и в особенности феноменом черных дыр. Первое изображение черной дыры вызвало волну восторга во всем мире. Я специалист по глубокому обучению, который в основном работает со сверточными нейронными сетями, и мне стало интересно, что алгоритмы искусственного интеллекта «думают» об изображении черной дыры. Именно об этом мы будем говорить в статье.
Этот отрывок из «Epoch Times» описывает черную дыру так: «Черные дыры состоят из «большого количества материи, упакованной в очень маленькое пространство», в основном сформированной из «остатков большой звезды, которая умерла во время взрыва сверхновой.» У черных дыр настолько сильное гравитационное поле, что даже свет не может его избежать. Полученное изображение черной дыры М87 показано ниже. Этот феномен хорошо объяснен в статье «How to make sense of the black hole image, according to 2 astrophysicists».
1. Что CCN видит на изображении черной дыры
CCN (Convolution Neural Network) – сверточные нейронные сети – класс алгоритмов глубокого обучения, который крайне эффективен в вопросе распознавания объектов реального мира. CCN – лучшие нейронные сети для интерпретации и распознавания изображений. Такие нейронные сети натренированы на миллионе картинок и обучены распознавать около 1000 различных объектов окружающего мира. Я подумал о том, чтобы показать изображение черной дыры двум натренированным сверточным нейронным сетям и посмотреть, как они ее распознают, на какой объект окружающего мира черная дыра похожа больше всего. Это не самая мудрая идея, поскольку изображение черной дыры было сгенерировано путем объединения различных сигналов, полученных из космоса с помощью специального оборудования, но мне просто хотелось узнать как картинка будет интерпретирована без какой-либо дополнительной информации о сигналах.
Как мы видим на изображениях выше, натренированные VGG-16 и VGG-19 видят черную дыру, как спичку, а ResNet-50 думает, что это свеча. Если мы проведем аналогию с этими объектами, то поймем, что она имеет некоторый смысл, поскольку и горящая спичка и свеча имеют темный центр, окруженный плотным ярким желтым светом.
2. Какие признаки CCN извлекла из изображения черной дыры
Я сделал еще одну вещь, я визуализировал, что генерируют промежуточные слои VGG-16. Сети глубокого обучения называются именно глубокими, потому что они имеют определенное количество слоев, и каждый из них обрабатывает представление и признаки изображения на входе. Давайте посмотрим, что разные слои сети узнают из поступающего изображения. Результат получился довольно красивым.
Если вы присмотритесь повнимательнее, вы увидите, что маленькая светлая область – это сильный признак, и именно он усваивается после прохождения большинства фильтров. Несколько интересных выходных данных фильтра показаны ниже, и они уже действительно выглядят, как какой-то небесный объект.
Увеличим масштаб некоторых интересных карт признаков второго слоя нейронной сети.
Теперь мы опустимся еще глубже и посмотрим на третий сверточный слой.
После приближения мы находим знакомый рисунок.
Двигаясь глубже, мы получим что-то вроде этого.
Углубляясь, мы получаем абстрактную информацию более высокого уровня, а когда визуализируем 7-й, 8-й и 10-й слои свертки, мы увидим только высокоуровневую информацию.
Как мы видим, многие из карт признаков темные и обучаются только конкретным признакам высокого уровня, необходимым для распознавания этого класса. В более глубоких слоях они становятся заметнее. Теперь мы увеличим масштаб и взглянем на некоторые фильтры.
А теперь рассмотрим 512 карт признаков 10-го сверточного слоя.
Теперь вы видите, что в большинстве полученных карт признаков только область картинки принимается в качестве признака. Это признаки высокого уровня, которые видны нейронам. Давайте посмотрим на некоторые из карт признаков, приведенных выше, поближе.
Теперь, когда мы увидели, что CCN пытается вычленить из изображения черной дыры, попробуем передать на вход это изображение другим популярным алгоритмам нейронной сети, таким как Neural Style Transfer и DeepDream.
3. Пробуем Neural Style Transfer и Deep Dream на изображении черной дыры
Neural style transfer – это умная нейронная сеть, которая придает «стиль» одного изображения другому исходному изображению и в итоге создает художественный образ. Если вы все еще не поняли, то изображения ниже пояснят концепцию. Я использовал сайт deepdreamgenerator.com, чтобы создать из исходного изображения черной дыры различные художественные образы. Картинки получились довольно интересные.
DeepDream — это программа, использующая компьютерное зрение, созданная инженером Google Александром Мордвинцевым, которая задействует сверточную нейронную сеть для поиска и улучшения паттернов в изображениях с помощью алгоритмической парейдолии, создавая таким образом галлюциногенного вида изображения из преднамеренно обработанных изображений.
В этих видео о Deep Dream вы увидите насколько галлюцинирующие изображения она может создать.
Вот и все! Я был крайне потрясен, когда увидел первую фотографию черной дыры, и сразу же написал эту маленькую статью. Информация в ней может быть не такой полезной, но изображения, созданные в ходе ее написания и показанные выше, полностью того стоят. Наслаждайтесь фотографиями!
Пишите в комментарии, как вам материал. Ждем всех на дне открытых дверей по курсу «Нейронные сети на Python».