К книге
Токен за токеномГлава 2 Долгая зима
27%
Глава 2 Долгая зима
4

Каждый раз, когда я увольняю лингвиста, точность распознавания речи растёт.

История науки знает много примеров, когда хорошая идея появлялась слишком рано и десятилетиями ждала, пока созреют условия для её осуществления. Шенноновские наброски статистических языковых моделей — один из таких случаев. К моменту их публикации не существовало ни компьютеров достаточной мощности, чтобы посчитать вероятности по большому массиву текстов, ни самих больших массивов, ни инженерных задач, требовавших такого моделирования. Идея лежала в журнале, журнал стоял на полке, полка пылилась.

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

Розенблатт и его машина

Фрэнк Розенблатт, конец 1950-х

В 1957 году в Корнеллской аэронавтической лаборатории, в городе Буффало, штат Нью-Йорк, работал молодой психолог по имени Фрэнк Розенблатт. Ему было двадцать девять лет. Он закончил Корнеллский университет, написал диссертацию по теории восприятия и пришёл в лабораторию заниматься тем, что тогда называлось «электронные модели мозга». В отличие от Шеннона, Розенблатт интересовался не математической абстракцией информации, а живой биологией: как именно нейроны в человеческом мозге переплетаются между собой, и можно ли в принципе построить машину, которая работала бы по тому же принципу.

Идея, которую он развивал, выглядела так. Возьмём несколько искусственных «нейронов», каждый из которых принимает на вход несколько сигналов, складывает их с весовыми коэффициентами и выдаёт на выходе либо ноль, либо единицу в зависимости от того, превысила ли сумма некоторое пороговое значение. Соединим эти нейроны в сеть. Подадим на вход сети, например, картинку с буквой. На выходе получим, скажем, номер этой буквы в алфавите. Если на выходе оказалось не то, что нужно, изменим веса связей чуть-чуть, в направлении, которое уменьшает ошибку. Повторим много раз. Через какое-то количество повторений сеть сама подберёт такие веса, что будет правильно различать буквы.

Розенблатт назвал эту конструкцию перцептроном. И, в отличие от большинства учёных того времени, он не ограничился теоретической статьёй. Он построил машину.

Mark I Perceptron, как её окрестили, занимала большую часть комнаты. Это был ящик размером с холодильник, набитый электрическими цепями, и подключённая к нему камера на четыреста фотоэлементов, расположенных в виде матрицы двадцать на двадцать. Машина действительно умела учиться распознавать простые формы: квадраты, треугольники, отдельные буквы. Правда, медленно. Правда, ненадёжно. Но она работала.

Перцептрон Розенблатта: схема

В июле 1958 года Розенблатт пригласил журналистов. В газете New York Times появилась заметка с заголовком, который потом сорок лет будет преследовать всю область как анекдот. В ней говорилось, что военно-морской флот США представил публике «зародыш электронного компьютера», который, как ожидается, в скором времени сможет ходить, говорить, видеть, писать, размножаться и сознавать собственное существование. Розенблатт лично давал журналистам интервью и говорил, в общем, ровно это. Только не в духе «обещаю», а в духе «в принципе возможно». Журналисты эту оговорку, разумеется, опустили.

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

Двое из Бронкса

Марвин Минский, 2008

Сеймур Паперт с роботом-черепашкой

В нескольких сотнях миль от Буффало, в Бостоне, в Массачусетском технологическом институте, работал другой молодой исследователь искусственного интеллекта. Его звали Марвин Минский. Минскому в 1958 году был тридцать один год. Он закончил Принстон, защитился в Гарварде, перешёл в MIT, и через год собирался основать вместе с Джоном Маккарти лабораторию искусственного интеллекта, которая вскоре станет одним из главных центров отрасли в мире.

В судьбе двух главных героев следующей сцены была одна симпатичная подробность. Розенблатт и Минский учились в одной школе. Старшая школа естественных наук в Бронксе, нью-йоркская специализированная школа для одарённых детей, выпустит за свою историю девять нобелевских лауреатов и поразительное количество людей, определяющих научный пейзаж двадцатого века. Оба исследователя были её выпускниками, разделёнными несколькими годами. Они знали друг друга лично с подросткового возраста.

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

Конкуренция за деньги тоже играла роль. В конце пятидесятых и в шестидесятые годы Агентство передовых исследовательских проектов министерства обороны США, известное как ARPA (позже DARPA), щедро финансировало любые работы, связанные со словами «искусственный интеллект». Деньги распределялись через программных директоров. Те, в свою очередь, прислушивались к мнению ведущих учёных. Минский и Розенблатт были, по сути, конкурентами за один и тот же бюджет, и оба это понимали.

В 1969 году Минский и его коллега Сеймур Паперт выпустили книгу под названием «Перцептроны». На обложке был круг с надписью внутри. Книга была написана академически безупречно, в духе строгой математической монографии, и содержала несколько важных результатов о том, чего перцептрон в принципе делать не может.

Главный из них касался задачи под названием XOR, «исключающее или». Имея два бинарных входа, выдать единицу, если входы разные, и ноль, если одинаковые. Задача кажется детской, и для человека таковой и является. Так вот, Минский и Паперт строго доказали: однослойный перцептрон, такой, какой строил Розенблатт, эту задачу решить не может. Никогда. Принципиально. Какие веса в нём ни меняй.

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

Розенблатт уходит в залив

Фрэнк Розенблатт после выхода книги Минского жил ещё два года. По всем рассказам, он был расстроен, но продолжал работать. В 1971 году, в день своего сорокатрёхлетия, он отправился на лодке в Чесапикский залив с двумя коллегами. Лодка перевернулась. Розенблатт не выплыл. Его коллеги выжили.

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

Минский его пережил на сорок пять лет. До конца жизни он отрицал, что книга 1969 года была мотивирована чем-то, кроме научной добросовестности. Большинство историков сегодня склоняются к тому, что он, скорее всего, говорил правду. Но эффект книги от этого не меняется: коннекционистская исследовательская программа после 1969 года надолго замёрзла.

Что было на месте льда

Зима, наступившая для нейросетей в семидесятые годы, не была зимой для всего искусственного интеллекта. Деньги и интерес остались, просто перетекли в соседние комнаты. В Стэнфорде и MIT процветали экспертные системы: программы, в которые инженер по знаниям вручную закладывал тысячи правил вида «если симптом А и симптом Б, то болезнь В с вероятностью семьдесят процентов». Эти программы научились ставить медицинские диагнозы, искать минералы по геологическим разрезам, конфигурировать сложное компьютерное оборудование на заказ. Каждый год новый прорыв, каждый год новый стартап.

В коммерческой обработке естественного языка, между тем, тихо шла другая работа. Без газетных заголовков и без венчурных денег. В лабораториях IBM, BBN, Bell Labs и нескольких университетов несколько десятков человек занимались тем, что напрямую вытекало из шенноновских набросков 1948 года: статистическим моделированием языка для распознавания речи.

Главой этого тихого направления был чех по имени Фредерик Елинек. Он родился в Праге в 1932 году, в шестнадцать лет, после коммунистического переворота, бежал на Запад, через какое-то время оказался в США, закончил MIT, и в начале семидесятых перешёл в исследовательский центр IBM в городе Йорктаун-Хайтс, штат Нью-Йорк. Ему было поручено заниматься распознаванием речи. В отличие от большинства тогдашних специалистов в этой области, Елинек не верил в подход через лингвистическое знание. Он не считал, что нужно сначала разобраться, как устроена грамматика английского языка, и потом запрограммировать это знание в компьютер. Он считал, что нужно собрать очень много примеров живой речи, посчитать в них статистику, и пусть машина сама решит, что во что переходит.

Фредерик Елинек, IBM Research

