Автор книги: Мелани Митчелл
Жанр: Техническая литература, Наука и Образование
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 8 (всего у книги 24 страниц) [доступный отрывок для чтения: 8 страниц]
Глава 5
Сверточные нейронные сети и ImageNet
Изобретатель сверточных нейронных сетей Ян Лекун всю жизнь работал над нейронными сетями: начав еще в 1980-х, он пережил немало зим и весен ИИ. Во время аспирантуры и постдокторантуры он восхищался перцептронами Розенблатта и неокогнитроном Фукусимы, но отмечал, что последнему не хватает хорошего алгоритма обучения с учителем. Вместе с другими учеными (в частности, с научным руководителем его постдокторантуры Джеффри Хинтоном) Лекун принял участие в разработке такого метода обучения – по сути, того же самого метода обратного распространения ошибки, который сегодня используется в сверточных нейронных сетях[107]107
Алгоритм обратного распространения ошибки одновременно разработали несколько групп, и долгое время исследователи нейронных сетей спорили, кому принадлежит заслуга его создания.
[Закрыть].
В 1980-х и 1990-х годах, работая в Лабораториях Белла, Лекун обратился к проблеме распознавания рукописных цифр и букв. Совместив идеи неокогнитрона с алгоритмом обратного распространения ошибки, он создал LeNet – одну из первых сверточных нейронных сетей. Способности LeNet к распознаванию рукописных цифр принесли ей коммерческий успех: в 1990-х и 2000-х годах в Почтовой службе США LeNet использовали для автоматизированного распознавания индексов, а в банковской сфере – для автоматизированной обработки чеков.
LeNet, как и ее преемница, сверточная нейронная сеть, не справилась с переходом на следующий уровень для решения более сложных зрительных задач. К середине 1990-х годов интерес к нейронным сетям среди исследователей ИИ стал угасать, и на первый план вышли другие методы. Но Лекун верил в сверточные нейронные сети и продолжал постепенно совершенствовать их. “Можно сказать, он поддерживал огонь даже в самые темные времена”, – сказал впоследствии Джеффри Хинтон[108]108
Цит. по: D. Hernandez, “Facebook’s Quest to Build an Artificial Brain Depends on This Guy”, Wired, Aug. 14, 2014, www.wired.com/2014/08/deep-learning-yann-lecun/.
[Закрыть].
Лекун, Хинтон и другие сторонники нейронных сетей полагали, что усовершенствованные, более масштабные вариации СНС и других глубоких сетей сумеют завоевать сферу компьютерного зрения, если предоставить им достаточный объем тренировочных данных. Все 2000-е годы они упорно работали в тени, но в 2012 году факел исследователей сверточных нейронных сетей вдруг озарил целый мир, когда их разработка победила в соревновании по компьютерному зрению на базе данных изображений ImageNet.
Создание ImageNetИсследователи ИИ склонны к соперничеству, а потому нет ничего удивительного в том, что они любят проводить соревнования, чтобы двигать науку вперед. В сфере зрительного распознавания объектов давно проводятся ежегодные конкурсы, которые помогают специалистам определить, чья программа справляется с задачей лучше всего. На каждом соревновании используются “эталонные данные”, куда входят фотографии с присвоенными людьми метками, описывающими объекты на снимках.
В 2005–2010 годах самым престижным был ежегодный конкурс PASCAL[109]109
PASCAL (Pattern Analysis, Statisctical Modelling and Computational Learning) – Анализ шаблонов, статистическое моделирование и машинное обучение.
[Закрыть] Visual Object Classes (Классификация визуальных объектов), набор данных которого к 2010 году включал около пятнадцати тысяч фотографий, загруженных с фотохостинга Flickr, с присвоенными людьми метками для двадцати категорий объектов, такими как “человек”, “собака”, “лошадь”, “овца”, “автомобиль”, “велосипед”, “диван” и “цветок в горшке”.
В рамках этого соревнования в “классификации”[110]110
Кроме того, проходило состязание в “обнаружении”, в рамках которого программам необходимо было также локализовать объекты разных категорий на изображениях, и другие специальные состязания, но здесь я рассматриваю именно состязание в классификации.
[Закрыть] соперничали программы компьютерного зрения, которые брали фотографию в качестве входного сигнала (не видя присвоенную ей человеком метку) и на выходе определяли для каждой из двадцати категорий, присутствует ли на изображении относящийся к ней объект.
Конкурс проходил следующим образом: организаторы разбивали всю массу фотографий на тренировочное множество, которое участники могли использовать для обучения своих программ, и тестовое множество, которое не предоставлялось участникам и использовалось для оценки работы программ с незнакомыми изображениями. Перед конкурсом тренировочное множество размещалось в интернете, а в ходе соревнований исследователи представляли на суд свои натренированные программы, которые сдавали экзамен на секретном тестовом множестве. Победителем признавалась программа, показавшая самую высокую точность при распознавании объектов на изображениях тестового множества.
Ежегодные конкурсы PASCAL привлекали большое внимание и стимулировали исследования в сфере распознавания объектов. С годами программы-участницы постепенно совершенствовались (любопытно, что сложнее всего им было распознавать цветы в горшках). Однако некоторые исследователи полагали, что эталонные данные PASCAL в некотором роде сдерживают развитие компьютерного зрения. Участники уделяли слишком много внимания конкретным двадцати категориям объектов, классификация по которым проходила в рамках конкурса, и не создавали системы, способные работать с огромным количеством категорий объектов, распознаваемых людьми. Более того, в наборе данных не хватало фотографий, чтобы представленные на соревнование программы могли узнать все возможные вариации внешнего вида объектов и научиться обобщать.
Чтобы двигаться вперед, необходимо было создать новые эталонные данные, в которые вошло бы гораздо больше категорий и фотографий. Молодая специалистка по компьютерному зрению из Принстона Фей-Фей Ли задалась этой целью и случайно узнала о проекте другого принстонского профессора, психолога Джорджа Миллера, который хотел создать базу данных английских слов, выстроенных в иерархическом порядке от самых специфических к самым общим, с группировкой синонимов. Возьмем, например, слово “капучино”. В базе данных, получившей название WordNet, содержится следующая информация об этом термине (стрелками обозначена принадлежность к определенной категории):
капучино ⇒ кофе ⇒ напиток ⇒ пища ⇒ вещество ⇒ физическая сущность ⇒ сущность
В базе данных также содержится информация о том, что, скажем, “напиток” и “питье” – это синонимы, что слово “напиток” входит и в другую цепочку, включающую слово “жидкость”, и так далее.
База данных WordNet использовалась (и продолжает использоваться) в исследованиях психологов и лингвистов, а также в системах ИИ по обработке естественного языка, но у Фей-Фей Ли появилась другая идея – создать базу данных изображений, структурированную по принципу существительных в WordNet, где каждое существительное будет связано с большим количеством изображений, содержащих примеры объектов, обозначаемых им. Так родилась идея ImageNet.
Вскоре Ли с коллегами приступили к сбору огромного количества изображений, используя существительные WordNet в качестве запросов на таких поисковых системах, как Flickr и поиск по картинкам Google. Однако, если вы хоть раз пользовались поиском по картинкам, вам известно, что его выдача часто далека от идеала. Например, если написать в строке поиска по картинкам Google “macintosh apple”, на фотографиях вы увидите не только яблоки и компьютеры Mac, но и свечи в форме яблок, смартфоны, бутылки яблочного вина и другие не относящиеся к теме предметы. В связи с этим Ли с коллегами пришлось привлечь людей, чтобы они определили, какие изображения не иллюстрируют заданное существительное, и удалили их из базы. Сначала этим в основном занимались студенты. Работа шла ужасно медленно и требовала большого напряжения сил. Вскоре Ли поняла, что при такой скорости на решение задачи уйдет девяносто лет[111]111
D. Gershgorn, “The Data That Transformed AI Research – and Possibly the World”, Quartz, July 26, 2017, qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/.
[Закрыть].
Ли с коллегами стали искать возможные способы автоматизации работы, но дело в том, что определение, изображен ли на фотографии объект, обозначаемый конкретным существительным, – это и есть задача на распознавание объектов! И компьютеры справлялись с ней из рук вон плохо, что и стало поводом к созданию ImageNet.
Группа зашла в тупик, но затем Ли случайно наткнулась на созданный тремя годами ранее сайт, который мог обеспечить проект рабочими руками, необходимыми ImageNet. У сайта было странное название Amazon Mechanical Turk.
Mechanical TurkПо словам Amazon, платформа Mechanical Turk представляет собой “рынок труда, который требует человеческого разума”. На платформе заказчики, то есть люди, у которых есть задача, не подходящая для компьютеров, находят работников, готовых за небольшую плату использовать свой разум для выполнения задачи заказчика (например, присваивать метки объектам на фотографиях, получая по десять центов за фотографию). Имея сотни тысяч зарегистрированных работников со всего мира, Mechanical Turk воплощает максиму Марвина Минского “простые вещи делать сложно”, ведь работников привлекают к выполнению “простых” задач, которые пока слишком сложны для компьютеров.
Названием Mechanical Turk (“Механический турок”) платформа обязана знаменитой ИИ-мистификации XVIII века: так называли шахматную “разумную машину”, в которой прятался человек, делавший ходы за куклу (“турка”, одетого на манер османского султана). По всей видимости, на розыгрыш купились многие видные люди того времени, включая Наполеона Бонапарта. Платформа Amazon не пытается никого обмануть, но, как и первый “механический турок”, по сути, представляет собой “искусственный искусственный интеллект”[112]112
“About Amazon Mechanical Turk”, www.mturk.com/help.
[Закрыть].
Фей-Фей Ли поняла, что если ее группа заплатит десяткам тысяч работников Mechanical Turk, чтобы они удалили несоответствующие изображения для каждого из существительных WordNet, то при относительно небольших затратах весь набор данных можно будет обработать за несколько лет. Всего за два года более трех миллионов изображений было связано с соответствующими существительными из WordNet – и появился набор данных ImageNet. Для проекта ImageNet платформа Mechanical Turk стала “спасением”[113]113
L. Fei-Fei and J. Deng, “ImageNet: Where Have We Been? Where Are We Going?”, slides at image-net.org/challenges/talks_2017/imagenet_ilsvrc2017_v1.0.pdf.
[Закрыть]. Исследователи ИИ продолжают активно использовать ее для создания наборов данных, и сегодня заявки ученых на гранты в сфере ИИ, как правило, включают строку бюджета “услуги работников Mechanical Turk”.
В 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]114
A. Krizhevsky, I. Sutskever and G. E. Hinton, “ImageNet Classification with Deep Convolutional Neural Networks”, Advances in Neural Information Processing Systems 25 (2012): 1097–1105.
[Закрыть]. Группа из Торонто разработала хитроумные методы, чтобы усовершенствовать процесс тренировки сети, и примерно за неделю кластер мощных компьютеров натренировал AlexNet.
Успех AlexNet всколыхнул сферу компьютерного зрения и ИИ, неожиданно продемонстрировав людям потенциал сверточных нейронных сетей, исследования которых большинство специалистов не считало перспективными для развития современного компьютерного зрения. В опубликованной в 2015 году статье журналист Том Саймонайт приводит выдержки из своего интервью с Яном Лекуном о неожиданном триумфе сверточных нейронных сетей:
Лекун вспоминает, как люди, которые по большей части не принимали нейронные сети в расчет, до отказа заполнили зал, где победители выступали с докладом о своем исследовании. “Можно было видеть, как многие уважаемые люди в одночасье переменили свое мнение, – говорит он. – Они сказали: «Ладно, теперь мы вам верим. Делать нечего – вы победили»”[115]115
T. Simonite, “Teaching Machines to Understand Us”, Technology Review, Aug. 5, 2015, www.technologyreview.com/s/540001/teaching-machines-to-understand-us/.
[Закрыть].
Почти в то же время группа Джеффри Хинтона также продемонстрировала, что глубокие нейронные сети, натренированные на огромных объемах размеченных данных, справлялись с распознаванием речи гораздо лучше, чем другие программы, доступные в то время. Успехи группы из Торонто на соревнованиях 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]116
ImageNet Large Scale Visual Recognition Challenge announcement, June 2, 2015, www.image-net.org/challenges/LSVRC/announcement-June-2–2015.
[Закрыть]. Иными словами, команда Baidu попалась на подглядывании данных.
Двести прогонов позволили команде Baidu определить, какие корректировки необходимо внести в программу, чтобы научить ее лучше всего справляться с этим тестовым множеством и набрать доли процента точности, необходимые для победы. В наказание Baidu отстранили от участия в конкурсе 2015 года.
Надеясь смягчить удар по репутации, Baidu быстро принесла извинения, а затем возложила ответственность на нерадивого сотрудника: “Мы выяснили, что руководитель группы велел младшим инженерам делать более двух загрузок в неделю, нарушая действующие правила соревнования ImageNet”[117]117
S. Chen, “Baidu Fires Scientist Responsible for Breaching Rules in High-Profile Supercomputer AI Test”, South China Morning Post, international edition, June 12, 2015, www.scmp.com/tech/science-research/article/1820649/chinas-baidu-fires-researcher-after-team-cheated-high-profile.
[Закрыть]. Сотрудника быстро уволили из компании, хотя он утверждал, что не нарушал никаких правил.
Несмотря на то что эта история – всего лишь любопытное примечание к истории глубокого обучения в сфере компьютерного зрения, я рассказала ее, чтобы показать, что соревнование ImageNet стало считаться главным символом прогресса в компьютерном зрении и ИИ в целом.
Если забыть о жульничестве, прогресс на ImageNet продолжился. Последний конкурс состоялся в 2017 году, и точность топ-5 у победителя составила 98 %. Как отметил один журналист, “сегодня многие считают ImageNet решенной задачей”[118]118
Gershgorn, “Data That Transformed AI Research”.
[Закрыть] – по крайней мере по классификации. Специалисты переходят к новым эталонным данным и новым задачам, в частности к таким, которые предполагают интеграцию зрения и языка.
Что же позволило сверточным нейронным сетям, которые в 1990-х годах казались тупиковой ветвью развития, вдруг захватить лидерство в соревновании ImageNet и занимать доминирующее положение в сфере компьютерного зрения все последние годы? Оказывается, недавний успех глубокого обучения связан не столько с новыми прорывами в ИИ, сколько с доступностью огромных объемов данных (спасибо, интернет!) и аппаратного обеспечения для очень быстрых параллельных вычислений. Вкупе с совершенствованием методов тренировки эти факторы позволяют всего за несколько дней натренировать сети, имеющие более сотни слоев, на миллионах изображений.
Сам Ян Лекун удивился тому, как быстро изменилось отношение к его сверточным нейронным сетям: “Очень редко технология, известная на протяжении 20–25 лет и почти не претерпевшая изменений, становится наилучшей. Скорость ее принятия людьми поражает воображение. Я никогда прежде не видел ничего подобного”[119]119
Цит. по: Hernandez, “Facebook’s Quest to Build an Artificial Brain Depends on This Guy”.
[Закрыть].
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?