Идиот или гений? Как работает и на что способен искусственный интеллект — страница 7 из 19

Сверточные нейронные сети и ImageNet

Изобретатель сверточных нейронных сетей Ян Лекун всю жизнь работал над нейронными сетями: начав еще в 1980-х, он пережил немало зим и весен ИИ. Во время аспирантуры и постдокторантуры он восхищался перцептронами Розенблатта и неокогнитроном Фукусимы, но отмечал, что последнему не хватает хорошего алгоритма обучения с учителем. Вместе с другими учеными (в частности, с научным руководителем его постдокторантуры Джеффри Хинтоном) Лекун принял участие в разработке такого метода обучения – по сути, того же самого метода обратного распространения ошибки, который сегодня используется в сверточных нейронных сетях[107].

В 1980-х и 1990-х годах, работая в Лабораториях Белла, Лекун обратился к проблеме распознавания рукописных цифр и букв. Совместив идеи неокогнитрона с алгоритмом обратного распространения ошибки, он создал LeNet – одну из первых сверточных нейронных сетей. Способности LeNet к распознаванию рукописных цифр принесли ей коммерческий успех: в 1990-х и 2000-х годах в Почтовой службе США LeNet использовали для автоматизированного распознавания индексов, а в банковской сфере – для автоматизированной обработки чеков.

LeNet, как и ее преемница, сверточная нейронная сеть, не справилась с переходом на следующий уровень для решения более сложных зрительных задач. К середине 1990-х годов интерес к нейронным сетям среди исследователей ИИ стал угасать, и на первый план вышли другие методы. Но Лекун верил в сверточные нейронные сети и продолжал постепенно совершенствовать их. “Можно сказать, он поддерживал огонь даже в самые темные времена”, – сказал впоследствии Джеффри Хинтон[108].

Лекун, Хинтон и другие сторонники нейронных сетей полагали, что усовершенствованные, более масштабные вариации СНС и других глубоких сетей сумеют завоевать сферу компьютерного зрения, если предоставить им достаточный объем тренировочных данных. Все 2000-е годы они упорно работали в тени, но в 2012 году факел исследователей сверточных нейронных сетей вдруг озарил целый мир, когда их разработка победила в соревновании по компьютерному зрению на базе данных изображений ImageNet.

Создание ImageNet

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

В 2005–2010 годах самым престижным был ежегодный конкурс PASCAL[109] Visual Object Classes (Классификация визуальных объектов), набор данных которого к 2010 году включал около пятнадцати тысяч фотографий, загруженных с фотохостинга Flickr, с присвоенными людьми метками для двадцати категорий объектов, такими как “человек”, “собака”, “лошадь”, “овца”, “автомобиль”, “велосипед”, “диван” и “цветок в горшке”.

В рамках этого соревнования в “классификации”[110] соперничали программы компьютерного зрения, которые брали фотографию в качестве входного сигнала (не видя присвоенную ей человеком метку) и на выходе определяли для каждой из двадцати категорий, присутствует ли на изображении относящийся к ней объект.

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

Ежегодные конкурсы PASCAL привлекали большое внимание и стимулировали исследования в сфере распознавания объектов. С годами программы-участницы постепенно совершенствовались (любопытно, что сложнее всего им было распознавать цветы в горшках). Однако некоторые исследователи полагали, что эталонные данные PASCAL в некотором роде сдерживают развитие компьютерного зрения. Участники уделяли слишком много внимания конкретным двадцати категориям объектов, классификация по которым проходила в рамках конкурса, и не создавали системы, способные работать с огромным количеством категорий объектов, распознаваемых людьми. Более того, в наборе данных не хватало фотографий, чтобы представленные на соревнование программы могли узнать все возможные вариации внешнего вида объектов и научиться обобщать.

Чтобы двигаться вперед, необходимо было создать новые эталонные данные, в которые вошло бы гораздо больше категорий и фотографий. Молодая специалистка по компьютерному зрению из Принстона Фей-Фей Ли задалась этой целью и случайно узнала о проекте другого принстонского профессора, психолога Джорджа Миллера, который хотел создать базу данных английских слов, выстроенных в иерархическом порядке от самых специфических к самым общим, с группировкой синонимов. Возьмем, например, слово “капучино”. В базе данных, получившей название WordNet, содержится следующая информация об этом термине (стрелками обозначена принадлежность к определенной категории):

капучино кофе напиток пища вещество физическая сущность сущность

