Генеративная состязательная нейросеть, оптимизированная для видеообработки, способна показать, что случится в следующую секунду

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

Искусственному интеллекту тоже необходимо знать будущее. Он должен понимать, какие события приведут к какому результату, чтобы избежать очевидных оплошностей и планировать свои действия. Группа исследователей из Лаборатории информатики и искусственного интеллекта (CSAIL) Массачусетского технологического института обучает нейросеть предсказывать будущее, тренируя её на миллионах видеороликов.

Обученная нейросеть по одному-единственному статичному кадру (фотографии) пытается предсказать будущие события. Программа ограничена размером кадра 64?64 пикселя и продолжительностью предсказания в 32 кадра, то есть около секунды будущего.

Знание будущего даёт возможность лучше понимать настоящее. Это базовая способность, которой должен обладать любой робот, функционирующий в реальном мире. Наблюдая человека перед тарелкой с едой с вилкой и ножом в руках, следует однозначно предсказывать, что этот человек скоро начнёт есть. Без такого понимания робот не может функционировать сколько-нибудь эффективно — вы же не хотите, чтобы в момент, когда садитесь на стул, робот взял и передвинул стул в сторону? Нет, он должен понимать, что произойдёт через секунду и ничего не трогать. Или наоборот, быстро передвинуть стул именно в то место, куда человек садится.

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

Разработанная в CSAIL программа довольно точно предсказывает самые банальные и очевидные события. Например, по фотографии поезда на платформе она предсказывает его движение.

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

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

Обученной нейросети затем ставили задачу генерировать маленькие видеоролики по одному статичному кадру. Чтобы добиться реалистичности результата, авторы исследования применили генеративную состязательную сеть (generative adversarial network, GAN). Одна нейронная сеть генерирует видео, а вторая сеть-дискриминатор обучается отличать фальшивое видео от настоящего и блокирует фейки. По мере обучения дискриминатора сети-генератору приходится генерировать всё более реалистичные видео, чтобы пройти проверку.


В генеративной модели используются два потока, которые отдельно моделируют передний план и фон, чтобы отделить их друг от друга и чётко различать движение объекта.



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

Все видеоролики, на которых тренировалась нейросеть, а также исходный код программы опубликованы в открытом доступе. Код генеративной состязательной нейронной сети лежит на GitHub. Используя данные для обучения (примерно 10,5 терабайт видеоматериалов), можно самостоятельно повторить эксперимент. Как вариант, доступны для скачивания уже обученные модели (1 ГБ в архиве).

Видеоматериалы для обучения взяты с фото- и видеохостинга Flickr, где они лежат под свободной лицензией. Это тематические сцены: события на пляже, матчи по гольфу, железнодорожные станции и младенцы в больницах.



Два миллиона видеороликов — это всего два года видеоматериалов. «Это очень мало по сравнению с количеством видеоинформации, которое прошло через мозг 10-летнего ребёнка или по сравнению с количество информации, которая обрабатывалась в ходе эволюционного процесса развития жизни на Земле», — признаёт Карл Вондрик (Carl Vondrick), один из авторов научной работы.

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

