Часть I Что такое научение?

По сути, интеллект можно рассматривать как процесс преобразования неструктурированной информации в полезные и актуальные знания.

Демис Хассабис, исследователь искусственного интеллекта, основатель компании DeepMind (2017)

Что такое научение? Во многих языках это слово имеет тот же корень, что и латинский глагол apprehendere («схватывать»): apprehending в английском, apprendre во французском, aprender в испанском и португальском. И действительно, научиться – значит уловить некий фрагмент реальности и перенести его в мозг. В когнитивных науках принято считать, что научение состоит в формировании внутренней модели мира. В процессе научения первичные данные, которые улавливают наши органы чувств, превращаются в более или менее абстрактные идеи, пригодные для повторного использования в новом контексте, – малые модели реальности.

Ниже мы узнаем, что обо всем этом говорит когнитивистика и наука об искусственном интеллекте. Как возникают такие внутренние модели в мозге и машинах? Как меняется репрезентация (представление) информации, когда мы учимся? Что происходит на уровне, общем для любого организма – будь то человек, животное или компьютер? Обсудив различные инженерные хитрости, позволяющие машинам учиться, мы получим более четкое представление о той невероятной работе, которую проделывает мозг всякого ребенка, когда он учится видеть, говорить и писать. Как ни странно, детский мозг сохраняет преимущество: несмотря на все технические и научные достижения, современные алгоритмы машинного обучения копируют лишь малую часть способностей человеческого мозга. Разобравшись, где заканчивается машинное обучение и в чем мозг ребенка превосходит даже самый мощный компьютер, мы точно определим, что значит «научение».

Глава 1 Семь определений научения

Что значит «научение»? Мое первое и самое общее определение таково: научиться – значит сформировать внутреннюю модель внешнего мира.

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

Богатство и разнообразие наших ментальных моделей, по большей части бессознательных, поражает воображение. Так, у любого англоговорящего читателя имеется обширная ментальная модель английского языка; благодаря ей он понимает слова, которые сейчас читает, и может догадаться, что слово plastovski – не английское, слова swoon и wistful – точно английские, а слово dragostan – возможно[8]. Помимо языковой модели, мозг содержит и несколько моделей тела, которые он постоянно использует для коррекции положения конечностей при движении и для поддержания равновесия. Другие ментальные модели кодируют наши знания о физических объектах и взаимодействии с ними: вы знаете, как держать ручку, писать или ездить на велосипеде. Третьи описывают близких нам людей: у каждого человека имеется огромный ментальный каталог его родственников и знакомых, в котором задокументированы их внешность, голоса, вкусы и причуды.

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

Впрочем, мы «изобретаем» реальность не только во сне: бодрствуя, наш мозг постоянно проецирует гипотезы и интерпретативные системы на внешний мир. Это происходит потому, что каждое изображение, попадающее на сетчатку глаза, неоднозначно. Например, всякий раз, когда мы видим тарелку, ее изображение подобно бесконечному количеству эллипсов. Почему же мы видим тарелку круглой, хотя органы чувств говорят нам, что она овальная? Все дело в дополнительных данных, которые поставляет наш мозг: он знает, что круглая форма – наиболее вероятная интерпретация. За кулисами сенсорные области непрерывно вычисляют вероятности, и в сознание попадает только наиболее вероятная модель. Именно проекции мозга в конечном счете придают смысл потоку данных, поступающему от органов чувств. В отсутствие внутренних моделей необработанные сенсорные данные остались бы бессмысленными.

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

Такие изменения, безусловно, не совершаются наугад. Научение – это прежде всего способность приспосабливаться к внешнему миру и способность исправлять ошибки. Но откуда мозг «знает», как обновить внутреннюю модель, если, скажем, он заблудился и не может найти свой дом, упал с велосипеда, проиграл партию в шахматы или неправильно написал слово «экстаз»? Рассмотрим семь ключевых идей, которые лежат в основе современных алгоритмов машинного обучения и которые применимы и к человеческому мозгу, – семь различных определений того, что значит «научение».

Научение – это регулировка параметров ментальной модели

Иногда корректировка ментальной модели не представляет сложностей. Вообразите, что вы видите некий предмет и протягиваете к нему руку. Что происходит? Еще в XVII веке Рене Декарт (1596–1650) предположил, что наша нервная система должна содержать особые нейронные сети, преобразующие зрительные сигналы в мышечные команды (см. рисунок ниже). Вы можете убедиться в этом сами: попробуйте схватить предмет, надев очки другого человека, желательно близорукого. Еще лучше, если вам удастся раздобыть призматические очки, смещающие видимое изображение на дюжину градусов влево5. Естественно, первая попытка закончится провалом: из-за призм вы протянете руку не в сторону самого предмета, а гораздо правее. Путем последовательных проб и ошибок вы скорректируете свои движения и впредь будете брать левее. С каждым разом ваши движения будут все более и более точными – это ваш мозг учится компенсировать смещение. Но если снять очки и попробовать снова, вы с удивлением обнаружите, что ваша рука тянется не туда. Вы взяли слишком далеко в левую сторону!



Что такое научение? Учиться – значит корректировать параметры внутренней модели. Например, чтобы научиться указывать на предмет пальцем, необходимо устранить смещение видимого изображения: каждая ошибка несет в себе полезную информацию, позволяющую сократить разрыв. В искусственных нейронных сетях применяется та же логика, хотя число возможных регулировок значительно больше. Распознавание рукописного знака требует тонкой настройки миллионов связей. Опять же, каждая ошибка – в данном случае это неверный выходной сигнал «8» – может быть использована для корректировки параметров соединений, что позволяет улучшить производительность в следующем испытании.


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

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

Представим младенца, который недавно родился в Токио. В течение следующих двух-трех лет его внутренняя речевая модель должна будет адаптироваться к особенностям именно японского языка. Мозг этого малыша подобен машине с миллионами настроек на каждом уровне. Некоторые из этих настроек – например, на слуховом уровне – определяют, какой набор согласных и гласных используется в японском языке и какие правила позволяют их комбинировать. Ребенку, родившемуся в японской семье, предстоит узнать, какие фонемы составляют японские слова и где следует проводить границы между звуками. Один из параметров, в частности, касается различий между звуками [р] и [л]. Во многих языках между ними существует разительный контраст, но только не в японском: японцы не видят разницы между «ложей» и «рожей». Следовательно, каждый ребенок обязан отрегулировать целый набор параметров, которые в совокупности определяют, какие категории речевых звуков релевантны для его родного языка.

Похожая процедура научения повторяется на каждом уровне – от звуковых паттернов до лексики, грамматики и смыслового содержания. Мозг организован в виде иерархии моделей реальности, вложенных одна в другую наподобие матрешки. Учиться – значит использовать поступающие данные для корректировки параметров на каждом уровне этой иерархии. Рассмотрим пример высокого уровня: усвоение грамматических правил. Еще одна ключевая особенность японского языка заключается в порядке слов. В каноническом предложении с подлежащим, сказуемым и дополнением сначала идет подлежащее, затем сказуемое и, наконец, дополнение: «Джон + ест + яблоко». В японском языке, наоборот, сначала стоит подлежащее, затем дополнение – и только потом глагол: «Джон + яблоко + ест»[9]. Примечательно, что тот же порядок характерен для предлогов (которые фактически становятся послелогами), притяжательных местоимений и многих других частей речи. Например, безобидная фраза «Мой дядя мечтает работать в Бостоне» превращается в изречение, достойное Йоды из «Звездных войн»: «Дядя мой Бостоне в работать мечтает».

Любопытно, но все эти инверсии имеют нечто общее. Лингвисты считают, что они обусловлены одним-единственным параметром – так называемой «позицией вершины». В английском, русском и других языках определяющее слово конструкции – ее вершина – обычно стоит на первом месте (в Париже, мой дядя, хочет жить), а в японском – на последнем (Париже в, дядя мой, жить хочет). Этот бинарный параметр отличает многие языки, даже те, которые не связаны исторически (язык навахо, например, подчиняется тем же правилам, что и японский). Таким образом, чтобы овладеть родным языком – скажем, английским или японским, – ребенок должен соответствующим образом настроить параметр «позиция вершины» в своей внутренней языковой модели («до» или «после»).

Научение – это использование комбинаторного взрыва

Неужели овладение речью действительно сводится к заданию каких-то там параметров? В это трудно поверить – но лишь потому, что мы не в состоянии представить то огромное поле возможностей, которое открывается перед нами с увеличением количества параметров, поддающихся регулировке. Это так называемый «комбинаторный взрыв» – экспоненциальный рост возможностей, возникающий при объединении даже небольшого их числа. Предположим, что грамматика мировых языков может быть описана примерно 50 бинарными параметрами, как это постулируют некоторые лингвисты. В итоге мы получаем 250 комбинаций – более миллиона миллиардов возможных языков, или 1 с пятнадцатью нулями! Синтаксические правила трех тысяч реально существующих языков легко вписываются в это гигантское пространство. Однако наш мозг содержит не пятьдесят регулируемых параметров, а гораздо больше – восемьдесят шесть миллиардов нейронов, каждый из которых образует около десяти тысяч синаптических контактов, причем сила этих связей может варьироваться. Выходит, пространство ментальных представлений практически бесконечно.

Человеческие языки активно используют эти комбинации на всех уровнях. Рассмотрим, например, ментальный лексикон: набор слов, которые мы знаем и модель которых постоянно носим в своей голове. Так, любой англоговорящий взрослый свободно владеет примерно 50 тысячами слов с самыми разнообразными значениями[10]. На первый взгляд это гигантский словарный запас, но человек умудряется приобрести его примерно за десять лет. Все потому, что мы можем разложить учебную задачу на составляющие. Учитывая, что эти пятьдесят тысяч слов в среднем состоят из двух слогов, каждый из которых состоит примерно из трех фонем, выбранных из сорока четырех фонем, существующих в английском языке, двоичное кодирование всех этих слов дает менее двух миллионов элементарных двоичных вариантов («битов» со значением 0 или 1). Другими словами, весь словарный запас взрослого человека уместился бы в небольшой 250-килобайтный компьютерный файл (каждый байт состоит из 8 битов).

Ментальный лексикон можно ужать еще сильнее, если принять во внимание большую избыточность языка. Любые шесть букв, выбранные наугад, например xfdrga, не всегда образуют английское слово. Настоящие слова состоят из слогов, объединенных согласно строгим правилам. Это верно на всех уровнях: предложения – это правильные сочетания слов, слова – это правильные сочетания слогов, а слоги – это правильные сочетания фонем. Комбинации эти многочисленны (человек выбирает из нескольких десятков или сотен элементов), но в конечном счете ограничены (допускаются только определенные комбинации). Фактически овладение языком – это обнаружение параметров, управляющих возможными комбинациями на всех уровнях.

Вкратце, человеческий мозг разбивает задачу научения на подзадачи, создавая иерархическую, многоуровневую модель. Особенно это очевидно в случае языка, включающего несколько уровней, или ярусов, – от элементарных звуков до целых предложений и даже полноценных бесед. Тот же принцип иерархической декомпозиции реализован во всех сенсорных системах. Некоторые участки мозга улавливают низкоуровневые паттерны: они видят мир сквозь крошечное пространственно-временное окно и анализируют мельчайшие закономерности. Например, в первичной зрительной коре каждый нейрон анализирует лишь очень небольшую область сетчатки. Он смотрит на мир через маленькое отверстие и, следовательно, обнаруживает только низкоуровневые закономерности – например, наличие движущейся наклонной линии. Миллионы нейронов выполняют одну и ту же работу в разных точках сетчатки; их выходы становятся входами следующего уровня, который обнаруживает «закономерности в закономерностях» и так далее. На каждом уровне область анализа расширяется: мозг ищет более масштабные закономерности как во времени, так и в пространстве. Именно эта иерархия позволяет нам обнаруживать сложные объекты или понятия: линию, палец, кисть, руку, человеческое тело… Нет, подождите, вообще-то тела два! Два человека стоят лицом друг к другу и пожимают руки… Да это же первая встреча Трампа и Макрона!