В базе данных также содержится информация о том, что, скажем, “напиток” и “питье” – это синонимы, что слово “напиток” входит и в другую цепочку, включающую слово “жидкость”, и так далее.

База данных WordNet использовалась (и продолжает использоваться) в исследованиях психологов и лингвистов, а также в системах ИИ по обработке естественного языка, но у Фей-Фей Ли появилась другая идея – создать базу данных изображений, структурированную по принципу существительных в WordNet, где каждое существительное будет связано с большим количеством изображений, содержащих примеры объектов, обозначаемых им. Так родилась идея ImageNet.

Вскоре Ли с коллегами приступили к сбору огромного количества изображений, используя существительные WordNet в качестве запросов на таких поисковых системах, как Flickr и поиск по картинкам Google. Однако, если вы хоть раз пользовались поиском по картинкам, вам известно, что его выдача часто далека от идеала. Например, если написать в строке поиска по картинкам Googlemacintosh apple”, на фотографиях вы увидите не только яблоки и компьютеры Mac, но и свечи в форме яблок, смартфоны, бутылки яблочного вина и другие не относящиеся к теме предметы. В связи с этим Ли с коллегами пришлось привлечь людей, чтобы они определили, какие изображения не иллюстрируют заданное существительное, и удалили их из базы. Сначала этим в основном занимались студенты. Работа шла ужасно медленно и требовала большого напряжения сил. Вскоре Ли поняла, что при такой скорости на решение задачи уйдет девяносто лет[111].

Ли с коллегами стали искать возможные способы автоматизации работы, но дело в том, что определение, изображен ли на фотографии объект, обозначаемый конкретным существительным, – это и есть задача на распознавание объектов! И компьютеры справлялись с ней из рук вон плохо, что и стало поводом к созданию ImageNet.

Группа зашла в тупик, но затем Ли случайно наткнулась на созданный тремя годами ранее сайт, который мог обеспечить проект рабочими руками, необходимыми ImageNet. У сайта было странное название Amazon Mechanical Turk.

Mechanical Turk

По словам Amazon, платформа Mechanical Turk представляет собой “рынок труда, который требует человеческого разума”. На платформе заказчики, то есть люди, у которых есть задача, не подходящая для компьютеров, находят работников, готовых за небольшую плату использовать свой разум для выполнения задачи заказчика (например, присваивать метки объектам на фотографиях, получая по десять центов за фотографию). Имея сотни тысяч зарегистрированных работников со всего мира, Mechanical Turk воплощает максиму Марвина Минского “простые вещи делать сложно”, ведь работников привлекают к выполнению “простых” задач, которые пока слишком сложны для компьютеров.

Названием Mechanical Turk (“Механический турок”) платформа обязана знаменитой ИИ-мистификации XVIII века: так называли шахматную “разумную машину”, в которой прятался человек, делавший ходы за куклу (“турка”, одетого на манер османского султана). По всей видимости, на розыгрыш купились многие видные люди того времени, включая Наполеона Бонапарта. Платформа Amazon не пытается никого обмануть, но, как и первый “механический турок”, по сути, представляет собой “искусственный искусственный интеллект”[112].

Фей-Фей Ли поняла, что если ее группа заплатит десяткам тысяч работников Mechanical Turk, чтобы они удалили несоответствующие изображения для каждого из существительных WordNet, то при относительно небольших затратах весь набор данных можно будет обработать за несколько лет. Всего за два года более трех миллионов изображений было связано с соответствующими существительными из WordNet – и появился набор данных ImageNet. Для проекта ImageNet платформа Mechanical Turk стала “спасением”[113]. Исследователи ИИ продолжают активно использовать ее для создания наборов данных, и сегодня заявки ученых на гранты в сфере ИИ, как правило, включают строку бюджета “услуги работников Mechanical Turk”.

Соревнования ImageNet

В 2010 году проект ImageNet провел первый конкурс ImageNet Large Scale Visual Recognition Challenge (Конкурс по широкомасштабному распознаванию образов в ImageNet) с целью подстегнуть развитие более общих алгоритмов распознавания объектов. В нем приняли участие тридцать пять программ, созданных исследователями компьютерного зрения из научных организаций и технологических компаний всего мира. Участникам соревнований выдали размеченные тренировочные изображения – 1,2 млн фотографий – и список возможных категорий. Натренированные программы должны были выдавать верную категорию для каждого входного изображения. Если в конкурсе PASCAL было всего двадцать возможных категорий, то в состязании ImageNet их количество возросло до тысячи.

