Новый адрес страницы:
https://tannarh.wordpress.com/2015/10/10/нейросети-от-инцепционизма-к-искусст/
Tannarh
НЕЙРОСЕТИ: ОТ ИНЦЕПЦИОНИЗМА
К ИСКУССТВУ БУДУЩЕГО
Предчувствие грядущего
В 1993 году я увидел по телевизору клип на песню Питера Габриэля "Steam", созданный с использованием весьма продвинутой на тот момент компьютерной графики. Компьютерные спецэффекты уже не были чем-то принципиально новым, хотя и вызывали восторг у большинства постсоветских зрителей, лишенных возможности наблюдать их постепенную эволюцию от «Звездных войн» и «Трона» до «Терминатора 2» и «Газонокосильщика». Счастливые обладатели видеомагнитофонов, к коим принадлежал и я, смотрели все сразу без какой-либо хронологической последовательности. И все же клип Габриэля концептуально отличался от увиденного мною прежде.
В вышедшем годом ранее втором «Терминаторе», равно как и во многих других тогдашних голливудских фильмах, компьютерная графика использовалась лишь в качестве спецэффектов, дополняющих привычную реальность. Однако в "Steam" с ее помощью был создан целый мир со своими персонажами, никоим образом не пересекающийся с действительностью, как, скажем, в «Газонокосильщике», где виртуальная реальность существовала внутри реального мира в качестве компьютерной модели.
Конечно, графика 1992 года была донельзя примитивной и привлекала внимание скорее своей необычностью, нежели мастерством исполнения, и все же, помню, я подумал, что у этой технологии есть огромный потенциал, который изменит все наши представления о кинематографе и искусстве вообще. Спустя всего семнадцать лет (пустяковый по историческим меркам срок) Джеймс Кэмерон снял фильм «Аватар», объединив фантазию и технологии в демиургическом акте творения новой вселенной. И даже сейчас, по прошествии более чем двух десятилетий после "Steam" и «Газонокосильщика», потенциал компьютерных технологий еще не раскрыт в полной мере ни в кинематографе, ни в других сферах человеческой деятельности. Когда-нибудь «Аватар» будут смотреть с той же вежливой снисходительностью, с какой мы сегодня пересматриваем старые фантастические фильмы начала 90-х, и эта история будет повторяться снова и снова, хотя сама компьютерная графика уже не будет пробуждать в душе ощущение чуда.
Ощущение чуда и гигантского потенциала, скрытого за примитивной на вид игрой образов, вернулось ко мне летом 2015-ого, когда новостные ленты наперебой начали сообщать о последних успехах ученых в разработке искусственных нейронных сетей, и я снова подумал, что сам того не ведая, прикоснулся к будущему, которое в скором времени кардинальным образом изменит наши взгляды на искусство и сам процесс творчества. А начнется все, пожалуй, с этой небольшой анимации, напоминающей фильм «Помутнение» (2006) с Киану Ривзом:
Первые успехи
Одно из главных преимуществ искусственных нейронных сетей перед обычными алгоритмами заключается в том, что их не программируют, а обучают. Структурно они похожи на нейронные сети живых организмов и представляют собой систему соединенных и взаимодействующих между собой искусственных нейронов, способных принимать решения на основе полученной информации и решать весьма сложные задачи. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Кроме того, некоторые исследователи задумываются о возможности развития психологической интуиции у нейросетей и о построении на их основе компьютерных моделей естественного интеллекта.[1]
Что все это означает на практике? Вот лишь некоторые из новостей последних лет:
«Недавно разработчики добавили функцию визуального перевода в Google Translate. Теперь приложение может при помощи камеры на лету переводить надписи на 27 языках даже без подключения к интернету. Об этом сообщается в официальном блоге Google. Специалисты Google тренировали нейросеть на изображении букв и цифр, которые в различной степени намеренно искажали. После этого разработчики Google намеренно «ослабили» сложность нейросети, занимающейся распознаванием букв. Например, нейросеть не будет распознавать перевернутые набок надписи или совсем искаженные буквы.
После того, как нейросеть распознала буквы, приложение составляет из них слово и проверяет его через загруженные в память телефона словари. При этом учитывается визуальная схожесть символов, поэтому приложение, например, при распознавании последовательности символов «5uper» проверит в словаре не только его, но и «Super».[2]
«Facebook опубликовала научную работу, описывающую созданную исследователями компании систему распознавания лиц при помощи глубокого обучения (deep learning). По точности узнавания она вплотную приблизилась к человеческим способностям.
До сих пор люди различали лица из этого набора куда лучше, чем это делают машины. В 97,53% случаев они верно узнавали фотографии, изображающие одного человека. Алгоритм Deepface отстаёт совсем немного: его точность составляет 97,25%. При этом не играет роли, с какого ракурса сделан снимок и совпадает ли освещённость.
Распознавание происходит в два этапа. На первом Deepface накладывает лицо с фотографии на трёхмерную модель средней человеческой головы, а потом разворачивает её в том же направлении, что и на других портретах. Затем к работе подключается заранее обученная многослойная нейронная сеть и даёт лицу числовое описание. Если описания двух лиц совпадают, они, как правило, принадлежат одному человеку. Нейронная сеть состоит из девяти слоёв нейронов, между которыми проходят 120 миллионов связей. Сеть обучали на четырёх миллионах портретах, принадлежащих примерно четырём тысячам пользователей Facebook».[3]
«Ученые из Технологического института Карлсруэ разработали алгоритм, способный опознать человека по инфракрасному изображению низкого разрешения. Результаты исследования опубликованы на сайте arXiv.org, с кратким описанием можно ознакомиться в MIT Technology Review.
Человеческое лицо может выглядеть абсолютно по-разному в инфракрасном диапазоне в зависимости от температуры воздуха и кожи. К тому же, большая часть камер, оборудованных инфракрасными матрицами, выдают изображение низкого разрешения. Для решения этой задачи исследователи использовали глубинное обучение нейросети.
Создатели обучили нейросеть на базе изображений Университета Нотр-Дам. В базе были данные по 82 людям, 4585 изображений среди которых были обычные фотографий разрешением 1600x1200 и инфракрасные изображения разрешением 312x239. При этом снимки были сделаны в разные времена года и люди вели на разных фотографиях себя по-разному: улыбались, смеялись, наклоняли голову и тому подобное. Исследователи посчитали, что в таких условиях алгоритм сможет лучше распознавать человеческое лицо вне зависимости от того, в какой момент получено ИК-изображение.
В итоге ученые использовали данные половины базы, по 41 человеку, чтобы натренировать нейросеть. Вторую группу изображений авторы работы использовали для проверки функционирования нейросети. В итоге алгоритм показал точность распознавания на 10% выше, чем в результатах аналогичных работ, при этом на распознавание человека у машины уходит всего 35 миллисекунд».[4]
«Греческие ученые научились определять пьяных людей по инфракрасному изображению. Исследование опубликовано в Forensic Science International. Исследователи из Университета Патры обучали нейросети на примере 41 человека, сравнивая инфракрасное изображение лиц испытуемых до и после употребления 480 миллилитров вина. При этом разные нейросети анализировали разные участки лица.
Ученые использовали два подхода. В первом случае изображение разбивалось на небольшие сегменты, которые анализировались по отдельности. Во втором случае алгоритм обрабатывал изображение целиком. Выяснилось, что нейросеть точнее всего определяет пьяного человека по температуре лба и носа. При анализе только этих зон нейросеть определяет употребившего алкоголь человека с точностью выше 90 процентов даже при отсутствии термограммы лица в трезвом состоянии, в то время как при анализе лица целиком точность снижается до 75 процентов.
Предполагается, что исследование может помочь полиции выявлять потенциальных нарушителей общественного порядка при помощи инфракрасных камер. Алгоритм также может лечь в основу систем предупреждения вождения в состоянии алкогольного опьянения»[5].
Инцепционизм
Распознавание лиц имеет сугубо прагматическое значение, например, с помощью этой технологии можно искать преступников в больших городах или организовать тотальную слежку за населением, однако настоящий концептуальный прорыв совершила компания Google, создатели которой, кстати, с самого начала не скрывали, что ставят своей целью создание искусственного интеллекта. Вполне возможно, что объединение их разработок с последними достижениями купленной Гуглом в 2013 году компании Boston Dynamics в области робототехники могут привести к весьма любопытным, хотя и пугающим результатам. Сегодня корпорация Google занимается сканированием книг по всему миру, и если однажды она пропустит все накопленные человечеством знания через достаточно мощную нейронную сеть, то в результате мы можем получить технологию, способную перевернуть все наши представления о творчестве и создании произведений искусства. Искусство станет персональным, адаптивным и свободным, что повлечет за собой огромные экономические и социальные изменения.
«Инженеры Google Александр Мордвинцев, Крисофер Ола и Майк Тика визуализовали работу 22-слойной сверточной нейросети, которая составляет основу системы распознавания изображений Inception. Изображения, которые получились в результате «переворачивания системы с ног на голову», исследователи назвали «инцепционизмом». О методе получения таких изображений они рассказали в блоге Google Research.
Общая идея создания таких изображений основана на том, что в фотографии или картине усиливают те черты, которые напоминают системе что-то знакомое. Например, если система натренирована на распознавание лица, она даже в совершенно случайном изображении — например, облаков — увидит какие-то его фрагменты. Затем их можно будет усилить, получив изображения с лицами на облаках.
С технической точки зрения речь идет об алгоритме обратного распространения значений каждого из нейронов из произвольно выбранного слоя нейросети. Подав на вводный слой случайное изображение, инженеры брали значения из верхнего интересующего их слоя и распространяли значения обратно, искажая исходное изображение — по аналогии со стандартным алгоритмом обратного распространения ошибки, который используется для тренировки нейросети. Смысл такого переворачивания сети заключался в том, что оно позволяло визуализовать веса связей в слое любого уровня. На уровнях выше первого-второго сами по себе веса визуализовать очень сложно: обычно они напоминают белый шум.
Как и ожидалось, нижние уровни сети находили в исходной картинке простые геометрические черты: наклонные линии, круги и так далее. Слои высокого уровня позволяли увидеть на фотографиях что-то напоминающее людей и животных. С помощью нескольких итераций инженерам удалось получить целые абстрактные картины, стартовав при этом с полностью случайного изображения (строго говоря, изображения не были белым шумом, так как ученым пришлось нормализовать корреляцию между соседними пикселями до типичных значений «обычных изображений»).
Работа сделана на базе архитектуры Inception, по которой в Google построена сверточная нейронная сеть 22 уровнями GoogLeNet. Именно ее инженеры использовали для получения изображений. Ранее тот же подход к визуализации работы нейросетей неоднократно применяли и другие исследователи, однако в их распоряжении не было настолько масштабной системы. Описание системы Inception было опубликовано еще в сентябре прошлого года.
Интересно, что по современным данным нейрофизиологии распознавание изображений мозгом устроено очень похоже: «появление» объекта на картине зависит от порога чувствительности, на который влияют, например, галлюциногены или сенсорная депривация»[6].
«Чтобы нейронная сеть начала рисовать картины на её вход подается изображение рандомного шума и ставится задача — найти в нем определенную форму и утрировать её. Например, нарисовать банан.
Это нужно для того, чтобы понять научилась ли нейронная сеть распознавать тот или иной образ. Например, её обучали узнавать вилку по определенным характеристикам: 2-4 зубца и ручка. При этом форма и цвет предмета не должны влиять на решение.
Хороший способ проверить, действительно ли сеть научилась распознавать образ — это попросить её нарисовать его. В некоторых случаях можно выявить явную ошибку в обучении. Система не смогла нарисовать правильную гантель. Скорее всего, при обучении она видела гантели только в комплекте с рукой.
Нейронной сети можно и не задавать конечный результат. Если на вход подать любую картинку и указать уровень, который будет с ней работать, то он улучшит все, что в его компетенции. Пример отрисовки картинки нижним слоем, отвечающим за края:
Если для интерпретации выбрать более продвинутый слой, то сеть постарается найти в картинке те образы, на которых тренировалась. На вход нейронной сети, которая обучалась на фотках животных подали изображение облаков.
Все, что сеть смогла распознать, она сделала утрированным. Таким образом в облаках образовались необычные животные: собака-бабочка, свинья-улитка, птица-верблюд и собака-рыба.
Эту же технику можно применить для любой другой картинки. Результаты зависят от типа изображения, т.к. установленные свойства склоняют сеть к определенным интерпретациям. Например, линия горизонта замещается пагодами и башнями, очертания деревьев и скал — постройками, а листья превращаются в птиц и насекомых.
Техника обратного рисования дает разработчикам оценить качество распознавания того или иного слоя. Сами разработчики называют эту технику «Inceptionism» (инцепционизм)».[7]
Нейроарт и «игра в бисер»
«Коллектив ученых из Германии разработал искусственную нейронную сеть, которая позволяет «синтезировать» изображение из двух независимых источников: одно из них дает только содержание, другое — только стиль. На основании этого метода авторы обработали фотографию с пейзажем немецкого города Тюбинген, используя стили нескольких знаменитых картин, например «Звездную ночь» Винсента ван Гога и «Крик» Эдварда Мунка. Препринт с описанием работы выложен на arXiv.org.
В основе метода лежит обучение сверточных нейронных сетей на двух различных изображениях и последующее слияние полученных наборов признаков в один. Авторы показали, что содержание и объекты лучше удается описать при помощи крупных слоев нейронной сети, захватывающих большие участки изображения. Однако для описания стиля наоборот, лучше использовать данные слоев сети, которые описывают с локальными участками изображения.
Ученые использовали в работе популярную нейронную сеть VGG-Network. Вначале ее «обучали» на единственной фотографии — пейзаже город Тюбинген, а затем на одной из картин, например, «Звездной ночи». При этом в первом случае набор признаков выбирался с целью распознавания объектов на фотографии, а во-втором — для распознавания текстуры и мелких деталей. Далее при помощи линейной комбинации этих наборов признаков ученые синтезировали новую картинку, по шагам изменяя «исходник» — изображение, где каждый пиксель генерировался при помощи белого шума.
В итоге авторы получали одну и ту же фотографию, искаженную в соответствии с выбранным стилем. При этом ученые показали, что варьируя «вклады» от разных слоев нейронной сети, можно настраивать внешний вид картинке изменять «количество» стилевых элементов на ней. Таким образом можно получить как фотографию, очень близкую к оригиналу, так и изображение с характерной стилевой текстурой, в которой невозможно различить содержание исходного материала.
Более того, поскольку система в некотором роде «осмысливает» фотографию и технику художника, в ней можно задать степень выраженности оригинального произведения, с которого она передирает стилистику. Например, так выглядит переход от оригинала Кандинского к пейзажу, сделанному под него:
Новую работу уже опробовал аспирант Стэндфордского университета Андрей Карпатый, который в своем твиттере выложил несколько фотографий, обработанных таким образом. Среди них, например, его портрет в стиле Винсента ван Гога, а также снимок Гэндальфа (Иэна Маккелена) из «Властелина колец» в стиле Пабло Пикассо». [8]
«Феликс Сунь (Felix Sun), студент из Массачусетского технологического института, создал нейронную сеть, которая способна достраивать мелодию аккордами на основе предварительно «выученного» жанра. В качестве демонстрации автор обучил сеть на подборке регтаймов Скотта Джоплина, а затем использовал ее для аранжировки, например оды «К радости» Бетховена. Сама работа подробно описана в блоге программиста, а исходный код выложен на GitHub.
Программа, которая получила название DeepHear, представляет собой глубокую байесовскую сеть (deep belief network). Такая разновидность искусственных нейросетей часто используется для распознавания данных, например, изображений. Однако, в отличии от этой задачи, использовался автокодирующий вариант: сеть не только сводила входящие данные к меньшему числу измерений (от примерно 5000 бит к 16), но и решала обратную задачу, стремясь как можно точнее воспроизвести «образец».
Феликс обучал нейронную сеть на подборке регтаймов, а затем перестроил ее на новую задачу: теперь программе требовалось на основе заданной композиции создать «регтайм» с мелодией, как можно более похожей на оригинал. Таким образом, нейросеть использовала внутренние параметры, выбранные в ходе первого этапа обучения, но в новой задаче уже опиралась на другой критерий «правильности» результата.
Название «DeepHear», вероятно, выбрано созвучным с «DeepDream» — нейросети от Google, которая на основе заданного изображения создает новую картинку, где все объекты дополнены определенными шаблонами (лицами и глазами). DeepHear, по сути, делает то же самое, но с музыкой. В будущем Феликс планирует использовать более совершенные методы обучения, а также перейти от «виртуального композиторства» к генерации естественных звуков при помощи нейросетей».[9]
Personal Art
Вот каким я вижу один из возможных вариантов развития этой потрясающей технологии. Представьте, что вы возвращаетесь вечером с работы и после ужина хотите почитать что-нибудь интересное. Вы включаете компьютер и запускаете свою персональную нейростудию, после чего даете ей задание сгенерировать рассказ в две тысячи слов, указываете жанр, количество персонажей, их возраст и пол и стиль автора, например Борхеса. Впрочем, можно позволить программе самой выбирать и комбинировать все эти параметры совершенно случайным образом, однако вам сегодня не хочется подобных экспериментов. Пока вы наслаждаетесь чтением, нейростудия создает для вас новый альбом Beatles и одновременно генерирует для вашего ребенка мультфильм с придуманными им накануне героями.
К сожалению треки в стиле Beatles получились недостаточно хорошими, поэтому вы заходите на сайт, где люди со всего мира делятся друг с другом сгенерированным контентом и просматриваете первые строчки чартов. Композиция Чайковский+Rammstein с легкой стилизацией под китайскую музыку кажется вам слишком эклектичной, а вот новая песня в стиле Pink Floyd времен "The Dark Side Of The Moon" получилась просто прекрасной.
Утром вас ждет не только чашка ароматного кофе, но и статья Черчилля о недавних событиях в Афганистане, сдобренная изрядной порцией английского юмора, а в блоге Ницше — несколько хлестких афоризмов о внешней политике текушего правительства. В новостях сообщают о новой выставке работ Сальвадора Дали, отобранных профессиональными критиками и искусствоведами из нескольких тысяч работ, присланных на конкурс счастливыми обладателями платной подписки на нейросеть "Dali" от компании Microsoft. Пожалуй, можно будет сходить на выходных, тем более что эта разработка редмондовцев вам пока не по карману, да и в общем-то ни к чему, потому что живописью вы не увлекаетесь.
Закончив завтракать, вы одеваете ваши очки дополнительной реальности от Google, которые превращают все, на что вы смотрите, в красочные галлюцинации, подстраивающиеся в реальном времени под активность вашего мозга, и отправляетесь на работу в Бюро социальной поддержки безработных писателей, художников и музыкантов, где вам предстоит выслушивать бесконечный поток жалоб и воспоминаний о «старых добрых» временах, когда они считали себя незаменимыми властителями умов.