Деревья, разросшиеся многоцветными пагодами, собаки и овцы в облаках, — а еще глаза, глаза и морды зверей, виданных и невиданных. Новостные ленты и социальные сети переполнены странными картинами, напоминающими творения то ли гения, то ли безумца, — странными фантазиями.
Как работает нейронная сеть: Deep Dream

Вскоре после того, как код Deep Dream оказался в открытом доступе, энтузиасты добавили к нему веб-интерфейс и позволили всем желающим загружать свои картинки для обработки. Уже через пару дней увлечение приобрело характер опасной пандемии.

Как успели выяснить уже все, такие картинки являются побочным продуктом работы искусственной нейронной сети, которую в Google используют для анализа и классификации громадного массива графических файлов, найденных поисковиком в интернете. Это не единственный пример: нейронные сети помогают формировать прогнозы погоды и биржевых котировок, их используют и Facebook, и «Яндекс». Поиск «Яндекса» по картинкам, распознавание и даже перевод текста на них, возможность управлять приложениями с помощью голосовых команд — все это обеспечивают искусственные нейронные сети. Однако даже сами создатели таких сетей не могут во всех деталях объяснить, как они работают: именно в этом вся их суть. Но чтобы понять это, нам понадобится сделать небольшой шаг назад —

К мозгу

Человеческий глаз может показаться верхом совершенства. Недаром поколения креационистов приводят его в качестве примера такой сложной системы, которая якобы ни за что не могла бы появиться без какого-то изначального плана. Но если б они увидели ту грубую, необработанную картинку, которую в действительности поставляют глаза, их ждало бы разочарование.

По-настоящему острое цветное зрение охватывает лишь небольшой конус с углом около пятнадцати градусов, окруженный смутными, размытыми, неразличимыми пятнами. К тому же картинка оказывается перевернутой и изрядно подпорченной довольно обширным слепым пятном. Но именно из этого грубого полуфабриката возникает весь объемный, наполненный образами видимый мир, в котором мы живем.

Отвечает за это превращение наш главный орган зрения — головной мозг. Глаза могут видеть что угодно, важно то, что мы способны воссоздать и понять из этой картинки. Выделить на пейзаже пастуха и его собаку, оценить его возраст и ее размеры на фоне окружающих предметов… Вокруг решения таких сложных задач построены многие функции мозга и даже его анатомия.

Первичная обработка оптических сигналов происходит уже в зрительном нерве, после чего информация попадает в мозг и «аналитические отделы» зрительных центров. Это вовсе не строгое и последовательное движение, при котором шаг за шагом на картинке выделяются все более сложные детали: зрительные центры мозга не имеют четкой линейной иерархии. Они образуют ошеломляюще сложную распределенную сеть, сигналы по которой распространяются параллельно многими путями сразу.

Каждый узел этой сети прямо или косвенно влияет на все остальные, причем их конкретные роли остаются до конца неустановленными. Неизвестно даже точное количество центров, вовлеченных в обработку зрительной информации у человека, хотя обычно говорят о «более чем тридцати», между которыми существует порядка 200 линий прямой и обратной связи.

Разумеется, одни из них можно назвать низшими, ответственными за распознавание простейших особенностей картинки — скажем, форм или движения. Другие, высшие зрительные центры, больше заняты поиском образов и лиц. Однако это разделение довольно условно — достаточно сказать, что информация движется между зрительными центрами не только «снизу вверх», но и «сверху вниз».

Иногда это заставляет нас обманываться зрительными иллюзиями: мозг дополняет «низшие» элементы картинки несуществующими «высшими». В результате мы можем совершенно отчетливо увидеть лицо в смесителе с парой вентилей или обратить внимание на облако в форме вертолета. Похожая картина откроется нам и глубоко внутри программного «мозга» нейронной сети, распознающей изображения. Во всяком случае, у нее те же самые…

Простая альтернатива
Из-за длинной очереди желающих «прогнать» свои картинки через Deep Dream ожидание может занять несколько дней — иногда больше недели. Но если у вас недостаточно терпения, можно воспользоваться более простой имитацией, при которой на изображение просто «накладываются» графические фильтры Dream Scope, дающие очень похожий результат. Но — ненастоящий.

Способы мышления

