Нейросеть предсказывает 1 секунду будущего по фотографии


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

    Умение предсказать ближайшее будущее — важный навык для любого человека. Скорости человеческой реакции недостаточно, чтобы в реальном времени реагировать на окружающие события, поэтому мы предсказываем их в постоянном режиме с вероятностью, близкой к 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 декабря в Барселоне.

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

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

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

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

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

              Эффект называется Overfitting
              –4
              Вы бы не вводили людей в заблуждение.

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

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

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

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

                  Можете показать какой-нибудь state-of-the-art, полученный сетью, которая учит структуру?
                  0
                  NEAT недостаточно современная или недостаточно сеть?
                  0
                  >Насчёт конкретной нейросети («генеративная состязательная нейронная сеть») из статьи: судя по всему, её структура меняется и изменяется в объёме при накоплении опыта.
                  Вот не смог я это найти в оригинальной статье, подскажите где именно об этом говорится?
                    0
                    Спасибо!
                    А насколько тяжелы нейросети? Я понимаю, что они разные бывают, но может быть есть примеры…
                      0
                      Так вот прямо в новости пример и приведен. По паре сотен мегабайт на обученную сеть.
                      Это данные. Сам исполнимый код обычно совсем компактный.
                  0
                  Если мы хотим добиться реалистичности, то тут опять же: смотря по каким видео учить, и насколько подборка видео коррелирует с реальной жизнью. Как пример, какой-то американский спец утверждал, будто бы количество видео, когда в бейсболе выбивается Home Run, в процентном соотношении гораздо больше, чем количество событий, когда он выбивается в реальности.

                  Впрочем, как мне кажется, многие люди в мозгу также нередко «предсказывают» маловероятные события (тот же Home Run очень желаем болельщиками).
                    0
                    Мне кажется данный подход позволит продвинуть и распознавание простых статических картинок тоже. Причина в том, что такая тренировка внедрит «понимание» инвариантности поворота и масштабирования изображения на близкие ко входу слои сети. (Ещё важнее был бы параллельный перенос, не будь ИНС свёрточными.) Интересен прогресс 2D -> 3D, но пока эта сеть явно 3D поворотов не понимает.
                      0
                      То есть нейросети уже научились по статичному кадру определять что изображено на экране, вдобавок в какую сторону объекты двигаются?
                        –1
                        Нейросети не «понимают» в привычном нам смысле. Они просто находят образы, похожие на те, которые им демонстрировали при обучении.
                          0
                          Простой пример:
                          Сфотографируем мяч в свободном падении.
                          Какой будем результат? Нейросеть покажет, что мяч падает вертикально или под углом?
                          Будет ли учтено ускорение свободного падения?
                          Получается нужно минимум два кадра для вычисления скоростей и минимум три кадра для вычисления ускорений.
                          При этом нужно ещё учесть вращение самого мяча.
                            0
                            1. Если нейросеть обучали только на роликах, где мяч падает одинаково, то в итоге она будет предсказывать только такое поведение.
                            2. Если нейросеть обучали на мячах, падающих по разному, то она при обучении будет пытаться извлечь из картинки какие-то дополнительные признаки. Например, если в обучающей выборке есть много примеров, где баскетболист ведёт или бросает мяч, нейросеть будет учитывать положение тела и рук баскетболиста.
                            3. Если на обучающей выборке мячи падают по-разному, но нет никаких дополнительных деталей, то в итоге нейросеть будет просто не уверена, какой вариант выбрать. И, соответственно, ничего внятного выдать не сможет.
                              0
                              Как нейросеть знает что такое мяч?
                              Я бы сказал, что заголовок слишком желтит. Потому что тогда она предсказывает не будущее, а непонятно что.
                        0
                        Вот и ещё одно предсказание фантастов сбылось. С.Лем 137 секунд. Ну пусть пока всего 1 секунду, а не 137. Но ведь работает же!
                        — Отключенный от телетайпа, компьютер сначала замирал на две секунды, затем продолжал передавать сообщение — в течении 137 секунд. В этот промежуток времени он знал о событиях все, после него — ничего. Возможно, я бы это еще как-нибудь переварил, но открылось кое-что похуже. Компьютер предвидел будущее — и притом безошибочно. Для него не имело никакого значения, касается ли информация событий, совершившихся или только наступающих, — важно, чтобы они происходили в интервале двух минут и 17 секунд.(с)
                        ---
                          0
                          Не хочу показаться невеждой, но, глядя на пульсирующие головы младенцев, извивающихся людей и разваливающиеся поезда, не могу испытать тех же восторженных чувств.
                          Тем не менее, готов признать, что «нулевой километр пройден», и, вероятно, в будущем нас действительно ждут захватывающие результаты.
                          +3
                          Со временем из этого вырастет предсказание преступлений с ложными срабатываниями и с ложными же несрабатываниями — и оттого с необоснованными (на них основанными) репрессиями или освобождениями от ответственности (см. «Minority Report», «Psycho-Pass» и проч.).
                            0
                            уже было в Футураме
                            https://en.wikipedia.org/wiki/Law_and_Oracle
                            0
                            В качестве шутки: если нейросеть может предсказать, что будет через секунду, то на основе своего предсказания она может предсказать, что будет в следующую секунду. И так далее.
                              +1
                              При этом вероятность такой секунды предсказывания будет падать в геометрической прогрессии:
                              Первая 99.00%;
                              Вторая 49.50%
                              Третья 24.25%

                              Восьмая 0.75%
                                0
                                Мне кажется так мы и видим сны. Мне было бы интересно посмотреть, как нейронки видят сны.
                                  0
                                  См. google deep dream, если ещё не видели. Хотя по-моему уже все видели :)
                                    0
                                    Deep Dream только добавляет стилизацию и упоротость. Можно считать его фильтром фотошопа, но никак не генератором снов. Сон это всегда динамика, а не статическое изображение. А вот шутка в этом комментарии вполне себе такой сон построить сможет.
                                      0
                                      Я имею в виду deep dream видео, уже есть некоторое количество таких работ. Хотя там везде опять эти собачьи морды, все уже насмотрелись :)

                                      В прикреплённом к статье видео есть примеры сгенерированных видосов, там уже само по себе сон и психодел, даже одна секунда. Дальше будет ещё хуже :) Ну и русский текст немного искажает смысл, генерация этих односекундных видео это не конечная цель исследователей и эти видео трудно назвать хоть немного реалистичными.
                              +2
                              Осталось дождаться, когда это появится в виде FPGA в телеках. И можно уменьшать фреймрейт на консолях до суперкинематографичного 15 fps
                                0
                                Вроде же уже в какой-то шлем виртуальной реальности внедрили чип дорисовывающий дополнительные кадры, пока комп тормозит, чтобы маскировать от пользователя лаги и рывки.
                                Вполне может и в следующем поколении консолей появиться с агрессивным маркетингом в виде стабильное 4к видео @ 60 FPS в любой игре. Только на нашей платформе (с).
                                0
                                «два двух из трёх»
                                  0
                                  Господа восторженно комментирующие, вы хотя бы удосужились остановится на примерах работы, которые в приложенном видео так быстро пролистываются (не дай бог разглядят)? Снова купились на желтых заголовок?

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

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое