Может ли сеть кодер-декодер усвоить необходимые ментальные модели и знания о реальном мире, просто получив более крупный обучающий набор данных и большее количество сетевых уровней, или необходимо нечто фундаментально иное? В ИИ-сообществе этот вопрос по-прежнему остается открытым и вызывает горячие споры. Пока я просто скажу, что нейронный машинный перевод может быть впечатляюще эффективным и полезным для различных целей, но без постредактирования квалифицированными специалистами этот перевод остается совершенно ненадежным. Если вы используете машинный перевод – а я его использую, – не принимайте результаты за чистую монету. Когда я обратилась к “Google Переводчику”, чтобы перевести фразу take it with a grain of salt (“не принимать за чистую монету”, буквально – “принимать с крупицей соли”) с английского языка на китайский, а затем обратно на английский, он сказал мне bring a salt bar (“принести соленый батончик”). Может, лучше так и поступить.
Перевод изображений в предложения
Вот безумная идея: может ли система вроде пары нейронных сетей, построенных на основе архитектуры кодер-декодер, не только переводить тексты с одного языка на другой, но и переводить изображения в тексты? Для этого одну сеть нужно использовать для кодирования изображения, а другую – для “перевода” изображения в предложение, описывающее содержание изображения. В конце концов, разве создание подписи к изображению нельзя назвать другим типом “перевода” – перевода с “языка” изображения на язык подписи?
Рис. 39. Схема автоматизированной системы подписи изображений, разработанной в Google
Как выясняется, эта идея не такая уж безумная. В 2015 году две группы исследователей – одна из Google, другая из Стэнфордского университета – независимо друг от друга опубликовали очень схожие статьи на эту тему в рамках одной конференции по компьютерному зрению
[275]. Я опишу систему Show and Tell (“Покажи и назови”), разработанную в Google, потому что ее концепция несколько проще.
На рис. 39 показана схема работы системы Show and Tell
[276]. Она напоминает схему системы кодер-декодер с рис. 38, но здесь входным сигналом служит изображение, а не предложение. Изображение загружается не в сеть кодирования, а в глубокую сверточную нейронную сеть. Эта сеть подобна тем, которые я описала в главе 4, но не выдает классификации объектов: активации ее последнего уровня становятся входными сигналами для сети-декодера. Сеть-декодер “декодирует” эти активации и выдает предложение. Чтобы закодировать изображение, авторы использовали сверточную нейронную сеть, обученную классификации изображений на огромной базе ImageNet, описанной в главе 5. Задача состояла в том, чтобы научить сеть-декодер выдавать подходящую подпись для входного изображения.
Как эта система учится генерировать осмысленные подписи? Как вы помните, обучающие данные для машинного перевода текстов состоят из пар предложений, в которых первое предложение пары написано на языке оригинала, а второе представляет собой перевод этого предложения, выполненный человеком. В случае с подписями к изображениям каждый пример состоит из изображения, в паре к которому идет подпись. Изображения были скачаны из таких хранилищ, как Flickr.com, а подписи к ним – созданы людьми, а именно сотрудниками краудсорсинговой платформы Amazon Mechanical Turk, которых компания Google наняла для проведения этого исследования. Поскольку подписывать изображения можно по-разному, каждое изображение подписывали пять разных людей. Таким образом, каждое изображение включалось в базу данных пять раз, каждый раз в паре с новой подписью. На рис. 40 показано одно из тренировочных изображений и подписи, которые сделали к нему сотрудники Amazon Mechanical Turk.
Рис. 40. Образец тренировочного изображения с подписями, сделанными сотрудниками Amazon Mechanical Turk
Сеть-декодер Show and Tell обучалась примерно на 80 тысячах пар изображение-подпись. На рис. 41 приводится несколько примеров подписей, которые обученная система Show and Tell сгенерировала для тестовых изображений, то есть для изображений, не входивших в тренировочный набор.
Как тут не восхититься и, пожалуй, даже не изумиться, что машина может получать изображения в форме необработанных пикселей и выдавать такие точные подписи! Я испытала именно такие чувства, впервые прочитав о полученных результатах в The New York Times. Автор статьи, журналист Джон Маркофф, начал свою заметку осторожно: “Две группы ученых, работавшие независимо друг от друга, создали программу искусственного интеллекта, способную распознавать и описывать содержание фотографий и видео с гораздо большей точностью, чем когда-либо ранее, порой даже имитируя человеческий уровень понимания”
[277].
Рис. 41. Четыре (правильные) подписи, автоматически сгенерированные системой Show and Tell (Google)
Другие не стали проявлять такую сдержанность. “Теперь ИИ Google может подписывать изображения почти так же хорошо, как люди”, – объявил один новостной сайт
[278]. Используя подобные методы, другие компании быстро занялись генерацией автоматизированных подписей к изображениям и сделали собственные заявления. “Исследователи Microsoft идут в авангарде разработки технологии, которая сможет автоматически распознавать объекты на картинке, интерпретировать происходящее и создавать точную подпись к изображению”, – утверждалось в блоге Microsoft
[279]. В Microsoft даже создали онлайн-демо системы, получившей название CaptionBot. На сайте CaptionBot говорится: “Я понимаю содержание любой фотографии и стараюсь описать ее не хуже человека”
[280]. Такие компании, как Google, Microsoft и Facebook, начали обсуждать, как можно было бы использовать технологию автоматизации описания изображений для незрячих и слабовидящих людей.