В отличие от мозга, компьютер построен вокруг центрального процессора и математических операций, которые тот выполняет. И как мы неспособны сымитировать его бешеную скорость вычислений, так и компьютер плохо приспособлен для выполнения задач, в которых столь замечательно демонстрирует себя мозг. Понимание живой речи, распознавание образов, обобщения — для этого уже больше полувека и разрабатывается теория и практика нейронных сетей.

Несмотря на свое название, нейронная сеть может пытаться, а может и не пытаться в какой-то степени повторить структуры головного мозга. Однако ее элементарная ячейка, перцептрон, появилась именно как попытка воспроизвести процессы восприятия и обработки мозгом сенсорной информации.

Лишь в редких случаях такую модель воплощают в «железе», в микросхемах, которые имитируют нейроны и связывающие их синапсы. Чаще она создается в виде компьютерных алгоритмов, с помощью которых человеческое мышление пытаются адаптировать под особенности устройства компьютеров. В своем классическом виде перцептрон состоит из входного и выходного слоев нейронов, между которыми находятся один или несколько «скрытых» слоев.

Каждый нейрон получает возбуждающий или тормозящий сигнал от нейронов предыдущего слоя (а первый слой — от входных «рецепторов»). Каждый сигнал умножается на определенный весовой коэффициент, усиливаясь или ослабевая. Нейрон лишь суммирует их, и если в итоге сумма этих взвешенных сигналов превышает определенную пороговую величину, нейрон срабатывает и передает собственный сигнал нейронам следующего слоя.

Такая организация в некоторой степени воспроизводит нейронную структуру «микроколонки», минимальной структурно-функциональной единицы коры головного мозга. Как правило, каждая микроколонка неокортекса содержит шесть слоев и около сотни нейронов.

Однако общее число микроколонок в нашем мозге исчисляется десятками миллионов — запредельное количество для обсчета даже на самых современных компьютерах. Простейшая искусственная нейронная сеть может состоять всего из одного перцептрона. Ведь даже в такой элементарной форме она способна к самосовершенствованию в ходе того, что называется…

Нейронная почта
Готовая и обученная сеть может подвергаться процедуре «прореживания», после которой в ней сохраняются лишь необходимые для работы элементы и параметры. Затем ее код может копироваться и использоваться для решения конкретных задач, будь то финансовые прогнозы или распознавание образов.

Машинное обучение

Никто не рождается суперменом в деле распознавания образов: как и ходьбе, этому надо учиться. Мозг получает зрительный сигнал и добрый совет от родителей: это поле, это пастух, а вот его собака… В следующий раз — «Где здесь собака?» — правильный ответ будет означать похвалу и награду. Так, раз за разом, сотни тысяч раз видя разные предметы с разных сторон, мы совершенствуем этот важный навык, узнаем все новые образы и учимся их узнавать.

Так действует и нейронная сеть, постоянно пересматривая свою работу и адаптируясь для того, чтобы узнавать тот или иной образ. Весовые коэффициенты, которые определяют значимость сигналов, получаемых нейроном от предыдущего слоя, поначалу задаются случайным образом. Однако после того, как система выдала первый — конечно, неверный — результат, она начинает их изменять и уточнять. Обрабатывая тысячи снимков, нейронная сеть каждый раз вносит изменения в свою работу, пока не начнет стабильно получать правильный результат.

Многое тут зависит от учебника — точнее говоря, от набора обучающих изображений. «На самом деле в интернете картинок не так много, — говорит глава службы функциональности поиска «Яндекса» Андрей Плахов, — особенно в сравнении с тем колоссальным количеством, которые мы видим в течение жизни». Это создает опасность, знакомую разработчикам нейронных сетей: обучение может превратиться в зубрежку.

Если выбрана неполная или однообразная обучающая база, системе будет проще затвердить правильные ответы на все изображения, чем учиться распознавать на них сложные детали. Такую сеть называют «переобученной» (а по-английски «избалованной», grandmothered): она великолепно справляется со знакомыми изображениями, но не даст ничего, если ей предложить новую, незнакомую картинку.

Поэтому для обучения нейронных сетей распознаванию картинок, как правило, используют стандартизованные базы. Самой популярной и обширной из них можно назвать ImageNet, поддерживаемую Стэнфордским университетом. База включает больше 14 млн картинок, упорядоченных в 27 категорий верхнего уровня иерархии — от «инструмент» до «гриб» и от «геологическое образование» до «овощ» — и 27?000 категорий всех уровней. На этой библиотеке учится большинство подобных нейронных сетей, и ее случайные особенности могут во многом определить их «способ мышления».

Возможно, именно особенностями обучающей базы объясняется склонность Deep Dream находить повсюду именно животных и дальневосточные пагоды: нейронная сеть обучалась на изображениях, где их было особенно много. Впрочем, так ли это, сказать трудно, ведь даже разработчики толком не понимают…

Что у нее внутри

Современная нейронная сеть может включать десятки, а то и сотни слоев-перцептронов с множеством нейронов в каждом. Как и зрительные центры мозга, они организованы в сложную сеть взаимосвязей — и, как в мозге, эта система пластична. Сконструировав и обучив нейронную сеть, разработчик остается в полном неведении о том, что именно в итоге в ней происходит, как она меняется в ходе обучения, на какие особенности изображений начинает обращать внимание, а какие отбрасывает.

«Биологические аналогии не должны сбивать с толку: нейронные сети — продукт математики и программирования, — говорит Андрей Плахов. — С этой точки зрения нейронную сеть можно представить как невероятно сложную функцию с неизвестной формулой. Запись «формулы» Deep Dream заняла бы, наверное, не один десяток томов. Но в целом мы знаем лишь данные, которые она получает на входе, и результат, который выдает на выходе. Какие именно операции совершаются в процессе, сказать зачастую невозможно».

Видимо, так появился и Deep Dream — из чистого любопытства к тому, как именно работают нейронные сети, ведущие распознавание и классификацию изображений. Самый очевидный способ увидеть результаты работы каждого слоя-перцептрона — заставить его визуализировать эти результаты. Нам, людям, вообще удобнее мыслить картинками, поэтому программисты Google доработали нейронную сеть так, чтобы разные слои, участвующие в распознавании, усиливали на изображении именно те особенности, которые они сами заметили и выделили.

Как и в случае мозга, можно заметить, что одни слои нейронной сети берут на себя задачи ближе к «нижнему» уровню восприятия — такие как выделение границ фигур на картинке, а другие работают с более сложными образами. Это проявляется и в особенностях «художественного стиля», в котором «творят» разные варианты Deep Dream.

Однако и здесь не существует четкого разделения полномочий: все слои нейронной сети взаимосвязаны, как зрительные центры нашего мозга. Возможно, это и делает картинки такими завораживающими, такими похожими на…

Настоящее искусство

Почему картинки, которые создает Deep Dream, воспринимаются как что-то близкое к искусству? Специалисты дали на наш вопрос довольно неожиданный ответ. «Это может быть связано с современной парадигмой зрения, распространившейся с начала XIX века, — предполагает искусствовед Глеб Напреенко. — До того времени наблюдатель уподоблялся бестелесной точке, находящейся как бы за пределами реальности, которую он воспринимает, словно зритель, заглядывающий в камеру-обскуру. Лишь приблизительно двести лет назад субъект получил телесность, его зрение было помещено в глаз, он стал почти соучастником наблюдаемой сцены».

«Этот переход видно и по той роли, которую играет взгляд на живописном полотне: если прежде он скользил по нему, не рискуя натолкнуться на встречный интерес, то уже во французской живописи второй половины XIX века появляются образы, возвращающие взгляд зрителю, смотрящие на него в ответ, — добавляет Глеб Напреенко. — Эта парадигма снова актуализируется в «работах» Deep Dream. Его способность выявлять в любых изображениях рожицы и мордочки соответствует нашему внутреннему стремлению обнаруживать направленные на нас взгляды, таящиеся в вещах».

Сети сходят с ума

Deep Dream уже успел породить «городскую легенду» о том, что обработка алгоритмом нисколько не меняет картины Иеронима Босха с их фантасмагорическими существами. Это не так — можете проверить сами, зато действительно остаются почти теми же фракталоподобные работы английского художника Луиса Уэйна, написанные им в последние годы и после нескольких психозов. В самом деле, бросается в глаза удивительное сходство изображений, которые порождает Deep Dream, с некоторыми образчиками творчества психически больных или людей, находящихся под действием «психоделических» наркотиков. Это не простое совпадение: среди множества воздействий, которые оказывают эти вещества на мозг, не последнюю роль играет нарушение скоординированной работы зрительных центров.

Статья «Искусство цифровых фантазий: почему нейронным сетям снятся электроовцы» опубликована в журнале «Популярная механика» (№9, Сентябрь 2015).