Подробнее об обучаемых машинах
Пионер глубокого обучения Ян Лекун получил много наград и почестей, но, пожалуй, главной (пусть и странной) стало существование невероятно популярного и очень смешного пародийного твиттер-аккаунта “Скучающий Ян Лекун” со следующим описанием: “Размышления о подъеме глубокого обучения, пока Ян в простое”. Анонимный автор часто заканчивает свои остроумные шутки для посвященных хештегом #FeelTheLearn (#ПочувствуйОбучение)[126].
Пресса действительно “чувствует обучение”, воспевая силу глубокого обучения – с акцентом на “обучении”. Так, нам говорят, что “теперь мы можем конструировать системы, которые сами учатся выполнению задач”[127], что “глубокое обучение [позволяет] компьютерам в буквальном смысле учиться самостоятельно”[128] и что системы глубокого обучения обучаются “подобно человеческому мозгу”[129].
В этой главе я подробнее расскажу, как обучаются машины – в частности, сверточные нейронные сети – и чем процесс их обучения отличается от процесса обучения людей. Кроме того, я проанализирую, как различия в механизмах обучения сверточных нейронных сетей и человека влияют на надежность усвоенной информации.
Самостоятельное обучение
Метод обучения на данных, используемый глубокими нейронными сетями, оказался в целом успешнее стратегии “старого доброго ИИ”, в рамках которой программисты задают машинам четкие правила разумного поведения. Однако, вопреки некоторым утверждениям прессы, сверточные нейронные сети учатся не так, как человек.
Как мы видели, самые успешные СНС применяют метод обучения с учителем: они постепенно корректируют веса, снова и снова обрабатывая примеры из тренировочного множества, в процессе смены многих эпох (то есть многих проходов по тренировочному множеству) учатся присваивать каждому входному изображению одну из фиксированного набора возможных выходных категорий. При этом даже маленькие дети усваивают бесконечный набор категорий и могут узнавать объекты из большинства категорий, увидев всего несколько примеров. Более того, дети учатся не пассивно: они задают вопросы, пытаются больше разузнать о вещах, которые пробуждают их любопытство, строят абстракции, находят связи между понятиями, но самое главное – они активно исследуют мир.
Говорить, что современные успешные СНС учатся “самостоятельно”, не совсем корректно. Как мы увидели в предыдущей главе, чтобы сверточная нейронная сеть научилась выполнять задачу, людям необходимо приложить много усилий для сбора, сортировки и разметки данных, а также разработки множества аспектов архитектуры сети. Хотя СНС применяют метод обратного распространения ошибки, чтобы узнать свои “параметры” (то есть веса) при работе с тренировочными примерами, это обучение основано на наборе так называемых гиперпараметров, то есть всех аспектов сети, которые людям необходимо настроить, чтобы обучение вообще началось. К гиперпараметрам относятся количество слоев сети, размер “рецептивных полей” единиц каждого слоя, степень корректировки каждого веса в ходе обучения (называемая скоростью обучения) и многие другие технические аспекты процесса обучения. Подготовка сверточной нейронной сети называется настройкой гиперпараметров. На этом этапе задается множество значений и принимается множество сложных проектных решений, затем все заданные настройки сложным образом взаимодействуют друг с другом, оказывая влияние на итоговую работу сети. Более того, настройку, как правило, приходится проводить заново всякий раз, когда принимается решение натренировать сеть на решение новой задачи.
Настройка гиперпараметров может показаться рутинной задачей, но хорошая настройка – ключ к успеху СНС и других систем машинного обучения. Так как подобные сети имеют многовариантную структуру, обычно невозможно задать все параметры автоматически, даже при использовании автоматизированного поиска. Часто настройка сверточной нейронной сети требует тайного знания, которое студенты машинного обучения обретают, работая под началом экспертов и ценой больших усилий получая собственный опыт. Как отметил директор исследовательской лаборатории Microsoft Эрик Хорвиц, “сейчас мы занимаемся не наукой, а своего рода алхимией”[130]. Люди, умеющие таким образом “заклинать сети”, формируют небольшой клуб избранных. “Оптимизация таких систем – настоящее искусство… – говорит один из основателей Google DeepMind Демис Хассабис. – В мире всего несколько сотен людей, которые действительно хорошо справляются с этим”[131].
На самом деле количество специалистов по глубокому обучению стремительно растет: многие университеты предлагают тематические курсы, и все больше компаний запускает для сотрудников собственные учебные программы по глубокому обучению. Членство в клубе глубокого обучения может быть весьма прибыльным. Недавно я посетила конференцию, на которой руководитель ИИ-подразделения Microsoft рассказывал, как компания привлекает молодых специалистов по глубокому обучению: “Если парень знает, как тренировать пятислойную сеть, он может требовать пятизначную зарплату. Если парень знает, как тренировать пятидесятислойную сеть, он может требовать семизначную зарплату”[132]. К счастью для парня, который вскоре станет богачом, сети пока не умеют учиться самостоятельно.
Большие данные
Не секрет, что глубокое обучение требует больших данных. Таких больших, как миллион с лишним размеченных тренировочных изображений в ImageNet. Откуда берутся эти данные? Конечно, от вас – и, вероятно, всех ваших знакомых. Современные системы компьютерного зрения обязаны своим существованием миллиардам изображений, которые пользователи загружают в интернет и (иногда) сопровождают подписью, соответствующей их содержимому. Вы хоть раз загружали на свою страницу в Facebook фотографию друга и оставляли к ней комментарий? Facebook благодарит вас! Возможно, этот снимок и сопровождающий его текст использовались для тренировки его системы распознавания лиц. Вы хоть раз загружали фотографию на Flickr? Если да, возможно, она вошла в тренировочное множество ImageNet. Вы хоть раз перечисляли объекты на фотографии, чтобы доказать какому-нибудь сайту, что вы не робот? Возможно, ваши ответы помогли Google разметить это изображение для использования при тренировке своей системы поиска по картинкам.
Крупные технологические компании предлагают множество бесплатных сервисов для вашего компьютера и смартфона: интернет-поиск, видеозвонки, электронную почту, социальные сети, автоматизированных личных помощников – этот список можно продолжать очень долго. Зачем это нужно компаниям? Дело в том, что, как вы, возможно, слышали, их настоящий продукт – это пользователи (такие, как мы с вами), а их клиенты – рекламодатели, которые привлекают наше внимание и собирают информацию о нас, пока мы пользуемся “бесплатными” сервисами. Но есть и другой ответ: пользуясь сервисами таких технологических компаний, как Google, Amazon и Facebook, мы непосредственно снабжаем эти компании примерами – в форме наших изображений, видео, текста и речи, – которые они могут использовать, чтобы лучше обучать свои ИИ-программы. Усовершенствованные программы привлекают больше пользователей (а следовательно, больше данных), помогая рекламодателям эффективнее таргетировать рекламу. Более того, предоставляемые нами примеры можно использовать для обучения таких сервисов, как компьютерное зрение и обработка естественного языка, которые затем можно предлагать бизнес-клиентам на платной основе.
Многое написано об этике крупных компаний, которые используют создаваемые вами данные (например, все изображения, видео и тексты, загружаемые вами на Facebook), чтобы тренировать программы и продавать продукты, не информируя вас об этом и не предоставляя вам компенсацию. Этот важный вопрос выходит за рамки настоящей книги[133]. Я же хочу подчеркнуть, что необходимость огромных наборов размеченных тренировочных данных – одно из отличий глубокого обучения от человеческого обучения.
Практическое применение большого количества систем глубокого обучения приводит к тому, что компаниям требуются все новые наборы размеченных данных для тренировки глубоких нейронных сетей. Прекрасный пример – беспилотные автомобили. Таким автомобилям необходимо развитое компьютерное зрение, чтобы распознавать разметку на дороге, светофоры, знаки “стоп” и так далее, а также чтобы различать и отслеживать всевозможные потенциальные препятствия, включая другие автомобили, пешеходов, велосипедистов, животных, дорожные конусы, перевернутые мусорные баки, перекати-поле и многое другое, с чем вы предпочли бы не сталкиваться. Беспилотным автомобилям надо усвоить, как выглядят все эти объекты – на солнце, под дождем, в метель, в тумане, днем и ночью, – и понять, какие из них обычно движутся, а какие стоят на месте. Глубокое обучение сделало эту задачу отчасти выполнимой, но для этого ему необходимо огромное количество тренировочных примеров.
Компании по производству беспилотных автомобилей извлекают обучающие примеры из бесконечных часов видео, снятых на камеры автомобилей, движущихся в потоке на шоссе и по городским улицам. Это могут быть беспилотные прототипы, тестируемые компаниями, или, например, “теслы”, владельцы которых при покупке машины обязуются предоставлять данные производителю[134].
“Тесловоды” не обязаны присваивать метку каждому объекту на видео, сделанных во время движения их автомобилей. Но делать это необходимо. В 2017 году газета Financial Times написала, что “большинство компаний, работающих над этой технологией, задействуют сотни и даже тысячи людей, часто в офшорных аутсорсинговых центрах Индии и Китая, чтобы научить роботизированные автомобили распознавать пешеходов, велосипедистов и другие препятствия. Для этого работники вручную размечают тысячи часов видео, часто покадрово”[135]. Появляются новые компании, которые предлагают услугу по разметке данных: так, Mighty AI предлагает “размеченные данные, необходимые для тренировки моделей компьютерного зрения в вашем компьютере”, и обещает, что работать на вас будут “реальные, проверенные и надежные аннотаторы, которые специализируются на данных для беспилотного вождения”[136].
Длинный хвост
Метод обучения с учителем, требующий больших данных и целых армий аннотаторов, хорошо работает по крайней мере с некоторыми зрительными способностями, необходимыми беспилотным автомобилям. (Многие компании также проверяют возможность использования напоминающих видеоигры программ-тренажеров, чтобы дополнить обучение с учителем.) Но что насчет остальной жизни? Почти каждый, кто работает в сфере ИИ, согласен, что обучение с учителем нельзя считать перспективным путем к созданию общего ИИ. Знаменитый исследователь ИИ Эндрю Ын предупреждает: “Сегодня необходимость такого большого объема данных серьезно ограничивает [глубокое обучение]”[137]. С ним согласен другой известный исследователь ИИ, Йошуа Бенджо: “У нас нет реальной возможности разметить весь мир и педантично объяснить все до последней детали компьютеру”[138].
Рис. 13. Ситуации, с которыми может столкнуться беспилотный автомобиль, выстроенные по вероятности возникновения в качестве иллюстрации “длинного хвоста” маловероятных сценариев
Ситуацию осложняет так называемая проблема длинного хвоста: огромный диапазон возможных непредвиденных ситуаций, с которыми может столкнуться система ИИ. На рис. 13 показано, какова вероятность возникновения различных гипотетических ситуаций, скажем, за один день езды беспилотного автомобиля. Вероятность возникновения типичных ситуаций, в которых автомобиль, например, увидит красный сигнал светофора или знак обязательной остановки, высока. Ситуации со средней вероятностью возникновения – появление на дороге битого стекла или летающего на ветру целлофанового пакета – возникают не каждый день (в зависимости от того, где ездить), но в них нет ничего необычного. Менее вероятно, что беспилотный автомобиль заедет на затопленную дорогу или не сумеет различить дорожную разметку, заметенную снегом, и еще менее вероятно, что посреди скоростного шоссе окажется снеговик.
Я выдумала эти сценарии и оценила их относительную вероятность. Уверена, вы можете продолжить мой список. Любой отдельный автомобиль, скорее всего, безопасен: в конце концов, в совокупности экспериментальные беспилотные автомобили проехали миллионы километров и стали причиной относительно небольшого количества аварий (хотя среди них оказалось несколько серьезных ДТП с человеческими жертвами). Однако, хотя каждая маловероятная ситуация по определению крайне маловероятна, в мире дорожного движения столько возможных сценариев и столько автомобилей, что при широком распространении беспилотников некоторые из них, вполне вероятно, рано или поздно где-нибудь столкнутся с одним из маловероятных сценариев.
Термин “длинный хвост” пришел из статистики, где некоторые распределения вероятностей имеют форму, сходную с изображенной на рис. 13, и длинный список крайне маловероятных (но возможных) ситуаций называется “хвостом” распределения. (Ситуации в хвосте иногда называются пограничными случаями.) Такой феномен наблюдается в большинстве практических применений ИИ: события в реальном мире обычно предсказуемы, но остается длинный хвост маловероятных, непредвиденных ситуаций. Это становится проблемой, только если мы полагаемся исключительно на обучение с учителем при обеспечении нашей ИИ-системы знаниями о мире: в обучающих данных недостаточно примеров ситуаций из длинного хвоста – если такие примеры есть вообще, – а потому система более склонна к совершению ошибок при столкновении с такими непредвиденными обстоятельствами.
Рис. 14. Сообщалось, что полоски соли на шоссе, рассыпанные в преддверии снегопада, сбивали автопилот автомобилей Tesla
Приведу два реальных примера. В марте 2016 года на северо-востоке США прогнозировали сильную метель, и в Twitter появились сообщения, что автопилот автомобилей Tesla, позволяющий ограниченное беспилотное вождение, не отличает дорожную разметку от полосок соли, рассыпанных по шоссе в преддверии снегопада (рис. 14). В феврале 2016 года один из прототипов беспилотного автомобиля Google, выполняя правый поворот, отклонился влево, чтобы объехать мешки с песком у правого края калифорнийской дороги, и левым передним крылом задел городской автобус, который двигался по левой полосе. Каждое из транспортных средств ожидало, что другое уступит ему дорогу (возможно, водитель автобуса ожидал, что за рулем автомобиля сидит человек, который испугается гораздо более крупного автобуса).
Компании, развивающие технологию беспилотного вождения, прекрасно осведомлены о проблеме длинного хвоста: их сотрудники обсуждают возможные “хвостовые” сценарии и активно разрабатывают дополнительные обучающие примеры, а также особым образом запрограммированные стратегии поведения во всех маловероятных ситуациях, которые приходят им в голову. Тем не менее невозможно обучить или запрограммировать систему на верное поведение абсолютно в любой возможной ситуации.
Обычно для решения этой проблемы системам ИИ предлагается использовать обучение с учителем на небольших объемах размеченных данных, а все остальное узнавать, применяя обучение без учителя. Термином “обучение без учителя” обозначается большая группа методов, которые позволяют системе узнавать категории и действия, не имея размеченных данных. К таким методам относятся кластеризация изображений на основе сходства или обнаружение новой категории по аналогии с известными. Как я опишу в одной из последующих глав, люди великолепно справляются с выявлением абстрактных сходств и аналогий, но пока не существует достаточно успешных ИИ-методов для такого обучения без учителя. Даже Ян Лекун признает, что “обучение без учителя остается темной материей ИИ”. Иными словами, для создания общего ИИ почти все обучение должно проходить без учителя, но пока никто не предложил эффективных алгоритмов для осуществления обучения без учителя.
Люди совершают ошибки постоянно, даже (или особенно) при вождении, и любой из нас мог столкнуться с городским автобусом, объезжая мешки с песком. Но люди при этом обладают важнейшей способностью, которой не хватает современным системам ИИ: они умеют пользоваться здравым смыслом. Мы обладаем огромными фоновыми знаниями о мире – физическом и социальном. Мы хорошо представляем, как обычно ведут себя объекты – живые и неживые, – и активно пользуемся этими знаниями, решая, как действовать в конкретной ситуации. Мы можем понять, почему на дороге рассыпана соль, даже если ни разу в жизни не ездили в снегопад. Мы понимаем, как взаимодействовать с другими людьми, а потому можем пользоваться зрительным контактом, жестами и языком тела, если светофоры перестают работать после отказа электроснабжения. Обычно мы уступаем дорогу большому городскому автобусу, даже если по правилам имеем преимущество. Я использовала примеры из дорожного движения, но мы, люди, пользуемся здравым смыслом – обычно бессознательно – на каждом шагу. Многие полагают, что пока системы ИИ не обретут здравый смысл, доступный людям, мы не сможем позволить им полную автономность в сложных реальных ситуациях.
Чему научилась моя сеть?
Несколько лет назад Уилл Ландекер, который тогда был аспирантом в моей исследовательской группе, обучил нейронную сеть классифицировать фотографии по двум категориям: “содержит животное” и “не содержит животное”. Сеть обучалась на фотографиях, подобных изображенным на рис. 15, и очень хорошо справлялась с задачей при классификации тестового набора. Но чему она научилась на самом деле? Тщательно изучив ее, Уилл пришел к неожиданному выводу: сеть научилась отправлять изображения с размытым фоном в категорию “содержит животное”, даже если животного на изображении не было[139]. Фотографии природы в тренировочном и тестовом множествах подчинялись важному правилу фотографии: объект должен быть в фокусе. Когда объектом фотографии выступает животное, оно оказывается в фокусе, а фон размывается, как на рис. 15 A. Когда объектом фотографии выступает сам фон, как на рис. 15 B, не размывается ничего. К досаде Уилла, его сеть не научилась распознавать животных, а использовала более простые ориентиры – такие, как размытый фон, – которые надежно ассоциировались с животными.
Рис. 15. Иллюстрация к задаче на классификацию по категориям “есть животное” и “нет животного”. Обратите внимание на размытый фон на левом изображении
Это пример типичного для машинного обучения феномена. Машина обучается тому, что сама наблюдает в данных, а не тому, что вы (человек) можете в них наблюдать. Если в тренировочных данных есть надежные ассоциации, машина с радостью запомнит их, а не будет обучаться тому, чему вы хотели ее обучить, даже если эти ассоциации не играют роли при выполнении поставленной задачи. Если машину тестируют на новых данных с такими же надежными ассоциациями, кажется, что она научилась справляться с задачей. Однако машина может неожиданно ошибиться, как сеть Уилла ошибалась при классификации изображений животных, где не было размытого фона. Если пользоваться жаргоном машинного обучения, сеть Уилла “переобучилась” на конкретном тренировочном множестве, а следовательно, не может успешно применять полученные навыки к изображениям, которые отличаются от входивших в тренировочное множество.
В последние годы несколько исследовательских групп проверяли, на наблюдалось ли такого переобучения у сверточных нейронных сетей, обученных на ImageNet и других крупных наборах данных. Одна группа показала, что если СНС обучаются на изображениях, загруженных из интернета (таких, как в ImageNet), то плохо справляются со снимками, сделанными роботом, который перемещается по дому с фотоаппаратом[140]. Похоже, случайные изображения предметов домашней обстановки могут сильно отличаться от фотографий, размещенных в интернете. Другие группы продемонстрировали, что незначительные изменения изображений, например легкое размытие или добавление крапинок, корректировка некоторых цветов или поворот объектов, могут приводить к серьезным ошибкам сверточных нейронных сетей, хотя такие изменения никак не влияют на распознавание объектов человеком[141]. Эта неожиданная хрупкость сверточных нейронных сетей – даже тех, которые, как утверждалось, “превосходят людей в распознавании объектов”, – свидетельствует, что они переобучаются на обучающих данных и усваивают не то, чему мы хотим их научить.
Рис. 16. Метки, присвоенные фотографиям автоматизированным разметчиком Google, включая печально знаменитую метку “Гориллы”
Предвзятый ИИ
Ненадежность сверточных нейронных сетей может приводить к неприятным – и потенциально опасным – ошибкам. В 2015 году репутация Google попала под удар после внедрения функции автоматической разметки фотографий (с помощью сверточной нейронной сети) в приложении “Google Фото”. Как видно на рис. 16, правильно присвоив фотографиям такие общие метки, как “Самолеты”, “Автомобили” и “Выпускной”, нейронная сеть также присвоила селфи двух афроамериканцев метку “Гориллы”. (После множества извинений компания временно решила проблему, убрав метку “Гориллы” из списка возможных категорий.)
Такие жуткие ошибки классификации поднимаются на смех и ставят компании в ужасно неловкое положение, но системы компьютерного зрения, основанные на глубоком обучении, часто совершают менее очевидные ошибки из-за расовых и гендерных предрассудков. Так, коммерческие системы распознавания лиц, как правило, точнее распознают лица белых мужчин, чем лица женщин или небелых людей[142]. Программы распознавания лиц, используемые в фотоаппаратах, порой не замечают лица темнокожих и считают лица азиатов “моргающими” (рис. 17).
Исследовательница из Microsoft Кейт Кроуфорд, выступающая за справедливость и прозрачность ИИ, отметила, что в одном широко используемом наборе данных для обучения систем распознавания 77,5 % лиц – мужские и 83,5 % – белые. В этом нет ничего удивительного, потому что вошедшие в него изображения были найдены в интернете, где больше всего портретов известных и влиятельных людей, большинство которых составляют белые мужчины.
Рис. 17. “Кто-то моргнул?” Используемая в фотоаппарате система распознавания лиц считает азиатское лицо “моргающим”
Конечно, такие смещения в обучающих данных ИИ отражают предвзятость, господствующую в нашем обществе, но распространение реальных ИИ-систем, обученных на смещенных данных, может усугубить эту предвзятость и нанести серьезный ущерб. Так, алгоритмы распознавания лиц все чаще применяются в качестве “надежного” способа устанавливать личность человека при использовании кредитных карт, на предполетных проверках в аэропортах и в системах видеонаблюдения. Возможно, вскоре их также будут использовать для подтверждения личности при голосовании. Даже небольшие различия в точности между распознаванием людей из разных расовых групп могут сильно ударить по гражданским правам и доступу к жизненно необходимым услугам.
Чтобы сглаживать подобные смещения в конкретных наборах данных, людям необходимо следить за тем, чтобы фотографии (или другие типы данных) равномерно представляли, скажем, расовые или гендерные группы. Но это требует внимания и усилий от тех, кто отвечает за подготовку тренировочных данных. Более того, часто бывает очень сложно искоренить незаметные смещения и их последствия. Например, ученые одной исследовательской группы заметили, что их система ИИ – тренированная на крупном множестве данных, включающем фотографии людей в различной обстановке, – иногда ошибочно принимала мужчину за женщину, если мужчина стоял на кухне, то есть в среде, которая на фотографиях тренировочного множества чаще ассоциировалась с женщинами[143]. Как правило, такие незаметные смещения становятся очевидны постфактум, но их очень сложно предугадать.
Проблема смещений в системах ИИ в последнее время привлекает большое внимание – публикуются статьи, проводятся семинары, даже открываются исследовательские институты, посвященные этой теме. Должны ли наборы данных, используемые для обучения ИИ, точно отражать предрассудки нашего общества – как часто происходит сейчас – или же их следует специально корректировать в соответствии с целями общественного реформирования? И кто должен быть вправе определять цели для корректировки данных?
Где решение?
Помните, как в школе учитель писал красной ручкой: “Где решение?”, проверяя ваше домашнее задание по математике? Мне всегда было скучно расписывать решения математических задач, но для обучения это, пожалуй, было важнее всего, ведь объясняя, как я получила ответ, я показывала: я понимаю, что делаю, применяю необходимые методы и прихожу к ответу в результате верных рассуждений. Кроме того, когда я расписывала решения, мой учитель сразу видел, где я делала ошибки.
В более широком смысле мы часто готовы поверить, что люди понимают, что делают, если они могут объяснить, как именно получают ответ или приходят к определенному выводу. Однако глубокие нейронные сети – краеугольный камень современных систем ИИ – не всегда справляются с “расписыванием решений”. Рассмотрим задачу на распознавание “кошек” и “собак”, которую я описала в главе 4. Как вы помните, сверточная нейронная сеть решает, какой объект запечатлен на входном изображении, выполняя последовательность математических операций (сверток) на многих слоях. Если сеть достаточно велика, ей могут потребоваться миллиарды арифметических операций. Хотя нет ничего сложного в том, чтобы запрограммировать компьютер на распечатку списка всех операций сложения и умножения, выполненных сетью при классификации конкретного входного изображения, такой список не даст человеку никакого представления о том, как сеть пришла к ответу. Человеку не под силу найти ответы на свои вопросы в списке с миллиардом операций. Даже люди, которые обучают глубокие сети, обычно не могут “заглянуть под капот” и объяснить, как эти сети принимают решения. Журнал Technology Review, издаваемый в MIT, назвал их непостижимость “страшной тайной в сердце ИИ”[144]. Высказываются опасения, что раз мы не понимаем, как работают системы ИИ, то не можем в полной мере доверять им и прогнозировать, в каких обстоятельствах они будут совершать ошибки.
Люди тоже не всегда могут объяснить ход своих рассуждений, и обычно невозможно заглянуть человеку в голову (или в “нутро”, которым он что-либо чует), чтобы понять, как именно он пришел к конкретному решению. Но люди, как правило, считают, что другие люди научились справляться с такими базовыми когнитивными задачами, как распознавание объектов и понимание речи. Отчасти вы доверяете другим людям, полагая, что они рассуждают так же, как вы сами. Чаще всего вы полагаете, что другие встречаемые вами люди имеют примерно такой же жизненный опыт, а потому используют те же самые базовые фоновые знания, убеждения и ценности, к которым вы прибегаете, воспринимая и описывая мир, а также принимая решения. Иными словами, когда речь идет о других людях, вы обращаетесь к тому, что психологи называют теорией психики, то есть к своему представлению о знаниях и целях другого человека в конкретных ситуациях. Никто из нас не обладает подобной “теорией психики” для таких систем ИИ, как нейронные сети, и потому нам сложнее им доверять.
Не стоит удивляться, что сейчас ведутся активные исследования в сфере, которую называют “объяснимым ИИ”, “прозрачным ИИ” или “интерпретируемым машинным обучением”. Исследователи пытаются добиться, чтобы системы ИИ – и особенно глубокие сети – начали объяснять свои решения понятным людям языком. Сегодня появилось несколько любопытных способов визуализации признаков, которые выявляет конкретная сверточная нейронная сеть, и – в некоторых случаях – определения, какие фрагменты входных сигналов в наибольшей степени влияют на выходное решение. Сфера объяснимого ИИ быстро прогрессирует, но система глубокого обучения, способная успешно объяснить свою работу человеческим языком, по-прежнему не создана.
Как обмануть глубокие нейронные сети
Есть и другой аспект вопроса о надежности ИИ: исследователи выяснили, что людям на удивление просто обманным путем склонять глубокие нейронные сети к ошибкам. Иными словами, если вы хотите обмануть такую систему, способов для этого предостаточно, что не может не настораживать.
Системы ИИ обманывались и раньше. Так, спамеры десятилетиями ведут войну с программами обнаружения нежелательной электронной почты. Но системы глубокого обучения уязвимы для менее очевидных и более опасных атак.
Помните AlexNet, о которой я рассказывала в главе 5? Эта сверточная нейронная сеть победила в конкурсе ImageNet 2012 года и тем самым открыла эру господства сверточных нейронных сетей в современном ИИ. Как вы помните, точность AlexNet (топ-5) на ImageNet составила 85 %, что позволило ей разгромить конкурентов и потрясло специалистов по компьютерному зрению. Однако через год после победы AlexNet Кристиан Сегеди из Google в соавторстве с несколькими коллегами опубликовал научную статью с обтекаемым заголовком “Любопытные свойства нейронных сетей”[145]. Одним из описанных в статье “любопытных свойств” стало то, что AlexNet легко обмануть.
Рис. 18. Исходные изображения и контрпримеры для AlexNet. Слева в каждой паре представлено исходное изображение, корректно классифицированное AlexNet. Справа – контрпример, созданный на основе этого изображения (в пиксели изображения внесены небольшие изменения, но людям новое изображение кажется идентичным исходному). Каждый контрпример AlexNet уверенно отнесла к категории “страус”
В частности, авторы статьи обнаружили, что можно взять из ImageNet фотографию, которую AlexNet корректно классифицировала с высокой степенью уверенности (например, “школьный автобус”), и исказить ее путем внесения незначительных специфических изменений в пиксели таким образом, чтобы людям искаженная фотография казалась неизменной, а AlexNet с высокой уверенностью классифицировала ее в совершенно другую категорию (например, “страус”). Авторы назвали искаженное изображение “контрпримером”. На рис. 18 приводятся несколько исходных изображений и их контрпримеров. Не видите между ними разницы? Поздравляю! Похоже, вы человек.
Сегеди с соавторами создали компьютерную программу, которая брала из ImageNet любую фотографию, корректно классифицированную AlexNet, и вносила в нее специфические изменения, создавая новый контрпример, казавшийся неизменным людям, но заставлявший AlexNet с высочайшей уверенностью классифицировать фотографию неверно.
Что особенно важно, Сегеди с соавторами выяснили, что такая чувствительность к контрпримерам свойственна не только сети AlexNet: они показали, что несколько других СНС – с другой архитектурой, другими гиперпараметрами и тренировочными множествами – имеют сходные уязвимости. Назвать это “любопытным свойством” нейронных сетей – все равно что назвать пробоину в корпусе роскошного круизного лайнера “интересной особенностью” корабля. Да, все это очень любопытно и заслуживает дальнейшего исследования, но, если не залатать пробоину, корабль пойдет ко дну.
Вскоре после выхода статьи Сегеди с коллегами ученые Университета Вайоминга опубликовали статью с более однозначным названием “Глубокие нейронные сети легко обмануть”[146]. Используя вдохновленный биологией вычислительный метод, называемый генетическими алгоритмами[147], ученые из Вайоминга смогли запустить вычислительный “эволюционный процесс” и получить в результате изображения, которые кажутся людям случайным шумом, но AlexNet классифицирует их по конкретным категориям объектов со степенью уверенности более 99 %. На рис. 19 приводится несколько примеров. Ученые из Вайоминга отметили, что глубокие нейронные сети (ГНС) “считают эти объекты почти идеальными примерами распознаваемых изображений”, а это “[поднимает] вопросы об истинных способностях ГНС к генерализации и потенциальной эксплуатации [то есть вредоносном использовании] дорогостоящих решений на базе ГНС”[148].
Две эти статьи и последующие связанные открытия не только подняли вопросы, но и посеяли настоящую тревогу среди специалистов по глубокому обучению. Если системы глубокого обучения, которые успешно овладевают компьютерным зрением и выполняют другие задачи, так легко обмануть с помощью манипуляции, не сбивающей с толку людей, разве можно говорить, что эти сети “учатся, как люди”, а их способности “сравнимы с человеческими или превосходят их”? Очевидно, что восприятие нейронных сетей сильно отличается от человеческого. Если эти сети будут применяться в сфере компьютерного зрения в реальном мире, нам лучше убедиться, что они защищены от хакеров, использующих подобные манипуляции, чтобы их обмануть.
Рис. 19. Примеры изображений, созданных генетическим алгоритмом с целью обмануть СНС. В каждом случае AlexNet (обученная на наборе ImageNet) с вероятностью более 99 % относила изображение к одной из представленных на рисунке категорий
Все это подтолкнуло небольшую группу исследователей заняться “состязательным обучением”, то есть разработкой стратегий, защищающих системы машинного обучения от потенциальных противников (людей), которые могут их атаковать. Разработки в области состязательного обучения часто начинаются с демонстрации возможных способов атаки на существующие системы, и некоторые недавние демонстрации поражают воображение. В сфере компьютерного зрения одна группа разработчиков написала программу, которая проектирует оправы очков с особым узором, заставляющим систему распознавания лиц с уверенностью узнавать на фотографии другого человека (рис. 20)[149]. Другая группа создала небольшие и неприметные наклейки, при помещении которых на дорожные знаки система компьютерного зрения на основе сверточной нейронной сети – вроде тех, что используются в беспилотных автомобилях, – классифицирует знаки неверно (например, знак обязательной остановки распознается как знак ограничения скорости)[150]. Третья группа продемонстрировала возможную вредоносную атаку на глубокие нейронные сети для анализа медицинских изображений и показала, что рентгеновские снимки и результаты микроскопии можно без труда исказить незаметным для человека образом и тем самым подтолкнуть сеть изменить свою классификацию, скажем, с 99 % уверенности в отсутствии рака на изображении на 99 % уверенности в наличии рака[151]. Эта группа отметила, что персонал больницы и другие люди потенциально смогут использовать такие микроподлоги для постановки неверных диагнозов, чтобы заставить страховые компании оплачивать дополнительные (и весьма прибыльные) диагностические обследования.
Вот лишь несколько примеров вредоносных атак, описанных различными исследовательскими группами. Многие потенциальные атаки на удивление надежны: они работают в нескольких разных сетях, даже если эти сети обучены на разных наборах данных. При этом сети можно обмануть не только в сфере компьютерного зрения – исследователи также разрабатывают атаки, обманывающие глубокие нейронные сети, имеющие дело с языком, в том числе с распознаванием речи и анализом текста. Можно ожидать, что при распространении этих систем в реальном мире злонамеренные пользователи обнаружат в них множество других уязвимостей.
Сейчас исследователи уделяют огромное внимание изучению потенциальных атак и разработке способов защиты от них. Хотя решения для конкретных типов атак уже найдены, общий механизм защиты пока не создан. Как и в других сферах компьютерной безопасности, прогресс здесь носит эпизодический характер: стоит выявить и залатать одну брешь в безопасности, как находятся другие, требующие другой защиты. “Сейчас модели машинного обучения можно причинить почти любой мыслимый вред… – говорит специалист по ИИ Ян Гудфеллоу, входящий в команду Google Brain. – И защитить ее очень, очень сложно”[152].
Рис. 20. Исследователь ИИ (слева) в очках с особым узором на оправе, созданных специально для того, чтобы система распознавания лиц на базе глубокой нейронной сети, тренированная на лицах знаменитостей, уверенно распознавала левую фотографию как портрет актрисы Миллы Йовович (справа). В описывающей это исследование статье приводится множество других примеров маскировки с помощью “состязательных” оправ
Помимо необходимости защиты сетей от атак, существование контрпримеров обостряет вопрос, который я задавала ранее: чему именно обучаются эти сети? В частности, чему они обучаются, чтобы их было так просто обмануть? А может – что важнее, – это мы обманываем себя, считая, что сети действительно усваивают концепции, которым мы пытаемся их научить?
На мой взгляд, в корне всего этого лежит проблема понимания. Взгляните на рис. 18, где AlexNet принимает школьный автобус за страуса. Почему такое вряд ли случилось бы с человеком? Хотя AlexNet очень хорошо справляется с классификацией изображений ImageNet, мы, люди, смотрим на объекты и понимаем многие вещи, которые не понимает ни AlexNet, ни любая другая современная система ИИ. Мы знаем, как выглядят объекты в трехмерном мире, и можем представить их форму, посмотрев на двухмерную фотографию. Мы знаем, какую функцию выполняет конкретный объект, каким образом его части задействованы в выполнении этой функции и в каких контекстах он обычно появляется. Глядя на объект, мы вспоминаем, как смотрели на такие же объекты в других обстоятельствах и с других ракурсов, а также воскрешаем в памяти иные сенсорные модальности (каков этот объект на ощупь, какой у него запах, возможно, какой звук он издает при падении и т. д.). Все эти фоновые знания питают человеческую способность надежно распознавать конкретный объект. Даже самые успешные системы компьютерного зрения не обладают таким пониманием и надежностью, которую оно обеспечивает.
Я слышала, как некоторые исследователи ИИ утверждают, что люди тоже уязвимы для “контрпримеров” особого типа – оптических иллюзий. Как и AlexNet, считающая школьный автобус страусом, люди делают ошибки восприятия (например, нам кажется, что верхний отрезок на рис. 21 длиннее нижнего, хотя на самом деле их длина одинакова). Однако человеческие ошибки отличаются от ошибок сверточных нейронных сетей: в процессе эволюции мы научились очень хорошо распознавать объекты в повседневной жизни, поскольку от этого зависит наше выживание. В отличие от современных сверточных нейронных сетей, люди (и животные) воспринимают мир, опираясь на свои когнитивные способности – своеобразное контекстно-зависимое понимание, которое я описала выше. Кроме того, сверточные нейронные сети, применяемые в современных системах компьютерного зрения, как правило, полностью выстроены на прямых связях, в то время как человеческая зрительная система имеет гораздо больше обратных, чем прямых связей. Хотя нейробиологи пока не понимают функцию этих обратных связей, можно предположить, что хотя бы некоторые из них защищают систему от уязвимости к контрпримерам, свойственной сверточным нейронным сетям. Почему бы не обеспечить сверточные нейронные сети такими обратными связями? Сейчас в этой области ведутся активные исследования, но пока создание сетей с обратной связью остается очень сложной задачей и не приносит таких успехов, как создание сетей с прямой связью.
Рис. 21. Оптическая иллюзия для людей: длина горизонтальных отрезков A и B одинакова, но большинству людей кажется, что отрезок A длиннее отрезка B
Исследователь ИИ из Университета Вайоминга Джефф Клюн провел провокационную аналогию, отметив, что по-прежнему “очень интересно, что такое глубокое обучение – «настоящий разум» или Умный Ганс”[153]. Умным Гансом звали коня, который жил в начале XX века в Германии и – по утверждению владельца – умел производить арифметические операции и понимал немецкий язык. Конь отвечал на вопросы вроде “Сколько будет пятнадцать разделить на три?”, отстукивая копытом верный ответ. Когда Умный Ганс прославился на весь мир, тщательное расследование выявило, что на самом деле конь не понимал вопросов и математических концепций, а стучал копытом в ответ на едва заметные, бессознательные подсказки человека, который задавал вопрос. С тех пор Умным Гансом называют любого человека (или программу!), который, казалось бы, понимает, что делает, но на самом деле просто реагирует на нечаянные подсказки учителя. Можно ли сказать, что глубокое обучение демонстрирует “истинное понимание”, или же оно, как компьютерный Умный Ганс, реагирует на мелкие подсказки в данных? В настоящее время в среде ИИ не угасают ожесточенные споры об этом, и ситуация осложняется тем, что исследователи ИИ порой расходятся в своих представлениях об “истинном понимании”.
С одной стороны, глубокие нейронные сети, прошедшие обучение с учителем, очень хорошо (хотя совсем не идеально) справляются со множеством задач в сфере компьютерного зрения, а также в других областях, включая распознавание речи и переводы с языка на язык. Поскольку эти сети обладают впечатляющими способностями, их все быстрее выводят за пределы исследовательских лабораторий и начинают применять в реальном мире – в интернет-поиске, беспилотных автомобилях, распознавании лиц, виртуальных помощниках и рекомендательных системах. С каждым днем нам все сложнее представить жизнь без этих инструментов ИИ. С другой стороны, некорректно говорить, что глубокие сети “учатся самостоятельно” или что процесс их обучения “подобен человеческому”. Признавая успехи этих сетей, не стоит забывать, что они могут подводить нас неожиданным образом из-за переобучения на обучающих данных, эффекта длинного хвоста и уязвимости для взлома. Более того, часто сложно понять, по какой причине глубокие нейронные сети принимают решения, а потому нам сложнее прогнозировать и исправлять их ошибки. Исследователи активно работают над тем, чтобы сделать глубокие нейронные сети более надежными и прозрачными, но остается вопрос: приведет ли свойственный сетям недостаток человеческого понимания мира к тому, что они станут хрупкими, ненадежными и уязвимыми для атак? И каким образом это следует учитывать, принимая решения об использовании систем ИИ в реальном мире? В следующей главе мы рассмотрим некоторые серьезные трудности, возникающие при попытке найти баланс между преимуществами ИИ и рисками его ненадежности и злоупотребления им.