Научение – это минимизация ошибок

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

Возьмем алгоритм LeNet, созданный французским пионером искусственных нейросетей Яном Лекуном (см. цветную иллюстрацию 2)6. Уже в 1990-х годах эта сеть добилась замечательных результатов в распознавании рукописных знаков. Многие годы канадская почта использовала ее для автоматической обработки почтовых индексов. Как она работает? На входе алгоритм получает изображение символа в виде пикселей, а на выходе предлагает одну из возможных интерпретаций десяти цифр или двадцати шести букв. Искусственная сеть состоит из иерархии простых процессоров, которые немного напоминают нейроны и образуют последовательные слои. Первые слои подключены непосредственно к изображению: в них применяются простые фильтры, распознающие линии и фрагменты кривых. Процессоры высоких уровней содержат более мощные и сложные фильтры и могут научиться распознавать крупные части изображений: изгиб цифры 2, замкнутую петлю буквы O, параллельные линии буквы Z. Искусственные нейроны выходного слоя реагируют на символ независимо от его положения, шрифта или регистра. Все эти свойства не навязаны программистом: они вытекают из миллионов связей, которые соединяют процессоры. Эти связи, однажды отрегулированные автоматизированным алгоритмом, определяют фильтр, который каждый нейрон применяет к поступающим сигналам; именно эти настройки объясняют, почему один нейрон реагирует на цифру 2, а другой – на цифру 3.

Но как же настраиваются эти миллионы связей? Точно так же, как наш мозг, когда мы надеваем призматические очки! Всякий раз, когда сеть дает предварительный ответ, ей сообщают, правильный он или нет. Если ответ неправильный, сеть корректирует соответствующие параметры, дабы избежать ошибки в следующий раз. Каждый неправильный ответ несет в себе ценную информацию. Как и в случае с призматическими очками (слишком большое смещение вправо или влево), характер ошибки подсказывает системе, что именно нужно было сделать, чтобы решить задачу правильно. Вернувшись к источнику ошибки, машина определяет оптимальные параметры, которые впредь позволят ее избежать.

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

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

Несмотря на миллионы входов, выходов и регулируемых параметров, большинство искусственных нейросетей, используемых в современном искусственном интеллекте, действуют точно так же, как наш охотник: они анализируют свои ошибки и на их основе корректируют свое внутреннее состояние в направлении, которое должно эти ошибки уменьшить. Во многих случаях такое обучение строго контролируется. Мы сообщаем сети, какой именно ответ она должна была выдать на выходе («Это 1, а не 7»), и точно знаем, в каком направлении необходимо корректировать параметры, если они привели к ошибке (математические вычисления позволяют определить, какие именно связи следует модифицировать, если в ответ на изображение цифры 1 сеть слишком часто дает на выходе 7). На языке машинного обучения это называется «обучением с учителем» (поскольку некто знает правильный ответ, который должна дать система) и «обратным распространением ошибки» (поскольку сигналы об ошибке отправляются обратно в сеть для изменения ее параметров). Процедура проста: я пробую ответить, мне сообщают правильный ответ, я определяю свою ошибку и корректирую параметры, чтобы впредь этой ошибки не совершать. На каждом этапе я делаю лишь небольшие поправки в нужном направлении. Вот почему такое обучение может протекать крайне медленно: в ходе овладения сложным видом деятельности вроде игры в Tetris данный цикл необходимо повторить тысячи, миллионы, даже миллиарды раз. Это и неудивительно: в пространстве с множеством регулируемых параметров поиски оптимальных настроек для каждой гайки и болта могут занять некоторое время.

