Идиот или гений? Как работает и на что способен искусственный интеллект — страница 4 из 19

Нейронные сети и подъем машинного обучения

Внимание, спойлер! Многослойные нейронные сети – расширенные перцептроны, которые Минский и Пейперт списали со счетов, сославшись на их вероятную “бесплодность”, – сформировали фундамент значительной части современного искусственного интеллекта. Поскольку они лежат в основе нескольких методов, которые я буду описывать в последующих главах, здесь я ненадолго остановлюсь, чтобы пояснить механизм их работы.

Многослойные нейронные сети

Говоря простым языком, сеть – это набор элементов, разными способами связанных друг с другом. Нам всем знакомы социальные сети, где элементами выступают люди, и компьютерные сети, где элементами выступают, соответственно, компьютеры. Элементами нейронных сетей являются искусственные нейроны, подобные перцептронам, которые я описывала в предыдущей главе.

На рис. 4 я изобразила схему простой многослойной нейронной сети, разработанной для распознавания рукописных цифр. В сети есть два столбца (слоя) перцептроноподобных искусственных нейронов (обозначены кружками). Для простоты (и, вероятно, к облегчению нейробиологов, читающих эти строки) я буду называть искусственные нейроны “ячейками”. Как и настроенный на обнаружение восьмерок перцептрон из главы 1, изображенная на рис. 4 сеть имеет 324 (18 × 18) входных сигнала, каждый из которых сообщает о насыщенности соответствующего пикселя на исходном изображении. Однако, в отличие от перцептрона, в этой сети помимо слоя из десяти выходных ячеек есть слой из трех так называемых скрытых ячеек. Каждая выходная ячейка соответствует одной из возможных категорий цифр.


Рис. 4. Двухслойная нейронная сеть для распознавания рукописных цифр


Крупные серые стрелки показывают, что каждый входной сигнал имеет взвешенную связь с каждой скрытой ячейкой, а каждая скрытая ячейка имеет взвешенную связь с каждой выходной ячейкой. Загадочный термин “скрытая ячейка” позаимствован из литературы о нейронных сетях, им обозначается любая невыходная ячейка. Возможно, лучше было бы назвать ее “внутренней ячейкой”.

Представьте структуру вашего мозга, где некоторые нейроны непосредственно управляют “выходными сигналами”, например движением ваших мышц, но большинство нейронов просто взаимодействует с другими нейронами. Такие нейроны можно назвать скрытыми нейронами мозга.

Изображенная на рис. 4 сеть называется “многослойной”, поскольку имеет два слоя ячеек (скрытых и выходных) вместо одного слоя выходных сигналов. Теоретически многослойная сеть может иметь несколько слоев скрытых ячеек, и сети, имеющие более одного слоя скрытых ячеек, называются глубокими сетями. “Глубина” сети определяется количеством ее скрытых слоев. Я подробнее расскажу о глубоких сетях в последующих главах.

Подобно перцептронам, каждая ячейка здесь умножает каждый входной сигнал на вес связи этого входного сигнала, а затем суммирует результаты. В отличие от перцептрона, ячейка здесь не просто “выдает сигнал” или “не выдает сигнал” (то есть выдает 1 или 0) в зависимости от порогового значения, а использует полученную сумму, чтобы вычислить число между 0 и 1, которое называется “активацией” единицы. Если единица получает маленькую сумму, ее активация близка к 0, а если сумма большая, активация близка к 1. (Для интересующихся я описала некоторые математические подробности в примечании[41].)

Чтобы обработать такое изображение, как рукописная восьмерка с рис. 4, сеть проводит вычисления слой за слоем, слева направо. Каждая скрытая ячейка вычисляет свое значение активации, затем эти значения активации становятся входными сигналами для выходных ячеек, которые вычисляют собственную активацию. В сети с рис. 4 активацию выходной единицы можно считать степенью уверенности сети в том, что она “видит” соответствующую цифру, а категорию цифры с самой высокой степенью уверенности – ответом сети, или классификацией.

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

Обучение методом обратного распространения ошибки

В книге “Перцептроны” Минский и Пейперт усомнились в возможности создания успешного алгоритма для определения весов в многослойной нейронной сети. Во многом именно из-за их скепсиса (и сомнений других специалистов из лагеря символического ИИ) финансирование исследований нейронных сетей в 1970-х резко сократилось. Однако, несмотря на негативный эффект книги Минского и Пейперта, небольшой костяк исследователей нейронных сетей продолжил работу, особенно в сфере когнитивной психологии Фрэнка Розенблатта. К концу 1970-х и началу 1980-х годов некоторые исследовательские группы явным образом опровергли предположения Минского и Пейперта о “бесплодности” многослойных нейронных сетей, разработав для них общий алгоритм обучения – метод обратного распространения ошибки для тренировки этих сетей.

Как следует из названия, метод обратного распространения ошибки состоит в том, чтобы взять ошибку, наблюдаемую в выходных ячейках (например, высокую степень уверенности в неверной цифре у сети на рис. 4) и “распространить” вину за эту ошибку в обратном порядке (на рис. 4 в направлении справа налево), распределив вину по ячейкам сети. Таким образом метод обратного распространения ошибки определяет, в какой степени нужно скорректировать каждый из весов для снижения погрешности. В ходе обучения нейронные сети просто постепенно корректируют веса связей так, чтобы погрешность каждого выходного сигнала на всех тренировочных примерах оказалась как можно ближе к 0. Хотя математика метода обратного распространения ошибки выходит за рамки моего рассказа, я описала некоторые тонкости в примечании[42].

Метод обратного распространения ошибки будет работать (по крайней мере теоретически) вне зависимости от того, сколько в вашей нейронной сети входных сигналов, скрытых ячеек и выходных ячеек. Хотя нет математической гарантии, что метод обратного распространения ошибки остановится на верных весах для сети, на практике он прекрасно справляется со многими задачами, которые слишком сложны для простых перцептронов. Так, я натренировала и перцептрон, и двухслойную нейронную сеть, имеющие по 324 входных сигнала и 10 выходных сигналов, распознавать рукописные цифры, применив шестьдесят тысяч примеров, а затем протестировала каждую из систем на десяти тысячах новых примеров. Перцептрон выдавал верный ответ примерно в 80 % случаев, а нейронная сеть с 50 скрытыми ячейками верно распознала целых 94 % новых примеров. Слава скрытым ячейкам! Но чему именно научилась нейронная сеть, чтобы обойти перцептрон? Я не знаю. Возможно, я могла бы найти способ визуализировать 16 700 весов[43] нейронной сети, чтобы пролить свет на ее работу, но я этого не сделала. В целом людям непросто понять, как эти сети принимают решения.

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

Коннекционизм

В 1980-х годах самой заметной из работавших над нейронными сетями групп была команда Калифорнийского университета в Сан-Диего, возглавляемая двумя психологами, Дэвидом Румельхартом и Джеймсом Макклелландом. То, что мы сегодня называем нейронными сетями, в те годы обычно именовали коннекционистскими сетями, поскольку в их основе лежала идея, что знания этих сетей заключены во взвешенных связях (англ. connections) между единицами. Команда Румельхарта и Макклелланда прославилась составлением так называемой библии коннекционизма – двухтомного трактата “Параллельная распределенная обработка данных”, опубликованного в 1986 году. Хотя в области ИИ в то время доминировал символический подход, в книге продвигался субсимволический ИИ и утверждалось, что “люди умнее современных компьютеров, потому что мозг использует базовую вычислительную архитектуру, гораздо лучше подходящую для… решения естественных задач по обработке информации, с которыми так хорошо справляются люди”, например “распознавания объектов в естественных средах и анализа их взаимодействий… понимания языка и извлечения релевантной информации из памяти”[44]. Авторы пришли к выводу, что “символические системы, любимые Минским и Пейпертом”[45], не смогут воссоздать эти человеческие способности.

