Хотя эти символы обозначают знакомые людям понятия – “миссионеры”, “людоеды”, “лодка”, “левый берег”, – запускающий программу компьютер, конечно, не понимает значения символов. Можно заменить параметр “миссионеры” на “z372b” или любой другой бессмысленный набор знаков, и программа будет работать точно так же. Отчасти поэтому она называется
Адвокаты символического подхода к ИИ утверждали, что невозможно наделить компьютер разумом, не написав программы, копирующие человеческий мозг. Они полагали, что для создания общего интеллекта необходима лишь верная программа обработки символов. Да, эта программа работала бы гораздо сложнее, чем в примере с миссионерами и людоедами, но все равно состояла бы из символов, комбинаций символов, правил и операций с символами. В итоге символический ИИ, примером которого стал Универсальный решатель задач, доминировал в сфере ИИ в первые три десятилетия ее существования. Самым заметным его воплощением стали
Субсимволический ИИ: перцептроны
Вдохновением для символического ИИ послужила математическая логика и описание людьми своих сознательных мыслительных процессов.
Одной из первых субсимволических ИИ-программ, созданных по модели мозга, стал перцептрон, изобретенный в конце 1950-х годов психологом Фрэнком Розенблаттом[29]. Сегодня термин “перцептрон” кажется заимствованным из научной фантастики пятидесятых годов (как мы увидим, вскоре за ним последовали “когнитрон” и “неокогнитрон”), но перцептрон стал важной вехой развития ИИ и может считаться авторитетным прадедом самого успешного инструмента современного ИИ, глубоких нейронных сетей.
Розенблатт изобрел перцептрон, обратив внимание на то, как нейроны обрабатывают информацию. Нейрон – это клетка мозга, которая получает электрический или химический импульс от связанных с нею нейронов. Грубо говоря, нейрон суммирует все импульсы, которые получает от других нейронов, и сам посылает импульс, если итоговая сумма превышает определенный порог. Важно, что разные связи (
С точки зрения специалиста по информатике (или, как в случае с Розенблаттом, психолога), обработку информации нейронами можно смоделировать в компьютерной программе – перцептроне, – которая преобразует много численных входных сигналов в один выходной сигнал. Аналогия между нейроном и перцептроном показана на рис. 1. На рис. 1A мы видим нейрон с ветвистыми дендритами (волокнами, которые проводят входящие импульсы в клетку), телом клетки и аксоном (или выводным каналом). На рис. 1B изображен простой перцептрон. Как и нейрон, перцептрон суммирует все входящие сигналы. Если итоговая сумма равняется
Рис. 1. A: нейрон в мозге; В: простой перцептон
Иными словами, перцептрон – это простая программа, которая принимает решение “да или нет” (1 или 0) в зависимости от того, достигает ли сумма взвешенных входных сигналов порогового значения. Вероятно, вы тоже время от времени принимаете такие решения в жизни. Например, вы узнаете мнение нескольких друзей о конкретном фильме, но вкусам одних друзей доверяете больше, чем вкусам других. Если сумма “дружеских восторгов” – при большем весе мнений тех друзей, которым вы доверяете больше, – достаточно высока (то есть превышает некоторый неосознанный порог), вы решаете посмотреть фильм. Именно так перцептрон выбирал бы фильмы к просмотру, если бы у него были друзья.
Вдохновленный сетями нейронов в мозге, Розенблатт предположил, что сети перцептронов могут выполнять визуальные задачи, например справляться с распознаванием объектов и лиц. Чтобы понять, как это может работать, давайте изучим, как с помощью перцептрона решить конкретную визуальную задачу: распознать рукописные цифры вроде тех, что показаны на рис. 2.
Давайте сделаем перцептрон детектором восьмерок – в таком случае он будет выдавать единицу, если входным сигналом служит изображение цифры 8, и ноль, если на входном изображении будет любая другая цифра. Чтобы создать такой детектор, нам нужно (1) понять, как превратить изображение в набор численных входных сигналов, и (2) определить численные значения весов и порог перцептрона для формирования верного выходного сигнала (1 для восьмерок и 0 для других цифр). Я рассмотрю эту задачу более подробно, поскольку многие из этих принципов понадобятся нам при обсуждении нейронных сетей и их применения в компьютерном зрении.
Рис. 2. Примеры рукописных цифр
Входные сигналы нашего перцептрона
На рис. 3A показана увеличенная рукописная восьмерка. Каждый квадрат координатной сетки – это пиксель с численным значением “насыщенности”: насыщенность белых квадратов равняется 0, насыщенность черных – 1, а насыщенность серых имеет промежуточное значение. Допустим, все изображения, которые мы даем перцептрону, подогнаны к единому размеру – 18 × 18 пикселей. На рис. 3B показан перцептрон для распознавания восьмерок. У этого перцептрона 324 (то есть 18 × 18) входных сигнала, каждый из которых соответствует одному пикселю из сетки 18 ×18. При получении изображения, подобного показанному на рисунке 3A, каждый входной сигнал настраивается на насыщенность соответствующего пикселя. Каждому входному сигналу также присваивается свой вес (на рисунке не показан).
Рис. 3. Иллюстрация перцептрона, который распознает рукописные восьмерки. Каждый пиксель на изображении 18 × 18 пикселей соответствует одному входному сигналу перцептрона, что дает 324 (= 18 × 18) входных сигнала.
Как узнать веса и порог перцептрона
В отличие от символической системы Универсального решателя задач, которую я описала ранее, перцептрон не имеет очевидных правил для выполнения задачи, а все его “знания” закодированы в числах, определяющих веса входных сигналов и пороговое значение. В ряде статей Розенблатт показал, что при корректных весах и пороговом значении такой перцептрон, как на рисунке 3B, вполне неплохо справляется с такими задачами на восприятие, как распознавание простых рукописных цифр. Но как именно определить корректные веса и пороговое значение для конкретной задачи? И снова Розенблатт предложил ответ, навеянный работой мозга: перцептрон должен сам
Концепция обучения с учителем – ключевой элемент современного ИИ, поэтому ее стоит разобрать подробнее. Как правило, обучение с учителем требует большого набора положительных (скажем, коллекции восьмерок, написанных разными людьми) и отрицательных (скажем, коллекции других рукописных цифр, среди которых нет восьмерок) примеров. Каждый пример
Вероятно, самым важным в информатике стоит признать понятие “алгоритм”. Оно обозначает “рецепт” со списком шагов, которые компьютер может предпринять для решения конкретной задачи. Главным вкладом Фрэнка Розенблатта в ИИ стало создание особого алгоритма, названного алгоритмом обучения перцептрона. С помощью этого алгоритма перцептрон можно научить на примерах определять веса и пороговое значение для получения верных ответов. Вот как он работает: сначала весам и порогу присваиваются случайные значения в диапазоне от –1 до 1. В нашем примере первому входному сигналу может быть присвоен вес 0,2, второму – вес –0,6 и так далее. Пороговым значением может стать 0,7. С генерацией начальных значений без труда справится компьютерная программа, называемая генератором случайных чисел.
Теперь мы можем приступать к процессу обучения. Перцептрон получает первый обучающий пример, не видя метку с верной категорией. Перцептрон умножает каждый входной сигнал на его вес, суммирует результаты, сравнивает сумму с пороговым значением и выдает либо 1, либо 0. Здесь выходной сигнал 1 означает, что перцептрон распознал восьмерку, а выходной сигнал 0 – что он распознал “не восьмерку”. Далее в процессе обучения выходной сигнал перцептрона сравнивается с верным ответом, который дает присвоенная человеком метка (“восьмерка” или “не восьмерка”). Если перцептрон прав, веса и пороговое значение не меняются. Если же перцептрон ошибся, веса и пороговое значение слегка корректируются так, чтобы сумма входных сигналов в этом тренировочном примере оказалась ближе к нужной для верного ответа. Более того, степень изменения каждого веса зависит от соответствующего значения входного сигнала, то есть вина за ошибку в основном возлагается на входные сигналы, которые сильнее других повлияли на результат. Например, в восьмерке на рис. 3A главным образом на результат повлияли бы более насыщенные (здесь – черные) пиксели, в то время как пиксели с нулевой насыщенностью (здесь – белые) не оказали бы на него никакого влияния. (Для любопытных читателей я описала некоторые математические подробности в примечании[30].)
Все шаги повторяются на каждом из обучающих примеров. Процесс обучения много раз проходится по всем обучающим примерам, слегка корректируя веса и пороговое значение при каждой ошибке перцептрона. Обучая голубей, психолог Б. Ф. Скиннер обнаружил, что учиться лучше постепенно, совершая множество попыток, и здесь дело обстоит точно так же: если слишком сильно изменить веса и пороговое значение после одной попытки, система может научиться неправильному правилу (например, чрезмерному обобщению, что “нижняя и верхняя половины восьмерки всегда равны по размеру”). После множества повторов каждого обучающего примера система (как мы надеемся) окончательно определяет набор весов и пороговое значение, при которых перцептрон дает верные ответы для всех обучающих примеров. На этом этапе мы можем проверить перцептрон на примерах из тестового множества и увидеть, как он справляется с распознаванием изображений, не входивших в обучающий набор.
Детектор восьмерок полезен, когда вас интересуют только восьмерки. Но что насчет распознавания других цифр? Не составляет труда расширить перцептрон таким образом, чтобы он выдавал десять выходных сигналов, по одному на каждую цифру. Получая пример рукописной цифры, перцептрон будет выдавать единицу в качестве выходного сигнала, соответствующего этой цифре. При наличии достаточного количества примеров расширенный перцептрон сможет узнать все необходимые веса и пороговые значения, используя алгоритм обучения.
Розенблатт и другие исследователи показали, что сети перцептронов можно научить выполнять относительно простые задачи на восприятие, а еще Розенблатт математически доказал, что теоретически достаточно обученные перцептроны могут безошибочно выполнять задачи определенного, хотя и строго ограниченного класса. При этом было непонятно, насколько хорошо перцептроны справляются с более общими задачами ИИ. Казалось, эта неопределенность не мешала Розенблатту и его спонсорам из Научно-исследовательского управления ВМС США делать до смешного оптимистичные прогнозы о будущем алгоритма. Освещая пресс-конференцию Розенблатта, состоявшуюся в июле 1958 года, газета
Сегодня ВМС продемонстрировали зародыш электронного компьютера, который, как ожидается, сможет ходить, говорить, видеть, писать, воспроизводить себя и сознавать свое существование. Было сказано, что в будущем перцептроны смогут узнавать людей, называть их по именам и мгновенно переводить устную речь и тексты с одного языка на другой[31].
Да, даже в самом начале ИИ страдал от шумихи. Вскоре я расскажу о печальных последствиях такого ажиотажа. Но пока позвольте мне на примере перцептронов объяснить основные различия между символическим и субсимволическим подходом к ИИ.
Поскольку “знания” перцептрона состоят из набора чисел, а именно – определенных в ходе обучения весов и порогового значения, – сложно выявить правила, которые перцептрон использует при выполнении задачи распознавания. Правила перцептрона не символические: в отличие от символов Универсального решателя задач, таких как ЛЕВЫЙ-БЕРЕГ, #МИССИОНЕРОВ и ПЕРЕМЕСТИТЬ, веса и порог перцептрона не соответствуют конкретным понятиям. Довольно сложно преобразовать эти числа в понятные людям правила. Ситуация существенно усложняется в современных нейронных сетях с миллионами весов.
Можно провести грубую аналогию между перцептронами и человеческим мозгом. Если бы я могла заглянуть к вам в голову и понаблюдать за тем, как некоторое подмножество ста миллиардов ваших нейронов испускает импульсы, скорее всего, я бы не поняла, ни о чем вы думаете, ни какие “правила” применяете при принятии конкретного решения. Тем не менее человеческий мозг породил язык, который позволяет вам использовать символы (слова и фразы), чтобы сообщать мне – часто недостаточно четко, – о чем вы думаете и почему приходите к определенным выводам. В этом смысле наши нервные импульсы можно считать
Ограниченность перцептронов
После Дартмутского семинара 1956 года доминирующее положение в сфере ИИ занял символический лагерь. В начале 1960-х годов, пока Розенблатт увлеченно работал над перцептроном, большая четверка “основателей” ИИ, преданных символическому лагерю, создала авторитетные – и прекрасно финансируемые – лаборатории ИИ: Марвин Минский открыл свою в MIT, Джон Маккарти – в Стэнфорде, а Герберт Саймон и Аллен Ньюэлл – в Университете Карнеги – Меллона. (Примечательно, что эти университеты по сей день входят в число самых престижных мест для изучения ИИ.) Минский, в частности, полагал, что моделирование мозга, которым занимался Розенблатт, ведет в тупик и ворует деньги у более перспективных проектов символического ИИ[32]. В 1969 году Минский и его коллега по MIT Сеймур Пейперт опубликовали книгу “Перцептроны”[33], в которой математически доказали, что существует крайне ограниченное количество типов задач, поддающихся
Минский и Пейперт отметили, что если перцептрон усовершенствовать, добавив дополнительный “слой” искусственных нейронов, то количество типов задач, которые сможет решать устройство, значительно возрастет[34]. Перцептрон с таким дополнительным слоем называется многослойной нейронной сетью. Такие сети составляют основу значительной части современного ИИ, и я подробно опишу их в следующей главе. Пока же я отмечу, что в то время, когда Минский и Пейперт писали свою книгу, многослойные нейронные сети еще не были широко изучены, в основном потому что не существовало общего алгоритма, аналогичного алгоритму обучения перцептрона, для определения весов и пороговых значений.
Ограниченность простых перцептронов, установленная Минским и Пейпертом, была уже известна людям, работавшим в этой сфере[35]. Сам Фрэнк Розенблатт много работал с многослойными перцептронами и признавал, что их сложно обучать[36]. Но последний гвоздь в крышку гроба перцептронов вогнала не математика Минского и Пейперта, а их рассуждения о многослойных нейронных сетях:
[Перцептрон] обладает многими свойствами, привлекающими внимание: линейность, интригующая способность к обучению, очевидная простота перцептрона как разновидности устройства для параллельных вычислений. Нет никаких оснований предполагать, что любое из этих достоинств распространяется на многослойный вариант. Тем не менее мы считаем важной исследовательской задачей разъяснить (или отвергнуть) наше интуитивное заключение о том, что обсуждаемое расширение бесплодно[37].
Ой-ой! Сегодня последнее предложение этого отрывка, возможно, сочли бы “пассивно-агрессивным”. Такие негативные спекуляции отчасти объясняют, почему в конце 1960-х финансирование исследований нейронных сетей прекратилось, хотя государство продолжало вливать немалые деньги в символический ИИ. В 1971 году Фрэнк Розенблатт утонул в возрасте сорока трех лет. Лишившись главного идеолога и большей части государственного финансирования, исследования перцептронов и других систем субсимволического ИИ практически остановились. Ими продолжали заниматься лишь несколько отдельных академических групп.
Зима ИИ
Тем временем поборники символического ИИ писали заявки на гранты, обещая скорые прорывы в таких областях, как понимание речи и языка, построение логических выводов на основе здравого смысла, навигация роботов и беспилотные автомобили. К середине 1970-х годов были успешно развернуты некоторые узкие экспертные системы, но обещанных прорывов общего характера так и не произошло.
Это не укрылось от внимания финансирующих организаций. Британский Совет по научным исследованиям и Министерство обороны США подготовили отчеты, в которых дали крайне отрицательную оценку прогрессу и перспективам исследований ИИ. В частности, в британском отчете отмечалось, что некоторые надежды вселяет продвижение в области специализированных экспертных систем – “программ, написанных для работы в узких сферах, где программирование полностью принимает во внимание человеческий опыт и человеческие знания в соответствующей области”, – но подчеркивалось, что текущие результаты работы “над программами общего назначения, ориентированными на копирование механизма решения широкого спектра задач с человеческого [мозга], удручают. Вожделенная долгосрочная цель исследований в сфере ИИ кажется все такой же далекой”[38]. После этого отчета государственное финансирование исследований ИИ в Великобритании резко сократилось, Министерство обороны США тоже существенно урезало бюджеты базовых исследований ИИ.
Это стало одним из первых примеров повторяющегося цикла взлетов и падений ИИ. Как правило, двухфазный цикл развивается следующим образом. Фаза 1: Новые идеи рождают большой оптимизм в научном сообществе. Появляются прогнозы о грядущих прорывах в сфере ИИ, которые часто приводят к шумихе в прессе. Государственные структуры и частные инвесторы выделяют средства на проведение научных исследований и организацию коммерческих стартапов. Фаза 2: Обещанные прорывы не происходят или оказываются гораздо скромнее, чем предполагалось. Приток средств от государственных и частных инвесторов сокращается. Стартапы сворачивают деятельность, исследования ИИ замедляются. Такая схема прекрасно знакома ИИ-сообществу: за “весной ИИ” следуют раздутые обещания и шумиха в прессе, а затем наступает “зима ИИ”. В той или иной степени это происходит циклично с периодичностью от пяти до десяти лет. Когда в 1990 году я окончила университет, сфера ИИ переживала одну из зим и заработала такую плохую репутацию, что мне даже посоветовали не упоминать об искусственном интеллекте в своем резюме.
Простые вещи делать сложно
Холодные зимы ИИ преподали специалистам важные уроки. Самый простой из них через пятьдесят лет после Дартмутского семинара сформулировал Джон Маккарти: “ИИ оказался сложнее, чем мы думали”[39]. Марвин Минский отметил, что исследования ИИ выявили парадокс: “Простые вещи делать сложно”. Изначально исследователи ИИ поставили перед собой цель создать компьютеры, которые смогут беседовать с нами на естественном языке, описывать увиденное своими глазами-камерами и осваивать новые концепции, имея всего несколько примеров – то есть делать все то, с чем без труда справляются маленькие дети, – но, как ни странно, ИИ оказалось тяжелее заниматься этими “простыми вещами”, чем диагностировать сложные болезни, обыгрывать чемпионов по шахматам и го и решать запутанные алгебраические задачи. Как отметил далее Минский, “в целом мы хуже всего понимаем то, с чем наш разум справляется лучше всего”[40]. Попытка создать искусственный интеллект, по меньшей мере, помогла нам понять, как сложно и изощренно устроен наш разум.
Глава 2
Нейронные сети и подъем машинного обучения
Внимание, спойлер! Многослойные нейронные сети – расширенные перцептроны, которые Минский и Пейперт списали со счетов, сославшись на их вероятную “бесплодность”, – сформировали фундамент значительной части современного искусственного интеллекта. Поскольку они лежат в основе нескольких методов, которые я буду описывать в последующих главах, здесь я ненадолго остановлюсь, чтобы пояснить механизм их работы.
Многослойные нейронные сети
Говоря простым языком,
На рис. 4 я изобразила схему простой многослойной нейронной сети, разработанной для распознавания рукописных цифр. В сети есть два столбца (
Рис. 4. Двухслойная нейронная сеть для распознавания рукописных цифр
Крупные серые стрелки показывают, что каждый входной сигнал имеет взвешенную связь с каждой скрытой ячейкой, а каждая скрытая ячейка имеет взвешенную связь с каждой выходной ячейкой. Загадочный термин “скрытая ячейка” позаимствован из литературы о нейронных сетях, им обозначается любая невыходная ячейка. Возможно, лучше было бы назвать ее “внутренней ячейкой”.
Представьте структуру вашего мозга, где некоторые нейроны непосредственно управляют “выходными сигналами”, например движением ваших мышц, но большинство нейронов просто взаимодействует с другими нейронами. Такие нейроны можно назвать скрытыми нейронами мозга.
Изображенная на рис. 4 сеть называется “многослойной”, поскольку имеет два слоя ячеек (скрытых и выходных) вместо одного слоя выходных сигналов. Теоретически многослойная сеть может иметь несколько слоев скрытых ячеек, и сети, имеющие более одного слоя скрытых ячеек, называются глубокими сетями. “Глубина” сети определяется количеством ее скрытых слоев. Я подробнее расскажу о глубоких сетях в последующих главах.
Подобно перцептронам, каждая ячейка здесь умножает каждый входной сигнал на вес связи этого входного сигнала, а затем суммирует результаты. В отличие от перцептрона, ячейка здесь не просто “выдает сигнал” или “не выдает сигнал” (то есть выдает 1 или 0) в зависимости от порогового значения, а использует полученную сумму, чтобы вычислить число между 0 и 1, которое называется “активацией” единицы. Если единица получает маленькую сумму, ее активация близка к 0, а если сумма большая, активация близка к 1. (Для интересующихся я описала некоторые математические подробности в примечании[41].)
Чтобы обработать такое изображение, как рукописная восьмерка с рис. 4, сеть проводит вычисления слой за слоем, слева направо. Каждая скрытая ячейка вычисляет свое значение активации, затем эти значения активации становятся входными сигналами для выходных ячеек, которые вычисляют собственную активацию. В сети с рис. 4 активацию выходной единицы можно считать степенью уверенности сети в том, что она “видит” соответствующую цифру, а категорию цифры с самой высокой степенью уверенности – ответом сети, или
Теоретически многослойная нейронная сеть может научиться использовать свои скрытые ячейки так, чтобы распознавать более абстрактные характеристики (например, визуальные формы, такие как верхний и нижний “кружки” рукописной восьмерки) вместо простых характеристик (например, пикселей), закодированных во входном сигнале. Как правило, заранее сложно понять, сколько скрытых слоев и сколько скрытых ячеек в каждом слое необходимо, чтобы сеть хорошо справлялась с поставленной задачей. Большинство исследователей нейронных сетей находит оптимальные настройки методом проб и ошибок.
Обучение методом обратного распространения ошибки
В книге “Перцептроны” Минский и Пейперт усомнились в возможности создания успешного алгоритма для определения весов в многослойной нейронной сети. Во многом именно из-за их скепсиса (и сомнений других специалистов из лагеря символического ИИ) финансирование исследований нейронных сетей в 1970-х резко сократилось. Однако, несмотря на негативный эффект книги Минского и Пейперта, небольшой костяк исследователей нейронных сетей продолжил работу, особенно в сфере когнитивной психологии Фрэнка Розенблатта. К концу 1970-х и началу 1980-х годов некоторые исследовательские группы явным образом опровергли предположения Минского и Пейперта о “бесплодности” многослойных нейронных сетей, разработав для них общий алгоритм обучения – метод обратного распространения ошибки для тренировки этих сетей.
Как следует из названия, метод обратного распространения ошибки состоит в том, чтобы взять ошибку, наблюдаемую в выходных ячейках (например, высокую степень уверенности в неверной цифре у сети на рис. 4) и “распространить” вину за эту ошибку в обратном порядке (на рис. 4 в направлении справа налево), распределив вину по ячейкам сети. Таким образом метод обратного распространения ошибки определяет, в какой степени нужно скорректировать каждый из весов для снижения погрешности. В ходе
Метод обратного распространения ошибки будет работать (по крайней мере теоретически) вне зависимости от того, сколько в вашей нейронной сети входных сигналов, скрытых ячеек и выходных ячеек. Хотя нет математической гарантии, что метод обратного распространения ошибки остановится на верных весах для сети, на практике он прекрасно справляется со многими задачами, которые слишком сложны для простых перцептронов. Так, я натренировала и перцептрон, и двухслойную нейронную сеть, имеющие по 324 входных сигнала и 10 выходных сигналов, распознавать рукописные цифры, применив шестьдесят тысяч примеров, а затем протестировала каждую из систем на десяти тысячах новых примеров. Перцептрон выдавал верный ответ примерно в 80 % случаев, а нейронная сеть с 50 скрытыми ячейками верно распознала целых 94 % новых примеров. Слава скрытым ячейкам! Но чему именно научилась нейронная сеть, чтобы обойти перцептрон? Я не знаю. Возможно, я могла бы найти способ визуализировать 16 700 весов[43] нейронной сети, чтобы пролить свет на ее работу, но я этого не сделала. В целом людям непросто понять, как эти сети принимают решения.
Важно отметить, что я использовала в качестве примера распознавание рукописных цифр, но нейронные сети можно применять не только к изображениям, но и к любым другим типам данных. Нейронные сети используются в столь разных областях, как распознавание речи, прогнозирование динамики фондового рынка, переводы с языка на язык и сочинение музыки.
Коннекционизм
В 1980-х годах самой заметной из работавших над нейронными сетями групп была команда Калифорнийского университета в Сан-Диего, возглавляемая двумя психологами, Дэвидом Румельхартом и Джеймсом Макклелландом. То, что мы сегодня называем нейронными сетями, в те годы обычно именовали коннекционистскими сетями, поскольку в их основе лежала идея, что знания этих сетей заключены во взвешенных связях (англ.
К середине 1980-х экспертные системы – методы символического ИИ, в основе которых лежат разработанные людьми правила, отражающие экспертные знания в конкретной сфере, – все чаще демонстрировали свою
По мнению сторонников коннекционизма, ключом к разумности была подходящая вычислительная архитектура – выстроенная по образу и подобию мозга – и способность системы к самостоятельному обучению на основе данных или действий. Команда под руководством Румельхарта и Макклелланда создавала коннекционистские сети (программно реализованные) как научные модели человеческого обучения, восприятия и развития речи. Хотя производительность этих сетей и близко не подходила к человеческому уровню, различные сети, описываемые в “Параллельной распределенной обработке данных” и других работах, оказались достаточно интересными артефактами ИИ, чтобы на них обратили внимание многие люди, включая сотрудников финансирующих организаций. В 1988 году высокопоставленный чиновник Управления перспективных исследовательских проектов Министерства обороны США (DARPA), которое обеспечивало львиную долю финансирования исследований ИИ, заявил: “Я уверен, что технология, к разработке которой мы приступаем [то есть нейронные сети], важнее атомной бомбы”[46]. И вдруг нейронные сети снова оказались “в игре”.
Плохо с логикой, хорошо с фрисби
За последние шесть десятилетий исследований ИИ дебаты об относительных преимуществах и недостатках символического и субсимволического подхода возникали не раз. Символические системы могут проектироваться людьми, наделяться человеческими знаниями и использовать понятную человеку логику для решения задач. Так, экспертная система MYCIN, разработанная в начале 1970-х годов, применяла около шестисот правил, чтобы помогать врачам диагностировать и лечить заболевания крови. Программисты MYCIN создали эти правила на основе подробных интервью с высококвалифицированными врачами. Получая симптомы и результаты анализов пациента, MYCIN применяла логику и вероятностные рассуждения в сочетании с правилами, чтобы поставить диагноз, а потом могла объяснить ход своей мысли. Иными словами, MYCIN была хрестоматийным примером символического ИИ.
Как мы видели, субсимволические системы, напротив, сложно интерпретировать, и никто не знает, как непосредственным образом запрограммировать в них сложные человеческие знания и логику. Субсимволические системы кажутся гораздо более подходящими для выполнения перцептивных и моторных задач, правила для которых разработать непросто. Вы не сможете без труда записать правила, которыми руководствуетесь, когда распознаете рукописные цифры, ловите бейсбольный мяч или узнаете голос матери, ведь вы делаете все это автоматически, не думая. Как выразился философ Энди Кларк, природа субсимволических систем такова, что у них “плохо с логикой, но хорошо с фрисби”[47].
Так почему бы не использовать символические системы для задач, которые требуют высокоуровневых языкоподобных описаний и логических рассуждений, а субсимволические системы – для низкоуровневых перцептивных задач, например для распознавания лиц и голосов? В некотором роде в ИИ было сделано именно так, причем между областями почти нет точек соприкосновения. Каждый из этих подходов добился серьезных успехов в узких сферах, но столкнулся с серьезными ограничениями для реализации изначальных целей ИИ. Хотя предпринимались попытки конструирования гибридных систем, сочетающих символические и субсимволические методы, ни одна из них пока не добилась сенсационного успеха.
Подъем машинного обучения
Вдохновленные статистикой и теорией вероятности, исследователи искусственного интеллекта создали множество алгоритмов, которые позволяют компьютерам учиться на данных, и область машинного обучения стала самостоятельным разделом ИИ, намеренно отделенным от символического ИИ. Специалисты по машинному обучению пренебрежительно называли методы символического искусственного интеллекта “старым добрым ИИ”, или GOFAI (
За последующие два десятилетия машинное обучение также прошло свои циклы оптимизма, государственного финансирования, появления стартапов и громких обещаний, за которыми наступали неизбежные зимы. Тренировка нейронных сетей и подобные методы решения реальных задач порой были чрезвычайно медленными и часто не приносили хороших результатов, учитывая ограниченный объем данных и малые вычислительные мощности, доступные в то время. Но не за горами были увеличение объема данных и повышение вычислительных мощностей. Все это обеспечил взрывной рост интернета. Все было готово для следующей крупной революции ИИ.
Глава 3
Весна ИИ
Весеннее обострение
Вы когда-нибудь выкладывали на
До недавних пор представления общества об ИИ в основном формировались многочисленными фильмами и телесериалами, где ИИ был настоящей звездой, – вспомните “Космическую одиссею 2001 года” или “Терминатора”. В реальном мире мы не замечали ИИ ни в прессе, ни в повседневной жизни. Если вы росли в 1990-е или ранее, возможно, вы помните удручающее взаимодействие с системами распознавания речи при обращении в службы поддержки, роботизированную игрушку
Возможно, именно поэтому многие удивились и расстроились, когда в 1997 году шахматная программа
Наш коллективный человеческий страх перед
Однако с середины 2000-х годов мы стали узнавать о новых достижениях ИИ, а затем его успехи понеслись друг за другом с головокружительной скоростью.
В 2011 году разработанная IBM программа
Шумиха вокруг искусственного интеллекта быстро стала оглушительной, и деловой мир обратил на это внимание. Все крупнейшие технологические компании направили миллиарды долларов на исследование и разработку ИИ, непосредственно нанимая специалистов по ИИ или приобретая небольшие стартапы с единственной целью заполучить их талантливых сотрудников. Потенциальная возможность таких сделок, мгновенно делающих основателей стартапа миллионерами, привела к появлению множества стартапов, часто финансируемых и управляемых бывшими университетскими преподавателями, у каждого из которых был свой подход к ИИ. Журналист Кевин Келли, освещающий новости мира технологий, заметил: “Несложно представить, какими будут бизнес-планы следующих 10 000 стартапов: возьмем что-нибудь и добавим ИИ”[53]. Важно подчеркнуть, что почти все эти компании понимали под ИИ глубокое обучение.
Так расцвела очередная весна ИИ.
ИИ: ограниченный и общий, слабый и сильный
Как и в любую из прошлых весен ИИ, сегодня эксперты предсказывают, что “общий ИИ” – тот, который по большинству параметров находится на одном уровне с человеческим разумом или превосходит его, – не заставит себя ждать. “ИИ человеческого уровня появится в середине 2020-х годов”, – предрек Шейн Легг, один из основателей
Хотя этот оптимизм во многом основан на недавних успехах глубокого обучения, эти программы – как и
Термины “ограниченный” и “слабый” используются в противовес “сильному”, “общему”, “полноценному”, или ИИ “человеческого уровня”, то есть искусственному интеллекту из кино, который умеет почти все, что умеют люди, или даже гораздо больше. Возможно, изначально исследователи ставили своей целью разработку общего ИИ, но создать его оказалось гораздо сложнее, чем ожидалось. Со временем работа над ИИ свелась к решению конкретных, четко определенных задач по распознаванию речи, игре в шахматы, беспилотному вождению и так далее. Создание машин, которые выполняют эти функции, полезно и часто прибыльно, и можно сказать, что при решении каждой из этих задач необходимо задействовать “разум”. Но пока еще не создана ни одна ИИ-программа, которую можно было бы назвать разумной в общем смысле. Это хорошо описано в недавней оценке состояния отрасли: “Множество ограниченных интеллектов никогда не составят в сумме общий интеллект. В общем интеллекте важно не количество навыков, а интеграция этих навыков”[57].
Постойте. Учитывая, что ограниченных интеллектов становится все больше, сколько времени должно пройти, прежде чем кто-нибудь найдет способ комбинировать их, воссоздавая широкие, глубокие и тонкие характеристики человеческого разума? Стоит ли верить когнитивисту Стивену Пинкеру, который считает, что ничего особенного не происходит? “До появления ИИ человеческого уровня по-прежнему остается от пятнадцати до двадцати пяти лет, как это было всегда, а многие его хваленые успехи поверхностны”, – отметил Пинкер[58]. Или же нам стоит прислушаться к оптимистам ИИ, которые уверены, что на этот раз, в эту весну ИИ, все будет иначе?
Неудивительно, что в среде исследователей ИИ бытуют значительные разногласия по вопросу о том, что означает “ИИ человеческого уровня”. Как понять, удалось ли нам сконструировать “думающую машину”? Нужны ли такой системе
Могут ли машины мыслить?
Подобные философские вопросы терзают сферу ИИ с самого ее возникновения. Британский математик Алан Тьюринг, разработавший в 1930-х годах первую концепцию программируемого компьютера, в 1950 году опубликовал статью, в которой спросил, что мы имеем в виду, когда задаем вопрос: “Могут ли машины мыслить?” Предложив свою знаменитую “имитационную игру” (которая сегодня называется тестом Тьюринга и подробнее о которой я расскажу ниже), Тьюринг перечислил девять возможных аргументов против создания действительно мыслящей машины и попытался их опровергнуть. Предполагаемые аргументы варьируются в диапазоне от теологического – “Мышление – это функция бессмертной человеческой души. Бог наделил бессмертными душами всех мужчин и женщин, но не дал их ни другим животным, ни машинам. Следовательно, ни животные, ни машины не могут мыслить”, – до экстрасенсорного, который звучит примерно так: “Люди могут телепатически общаться друг с другом, а машины не могут”. Как ни странно, Тьюринг признал последний аргумент “довольно сильным”, потому что “статистических наблюдений, по крайней мере о телепатии, несметное множество”.
По прошествии нескольких десятилетий лично я считаю самым сильным из вероятных аргументов Тьюринга “возражение с точки зрения сознания”, которое он формулирует, цитируя невролога Джеффри Джефферсона:
Пока машина не сможет написать сонет или сочинить концерт, побуждаемая мыслями и чувствами, а не случайной последовательностью символов, мы не сможем согласиться с тем, что машина тождественна мозгу, то есть что она не только пишет эти вещи, но и понимает, что это она их написала. Ни один механизм не может чувствовать (а не просто искусственно сигнализировать, что не требует сложного устройства) радость от своих успехов, печалиться при расплавлении клапанов, получать удовольствие от лести, огорчаться из-за ошибок, увлекаться противоположным полом и злиться или расстраиваться, когда ему не удается получить желаемое[59].
Обратите внимание, что в этом аргументе говорится следующее: 1) только когда машина