newsmode
search
Меню
arrow_back Назад

The state of Computer Vision and AI: we are really, really far away.

auto_awesomeКраткое саммари

Андрей Карпатый разбирает знаменитую фотографию, на которой Барак Обама незаметно давит ногой на весы, пока стоящий на них человек взвешивается, а окружающие смеются. Автор перечисляет десятки слоёв знаний, нужных, чтобы понять шутку: 3D-структура сцены, распознавание зеркал и лиц, физика весов, теория сознания, социальный статус и предсказание развития событий. Он подчёркивает, что современные методы Computer Vision (Imagenet, Pascal VOC, оценка позы, распознавание действий) решают узкие и разрозненные задачи и жалко выглядят на фоне такой реальной сцены. Карпатый сомневается, что достаточно просто больше данных и трюков вроде SGD, adagrad или L1-регуляризации — главная проблема в том, чтобы собрать правильные данные для подобных выводов. Он склоняется к мысли, что нужны воплощённость (embodiment), годы структурированного временно́го опыта и какая-то новая архитектура активного обучения. В финале автор иронично признаётся, что всё это его удручает, и шутит, что, может, проще запустить стартап с мобильным локальным соцприложением для iPhone.

Картинка выше — забавная.

Но для меня это ещё и один из тех примеров, которые навевают грусть по поводу перспектив AI и Computer Vision. Что нужно, чтобы компьютер понял это изображение так же, как вы или я? Я предлагаю вам явно перечислить все кусочки знаний, которые должны сложиться, чтобы в этом появился смысл. Вот моя короткая попытка:

Вы распознаёте, что это изображение группы людей, и понимаете, что они находятся в коридоре. Вы видите, что в сцене есть 3 зеркала, так что некоторые из этих людей — «ненастоящие», это отражения с разных ракурсов. Вы узнаёте Обаму по нескольким пикселям, из которых состоит его лицо. Помогает то, что он в костюме и что вокруг него другие люди в костюмах. Вы понимаете, что на весах стоит человек, хотя сами весы занимают совсем немного белых пикселей, сливающихся с фоном. Но вы используете позу этого человека и знание о том, как люди взаимодействуют с предметами, чтобы это вычислить. Вы видите, что Обама поставил ногу чуть-чуть на сами весы. Обратите внимание на язык, которым я пользуюсь: я говорю в терминах 3D-структуры сцены, а не положения ноги в 2D-системе координат изображения. Вы знаете, как работает физика: Обама наваливается на весы, прикладывая к ним силу. Весы измеряют силу, которая на них прикладывается, — так они устроены => они завысят вес стоящего на них человека. Человек, измеряющий свой вес, не подозревает, что Обама это делает. Вы делаете такой вывод, потому что знаете его позу, понимаете, что поле зрения человека ограничено, и понимаете, что он вряд ли почувствует лёгкий нажим ноги Обамы. Вы понимаете, что люди стесняются своего веса. Вы также понимаете, что он считывает показания весов и что вскоре завышенный вес собьёт его с толку, потому что окажется гораздо выше, чем он ожидает. Иными словами, вы рассуждаете о последствиях событий, которые развернутся через секунды после того, как был сделан этот снимок, и особенно о мыслях и о том, как они будут развиваться в головах людей. Вы также рассуждаете о том, какая информация доступна каждому из людей. Сзади стоят люди, которые находят грядущее замешательство этого человека забавным. То есть вы рассуждаете о состоянии сознания людей и о том, как они видят состояние сознания другого человека. Это становится пугающе мета. Наконец, тот факт, что «виновник торжества» здесь — президент, делает ситуацию, пожалуй, ещё немного смешнее. Вы понимаете, какие действия более или менее вероятны со стороны разных людей в зависимости от их статуса и личности.

Я мог бы продолжать, но суть в том, что вы использовали ОГРОМНОЕ количество информации за те полсекунды, пока смотрите на картинку и смеётесь. Информацию о 3D-структуре сцены, о сбивающих с толку визуальных элементах вроде зеркал, об идентичности людей, об аффордансах и о том, как люди взаимодействуют с предметами, о физике (как работает конкретный прибор, что значит навалиться и какой это даёт эффект), о людях и их склонности комплексовать из-за веса. Вы рассуждали о ситуации с точки зрения человека на весах: что он осознаёт, каковы его намерения и какая информация ему доступна, — и рассуждали о людях, рассуждающих о людях. Вы также подумали о динамике сцены и сделали предположения о том, как ситуация будет развиваться в ближайшие секунды визуально, как она будет разворачиваться в мыслях вовлечённых людей, и прикинули, насколько вероятно или невероятно для людей определённого статуса/идентичности совершить то или иное действие. Каким-то образом всё это вместе складывается в «понимание» сцены.

Поражает, что все вышеперечисленные выводы разворачиваются из беглого взгляда на 2D-массив значений R,G,B. Главная проблема в том, что значения пикселей — это лишь верхушка огромного айсберга, и вывод всей формы и размера этого айсберга из априорных знаний — самая трудная задача, стоящая перед нами. Как нам вообще приступить к написанию алгоритма, способного рассуждать о сцене так, как это сделал я? Забудьте на минуту про алгоритм вывода, способный связать всё это воедино; как нам хотя бы начать собирать данные, которые могут поддержать такие рассуждения (например, о том, как работают весы)? Как мы вообще можем дать компьютеру шанс?

А теперь учтите, что state-of-the-art методы в Computer Vision тестируются на таких задачах, как Imagenet (присвоение 1-из-k меток целым изображениям) или Pascal VOC detection challenge (плюс bounding boxes). Также есть немало работ по оценке позы, распознаванию действий и т. п., но всё это узкоспециализировано, разрозненно и работает лишь наполовину. Мне неприятно это говорить, но состояние CV и AI выглядит жалко, если задуматься о масштабе стоящей перед нами задачи и о том, как мы вообще можем добраться отсюда туда. Дорога впереди длинная, неопределённая и неясная.

Я встречал аргументы, что всё, что нам нужно, — это гораздо больше данных из изображений, видео, возможно, текстов, и запустить какой-нибудь хитрый алгоритм обучения: может быть, лучшую функцию потерь, SGD, отжиг шага обучения, adagrad, навесить тут и там L1 — и всё само собой выскочит. Если бы только у нас в рукаве было ещё пара трюков! Но мне такие примеры показывают, что мы упускаем многие важнейшие куски пазла и что центральной проблемой будет в той же мере получение правильных обучающих данных в правильной форме для поддержки таких выводов, как и само построение этих выводов.

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

В любом случае, нам ещё очень, очень далеко, и это меня угнетает. Куда двигаться? :( Может, мне просто запустить стартап. У меня есть очень классная идея для мобильного локального социального iPhone-приложения.