Данный принцип постепенной коррекции ошибки был реализован уже в самых первых искусственных нейросетях, созданных в 1980-х годах. Достижения в области вычислительной техники позволили распространить эту идею на гигантские нейронные сети, включающие сотни миллионов регулируемых соединений. Эти глубокие нейросети состоят из последовательностей этапов, каждый из которых адаптируется к текущей задаче. Например, на цветной иллюстрации 4 представлена система GoogLeNet на основе архитектуры LeNet. Последняя была предложена Яном Лекуном и выиграла один из самых престижных международных конкурсов по распознаванию образов. Анализируя миллиарды изображений, система научилась распределять их на тысячи различных категорий: лица, пейзажи, лодки, автомобили, собаки, насекомые, цветы, дорожные знаки и так далее. Каждый уровень ее иерархии настроен на некий важный аспект реальности: например, нейроны низших уровней избирательно реагируют на линии и текстуры. Чем выше уровень, тем больше нейронов учится реагировать на сложные признаки: геометрические фигуры (круги, кривые, звезды), части объектов (карман брюк, ручку автомобильной двери, пару глаз) и даже целые объекты (здания, лица, пауков)7.

Стараясь минимизировать ошибки, алгоритм градиентного спуска обнаружил, что эти формы лучше всего подходят для классификации образов. Однако, если бы та же самая сеть получала на входе отрывки из книг или нотные листы, она бы настроилась иначе и научилась распознавать буквы, ноты или любые другие фигуры, распространенные в новой среде. Например, на цветной иллюстрации 3 показано, как сеть такого типа самоорганизуется для распознавания тысяч рукописных цифр8. На самом низком уровне данные смешаны: одни изображения внешне похожи, но представляют собой разные цифры (скажем, 3 и 8); другие, наоборот, выглядят по-разному, но в действительности обозначают одно и то же (цифру 8, например, каждый пишет по-своему – у кого-то верхний контур замкнут, у кого-то не замкнут и т.д.). На каждом этапе степень абстракции возрастает, пока все варианты одного и того же знака не будут сгруппированы вместе. Посредством процедуры сокращения ошибок искусственная сеть обнаруживает иерархию признаков, наиболее важных для распознавания рукописных цифр. Примечательно, что само по себе исправление ошибок позволяет обнаружить целый ряд подсказок, облегчающих решение поставленной задачи.

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

Научение – это исследование пространства возможностей

Одна из проблем, связанных с описанной выше процедурой коррекции ошибок, заключается в том, что система может зациклиться на неоптимальных параметрах. Представьте мяч для гольфа, который всегда катится под уклон. Допустим, прямо сейчас он движется по склону холма. Если в какой-то момент он попадет в ямку или в углубление, то уже никогда не достигнет его подножия – низшей точки ландшафта, абсолютного оптимума. Нечто подобное может случиться и с алгоритмом градиентного спуска, который иногда застревает в точке «локального минимума». «Локальный минимум» – своеобразный колодец в пространстве параметров, ловушка, из которой нельзя выбраться. Как только это происходит, обучение останавливается, ибо все последующие изменения кажутся контрпродуктивными: любое из них лишь увеличивает частоту ошибок. Система чувствует, что научилась всему, чему могла, и слепо игнорирует настройки высшего уровня, хотя те могут находиться всего в нескольких шагах в пространстве параметров. Алгоритм градиентного спуска не «видит» их, ибо отказывается подняться наверх, чтобы опуститься еще ниже. Близорукий, он отваживается отойти только на небольшое расстояние от начальной точки, а потому может не заметить лучшие, но удаленные конфигурации.

Это кажется вам слишком абстрактным? Представим конкретную ситуацию: вы идете за покупками на рынок, где хотите купить продукты подешевле. Вы минуете первого продавца (цены у него явно завышены), обходите второго (у него слишком дорого) и, наконец, останавливаетесь около третьего. У третьего продавца товар гораздо дешевле, чем у двух предыдущих. Но кто поручится, что в конце прохода или, возможно, в соседнем городе цены не окажутся еще ниже? Иначе говоря, понятия «лучшая местная цена» и «глобальный минимум» не всегда означают одно и то же.

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

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

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

