Инцепционизм, или о чем грезят андроиды
haritonoff — 20.06.2015В блоге Google опубликован рассказ группы исследователей о том, как искусственные нейронные сети научили писать свои картины. Для этого использовались нейросети, предназначенные для распознавания изображений: получив фотографию или рисунок, они выясняют, какие именно объекты на ней изображены.
Такие нейросети состоят из 10–30 связанных слоев, которые работают последовательно: получив картинку, они анализируют ее и «сообщают» результаты анализа следующему слою. Например, первые слои могут искать на изображении края и углы, средние — интерпретировать наборы особенностей в отдельные объекты (например, двери или листья). Наконец, финальные слои объединяют все эти интерпретации воедино и делают выводы о том, что изображено на картинке — например, здание или дерево.
Чтобы получать «картины», исследователи заставляют работать нейронные сети задом наперед: они показывают сети случайный шум и просят «улучшить» его таким образом, чтобы на выходе получилась определенная интерпретация. Например, если попросить нейросеть «найти» в шуме банан, муравья или морскую звезду, та действительно подкорректирует изображение, чтобы в нем проявились узнаваемые черты.
По словам исследователей, нейронной сети можно вообще не говорить, что именно нужно «нарисовать» — пусть решает сама. В таком случае ей на вход подают случайную картинку или фотографию, выбирают один из слоев нейросети и просят ее улучшить то, что этот слой найдет. Так как у каждого слоя свой уровень абстракции, то каждый раз получаются разные картинки.
Например, базовые слои, определяющие края и их положение на картинке, будут накладывать на фотографию мазки или простые орнаменты:
А ниже — пример того, что получится, если скормить картинку более «продвинутым» слоям нейронной сети, которые ищут целые объекты на картинках. Разработчики как бы говорят нейросети: «Найди тут что-нибудь знакомое и выдели это поярче». В результате, если сети покажется, что облако похоже на птицу, она сделает его еще более похожим.
Эта нейросеть в основном обучалась на изображениях животных, поэтому она попыталась найти их на фотографии.
Работает это, конечно, не только с облаками. Ниже другие примеры — как горы превращаются в башни, деревья — в здания, а листочки — в птиц.
Чтобы получить действительно интересные картины, исследователи пошли еще дальше: они подавали нейронной сети картинку, затем то, что она выдала — и так вновь и вновь, на каждом шаге увеличивая масштаб изображения. Причем изначально можно скормить нейросети случайный шум, и все равно получится нечто прекрасное.
Источник; по наводке vadim_proskurin
|
</> |