К середине 1980-х экспертные системы – методы символического ИИ, в основе которых лежат разработанные людьми правила, отражающие экспертные знания в конкретной сфере, – все чаще демонстрировали свою хрупкость: они были ненадежны и часто не справлялись с обобщением и адаптацией к новым ситуациям. Анализируя ограничения таких систем, ученые обнаружили, до какой степени разрабатывающие правила эксперты полагаются на бессознательное знание – или здравый смысл, – чтобы действовать разумным образом. Этот здравый смысл сложно было заложить в запрограммированные правила или логическую дедукцию, а его нехватка сильно ограничивала любое широкое применение методов символического ИИ. Иными словами, после цикла больших обещаний, огромных финансовых вливаний и шумихи в прессе символический ИИ снова оказался на пороге зимы.

По мнению сторонников коннекционизма, ключом к разумности была подходящая вычислительная архитектура – выстроенная по образу и подобию мозга – и способность системы к самостоятельному обучению на основе данных или действий. Команда под руководством Румельхарта и Макклелланда создавала коннекционистские сети (программно реализованные) как научные модели человеческого обучения, восприятия и развития речи. Хотя производительность этих сетей и близко не подходила к человеческому уровню, различные сети, описываемые в “Параллельной распределенной обработке данных” и других работах, оказались достаточно интересными артефактами ИИ, чтобы на них обратили внимание многие люди, включая сотрудников финансирующих организаций. В 1988 году высокопоставленный чиновник Управления перспективных исследовательских проектов Министерства обороны США (DARPA), которое обеспечивало львиную долю финансирования исследований ИИ, заявил: “Я уверен, что технология, к разработке которой мы приступаем [то есть нейронные сети], важнее атомной бомбы”[46]. И вдруг нейронные сети снова оказались “в игре”.

Плохо с логикой, хорошо с фрисби

За последние шесть десятилетий исследований ИИ дебаты об относительных преимуществах и недостатках символического и субсимволического подхода возникали не раз. Символические системы могут проектироваться людьми, наделяться человеческими знаниями и использовать понятную человеку логику для решения задач. Так, экспертная система MYCIN, разработанная в начале 1970-х годов, применяла около шестисот правил, чтобы помогать врачам диагностировать и лечить заболевания крови. Программисты MYCIN создали эти правила на основе подробных интервью с высококвалифицированными врачами. Получая симптомы и результаты анализов пациента, MYCIN применяла логику и вероятностные рассуждения в сочетании с правилами, чтобы поставить диагноз, а потом могла объяснить ход своей мысли. Иными словами, MYCIN была хрестоматийным примером символического ИИ.

Как мы видели, субсимволические системы, напротив, сложно интерпретировать, и никто не знает, как непосредственным образом запрограммировать в них сложные человеческие знания и логику. Субсимволические системы кажутся гораздо более подходящими для выполнения перцептивных и моторных задач, правила для которых разработать непросто. Вы не сможете без труда записать правила, которыми руководствуетесь, когда распознаете рукописные цифры, ловите бейсбольный мяч или узнаете голос матери, ведь вы делаете все это автоматически, не думая. Как выразился философ Энди Кларк, природа субсимволических систем такова, что у них “плохо с логикой, но хорошо с фрисби”[47].

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

Подъем машинного обучения

Вдохновленные статистикой и теорией вероятности, исследователи искусственного интеллекта создали множество алгоритмов, которые позволяют компьютерам учиться на данных, и область машинного обучения стала самостоятельным разделом ИИ, намеренно отделенным от символического ИИ. Специалисты по машинному обучению пренебрежительно называли методы символического искусственного интеллекта “старым добрым ИИ”, или GOFAI (Good Old-Fashioned Artificial Intelligence)[48], и категорически отвергали их.

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

Глава 3