Компьютеры не спят. Они просто смотрят на данные, пока те не начинают выглядеть совершенно иначе.
Пока мы офлайн, наши машины заняты переосмыслением старых файлов и генерацией странных новых материалов. Двигатель этого процесса? Google Deep Dream. Это программа, которая ищет закономерности в цифровых изображениях, изменяет их и выдает результаты для нашей оценки. Можно получить смешные результаты, художественные или же кошмарные. Всё зависит от того, что вы ей подаете и какие параметры задают сотрудники Google.
Единственный способ по-настоящему понять, что делает Deep Dream, — попробовать его самому. Google открыла свои серверы для публики. Цель состояла в том, чтобы понять, как программа классифицирует и индексирует изображения. Вы загружаете фотографию. Через несколько секунд вы получаете фантастическое изображение на основе исходного снимка.
Результат — странная гибридизация. Представьте, если бы Сальвадор Дали, Иероним Босх и Винсент Ван Гог устроили безумную вечеринку художников, которая длилась всю ночь. Именно такая атмосфера. Листья превращаются в красочные завихрения. Камни становятся повторяющимися прямоугольниками. Горы растворяются в изящных выделенных линиях.
Пустой пейзаж? Deep Dream заполняет его. Пагоды. Автомобили. Мосты. Части человеческого тела. Она видит животных. Много животных.
Загрузите портрет Тома Круза. Программа переработает складки и пространства в собачьи головы, рыб и других знакомых существ. Это не обычные животные. Это фантастические реконструкции, переплетенные с LSD-подобным калейдоскопом. Они жутко выразительны. Часто пугающи.
Google не устраивает рейвы. Она не подает своим серверам галлюциногенные химикаты. Она направляет эти серверы на анализ изображений и их последующее воспроизведение в виде новых представлений нашего мира.
То, как это работает, рассказывает нам кое-что о том, как мы создаем цифровые устройства. Это показывает, как машины переваривают невообразимое количество данных в нашем технологически одержимом мире.
Нейроны в битах
Компьютеры — холодные, неорганические машины. Они не спят. Они определённо не видят снов. Или так нам казалось.
Deep Dream изменил это восприятие. Речь шла не о том, чтобы дать компьютеру подсознание. Речь шла о том, чтобы обнажить поразительную, странную сложность, которая возникает, когда вы подаете данные человеческого мира в всё более запутанный код.
Разработчики Google не начинали это как художественный проект. Они создали Deep Dream для конкурса ImageNet Large Scale Visual Recognition Challenge. Этот конкурс начался в 2010 году. Каждый год десятки команд соревнуются в создании лучших автоматических классификаторов изображений. Цель? Распознавать и сортировать миллионы фотографий без участия человека. После каждого конкурса проигравшие (и победители) дорабатывают свои алгоритмы. Они пытаются делать это быстрее. Лучше. Точнее.
Вот в чём проблема этого поиска. Распознавание изображений в значительной степени отсутствует в нашем стандартном интернет-инструментарии. Поисковые системы? Они любят ключевые слова. Введите «кошка», и вы получите текстовые результаты. Введите «cat.jpg», и вы можете получить файл. Но попросите поисковую систему понять, что находится на фотографии? Она испытывает трудности.
Мы сами размечаем наши фотографии. «Дом». «Томми». «Закат». Мы делаем это потому, что компьютеры не могут надёжно обрабатывать визуальный шум. Реальная жизнь хаотична. Это не чистые векторы. Это шум. И до недавнего времени машины считали этот шум мусорными данными.
Deep Dream был попыткой исправить эту слепоту.
Как работает Deep Dream
Секретный ингредиент? Искусственная нейронная сеть (ИНС).
Это не просто код. Это система, смоделированная по образу человеческого мозга. Подумайте об этом. У нас более 100 миллиардов нейронов. Они передают импульсы. Обрабатывают сенсорные данные. Помогают нам узнавать лицо в толпе.
Deep Dream имитирует это. Он использует искусственные нейроны для фильтрации данных. Он пропускает эти данные через слои. И слои. И слои. Снова и снова.
Архитектура сна
Для Deep Dream сеть обычно имеет от 10 до 30 слоёв этих искусственных нейронов. Это много этапов обработки для одного изображения.
Система не просто «видит» изображение. Она разбивает его на части. Она ищет закономерности. Края. Кривые. Текстуры. Она уточняет свою интерпретацию на каждом слое. Итоговый результат — это изображение. Но не исходное.
Результатом становится галлюцинация.
Вы подаете фотографию парка. Компьютер видит деревья. Он видит траву. Но поскольку нейронная сеть гипернастроена на поиск всего, что похоже на известный объект, она начинает усиливать эти признаки.
Трава становится мехом. Ветви деревьев — ногами. Небо становится гигантским глазом.
Почему это важно для визуального поиска
Это не просто безумная заставка. Это демонстрирует сдвиг в том, как мы обрабатываем информацию.
На протяжении многих лет мы полагались на метаданные. Мы размечали нашу цифровую жизнь. Но Deep Dream показал, что машины могут научиться интерпретировать визуальные данные без этих меток.
«Deep Dream показал нам, что если дать машине достаточно внимательно посмотреть, она найдёт закономерности, которых нет — или, точнее, найдёт закономерности, которые мы не видим».
Компьютер не видит снов в человеческом смысле. Он оптимизирует. Он толкает пиксели туда, куда, по его мнению, они принадлежат. И тем самым он выявляет пробелы в собственном понимании.
Если машина может превратить велосипед в существо, состоящее из велосипедов,
Нейронные сети — это не волшебные зеркала, которые просто отражают данные обратно. Они не начинают автоматически выявлять закономерности из ниоткуда. Им требуется обучение. Их необходимо кормить наборами данных, которые будут служить отправными точками. Без этой тяжелой работы они просто вслепую перебирали бы информацию, не в состоянии понять ни единого её фрагмента.
Согласно официальному блогу Google, процесс обучения основан на повторении и анализе. Предположим, вы хотите обучить искусственную нейронную сеть (ИНС) распознавать велосипед. Вы не просто говорите ей «велосипед». Вы показываете ей миллионы изображений велосипедов. Вы также указываете в компьютерном коде, как именно выглядит велосипед: два колеса, сиденье, руль.
Затем исследователи дают сети возможность работать самостоятельно, чтобы увидеть, что она обнаружит. Она будет ошибаться. Программа может вернуть серию изображений, включающих мотоциклы и мопеды. Когда это происходит, программисты корректируют код. Они уточняют компьютеру, что у велосипедов нет двигателей или выхлопных систем. Они запускают программу снова. И снова. Они тонко настраивают программное обеспечение, пока результаты не станут удовлетворительными.
«Команда Deep Dream поняла, что как только сеть может распознавать определенные объекты, она также может воспроизводить эти объекты самостоятельно».
Команда Deep Dream заметила нечто интересное. Как только сеть может распознавать объекты, она может воспроизводить их без дальнейшего ввода. Сеть, которая узнает велосипед с первого взгляда, может сгенерировать изображение велосипеда с нуля. Идея заключается в том, что сеть генерирует новые творческие изображения просто потому, что обладает способностью классифицировать и сортировать изображения.
Это звучит впечатляюще, пока вы не посмотрите на результат. Даже после обработки миллионов изображений велосипедов компьютеры допускают критические ошибки при создании собственных изображений. Сгенерированные велосипеды могут иметь частичные человеческие руки на руле или ноги на педалях. Это происходит потому, что во многих обучающих изображениях присутствуют люди. В конечном итоге компьютер не может определить, где заканчиваются детали велосипеда и начинаются части человеческого тела.
Такие ошибки происходят по множеству причин. Инженеры-программисты не до конца понимают все аспекты создаваемых ими нейронных сетей. Но знание того, как они работают, помогает понять, как возникают эти недостатки.
Архитектура инсепшионизма
Искусственные нейроны в сети работают слоями. Deep Dream может использовать от 10 до 30 слоев. Каждый слой улавливает различные детали изображения. Начальные слои обнаруживают базовые элементы, такие как границы и края. Другой слой может идентифицировать конкретные цвета и ориентацию.
Другие слои ищут определенные формы, напоминающие объекты, такие как стул или лампочка. Финальные слои реагируют только на более сложные объекты, такие как автомобили, листья или здания.
Разработчики Google называют этот процесс инсепшионизмом. Он относится к этой конкретной архитектуре нейронной сети. Они даже опубликовали публичную галерею, чтобы показать примеры работы Deep Dream. Это взгляд на то, как видит машина.
Как только сеть определила различные аспекты изображения, может произойти многое. В Deep Dream Google решила заставить сеть создавать новые изображения. Она не просто анализирует. Она создает.
Тьма на краю
Инженеры Google не просто позволили Deep Dream самостоятельно выбирать, какие части изображения следует распознавать. Они фактически указали компьютерам выделять и усиливать эти элементы картинки.
Если Deep Dream распознаёт в узоре ткани вашего дивана собачью фигуру, он акцентирует внимание на деталях этой собаки.
Каждый последующий слой добавляет новые признаки собачьего облика: шерсть, глаза, нос. То, что раньше было безобидным пэсли на вашем диване, превращается в фигуру собаки с зубами и глазами.
С каждой итерацией генерации Deep Dream немного увеличивает масштаб изображения. Он добавляет всё больше сложности в картинку. Представьте собаку внутри собаки внутри собаки.
Возникает петля обратной связи, поскольку Deep Dream интерпретирует и чрезмерно подчёркивает каждую деталь изображения. Небо, полное облаков, трансформируется из идиллической сцены в пространство, заполненное космическими кузнечиками, психоделическими фигурами, автомобилями радужных цветов и собаками.
Есть причина избыточного количества собак в результатах работы Deep Dream. Когда разработчики выбирали базу данных для обучения этой нейронной сети, они выбрали ту, которая включала 120 подклассов собак, все из которых были тщательно классифицированы. Поэтому, когда Deep Dream начинает искать детали, ему крайне вероятно увидеть собачьи морды и лапы повсюду, куда бы он ни направил свой поиск.
Deep Dream даже не нуждается в реальном изображении для создания картинок. Если подать ему пустое белое изображение или изображение, заполненное статическим шумом, он всё равно «увидит» части изображения, используя их в качестве строительных блоков для всё более странных картин.
Это попытка программы выявить смысл и форму из бесформенных данных. Это отражает идею, лежащую в основе всего проекта, — попытку найти лучшие способы распознавания и контекстуализации содержимого изображений, разбросанных по компьютерам по всему миру.
Так могут ли компьютеры действительно мечтать? Становятся ли они слишком умными для собственного блага? Или Deep Dream — это лишь причудливый способ представить, как наши технологии обрабатывают данные?
Трудно точно знать, что именно контролирует вывод Deep Dream. Никто не направляет программное обеспечение для выполнения заранее запрограммированных задач. Оно получает довольно размытые инструкции (находить детали и усиливать их снова и снова) и выполняет работу без явного человеческого руководства.
Полученные изображения являются отражением этой работы. Возможно, эти изображения — созданное машинами искусство. Может быть, это проявление цифровых снов, рождённых из кремния и электроники. И, возможно, это начало своего рода искусственного интеллекта, который сделает наши компьютеры менее зависимыми от людей.
Вы можете опасаться появления разумных компьютеров, которые захватят мир. Но пока что подобные проекты приносят прямую пользу всем, кто использует Интернет. За считанные годы распознавание изображений значительно улучшилось, помогая людям быстрее просматривать изображения и графику, чтобы найти нужную информацию. При текущих темпах развития можно ожидать крупных прорывов в распознавании изображений в ближайшее время, отчасти благодаря мечтательным компьютерам Google.


