Тысячу категорий сформировало выбранное организаторами подмножество терминов из WordNet. Категории представляют собой внешне случайный набор терминов в диапазоне от знакомых и непримечательных (“лимон”, “замок”, “рояль”) до менее распространенных (“виадук”, “рак-отшельник”, “метроном”) и совсем редких (“шотландский дирхаунд”, “камнешарка”, “мартышка-гусар”). На долю редких животных и растений – во всяком случае таких, которые я бы не опознала, – приходится около десятой части целевых категорий.

На одних фотографиях представлен лишь один объект, а на других – много объектов, включая “верный”. Из-за этой неоднозначности программа выдает для каждого изображения пять категорий, и если среди них оказывается верная, то считается, что программа справилась с задачей. Такая степень точности называется “топ-5”.

Победившая в 2010 году программа использовала так называемый метод опорных векторов, передовой в то время алгоритм распознавания изображений, который применял сложную математику, чтобы учиться присваивать категории входным изображениям. При точности топ-5 эта программа верно классифицировала 72 % из 150 000 тестовых изображений. Неплохо, но это значит, что, даже выдавая по пять категорий на изображение, программа ошиблась при классификации более 40 000 тестовых изображений, а следовательно, ей было куда расти. Стоит отметить, что среди лучших программ не оказалось нейронных сетей.

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

Но в 2012 году на соревнованиях ImageNet их ожидания не оправдались, поскольку победившая программа справилась с классификацией целых 85 % изображений. Всех поразил такой скачок в точности. Мало того, победившая программа не использовала метод опорных векторов или любой другой из методов, преобладавших в то время в компьютерном зрении. Она представляла собой сверточную нейронную сеть. Эта сеть получила название AlexNet в честь своего главного создателя Алекса Крижевского, который в то время учился в аспирантуре Университета Торонто под руководством именитого специалиста по нейронным сетям Джеффри Хинтона. Работая вместе с Хинтоном и студентом Ильей Суцкевером, Крижевский создал более масштабную версию LeNet Лекуна из 1990-х годов. Тренировка такой большой сети стала возможной благодаря возросшим вычислительным мощностям. В AlexNet было восемь слоев и около шестидесяти миллионов весов, значения которых определялись методом обратного распространения ошибки при использовании более миллиона тренировочных изображений[114]. Группа из Торонто разработала хитроумные методы, чтобы усовершенствовать процесс тренировки сети, и примерно за неделю кластер мощных компьютеров натренировал AlexNet.

Успех AlexNet всколыхнул сферу компьютерного зрения и ИИ, неожиданно продемонстрировав людям потенциал сверточных нейронных сетей, исследования которых большинство специалистов не считало перспективными для развития современного компьютерного зрения. В опубликованной в 2015 году статье журналист Том Саймонайт приводит выдержки из своего интервью с Яном Лекуном о неожиданном триумфе сверточных нейронных сетей:

Лекун вспоминает, как люди, которые по большей части не принимали нейронные сети в расчет, до отказа заполнили зал, где победители выступали с докладом о своем исследовании. “Можно было видеть, как многие уважаемые люди в одночасье переменили свое мнение, – говорит он. – Они сказали: «Ладно, теперь мы вам верим. Делать нечего – вы победили»”[115].

Почти в то же время группа Джеффри Хинтона также продемонстрировала, что глубокие нейронные сети, натренированные на огромных объемах размеченных данных, справлялись с распознаванием речи гораздо лучше, чем другие программы, доступные в то время. Успехи группы из Торонто на соревнованиях ImageNet и в сфере распознавания речи запустили цепную реакцию. Через год маленькую компанию, основанную Хинтоном, купила Google, Хинтон и его студенты Крижевский и Суцкевер стали сотрудниками Google. Это приобретение мгновенно вывело Google в авангард глубокого обучения.

Вскоре после этого Яну Лекуну, который преподавал в Нью-Йоркском университете, предложили возглавить новую Лабораторию ИИ в Facebook. Вскоре все крупные технологические компании (и многие компании поменьше) принялись спешно расхватывать специалистов по глубокому обучению и их аспирантов. Глубокое обучение почти в одночасье стало главным направлением исследований ИИ, и знание глубокого обучения гарантировало специалистам по компьютерным наукам высокие зарплаты в Кремниевой долине или – что даже лучше – венчурное финансирование для стартапов в сфере глубокого обучения, которые стали расти как грибы.