Ученые обнаружили, что все эти приемы чрезвычайно эффективны – а значит, не исключено, что в ходе эволюции некоторые из них были «встроены» в наш мозг. Случайный поиск, стохастическое любопытство и зашумленные нейроны – все это играет важную роль в научении у Homo sapiens. И в игре «камень, ножницы, бумага», и в джазовой импровизации, и в анализе возможных решений математической задачи случайность есть один из важнейших компонентов решения. Как мы увидим ниже, всякий раз, когда дети переходят в режим обучения – то есть когда они играют, – они исследуют десятки возможностей, причем зачастую делают это беспорядочно, наобум. Ночью их мозг продолжает жонглировать идеями, пока не натыкается на ту, которая лучше всего объясняет пережитое в течение дня. В третьей части этой книги мы еще вернемся к полуслучайному алгоритму, который отвечает за ненасытное любопытство детей – и тех счастливых взрослых, которым удалось сохранить ум ребенка.

Научение – это оптимизация функции вознаграждения

Помните систему LeNet Лекуна, которая распознает формы цифр? Чтобы этот тип искусственной нейросети мог учиться, его необходимо обеспечить правильными ответами. Иными словами, сеть должна знать, какой из десяти возможных цифр соответствует каждое введенное изображение. Для исправления ошибок система должна вычислить разницу между своим и правильным ответами. Данная процедура получила название «обучения с учителем»: некто вне системы знает решение и пытается научить машину. Метод достаточно эффективный, однако следует отметить, что ситуация, в которой правильный ответ известен заранее, – большая редкость. Когда дети учатся ходить, никто не говорит им, какие именно мышцы нужно сокращать; их просто поощряют пробовать снова и снова, пока они не перестают падать. Другими словами, малыши учатся исключительно на основе оценки результата: я упал или же мне удалось наконец пересечь комнату.

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

«Очень просто», – сказали ученые и придумали так называемое «обучение с подкреплением», в рамках которого мы не сообщаем системе никаких подробностей о том, что она должна делать (этого никто не знает!), но определяем «награду» – например, в виде количества очков9. Что еще хуже, машина может узнавать это количество с задержкой, уже после совершения тех или иных действий. Обучение на основе отложенного подкрепления – принцип, на базе которого DeepMind, дочерняя компания Google, построила машину, способную играть в шахматы, шашки и го. В конце партии система получает один-единственный сигнал, свидетельствующий о выигрыше или проигрыше. Во время самой игры обратная связь отсутствует – засчитывается лишь окончательная победа над соперником. Как же тогда машине определить, что нужно делать? И, если уж на то пошло, как она может оценить свои действия, если известен только исход игры?

Ученые нашли хитрое решение. Они программируют машину так, чтобы она делала сразу две вещи: действовала и одновременно оценивала собственный прогресс. Одна половина системы, так называемый «критик», учится предсказывать конечный результат. Цель этой сети искусственных нейронов заключается в том, чтобы как можно точнее оценить состояние игры и предсказать ее исход: я выигрываю или проигрываю? Благодаря «внутреннему критику» система способна оценивать свои действия в любой момент времени, а не только в конце. На основании этой оценки другая половина машины, «актор» (собственно, «исполнитель»), корректирует свое поведение: пожалуй, мне не стоит делать то-то и то-то – «критик» считает, что это увеличит мои шансы на проигрыш.

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

Комбинация «актор – критик» – одна из самых эффективных стратегий современного искусственного интеллекта. При поддержке иерархической нейронной сети она буквально творит чудеса. Еще в 1980-х годах эта система выиграла чемпионат мира по нардам, а недавно позволила DeepMind создать многофункциональную нейронную сеть, способную играть в разного рода видеоигры вроде Super Mario или Tetris10. Достаточно задать пиксели изображения в качестве входных данных, возможные действия в качестве выходных данных и очки в качестве функции вознаграждения. Всему остальному машина научится сама. Играя в Tetris, она обнаружит, что на экране отображаются разные фигуры, что падающая фигура важнее остальных, что те или иные действия могут изменить ее ориентацию и положение в пространстве и так далее, – а затем выработает оптимальную тактику. В Super Mario изменения входных данных и вознаграждений учат машину обращать внимание на совершенно иные параметры: какие пиксели образуют тело Марио, как он движется, где находятся враги, как выглядят стены, двери, ловушки, бонусы… и как себя вести рядом с ними. Регулируя свои настройки – то есть миллионы связей, соединяющих слои, – сеть может адаптироваться ко всем типам игр и научиться распознавать формы Tetris, Pac-Man

Загрузка...