В предыдущей статье мы с вами знакомились, а кто-то освежал в памяти, с тем, как мы научили машин понимать нашу речь. Сейчас сложно удивить программой или роботом, который может вести разговор с человеком. Но что если человек скажет роботу «нарисуй мне закат на морском берегу»? Сможет ли робот понять это и нарисовать? Теперь сможет. Благодаря разработкам Xiaodong He (не будем переводить имя, дабы его не исковеркать) и его команде исследователей искусственного интеллекта. Как работает их творение и можно ли открывать картинную галерею с работами данной программы, мы узнаем далее. Поехали.

Кратко о сути


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

Xiaodong He говорит об этом так: «…Если вы воспользуетесь Bing и поищите птичку, вы получите картинку птички. Но в нашем случае, картинка создается компьютером, пиксель за пикселем, с нуля… Данные птицы могут не существовать в реальном мире — они будут примером представления компьютера о птицах…»

Данный проект не стал первым для Xiaodong He и его коллег. Прежде они занимались разработкой системы ИИ CaptionBot, которая автоматически создавала описания для фотографий. Также была и SeeingAI — система, отвечающая на вопросы человека касательно фотографии. По словам исследователей, последняя очень подошла бы для слепых и слабовидящих людей.

Основой проекта «художника по запросу» является совокупность двух систем: Generative Adversarial Network (GAN) — генератор изображений и discriminator (дискриминатор) — модуль, критически анализирующий качество полученного изображения.

Еще одной важной составляющей данной системы стало математическое вычисление и выражение внимания человека. Когда мы видим какой-то объект, мы обращаем внимание, пусть и подсознательно, на определенные его внешние характеристики. Так же и когда нам говорят про какой-то объект. Нам говорят про лимоны, мы видим овальные небольшие желтые фрукты. Мы не представляем персики. Это происходит в нашем мозге, автоматически. Что касается машины, тут нужно ее мозг запрограммировать так, что бы он работал хоть немного как человеческий. А мы знаем, что машина понимает лучше всего язык чисел — математику, потому исследователи и преобразовали такое явление, как внимание, в математические формулы. А теперь подробнее о каждой из составляющих системы.

Attentional Generative Network GAN


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

Чтобы простыми словами объяснить как работает математическая система, давайте представим, что наше предложение (описание для изображения) это формула, а слова — переменные.


Схематическое изображение алгоритма программы

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

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



В качестве примера исследователи предлагают рассмотреть 4 запроса разного характера (картинка выше).

Рассмотрим первые три изображения птицы. Как видно, они сильно отличаются по качеству и детализации. Дело в том, что первый кадр (размытый и неточный) это результат генерации изображения при анализе всего предложения, как единого вектора. На втором кадре нашу птичку уже лучше видно, поскольку предложение было разделено на отдельные слова (векторы), которые позволили уточнить некоторые детали (например, black eyering — черный глаз).

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



В данном сете представлены результаты генерации изображений при выделении из предложения двух самых значимых слов-векторов (black + white, red + yellow, blue + red).



представлены на изображении выше. «Пушистый черный кот, плавающий на поверхности озера» практически неразличим, хотя само озеро изображено очень хорошо. Такая же ситуация и с дорожными знаками. Однако второе изображение вышло практически точным («красный двухъярусный автобус, плавающий на поверхности озера»). Единственное это не автобус, а катер или яхта.

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

В данной статье были описаны основные принципы и суть программы генерации изображений посредством их описания. Для более голубиного ознакомления с математической составляющей работы алгоритма программы вы можете скачать соответствующий доклад исследователей
— Это очень трудно — писать картины?
— Это либо легко, либо невозможно.
(Сальвадор Дали)

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4 RAM).

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

Комментарии (14)


  1. begemot_sun
    06.02.2018 20:35

    Проблема в том, что что-то новое НС не способна создать.
    Она никогда не создаст Подсолнухи Ван-Гога если не увидит их.


    1. halfhope
      06.02.2018 22:10

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


    1. vrmzar
      07.02.2018 00:05

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


    1. bro-dev
      07.02.2018 08:23

      А НС которая была в голове Ван-Гога? Искусственные да, пока что не могут, но уже приближаются к естественным, а скоро и обойдут.


    1. andrey_gavrilov
      07.02.2018 09:51

      вы это говорите так, будто это чем-то отличается от того же самого Ван Гога или вас самого.

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


      1. begemot_sun
        07.02.2018 10:09

        Вообще-то отличается. Это не споспобно что-то сделано новое.


        1. andrey_gavrilov
          07.02.2018 11:36

          нейросеть мне говорит, что ее от нейросети отличает то, что [бла-бла-бла].

          «Прэлэстно, просто прэлэстно!».



    1. BorisG
      07.02.2018 13:17

      как же люди создают, что-то новое?


    1. SimSonic
      07.02.2018 18:40

      Они могли бы научить её погуглить незнакомое, хотя бы картинки.


      1. begemot_sun
        07.02.2018 18:50

        Погуглить — это не создать новое.
        Погуглить — это не улететь на марс, солнце, венеру, не сделать термояд.


        1. SimSonic
          08.02.2018 06:41

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


          1. begemot_sun
            08.02.2018 10:19

            Но в любом случае науку двигать она не сможет.


  1. Bhudh
    07.02.2018 09:57

    Xiaodong He (не будем переводить имя, дабы его не исковеркать)

    Сяодун Хэ.
    Извините, но ваша цитата читается как «не будем тратить 15 минут на то, чтобы узнать, как же другие пишут китайские имена русскими буквами, нам ещё пять рекламных статей для других ресурсов дописать надо».
    Уважайте тех, о ком пишете и для кого пишете.