Ежегодный конкурс ImageNet стал больше освещаться в прессе и быстро превратился из дружеского состязания ученых в статусный спарринг технологических компаний, коммерциализирующих компьютерное зрение. Победа на ImageNet гарантирует вожделенное уважение специалистов по компьютерному зрению, а также бесплатную рекламу, которая может привести к росту продаж и цены акций. Стремление создать программу, которая покажет лучший результат на соревнованиях, в 2015 году привело к скандалу, когда гигантская китайская интернет-компания Baidu попыталась сжульничать, неочевидным образом прибегнув к тому, что специалисты по машинному обучению называют подглядыванием данных (data snooping).

Случилось следующее: перед конкурсом ImageNet каждой команде выдали тренировочные изображения, размеченные верными категориями объектов. Им также выдали большое тестовое множество изображений, не вошедших в тренировочное множество и не имеющих меток. Обучив программу, команда могла проверить ее работу на тестовом множестве – это помогает понять, насколько хорошо программа научилась обобщать (а, например, не просто запомнила тренировочные изображения вместе с метками). В зачет идет только результат, показанный на тестовом множестве. Чтобы проверить, как программа справляется с задачей, командам необходимо было показать программе все изображения из тестового множества, собрать топ-5 категорий для каждого изображения и загрузить этот список на “тестовый сервер” – компьютер, обслуживаемый организаторами соревнования. Тестовый сервер сравнивал полученный список с (секретными) верными ответами и выдавал процент совпадений.

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

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

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

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

Великая битва на конкурсе ImageNet 2015 года разгорелась за доли процента – казалось бы, пустяшные, но потенциально весьма прибыльные. В начале года команда Baidu объявила, что точность (топ-5) их метода на тестовом множестве ImageNet составила невиданные 94,67 %. Но в тот же день команда Microsoft объявила, что ее программа показала еще более высокую точность – 95,06 %. Через несколько дней команда конкурентов из Google сообщила об использовании немного другого метода, который справился с задачей еще лучше и показал результат 95,18 %. Этот рекорд продержался несколько месяцев, пока команда Baidu не сделала новое заявление: она усовершенствовала свой метод и может похвастаться новым рекордом – 95,42 %. Пиарщики Baidu широко разрекламировали этот результат.

Но через несколько недель организаторы соревнования ImageNet сделали краткое объявление: “В период с 28 ноября 2014 года по 13 мая 2015 года команда Baidu использовала не менее 30 учетных записей и загрузила результаты на тестовый сервер не менее 200 раз, значительно превысив существующее ограничение в две загрузки в неделю”[116]. Иными словами, команда Baidu попалась на подглядывании данных.

Двести прогонов позволили команде Baidu определить, какие корректировки необходимо внести в программу, чтобы научить ее лучше всего справляться с этим тестовым множеством и набрать доли процента точности, необходимые для победы. В наказание Baidu отстранили от участия в конкурсе 2015 года.

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

Несмотря на то что эта история – всего лишь любопытное примечание к истории глубокого обучения в сфере компьютерного зрения, я рассказала ее, чтобы показать, что соревнование ImageNet стало считаться главным символом прогресса в компьютерном зрении и ИИ в целом.

Если забыть о жульничестве, прогресс на ImageNet продолжился. Последний конкурс состоялся в 2017 году, и точность топ-5 у победителя составила 98 %. Как отметил один журналист, “сегодня многие считают ImageNet решенной задачей”[118] – по крайней мере по классификации. Специалисты переходят к новым эталонным данным и новым задачам, в частности к таким, которые предполагают интеграцию зрения и языка.

Что же позволило сверточным нейронным сетям, которые в 1990-х годах казались тупиковой ветвью развития, вдруг захватить лидерство в соревновании ImageNet и занимать доминирующее положение в сфере компьютерного зрения все последние годы? Оказывается, недавний успех глубокого обучения связан не столько с новыми прорывами в ИИ, сколько с доступностью огромных объемов данных (спасибо, интернет!) и аппаратного обеспечения для очень быстрых параллельных вычислений. Вкупе с совершенствованием методов тренировки эти факторы позволяют всего за несколько дней натренировать сети, имеющие более сотни слоев, на миллионах изображений.

Сам Ян Лекун удивился тому, как быстро изменилось отношение к его сверточным нейронным сетям: “Очень редко технология, известная на протяжении 20–25 лет и почти не претерпевшая изменений, становится наилучшей. Скорость ее принятия людьми поражает воображение. Я никогда прежде не видел ничего подобного”[119].

Золотая лихорадка СНС