Подход Елинека был прямым продолжением шенноновского эксперимента 1948 года, только в индустриальном масштабе. Команда IBM построила систему распознавания речи на основе скрытых марковских моделей. Сама модель состояла из двух частей. Первая, акустическая, угадывала по входному звуковому сигналу, какие фонемы могли быть произнесены. Вторая, языковая, решала, какая последовательность слов из этих фонем наиболее вероятна, опираясь на n-граммную статистику английского языка. То есть на ту самую идею Маркова и Шеннона: следующее слово зависит от нескольких предыдущих, и эта зависимость описывается таблицей вероятностей.

Результаты были скромные по нынешним меркам и потрясающие по меркам тех лет. К концу семидесятых система IBM могла распознавать диктовку с ограниченным словарём приблизительно с десятипроцентной ошибкой. К середине восьмидесятых ошибка снизилась вдвое. К началу девяностых системы на основе HMM освоили словарь в десятки тысяч слов и стали достаточно полезными, чтобы их купили коммерческие пользователи. Программа Dragon NaturallySpeaking, к концу девяностых ставшая популярной у врачей и юристов, была прямой наследницей IBM-овской традиции.

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

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

А нейросети всё ещё спали в подвале.

Тонкая струйка

Слово «спали» здесь не вполне справедливо. У нейросетей был узкий круг сторонников, выживавших на скудном пайке. Эти люди не получали больших грантов, печатались в специальных журналах, известных только в своей нише, и преподавали в нескольких университетах. Большая часть остального академического сообщества не считала их направление перспективным.

В 1986 году в журнале Nature вышла статья из трёх авторов: Дэвида Румельхарта, Джеффри Хинтона и Рональда Уильямса. Называлась «Learning representations by back-propagating errors», то есть «Обучение представлений путём обратного распространения ошибки». Статья описывала алгоритм, позволявший обучать многослойные нейронные сети. Сама идея была не нова, её, по разным версиям, придумывали независимо человек шесть, начиная с шестидесятых годов. Но статья Румельхарта, Хинтона и Уильямса оказалась той, которую заметили.

Алгоритм назывался backpropagation, в обиходе быстро сократилось до backprop. Идея была такая. У вас есть многослойная сеть. Вы подаёте на вход пример, считаете прогноз на выходе, сравниваете его с правильным ответом, получаете ошибку. Теперь нужно изменить веса всех связей в сети так, чтобы ошибка уменьшилась. Проблема: связей много, слоёв много, как понять, какую именно связь и в какую сторону менять? Backprop отвечал на этот вопрос с помощью простой математической процедуры, прокатывающей ошибку «назад» через сеть и вычисляющей частные производные ошибки по всем весам одновременно. Эта математика была давно известна; новым было её приложение к нейронным сетям.

Статья 1986 года вернула к жизни всю коннекционистскую программу. Появилась возможность обучать сети с двумя, тремя, пятью слоями. Они снова стали интересны. Хинтон, в то время молодой профессор в Карнеги-Меллон, был одним из главных идеологов возвращения. Через несколько лет он переедет в Торонто и создаст там одну из самых сильных в мире групп по нейронным сетям, которой ещё двадцать лет предстоит работать в относительной тишине, прежде чем мир признает её правоту.

Параллельно с Хинтоном работали ещё двое. В Монреале молодой канадец Йошуа Бенгио, защитившийся в McGill, основал собственную группу, занимавшуюся главным образом применением нейронных сетей к обработке естественного языка. В Bell Labs (а позднее в Нью-Йоркском университете) француз Ян ЛеКун развивал направление, которое чуть позже назовут свёрточными сетями, и которое в следующем веке перевернёт компьютерное зрение.

Эту троицу в академических кулуарах называли «канадской мафией», хотя строго говоря канадцами по гражданству были только Хинтон и Бенгио. Но школа была действительно общая, разговоры шли постоянные, и сторонников коннекционизма в мире было настолько мало, что они все друг друга знали.

Бенгио и слова

Йошуа Бенжио, ICLR 2025

