В Facebook работают не только инженеры, но и настоящие ученые. Одна из них, Наталья Неверова, учит компьютеры видеть и понимать мир
Facebook — большая корпорация, которая пытается охватить множество сфер, от общения людей и игр до разработки шлемов виртуальной реальности. Разумеется, не обходит фейсбук вниманием и искусственный интеллект: 4 марта компания рассказала о новой модели компьютерного зрения SEER, которая способна обучаться на любых картинках из интернета без подготовки. В начале марта журналист «Медузы» Султан Сулейманов взял интервью у руководителя группы исследователей в FAIR, научном подразделении Facebook, Натальи Неверовой. В этом интервью нет ничего о SEER (тогда об этом еще не было известно), но много — про то, как устроена научная работа в фейсбуке и что собой представляет компьютерное зрение.
— Давайте начнем с самой FAIR. Что это за подразделение фейсбука? Это самостоятельная организация? Как это представить?
— FAIR, или Facebook AI Research, — это лаборатория искусственного интеллекта Facebook. Она входит в большее подразделение, которое называется Facebook AI. Этот проект запустили в 2013 году, и с самых первых дней лабораторию возглавлял Янн Лекан. Его пригласил лично Марк Цукерберг, и Лекан — один из отцов-основателей технологии deep learning. Он три года назад получил премию Тьюринга за достижения в области исследований на тему нейронных сетей на протяжении его карьеры.
Целью лаборатории с самых первых дней было проведение фундаментальных и прикладных исследований в области искусственного интеллекта. На сегодняшний день у нас восемь подразделений — в Калифорнии, в Сиэтле, Питтсбурге, Нью-Йорке, Монреале, Лондоне, Париже и Тель-Авиве. Выбор расположения лабораторий обусловлен в том числе тем, что в этих же регионах находятся самые известные университеты, которые занимаются исследованиями в области искусственного интеллекта. Это облегчает обмен студентами, и всякого рода сотрудничества и объединенные проекты.
В Европе первая лаборатория открылась в 2015 году в Париже. В первое время у нас было порядка шести человек, а сегодня это один из самых крупных центров FAIR в мире, в котором работает примерно 80 человек.
— Вы говорите, что сотрудничаете с институтами, и Янн Лекан с коллегами несколько лет назад писал, что цель FAIR — это улучшить искусственный интеллект с помощью открытых исследований и для всеобщего блага. Но при этом FAIR — это подразделение коммерческой компании, и это у меня не очень укладывается в голове. Так это бизнесовое или научное подразделение? Бизнес-цели как-то коррелируют с тем, что делает FAIR, или это просто научная работа?
— Мы считаемся чисто научным подразделением, и, как вы правильно отметили, одним из наших ключевых принципов работы являются открытые исследования — в том плане, что мы публикуем все наши результаты, все наши статьи и код, активно взаимодействуем с университетами и другими компаниями. Потому что мы верим, что такая открытая модель наиболее способствует стимуляции инноваций в этой области. И только активно сотрудничая с другими игроками в этой области, мы можем быстро достигать хороших результатов, и при этом подвергать друг друга структурной критике и выявлять какие-то уязвимости, недостатки.
— А вы за какую часть FAIR отвечаете?
— Я руковожу исследованиями в области машинного зрения в Европе. Моя группа распределена между парижским и лондонским офисом, это и инженеры, и исследователи, есть разные роли.
— И в чем задачи группы? Если в общих чертах.
— В общих чертах — есть несколько ключевых направлений, попадающих в раздел компьютерного зрения и машинного обучения. Наиболее яркое, наверное, — это 3D-реконструкция, то есть воспроизведение 3D-геометрии, структуры всяких объектов, или человека, животных, окружения в целом на основе отдельной картинки или видео без каких-то специальных сканеров или сенсоров глубины.
Есть и другие направления. Например, обучение нейронных сетей без учителя на больших объемах данных, обработка и понимание видео, генеративные модели.
— Вы же не всегда были руководителем? Кем вы пришли в FAIR, и откуда?
— В Facebook я пришла сразу после аспирантуры в 2016 году. Сначала на роль постдока, это был временный контракт на год. А затем я осталась в компании в роли научного исследователя.
До того, как я пришла в FAIR, я была в аспирантуре во французском университете, в национальном институте прикладных исследований. У меня было два научных руководителя — один во Франции, другой в Канаде. И темой моих исследований в то время было использование машинного обучения для анализа движения человека. И я примерно продолжаю исследования в той же области — мы работаем с компьютерным зрением, машинным обучением, но в то же время нас интересуют приложения, которые связаны конкретно с человеком, с интерпретацией каких-то социальных установок.
— То есть вы пришли в фейсбук и говорите: у меня есть такая-то тема, и я хочу сделать постдок у вас? Так это происходит?
— Лаборатория в Париже открывалась в 2015 году, примерно за год до того, как я защитила диссертацию. И на тот момент это было очень громкое событие, потому что это была первая лаборатория с такой репутацией, такого масштаба, которая открылась в Европе. Конечно, для многих было мечтой туда попасть, и конкретно Янн Лекан был одним из моих кумиров, ролевых моделей в студенческие и аспирантские годы. Поэтому, конечно, очень хотелось, но я никогда не мечтала [работать с ним]. Но в то же время мой руководитель в Канаде раньше сотрудничал с Яном, и они мне просто предложили пройти интервью, посмотреть, как это все пройдет. Я пришла в фейсбук на интервью, и они меня взяли.
— Тогда какой обычный путь человека, попадающего в FAIR? Вы говорите, что работаете со студентами — то есть вы просто отбираете талантливых студентов и оставляете у себя работать? Или это должны быть люди с кучей исследований в багаже?
— Есть разные механизмы. Многие приходят сразу после аспирантуры: некоторым интересно работать с большими объемами данных, некоторым интересны конкретно приложения, некоторых привлекают люди, которые есть у нас в команде, некоторые хотят просто получить индустриальный опыт перед тем, как уйти в преподавание. [Еще] аспиранты часто приходят после стажировок. У нас программа стажировок очень распространена. Обычно на летний период, примерно на три-четыре месяца, студенты приходят, делают с нами проекты. Потом, если все хорошо идет, мы их приглашаем пройти собеседование и присоединиться к лаборатории.
Есть, конечно, и более зрелые исследователи, обычно это профессора университетов или сотрудники других индустриальных лабораторий. Они к нам часто приходят по приглашению, потому что в нашей области научное общество не такое большое, и люди более-менее знают, кто в ней работает.
В любом случае, и для аспирантов, и для профессоров наши главные критерии отбора — это способность проводить исследования, которые имеют хороший шанс что-то изменить в нашей области. То есть у человека должна быть [не только] хорошая репутация и способность проводить исследования, но и хороший вкус при выборе проблем.
— А в чем проявляется хороший вкус?
— Ну, вы знаете, что большинство, может быть, статей в нашей области — это какие-то мелкие улучшения по сравнению с существующими моделями. Может, вы можете получить меньшую погрешность за счет увеличения размера модели, но…
— А вас интересуют те, кто предлагает что-то принципиально новое?
— Да.
— Хорошо, давайте поговорим про вашу специализацию в этой области. Я прочитал у вас на сайте, что ваш интерес — это машинное обучение и компьютерное зрение с прицелом на глубокое обучение и применение, связанное с людьми. Ничего не забыл?
— Ну да, наверное, там это написано.
— А что это значит? Или сейчас вы иначе это формулируете?
— Я думаю, сегодня акцент немного меньше попадает на людей, потому что мы расширяем другие области тоже. Что же значит human centered applications? Начну с одного из определений компьютерного зрения и его целей — оно мне и, думаю, многим моим коллегам очень импонирует. Цель компьютерного зрения — создание компьютерного помощника, который позволял бы интерпретировать все, что происходит в окружающем нас мире на основе визуальных сигналов. По крайней мере так же хорошо, как это делает человек.
Если кто-то из нас в какой-то момент потеряет зрение, компьютерное зрение должно полностью возместить эту потерю. Чего здесь хотят люди? Конечно, они хотят распознавать тысячи категорий объектов, но в первую очередь их волнуют другие люди. Я в первую очередь хочу знать, кто находится в моем окружении, что они делают, с какими объектами взаимодействуют, какое у них настроение, чего они хотят, как реагируют на то, что я говорю. Или во что они одеты: «О, новое пальто, а как бы оно смотрелось на мне?»
Мы можем придумать огромное количество практических задач, которые бы соответствовали этой общей глобальной цели и пониманию, что происходит в наших социальных установках. А на техническом уровне можно сказать, что здесь три группы задач.
Первая — это задача распознавания. [Нужно] в принципе сказать, что в этой комнате пять человек. Потом понять, кто конкретно эти люди, распознать их позу, их действия, эмоции — присвоить какой-то ярлык конкретному человеку.
Затем — задача реконструкции. Здесь хорошим примером является 3D-реконструкция. Для людей это не проблема: если мы видим человека спереди, нам легко представить в общих чертах, как он выглядит сзади. Для компьютеров задача совершенно нетривиальная, потому что для них изображение — просто проекция света на поверхности сенсора, просто пиксели, в которых нет понятия геометрии.
Поэтому 3D-реконструкция — одна из самых интересных и сложных проблем в компьютерном зрении на сегодняшний день. И конкретно применительно к людям это необходимо для AR и VR приложений, если мы хотим создавать какие-то фильтры для AR или создать виртуальные аватары для VR или каких-то игр в общем случае.
Третья группа — это задача генерации, когда вы хотите создать какой-то новый контент. Например, создать видео с вами, танцующим какой-нибудь танец, который вы всегда мечтали научиться танцевать, но у вас не было такой возможности. Это тоже группа исследований.
— Можете объяснить для совсем несведущего человека, как работает машинное зрение? Потому что я думал, что достаточно показать нейросети миллион картинок с человеком, и она тут же начнет понимать, что это человек. Потом мы покажем миллион картинок с человеком, который машет рукой, и она поймет, что человек, машущий рукой, машет рукой. Все сложнее что ли?
— Ну, как сказать. На каком-то уровне это так. Конечно, у нас есть модели, которые позволяют выделить, что человек находится в комнате. Да, для этого нужно большое количество данных, и точность таких моделей будет, наверное, в районе 80-90 процентов.
Но проблема в том, что если вы хотите распознавать с очень высокой точностью, вы столкнетесь с проблемой сбора данных во всех возможных контекстах. Потому что если вы соберете тренировочные данные про людей на улице, а потом будете применять ваши модели где-то в комнате, они не будут так хорошо работать. Здесь есть нюансы.
И второе — проблема, которую вы упомянули, это можно сказать самая простая проблема компьютерного зрения, где мы действительно достигли уже хороших результатов. Но чтобы создавать новые продукты и приложения, нужно продвигаться дальше. На сегодняшний день, например, мы можем распознать позу человека — в том плане, что мы можем определить положение локтя, но для AR и VR-приложений нужно распознавание позы человека в 3D. А это — предварительный шаг для полного распознавания структуры [тела] в 3D. Например, [это может быть] полная реконструкция всего тела, структуры и динамики, чтобы [модель] реально была похожа на вас. Это очень сложная проблема.
— Вы упоминали 3D-реконструкцию. Вот здесь я совсем не понимаю, как научить компьютер понимать трехмерную структуру того, что есть на фото, но скрыто — за углом или на другой стороне стула. Как это работает?
— Здесь проблема в первую очередь заключается в том, что для такой задачи не существует данных с разметкой, то есть мы не можем просто научить сеть воспроизводить геометрию на основе картинки, потому что у нас нет таких пар данных для обучения. Поэтому здесь нам нужно использовать какие-то более хитрые методы.
Например, на основе видео. Если вы видите, как человек двигается в видео, из разных кадров можно восстановить соответствие позиций между разными точками [тела]. Грубо говоря, составить систему уравнений, на основе которых можно будет воспроизвести положение в трехмерном пространстве.
Но здесь нет методов, которые бы универсально работали, это открытая научная проблема. Есть разные методы, которые могут друг друга дополнять, и мы до сих пор не знаем, какой из них самый лучший. То, что я упомянула по видео — это один подход. Другой подход, например, [такой]: если у вас есть коллекция картинок, изображающих людей или любых других объектов с разных сторон, вы можете натренировать нейросеть, чтобы она на основе одной картинки предсказывала, как должна выглядеть вторая. И поскольку сеть натренирована таким образом, у нее внутри есть некоторое понимание о том, как 3D-структура этого объекта выглядит.
— И она применит это понимание, чтобы дорисовать объект?
— Да, и на основе этих генераций можно сделать триангуляцию и просто восстановить объект в 3D. У таких моделей есть внутреннее понимание структуры, как объекты данного класса должны выглядеть.
Хотите узнать больше? Вот детали
После интервью Наталья Неверова по просьбе «Медузы» подробнее написала об исследованиях, связанных с 3D-реконструкцией. Вот ее рассказ:
Теоретически, мы могли бы подойти к проблеме 3D-зрения точно так же, как к классической задаче классификации изображений: создать базу тренировочных данных, состоящих из пар «изображение объекта — 3D-скан объекта» и обучить нейронную сеть восстанавливать 3D-модель на основе картинки автоматически. Например, напрямую предсказывая координаты точек, соответствующих каждому пикселю изображения, в трехмерном пространстве.
На практике это не представляется возможным, так как нам пришлось бы отсканировать миллионы разных объектов в движении (одних животных в мире только порядка 15 миллионов видов!). Поэтому наша команда FAIR в Лондоне занимается, в основном, разработкой технологий 3D реконструкции на основе произвольных видео или изображений из интернета без сопутствующей 3D информации.
В перспективе наша задача заключается в 3D-реконструкции любых объектов, но на данный момент мы работаем с несколькими категориями, наиболее важными для практических приложений, включая AR/VR: людьми, животными, наиболее распространенными бытовыми предметами. Для разных категорий объектов мы создаем математические модели, содержащие усредненные 3D-образы и описывающие дополнительные различия в форме и деформации между объектами из одной категории или групп категорий (например, формы тел и позы разных людей) с помощью всего лишь компактного набора параметров.
В простейшем случае, задача тренировки нейронной сети тогда сводится к предсказанию исходного набора параметров по изображению, генерации 3D-модели объекта соответствующей формы, сравнению проекции полученной 3D-модели с исходной картинкой и решению задачи оптимизации с целью минимизации разницы между ними и уточнения предсказанных значений. В случае видео это сделать несколько проще, так как мы можем использовать дополнительную информацию о том, что форма конкретного объекта должна оставаться неизменной на протяжении одного видео в независимости от положения камеры. Такой подход значительно упрощает задачу 3D-реконструкции, так как математическая модель заранее содержит значительный объем информации о структуре данной категории объекта, и нейронная сеть может «сосредоточиться» на нюансах
— А есть еще открытые или наиболее острые проблемы с точки зрения машинного обучения? Чем сейчас модно заняться?
— У нас четыре главных направления, которые наиболее критичны для продвижения области в целом. Это может быть двухчасовая лекция, но могу коротко рассказать.
Первое направление — создание и оптимизация архитектур и алгоритмов тренировки нейронных сетей для задач компьютерного зрения. Начиная с простейших, просто распознавания лиц на картинке. Здесь задача заключается в том, чтобы научиться тренировать такие модели эффективно на больших количествах данных без разметки. Потому что если сегодня на основе миллиарда картинок мы можем распознать, допустим, тысячу или десять тысяч классов, то на практике мы хотим распознавать сотни тысяч, если не миллионы классов. Когда мы переходим к такому масштабу, уже на практике это означает, что для тренировки нейросетей у нас не будет большого количества примеров для определенного класса.
То есть мы хотим научиться строить большие модели, которые бы обучались без разметки, и в то же время могли адаптироваться к новым классам, для которых у нас нет большого количества тренировочных данных.
Другое направление — это классические задачи компьютерного зрения: распознавание, детекция, сегментация, распознавание позы. Они может быть не очень модные, но они фундаментальные для более сложных задач, поэтому достижение низкой погрешности и высокой эффективности там очень важно.
Третья задача — анализ видео, потому что на сегодняшний день используемые методы чаще всего основаны либо на отдельных кадрах, либо на коротких клипах. Но на сегодняшний день нейронные сети не могут взять и проанализировать, например, полуторачасовой фильм с закрученным сюжетом и определить, что на самом деле произошло в начале на основе того, что мы узнали в конце. То, что называется long-term video understanding, на сегодняшний день — очень сложная проблема, и часть сложности здесь связана с тем, что для построения больших моделей для анализа видео нужны более эффективные методы тренировки, большие объемы тренировочных данных и значительные вычислительные ресурсы.
И четвертая группа задач — это разные варианты реконструкции, но наиболее интересна, опять же, 3D-реконструкция без разметки, без учителя, из произвольных данных.
— И насколько я понимаю, именно 3D-реконструкция хороша для дополненной и виртуальной реальности. Какие здесь вообще подвижки у FAIR? Вы пересекаетесь с AR и VR?
— Мы не думаем в этих категориях, потому что мы не работаем над продуктами. Но в то же время технологии, которыми мы занимаемся, непосредственно связаны с этими приложениями. И 3D-реконструкция для них важна в том плане, что для AR, если вы хотите встроить какой-то объект в окружающую среду, вам надо понять геометрию и расположение базовых поверхностей, структуру окружающей среды.
То, что ближе к нашим исследованиям — это восстановление трехмерной структуры человеческого тела. Для AR сегодня существует огромное количество эффектов — масок и фильтров — но по большей части они все для лица, потому что несколько десятилетий исследований в машинном зрении ушло на то, чтобы понять, что такое человеческое лицо. Но на самом деле это не очень интересный объект, потому что лица обычно ориентированы в камеру и они не очень подвижны. Да, это работает, но если мы хотим сделать что-нибудь более интересное, скажем, применить фильтры ко всему телу — переодеть человека или дать примерить ему одежду. Для этого нужно воспроизведение структуры конкретного тела с очень хорошей точностью, чтобы понять, как это будет выглядеть на вас.
То же с животными. Люди хотят иметь какие-нибудь фильтры для кошек и собак, «переодевать» их как-то, и на сегодняшний день у нас нет моделей, которые могли бы устойчиво распознавать геометрию кошек и собак, потому что они еще более подвижны, и распознать конкретную позу очень сложно.
А для VR задача в первую очередь ориентирована на человека, на создании цифровых аватаров. На сегодняшний день возможно в принципе создать реплику человека, которая была бы достаточно реалистичной. Но сейчас для этого нужно пригласить его в лабораторию, просканировать с помощью 3D-сканера или специальных установок с большим количеством камер. И человек должен несколько часов двигаться, какие-то гримасы строить, чтобы на основе этих данных потом научить модель воспроизводить конкретные детали конкретного человека.
Такая технология существует, но на практике мы хотим добиться создания таких аватаров на основе одной картинки или какого-то простого видео, записанного с помощью мобильного телефона. И на это предположительно уйдет как минимум несколько лет…
— Ого, я думал мы близки к такому.
— Я думаю, прогресс будет постепенным, не так, что в один прекрасный день что-то появится.
— Хорошо. Вы говорили, что выкладываете результаты своих исследований в открытый доступ, и исходный код тоже. Вы следите за тем, как энтузиасты это потом используют?
— Результаты наших исследований в принципе используются очень активно. Например, Facebook является создателем библиотеки PyTorch, одного из основных инструментов для обучения нейронных сетей. Опять же, наши библиотеки для детекции объектов, для 3D-реконструкции наши библиотеки — одни из самых популярных, мы знаем, что они используются в научных проектах, стартапами, разработчиками, студентами, кем угодно.
По поводу чего-то неожиданного. Одна из моих статей, которая вышла пару лет назад, называлась она DensePose, и идея заключалась в том, что по картинке, изображающей человека, мы можем определить положение каждой точки на поверхности его тела. То есть не просто определить положение локтя или кисти, а для каждой, буквально каждой точки мы можем сказать, что это такое и где она находится на 3D-модели.
И это позволяет извлекать «текстуру» одного человека и перепроецировать ее на 3D-модель или на какого-то другого человека в виде AR-фильтра. Это база для AR-эффектов и часто используется научным сообществом для создания виртуальных аватаров. Не как окончательный результат, а как инструмент для создания.
В то же время, мы получили несколько интересных писем. Люди, например, хотели использовать эту технологию для обучения спортсменов, потому что она позволяет очень точно восстановить позу человека на уровне ориентации костей. И, например, для лыжников они хотели создать автоматическую систему коррекции позы на тренажерах.
Потом я получила письмо от музыкантов. Они занимаются обучением игре на саксофоне, и идея здесь такая же. Хотели создать технологическую систему, которая бы корректировала, как дети держат инструмент. Другое письмо было на тему фермы. Люди хотели применить технологию к коровам, чтобы отслеживать, как коровы передвигаются, взаимодействуют друг с другом, растут, в принципе как себя ведут.
На тот момент это казалось довольно забавным, но сегодня у нас уже есть модели для животных, поэтому, если есть интерес, мы можем создавать такие приложения и для коров.
— А почему люди вам пишут? Они не могли просто взять ваш код?
— Код они взять могут, но их скорее интересовало общее мнение на тему применимости технологии к их областям, и как собрать данные для этих областей. Потому что наши модели не работают на коровах. Ну, не работали в то время.
— Но заработали?
— Да, сейчас уже заработали. Но им было интересно, как воспроизвести сбор данных для тренировки.
«Медуза» — это вы! Уже три года мы работаем благодаря вам, и только для вас. Помогите нам прожить вместе с вами 2025 год!
Если вы находитесь не в России, оформите ежемесячный донат — а мы сделаем все, чтобы миллионы людей получали наши новости. Мы верим, что независимая информация помогает принимать правильные решения даже в самых сложных жизненных обстоятельствах. Берегите себя!