Научная статья опубликована на сайте Массачусетского технологического института. Исследование продолжается благодаря финансированию Национального научного фонда США и грантам компании Google для двух из трёх членов научного коллектива. Доклад подготовлен для 29-й конференции по системам обработки нейроинформации (NIPS 2016), которая пройдёт с 5 по 10 декабря в Барселоне.
Поделиться с друзьями
-->

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


  1. upsilon
    29.11.2016 15:24
    +1

    Расскажите, нейросети увеличивают свой размер (в мб) от обучения, или же процесс обучения просто корректирует параметры внутри системы?
    Если да, то на сколько размер увеличится, если скормить этой нейросети еще пару лет видео?


    1. laughing_one
      29.11.2016 15:59

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

      Насчёт конкретной нейросети («генеративная состязательная нейронная сеть») из статьи: судя по всему, её структура меняется и изменяется в объёме при накоплении опыта.


      1. Boctopr
        29.11.2016 16:11

        Если не будет роста обьема, то на количестве большем количество вариантов в битах будут коллизии, а значит нейросеть перестанет работать.


        1. 0xd34df00d
          30.11.2016 01:30

          Нейросеть — это все-таки не хешмапа.


        1. Mad__Max
          07.12.2016 23:50

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

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

          Эффект называется Overfitting


      1. supersonic_snail
        29.11.2016 16:57
        -4

        Вы бы не вводили людей в заблуждение.

        Ни одна современная сеть не умеет «генерировать новые нейроны и связи». Структура жестко задана и подбираются только веса связей.


        1. laughing_one
          29.11.2016 17:15
          +5

          Вы бы не вводили людей в заблуждение.

          Рекомендую Вам заняться тем же.

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

          А насчёт моделей искусственных сетей, ну вот как пример: Расширяющийся нейронный газ.
          И вообще растущие нейронные сети (growing neural networks) — вполне себе известный термин.


          1. supersonic_snail
            30.11.2016 13:27
            +1

            Про естественные я ничего и не говорил.

            Можете показать какой-нибудь state-of-the-art, полученный сетью, которая учит структуру?


        1. Sadler
          29.11.2016 18:23

          NEAT недостаточно современная или недостаточно сеть?


      1. Dark_Daiver
        29.11.2016 18:31

        >Насчёт конкретной нейросети («генеративная состязательная нейронная сеть») из статьи: судя по всему, её структура меняется и изменяется в объёме при накоплении опыта.
        Вот не смог я это найти в оригинальной статье, подскажите где именно об этом говорится?


      1. upsilon
        30.11.2016 15:44

        Спасибо!
        А насколько тяжелы нейросети? Я понимаю, что они разные бывают, но может быть есть примеры…


        1. Mad__Max
          08.12.2016 00:04

          Так вот прямо в новости пример и приведен. По паре сотен мегабайт на обученную сеть.
          Это данные. Сам исполнимый код обычно совсем компактный.


  1. laughing_one
    29.11.2016 15:36

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

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


  1. leshabirukov
    29.11.2016 18:31

    Мне кажется данный подход позволит продвинуть и распознавание простых статических картинок тоже. Причина в том, что такая тренировка внедрит «понимание» инвариантности поворота и масштабирования изображения на близкие ко входу слои сети. (Ещё важнее был бы параллельный перенос, не будь ИНС свёрточными.) Интересен прогресс 2D -> 3D, но пока эта сеть явно 3D поворотов не понимает.


  1. saboteur_kiev
    29.11.2016 19:26

    То есть нейросети уже научились по статичному кадру определять что изображено на экране, вдобавок в какую сторону объекты двигаются?


    1. fireSparrow
      29.11.2016 22:12
      -1

      Нейросети не «понимают» в привычном нам смысле. Они просто находят образы, похожие на те, которые им демонстрировали при обучении.


      1. Deosis
        30.11.2016 08:55

        Простой пример:
        Сфотографируем мяч в свободном падении.
        Какой будем результат? Нейросеть покажет, что мяч падает вертикально или под углом?
        Будет ли учтено ускорение свободного падения?
        Получается нужно минимум два кадра для вычисления скоростей и минимум три кадра для вычисления ускорений.
        При этом нужно ещё учесть вращение самого мяча.


        1. fireSparrow
          30.11.2016 10:49

          1. Если нейросеть обучали только на роликах, где мяч падает одинаково, то в итоге она будет предсказывать только такое поведение.
          2. Если нейросеть обучали на мячах, падающих по разному, то она при обучении будет пытаться извлечь из картинки какие-то дополнительные признаки. Например, если в обучающей выборке есть много примеров, где баскетболист ведёт или бросает мяч, нейросеть будет учитывать положение тела и рук баскетболиста.
          3. Если на обучающей выборке мячи падают по-разному, но нет никаких дополнительных деталей, то в итоге нейросеть будет просто не уверена, какой вариант выбрать. И, соответственно, ничего внятного выдать не сможет.


          1. saboteur_kiev
            30.11.2016 18:54

            Как нейросеть знает что такое мяч?
            Я бы сказал, что заголовок слишком желтит. Потому что тогда она предсказывает не будущее, а непонятно что.


  1. AntonSor
    29.11.2016 20:54

    Вот и ещё одно предсказание фантастов сбылось. С.Лем 137 секунд. Ну пусть пока всего 1 секунду, а не 137. Но ведь работает же!
    — Отключенный от телетайпа, компьютер сначала замирал на две секунды, затем продолжал передавать сообщение — в течении 137 секунд. В этот промежуток времени он знал о событиях все, после него — ничего. Возможно, я бы это еще как-нибудь переварил, но открылось кое-что похуже. Компьютер предвидел будущее — и притом безошибочно. Для него не имело никакого значения, касается ли информация событий, совершившихся или только наступающих, — важно, чтобы они происходили в интервале двух минут и 17 секунд.(с)
    ---


    1. foundout
      30.11.2016 10:26

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


  1. Mithgol
    29.11.2016 23:17
    +3

    Со временем из этого вырастет предсказание преступлений с ложными срабатываниями и с ложными же несрабатываниями — и оттого с необоснованными (на них основанными) репрессиями или освобождениями от ответственности (см. «Minority Report», «Psycho-Pass» и проч.).


    1. JJBaltika
      02.12.2016 13:46

      уже было в Футураме
      https://en.wikipedia.org/wiki/Law_and_Oracle


  1. akopylov
    30.11.2016 08:54

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


    1. brzsmg
      30.11.2016 09:32
      +1

      При этом вероятность такой секунды предсказывания будет падать в геометрической прогрессии:
      Первая 99.00%;
      Вторая 49.50%
      Третья 24.25%

      Восьмая 0.75%


      1. Arqwer
        30.11.2016 10:41

        Мне кажется так мы и видим сны. Мне было бы интересно посмотреть, как нейронки видят сны.


        1. EviGL
          30.11.2016 11:21

          См. google deep dream, если ещё не видели. Хотя по-моему уже все видели :)


          1. Arqwer
            30.11.2016 18:43

            Deep Dream только добавляет стилизацию и упоротость. Можно считать его фильтром фотошопа, но никак не генератором снов. Сон это всегда динамика, а не статическое изображение. А вот шутка в этом комментарии вполне себе такой сон построить сможет.


            1. EviGL
              30.11.2016 23:21

              Я имею в виду deep dream видео, уже есть некоторое количество таких работ. Хотя там везде опять эти собачьи морды, все уже насмотрелись :)

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


  1. maniacscientist
    30.11.2016 12:40
    +2

    Осталось дождаться, когда это появится в виде FPGA в телеках. И можно уменьшать фреймрейт на консолях до суперкинематографичного 15 fps


    1. Mad__Max
      08.12.2016 00:14

      Вроде же уже в какой-то шлем виртуальной реальности внедрили чип дорисовывающий дополнительные кадры, пока комп тормозит, чтобы маскировать от пользователя лаги и рывки.
      Вполне может и в следующем поколении консолей появиться с агрессивным маркетингом в виде стабильное 4к видео @ 60 FPS в любой игре. Только на нашей платформе (с).


  1. zag2art
    30.11.2016 19:00

    «два двух из трёх»


  1. DenerKup
    01.12.2016 10:44

    Господа восторженно комментирующие, вы хотя бы удосужились остановится на примерах работы, которые в приложенном видео так быстро пролистываются (не дай бог разглядят)? Снова купились на желтых заголовок?

    Цитата из статьи:

    Furthermore, by making the model conditional on an input image, our model can sometimes predict a plausible (but “incorrect”) future.


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

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

    Во-вторых, снова кто-то сравнивает искусственные нейронные сети с человеческим мозгом. Хороший пример, когда дурацкая терминология дает журналисту хлеб. Хоть изначальная модель персептрона и создавалась как «модель работы клеток мозга» (напомню, что это было в 50-х годах), нынешние приемы построения моделей никак не связаны с человеком. Покажите мне медицинские статьи, где в голове нашли свертки, max-pooling, хитрые функции потерь, upsampling, batch normalization, стохастический градиентный спуск и пр.?

    Просто уже наболело. Я комментарий такого рода пишу, похоже, регулярно раз в 1-2 месяца. Может тон грубоват, аргументы не отшлифованы в этот раз… Просто поймите, каждый день в лаборатории, где занимаются компьютерным зрением (а сейчас по большей части это те же нейронные сети), не вижу ни одного такого фанатика, какие есть тут среди комментаторов. А вообще такое ощущение, что снова время зря потратил…


    1. Sadler
      01.12.2016 12:08
      +1

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