В 2003 году Бенгио с тремя своими аспирантами опубликовал в Journal of Machine Learning Research статью под названием «A Neural Probabilistic Language Model». Это была первая в истории по-настоящему рабочая нейросетевая модель естественного языка.

Идея, лежавшая в её основе, была изящна и нова. До Бенгио все языковые модели работали по принципу таблиц частот. Слово «кот» представлялось номером, скажем, 17 583 в словаре. Слово «собака» представлялось номером 8 412. С точки зрения модели, эти два слова были такими же разными, как «кот» и «отвёртка», просто два разных индекса. Никакой структуры между словами не существовало, потому что номера в словаре не несут смысла. Это была фундаментальная слабость n-граммных моделей: они не понимали, что «кот» и «собака» в каком-то смысле похожи и часто появляются в схожих контекстах. Они должны были выучить эту похожесть отдельно для каждого случая, и им не хватало данных.

Бенгио предложил вот что. Пусть каждое слово в словаре представляется не индексом, а маленьким вектором из, скажем, ста или двухсот вещественных чисел. Эти числа поначалу случайны и ничего не значат, но в процессе обучения сети они подбираются так, чтобы слова, появляющиеся в похожих контекстах, имели похожие векторы. После обучения у «кота» и «собаки» вектора оказываются геометрически близкими, у «кота» и «отвёртки» — далёкими. Это и есть знаменитые в дальнейшем векторные представления слов, или, в позднейшем словоупотреблении, эмбеддинги.

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

Это работало. Модель Бенгио заметно обходила по качеству лучшие на тот момент n-граммные модели. Эмбеддинги, выученные в процессе обучения, имели правдоподобную геометрию: синонимы оказывались рядом, антонимы — на правильном расстоянии. Идея была революционная.

И при этом, надо честно сказать, она не произвела сразу никакого впечатления на индустрию. Набор текстов, на котором обучалась модель Бенгио, был по нынешним меркам крошечный, около пятнадцати миллионов слов. Обучение шло на одном процессоре, и каждая попытка занимала недели. Качество улучшалось по сравнению с n-граммами, но не настолько, чтобы IBM, Microsoft или Google срочно переходили на нейронный подход. У статистических методов было ещё много пороха, видеокарты ещё не использовались для машинного обучения, и в целом нейросетевые языковые модели в 2003 году выглядели как лабораторная диковинка.

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

Долгое ожидание

Если бы кто-нибудь, оглядывая компьютерную обработку естественного языка в первые годы двадцать первого века, попытался предсказать, какое направление приведёт к настоящему прорыву, он, скорее всего, не назвал бы нейронные сети. Гораздо более перспективными выглядели тогда:

Гигантские n-граммные модели, на которые Google в 2006 году выложил публично знаменитый набор данных Web 1T, содержавший статистику последовательностей длиной до пяти слов, собранную примерно с триллиона слов публичных веб-страниц. Это казалось вершиной возможного: больше данных уже неоткуда взять, статистика практически насыщена.

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

Логические системы, разрабатываемые DARPA в рамках программы CALO, из которой потом вырастет Apple Siri.

Нейросети же выглядели как старая идея, давно изученная, имеющая узкий круг применений. Хинтон в Торонто, Бенгио в Монреале, ЛеКун в Нью-Йорке продолжали работать над ними скорее из принципа, чем из расчёта на скорый прорыв. Их научные коллеги их ценили, но всерьёз воспринимали их направление как небольшую сектантскую ветвь, отколовшуюся от основного русла дисциплины.

Так продолжалось до 2012 года.

В сентябре 2012 года в одной из исследовательских комнат Торонтского университета двое аспирантов Хинтона, проведших полтора года за работой с двумя бытовыми видеокартами NVIDIA, обнаружили, что их многослойная свёрточная нейронная сеть распознаёт картинки из коллекции ImageNet с ошибкой в полтора раза меньше, чем лучшая на тот момент система, использовавшая ручной набор признаков и SVM-классификаторы. Полтора раза.

Долгая зима закончилась за один уик-энд.

Предыдущая главаГлава 4 из 15Следующая глава