Когда ImageNet и другие крупные наборы данных предоставили сверточным нейронным сетям огромное количество тренировочных примеров, необходимых им для хорошей работы, компании неожиданно получили возможность применять компьютерное зрение совершенно по-новому. Как отметил Блез Агуэра-и-Аркас из Google, “это напоминало золотую лихорадку – один и тот же набор технологий применяли для решения множества задач”[120]. Используя сверточные нейронные сети, натренированные с помощью глубокого обучения, системы поиска картинок Google, Microsoft и других компаний смогли значительно усовершенствовать функцию “найти похожие изображения”. В Google создали фотохостинг, присваивающий фотографиям метки, которые описывают объекты в кадре, а сервис Google Street View смог распознавать и затирать адреса и номерные знаки на изображениях. Появилось множество приложений, которые позволили смартфонам распознавать объекты и лица в реальном времени.

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

Это лишь несколько примеров множества существующих (или будущих) вариантов коммерческого применения СНС. Вполне вероятно, что любое современное приложение компьютерного зрения, которое вы используете, работает на базе СНС. Более того, велика вероятность, что его “предварительно тренировали” на изображениях ImageNet, чтобы оно узнало базовые визуальные признаки, прежде чем проводить “тонкую настройку” для конкретных задач.

Учитывая, что длительная тренировка сверточных нейронных сетей возможна лишь на специализированных компьютерах – как правило, на мощных графических процессорах, – неудивительно, что цена акций ведущего производителя графических процессоров, корпорации NVIDIA, с 2012 по 2017 год возросла более чем на 1000 %.

СНС превзошли людей в распознавании изображений?

Чем больше я узнавала о необыкновенном успехе сверточных нейронных сетей, тем больше мне хотелось выяснить, насколько близко они подошли к соперничеству с человеческими способностями к распознаванию изображений. Опубликованная в 2015 году (после скандала с жульничеством) статья исследователей из Baidu имела подзаголовок “Как превзойти человеческие возможности в классификации ImageNet[121]. Примерно в то же время в исследовательском блоге Microsoft объявили о “крупном прорыве в технологии, разработанной для идентификации объектов на фотографии или видео, позволившем создать систему, точность которой соответствует человеческому уровню и порой превосходит его”[122]. Хотя обе компании подчеркнули, что говорят о точности только при работе с ImageNet, пресса была не столь осторожна и печатала такие сенсационные заголовки, как “Компьютеры теперь распознают и сортируют изображения лучше людей” и “В Microsoft разработали компьютерную систему, которая распознает объекты лучше, чем человек”[123].

Давайте разберемся с утверждением, что машины теперь “лучше людей” справляются с распознаванием объектов в ImageNet. Оно основано на мнении, что люди ошибаются примерно в 5 % случаев, в то время как у машин (на момент написания этих строк) частота возникновения ошибок близка к 2 %. Подтверждает ли это, что машины лучше людей справляются с задачей? Как часто случается с громкими заявлениями об ИИ, это утверждение предполагает несколько оговорок.

Вот первая. Читая, что машина “верно идентифицирует объекты”, вы думаете, что если машине показать, скажем, изображение баскетбольного мяча, то ее выходным сигналом будет “баскетбольный мяч”. Но не стоит забывать, что при работе с ImageNet идентификация признается верной, если нужная категория вошла в число пяти категорий, в которых машина уверена сильнее всего. Если при получении изображения баскетбольного мяча машина последовательно выдает категории “крокетный мяч”, “бикини”, “бородавочник”, “баскетбольный мяч” и “движущийся фургон”, ее ответ считается верным. Стоит отметить, что на конкурсе ImageNet 2017 года точность топ-1 – то есть доля тестовых изображений, для которых верная категория была первой в списке, – составила около 82 %, в то время как точность топ-5 составила 98 %. Насколько мне известно, никто не сообщал о сравнении машин и людей при точности топ-1.

Вот вторая оговорка. Рассмотрим утверждение: “При работе с ImageNet люди ошибаются примерно в 5 % случаев”. Выясняется, что говорить “люди” не совсем корректно, поскольку этот результат был получен в ходе эксперимента, в котором принял участие один человек, Андрей Карпатый, который в то время учился в аспирантуре Стэнфорда и исследовал глубокое обучение. Карпатый хотел проверить, сможет ли он натренироваться так, чтобы соперничать с лучшими сверточными нейронными сетями в ImageNet. Учитывая, что СНС тренируются на 1,2 миллиона изображений, а затем классифицируют 150 000 тестовых изображений, для человека это был серьезный вызов. Карпатый написал об этом в своем популярном блоге об ИИ:

В итоге я тренировался на 500 изображениях, а затем перешел к [урезанному] тестовому множеству из 1500 изображений. Присвоение меток [то есть определение пяти категорий для каждого изображения] шло со скоростью около 1 изображения в минуту, но со временем скорость снижалась. Я с удовольствием разметил лишь первые изображений 200, а остальное доделал исключительно #воимянауки… Одни изображения узнаются сразу, а другие (например, редкие породы собак, виды птиц и обезьян) требуют нескольких минут концентрации. Теперь я очень хорошо различаю породы собак[124].

Карпатый обнаружил, что ошибся при классификации 75 из 1500 тестовых изображений, проанализировал ошибки и пришел к выводу, что большинство затруднений у него возникло при работе с изображениями, на которых было несколько объектов, при идентификации конкретных пород собак, видов птиц, растений и т. п., а также в случаях, когда он не знал о наличии той или иной категории объектов. Сверточные нейронные сети совершают другие ошибки: хотя они тоже путаются при классификации изображений с несколькими объектами, в отличие от людей они, как правило, не замечают на изображении мелкие объекты, объекты, искаженные примененными фильтрами цвета и контраста, и “абстрактные репрезентации” объектов, например портреты или статуи собак и плюшевых собак. Таким образом, не следует всецело верить утверждению, что компьютеры превзошли людей в ImageNet.

А вот оговорка, которая может вас удивить. Когда человек говорит, что на фотографии изображена собака, мы считаем, что он действительно увидел собаку на снимке. Однако, если сверточная нейронная сеть верно распознает “собаку”, как нам понять, основана ли ее классификация на наличии собаки на изображении? Может, на нем есть другой объект – теннисный мяч, фрисби, погрызенный ботинок, – который часто ассоциировался с собаками на тренировочных изображениях, и СНС узнает этот объект и приходит к выводу, что на изображении есть собака? Такие связи часто вводят машины в заблуждение.

Мы можем попросить машину не просто выдавать категорию объекта на изображении, но и помещать целевой объект в рамку, чтобы мы поняли, что машина действительно “увидела” этот объект. Именно так поступили организаторы конкурса ImageNet на второй год, устроив “состязание по локализации”. Для решения задачи по локализации целевые объекты на тренировочных изображениях заключили в рамки (нарисованные работниками Mechanical Turk), и на тестовых изображениях задача программы состояла в том, чтобы определить пять категорий объекта, снабдив каждую координатами соответствующей рамки. Как ни странно, глубокие СНС очень хорошо справлялись с локализацией, но все же показывали значительно более низкие результаты, чем при проведении классификации, несмотря на то что последующие соревнования уделяли основное внимание именно локализации.

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

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

Не ограничиваясь распознаванием объектов

В этой главе я уделила основное внимание распознаванию объектов, потому что в последнее время эта сфера прогрессировала быстрее всего. Однако компьютерное зрение, конечно же, не ограничивается распознаванием объектов. Если цель компьютерного зрения состоит в том, чтобы “научить машину описывать, что она видит”, то машинам нужно распознавать не только объекты, но и их связи друг с другом, а также понимать, как они взаимодействуют с миром. Если “объекты” – живые существа, то машинам необходимо иметь представление об их действиях, целях, эмоциях, вероятных следующих шагах и всех остальных аспектах, позволяющих рассказать историю визуальной сцены. Более того, если мы действительно хотим, чтобы машины описывали, что они видят, им нужно овладеть языком. Исследователи ИИ активно работают над обучением машин этим навыкам, но, как обычно, “простые” вещи оказываются очень сложными. Специалист по компьютерному зрению Али Фархади сказал The New York Times: “Мы все еще очень, очень далеки от визуального интеллекта и понимания сцен и действий на уровне людей”[125].

Почему мы все еще далеки от этой цели? Похоже, визуальный интеллект непросто отделить от остального интеллекта, особенно от общих знаний, абстрактных рассуждений и речи – тех способностей, которые задействуют части мозга, имеющие много обратных связей со зрительной корой, что весьма любопытно. Кроме того, возможно, знания, необходимые для создания визуального интеллекта человеческого уровня – способного, например, понять фотографию “Военнослужащая с собакой”, приведенную в начале прошлой главы, – нельзя получить, классифицируя миллионы картинок из интернета, потому что они требуют некоторого жизненного опыта в реальном мире.

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

Глава 6