История искусственного интеллекта начинается в эру символизма. Начавшись в Дартмуте в 1956 году, она продлилась до 1990-х, когда бразды правления взяла эра обучения. Истоки символической эры начинаются задолго до 1956-го, Алана Тьюринга и Ады Лавлейс, их можно обнаружить в Древней Греции, Китае, Индии и исламских культурах.
Например, в III веке до н. э. в Афинах Аристотель разработал одну из первых символических логик. Скорее всего, вы впервые познакомились с понятием логики через его знаменитый силлогизм: Все люди смертны. Сократ человек. Следовательно, Сократ смертен. Здесь слова «человек», «смертен» и «Сократ» являются символами. Они отражают понятие человека, свойство смертности и личности Сократа соответственно. Я могу заменить эти символы другими, например «медведь», «бурый» и «Кнут». Теперь эти символы будут отражать понятие медведя, свойство иметь бурый окрас и знаменитого полярного медведя по имени Кнут. И тогда знаменитый аристотелевский силлогизм превращается в такое утверждение: Все медведи бурые. Кнут медведь. Следовательно, Кнут бурый. Конечно, начав с того, что все медведи бурые, я могу вызвать ошибочное представление о белых медведях вроде Кнута. Но, несмотря на эти проблемы, легко понять, что компьютеры без особых сложностей обрабатывают такие символы. Таким образом, символы играют ключевую роль в мыслительных, а не только вычислительных способностях компьютера.
Илл. 5. В 2007 году Кнут впервые появился в Берлинском зоопарке
Очень просто поддаться западному шовинизму и проглядеть важнейший вклад людей с другого конца планеты. Например, за два века до Аристотеля в древнем индийском тексте Ньяя-сутры на санскрите появляется силлогизм. А Логики[28], как и предполагает их название, были представителями философской школы, интересовавшейся логическими рассуждениями примерно в то же самое время, что и Аристотель, только далеко от Афин, во времена династии Чжоу в Китае.
Символы – это основа искусственного интеллекта. Думаю, что здесь нет ничего удивительного. Интеллект связан с языком. Не является ли язык продуктом мысли? Но и язык сам по себе является набором символов. На деле же символы обозначили одну из фундаментальных проблем, с которой столкнулся искусственный интеллект, так называемая проблема заземления символов. Как мы «заземляем» или соединяем символы в компьютере с их значением в реальном мире? Как, например, мы понимаем, что слово «Сократ» означает «древнегреческий философ Сократ»? Или что «Кнут» – это (к сожалению, уже ушедший из жизни) полярный медведь по имени Кнут? Знаменитый американский философ и ИИ-скептик Джон Сёрл описал эту проблему в своем знаменитом тезисе под названием «Китайская комната»:
«Представим, что в комнате, полной коробок с китайскими иероглифами (база данных), закрыли носителя английского языка, который не говорит по-китайски, но дали ему книгу с инструкцией по обработке символов (программа). Представим, что люди за пределами этой комнаты отправляют другие, неизвестные человеку в комнате китайские символы, которые являются вопросами на китайском языке (входные данные). И представим, что, следуя этим инструкциям в программе, человек в комнате способен выдать китайские символы, которые являются правильными ответами на вопросы (выходные данные). Программа позволяет человеку в комнате пройти тест Тьюринга на понимание китайского, когда на самом деле он не знает и слова по-китайски» [1].
Китайская комната Сёрла – аргумент против того, что компьютеры обладают «разумом», «пониманием» и даже «сознанием». К счастью, его позиция оставила открытой саму идею искусственного интеллекта. Такая китайская комната, которую описывает Сёрл, уже существует. Насколько нам известно, ее существование не нарушит никакие законы физики, даже если мы попытаемся соединить символы в китайской комнате с соответствующими понятиями за пределами планеты. Программа на основе искусственного интеллекта способна, как и китайская комната, ответить разумно на вопросы – без понимания символов или заземления их в реальности.
Эту идею – представлять концепции окружающего мира с помощью символов – мы все используем ежедневно. Например, мы успешно представляем страны всего мира в виде двузначных чисел: 61 – для Австралии, 32 – для Бельгии, 86 – для Китая, 45 – для Дании, 20 – для Египта, 33 – для Франции. Как вы уже могли догадаться, эти цифры обозначают международный телефонный код. Телефонная сеть представляет собой огромный распределительный компьютер, использующий эти математические символы для маршрутизации вызова. В авиации трехбуквенные символы обозначают название аэропорта: SYD – Международный аэропорт Сиднея имени Кингсфорда Смита, JFK – Международный аэропорт имени Джона Кеннеди в Нью-Йорке, PEK – Международный аэропорт Шоуду (Пекин-Столичный), LHR – Международный аэропорт Хитроу в Лондоне. Символы объединяют мир. И, как предсказала Ада Лавлейс, мы также можем использовать математические символы для обозначения музыкальных нот, превратить буквы в слово или точки в картинку. Изображение на вашем смартфоне – это не более чем длинная последовательность нулей и единиц, как и голосовое сообщение, которое только что оставил ваш начальник.
Учитывая роль символов, фундаментальный вопрос искусственного интеллекта достаточно прост. Как мы можем управлять символами более осознанно? Это естественно подводит нас к первой из шести главных на сегодняшний день идей искусственного интеллекта. Это идея управления символами, и она смехотворно проста. Большинство проблем сводится к поиску их решения.
Звучит не только просто, но и самоочевидно, поэтому дайте мне немного усложнить. Множество проблем в области искусственного интеллекта сводится к тому, что компьютер будет искать свое внутреннее представление о мире начиная с символа, обозначающего исходное состояние, и заканчивая символом конечной цели.
Эта идея не является новаторской и носит название «Навигация». Вы изучаете карту, чтобы проложить маршрут из точки отправления до желаемого пункта назначения. Мы делаем это постоянно. Используя карту лондонского метро, мы можем добраться от Бонд-стрит до вокзала Кингс-Кросс следующим маршрутом: садимся на центральную линию и едем от Бонд-стрит до Оксфордского цирка, далее делаем переход на линию Виктории и едем до Уоррен-стрит, а затем, проезжая станцию «Юстон», доезжаем до станции «Кингс-Кросс». Разница только в том, что вместо того, чтобы самостоятельно проложить маршрут, за нас это делает компьютер. Действительно, существуют специальные алгоритмы, которые исследуют карту и эффективно находят такие маршруты. Один из самых известных – это «Поиск A*» (или «Алгоритм А*»). Покидая Бонд-стрит, он ведет не на запад к Мраморной арке, а на восток, к Оксфордскому цирку, поскольку это приближает вас к конечной точке, станции «Кингс-Кросс».
Илл. 6. Шейки, первый передвигающийся робот, способный рассуждать о том, как перемещаться по окружающей местности
Поиск A* был разработан в 1968 году для навигации робота Шейки (Shakey) [2]. Это имя (с английского – «Шаткий») ему подходило: робот действительно двигался довольно неуверенно. Он был сконструирован Стэнфордским исследовательским институтом в Менло-Парк, штат Калифорния. Это была первая попытка построить полноценного робота, такого, как вы могли видеть в фильмах – робота, оснащенного камерой для восприятия окружающего мира, микрофоном для распознавания команд, колесами и двигателем для наземной навигации и бортовым компьютером для принятия решений. В 2004 году Шейки был увековечен в Зале славы роботов Университета Карнеги-Меллона наравне с некоторыми более знаменитыми, но вымышленными роботами, такими как HAL 9000, R2–D2, C–3PO и робот Робби.
Компьютер Шейки имел электронную карту своего мира. Робота можно было попросить выполнить задачу, например: Шейки, сходи, пожалуйста, в библиотеку и принеси книгу. Он начнет исследовать свою электронную карту при помощи Поиска A*, выбирая подходящий маршрут из символов, обозначающих текущее местоположение, до символов, обозначающих библиотеку. Двигатель Шейки также проследует по маршруту, используя камеру, датчики для определения расстояний и датчики ударов для отслеживания прогресса до достижения цели.
В отличие от людей, которые не всегда с успехом находят дорогу, Поиск A* математически совершенен. Что я имею в виду? Во-первых, он полноценный. Если есть какой-либо маршрут из точки А в точку Б, то A* найдет его. Во-вторых, он оптимален. Построенный алгоритмом маршрут из точки А в точку Б будет самым коротким из возможных. И в-третьих, он максимально эффективен. То есть при поиске кратчайшего маршрута от A до Б алгоритм A* исследует как можно меньшую часть карты. Вы не сможете найти маршрут, используя меньший объем поиска! Чтобы доехать от Бонд-стрит до Кингс-Кросс он не будет учитывать вариант с Мраморной аркой.
Прежде чем отбросить Поиск A* как любопытный анекдот в истории искусственного интеллекта, вам следует осознать, что это, вероятно, один из самых типичных примеров использования искусственного интеллекта в нашей повседневной жизни. Каждый раз прокладывая маршрут на своем телефоне или используя GPS в машине, вы используете программу на основе Поиска А*, которая ищет наиболее короткий маршрут, учитывая дорожные условия, пробки, перекрытие дорог и информацию о расписании общественного транспорта. Иронично, что изначально алгоритм Поиск А* разрабатывался для навигации роботов, а сейчас используется для навигации людей. Не знаю как для вас, но для меня это одно из невероятных улучшений моей жизни. Теперь я не теряю время, потерявшись в переулке, и не спеша могу добраться до места вовремя.
Простую идею поиска можно перевести на другой уровень – увеличить размер карты, поставить задачу сложнее, чем поиск маршрута, например собрать сложный пазл или доказать трудную метаматематическую теорему.
Возьмем популярную головоломку «Пятнашки 3×3», где в поле 3×3 восемь клеток заполнены. Цель – расположить все восемь ячеек в числовом порядке. Мы можем представить это в виде задачи поиска и предоставить Поиску А* найти решение. В этой задаче ячейки головоломки представляют собой точки на карте. Два состояния считаются смежными, если переместить можно только одну ячейку. Для решения этой головоломки нам необходимо найти путь от заданной начальной точки до конечной в числовом порядке.
Илл. 7. Пример поиска решения «Пятнашки 3×3»
В начальной точке показанного на иллюстрации 7 древа поиска пустая ячейка находится в нижнем ряду посередине. Первый шаг – сдвинуть ячейку 6 вниз, создав пустое поле посередине. Аналогично, вторым шагом надо сдвинуть восьмерку в верхнем ряду вниз, создав пустое поле уже в средней ячейке верхнего ряда. Следующие два хода будем передвигать пустую ячейку против часовой стрелки. Наконец, переместив восьмерку влево, мы приходим в конечную точку, где цифры расположены в числовом порядке вокруг пустой ячейки в середине квадрата.
Роботы по типу Шейки обладают полной картой. Каждая точка представлена определенным символом, а соседние в реальном мире локации связаны и в карте. Что, если мы представим локации не совсем очевидным способом? Тогда мы сможем проводить поиски даже на бесконечном пространстве.
Первые новаторы в области искусственного интеллекта Аллен Ньюэлл и Герберт Саймон продемонстрировали эти идеи на Дартмутском семинаре в 1956 году, представив свою программу Logic Theorist («Теоретик логики»). В то время Ньюэлл работал в аналитическом центре корпорации RAND, но в 1961-м перешел в Университет Карнеги-Меллон (позже Технический университет Карнеги), чтобы продолжить совместную работу с Саймоном, профессором промышленного менеджмента. Саймон был настоящим междисциплинарным гением. В 1978 году ему была присуждена Нобелевская премия по экономике. Его исследовательские интересы охватывали такие области, как когнитивистика, информатика, государственное управление, менеджмент и политология. Тем не менее двигателем всех его исследований была попытка понять концепцию принятия решений человеком с точки зрения науки. В 1947-м он писал:
«Человек, стремясь к рациональности и будучи ограниченным в своих знаниях, создал определенные рабочие процессы, которые частично помогают устранить эти трудности. Такие процессы заключаются в предположении, что он может обособить от всего мира закрытую систему из ограниченного количества переменных и ограниченного ряда последовательностей» [3].
Переписывание основ математики – это поступок как раз в духе Бертрана Рассела. Его часто считают одним из самых умных англичан. Томас Стернз Элиот рассказал историю, как его однажды узнал лондонский таксист. Элиот был удивлен, поскольку поэтов не часто узнают на улице. «У меня глаз наметан на знаменитостей, – якобы ответил водитель. – На днях я подвозил лорда Рассела и сказал ему: “Ладно, Бертран, так о чем, собственно, речь?” И знаете что? Он не смог ответить». Дэниел Хэннан рассказал эту историю в статье «Та же старая песня» в журнале The Spectator в 2015 году.
Саймон и Ньюэлл приступили к описанию «рабочих процессов» в таких компьютерных программах, как Logic Theorist.
Logic Theorist часто называют «первой программой на базе искусственного интеллекта», но она вовсе таковой не была. Первыми стали программа для игры в шашки, написанная Артуром Сэмюэлом в 1952 году, и Turochamp, шахматная программа 1948 года от Алана Тьюринга и его друга Дэвида Чемперноуна. Чуть позже мы об этом поговорим. Тем не менее Logic Theorist – первая программа, разработанная для доказательства математических теорем и демонстрации силы рассуждения при помощи символов. В действительности, Logic Theorist доказал 38 из 52 теорем из знаменитого труда по математике Альфреда Уайтхеда и Бертрана Рассела Principia Mathematica[29].
Principia Mathematica делает попытку изложить основы всей математики. Этот труд содержит доказательства некоторых фундаментальных математических истин, таких как modus tollens (рассуждение от противного), закон контрапозиции, который говорит нам, что если истинность P предполагает истинность Q, то ложность Q влечет за собой ложность P. Если, выигрывая в лотерею, вы счастливы, то несчастны вы из-за того, что не можете выиграть в лотерею. Этот логический аргумент уходит корнями глубоко до начала проведения лотереи Powerball, прямиком в III век до н. э., к Теофрасту[30], члену аристотелевской школы перипатетиков[31].
Logic Theorist не только доказывал теоремы из Principia Mathematica по типу modus tollens, но и открывал новые, а в некоторых случаях и доказывал их. Logic Theorist буквально переписал основы математики, в точности как Уайтхед и Рассел сделали, написав Principia Mathematica. Он искал новые математические истины, начиная с простейших аксиом и ранее установленных фактов, получая из этого новые математические истины до тех пор, пока успешно не достиг цели. Таким образом, он перемещался по бесконечной карте математических истин в поисках новых.
Искусственный математик Logic Theorist был научным прорывом. Кто бы мог представить в 1956 году, в самом начале стремления создать искусственный интеллект, что машины уже так скоро смогут доказывать теоремы? Памела Маккордак, одна из первых историков искусственного интеллекта, писала, что Logic Theorist был «убедительным доказательством того, что машина может выполнять задачи, которые до сих пор считались разумными, творческими и присущими только человеку» [4]. Герберт Саймон сделал более смелое заявление о своем изобретении: «Мы создали компьютерную программу, способную на нечисловое мышление и, таким образом, способную решить древнюю проблему взаимодействия разума и тела, объяснив, как система, состоящая из материи, может обладать свойствами разума» [5].
Илл. 8. Головоломка «Ханойская башня»
Боюсь, что мы уже живем в мире сенсационных заявлений и мифов, о котором нас предупреждал Артур Сэмюел. «Мышление» – это нечто большее, чем доказательство простых логических утверждений, а решение “проблемы разума и тела” – еще большее, чем это». Тем не менее Logic Theorist на самом деле был важным этапом в развитии искусственного интеллекта. Впервые машина стала способна выполнять действия, на которые ранее был способен только человек. Машина смогла доказать сложнейшие математические теоремы.
Вдохновленная успехом Logic Theorist, команда калифорнийских исследователей и создателей робота Шейки изобретает STRIPS (Stanford Research Institute Problem Solver), специалиста по решению проблем от команды Стэнфордского исследовательского института [6]. Программа на основе искусственного интеллекта была «мозгом» робота. STRIPS достигал поставленной для робота цели, исходя из задачи: пожалуйста, дай мне книгу, и искал пути для ее осуществления, разбивая на шаги, которым дальше следовал робот. Иди в библиотеку. Возьми книгу. Вернись из библиотеки с книгой. В отличие от Logic Theorist, который был ограничен лишь поиском доказательств для математических утверждений, STRIPS в теории мог решить любую проблему. Подвох заключался в формулировании проблемы в виде логического высказывания, делая его похожим на своего рода математическую задачу, которую решал Logic Theorist.
Представим, что роботу поручили решить головоломку «Ханойская башня». Эта перестановочная головоломка состоит из трех стержней, на которые надеты несколько дисков разного диаметра. Изначально все диски расположены на левом стержне, самый большой диск находится внизу, а самый маленький вверху. Цель – переместить и расположить все диски в том же порядке на правом стержне. В процессе решения головоломки игрок может передвигать за раз только один диск. Каждый шаг – это перенос верхнего диска с одного стержня на верх другого. Чтобы усложнить задачу, игроку нельзя класть больший диск на меньший, только меньший на больший.
Решения «Ханойской башни» достаточно сложны. Если в головоломке только два диска, игрок берет меньший из них с левого стержня и оставляет на пустом стержне посередине. Затем переносит большой диск с левого на пустой правый стержень.
Теперь игрок может переместить маленький диск со среднего стержня, надев его поверх большого на правом стержне. Пирамида из двух дисков, расположенных от большего к меньшему, теперь на правом стержне.
Это не так уж и сложно, пока есть всего два диска. Чем больше дисков, тем запутаннее и сложнее становится решение. С тремя дисками требуется семь шагов, чтобы решить головоломку, с четырьмя дисками – 15 шагов, с пятью – 31 шаг, а с шестью – 63 шага. С каждым прибавлением всего одного диска общее количество шагов увеличивается больше чем вдвое. Математики называют это комбинаторным взрывом.
Так как же STRIPS решает проблемы? Данные головоломки представлены набором математических истин “on(disc2,peg1)” и “on(disc1,disc2)”. Следовательно, в исходном значении большой диск, обозначенный disc 2, расположен на левом стержне peg 1, тогда как маленький диск disc 1 располагается сверху большого disc 2. Получается, что конечная цель “on(disc2, peg3)” и “on(disc1,disc2)”. Следовательно, большой disc 2 должен находиться на правом стержне peg 3, а маленький disc 1 поверх большого disc 2. Существует набор математических операторов для преобразования одного состояния в другое. Например, одним шагом оператор может преобразовать “on(disc1,disc2)” в “on(disc1,peg2)”, передвинув маленький disc 1, расположенный на большом disc 2, на средний стержень peg 2.
«Ханойская башня» окружена множеством мифов. Один из них заключается в том, что эта головоломка пришла к нам из древнеиндуистского храма Каши Вишванатх. На трех потертых столбах в одном из помещений храма были нанизаны 64 золотых диска. Сотни лет брахманы передвигали диски с одного столба на другой. Задача была сродни подвигам Геракла. Если бы монахи перемещали один диск каждую секунду, то им понадобилось бы около 600 миллионов лет, чтобы достигнуть цели[32]. К счастью для человечества, легенда также гласит, что, когда монахи решат эту головоломку, наступит конец света.
Настоящее происхождение «Ханойской башни» куда прозаичнее. Игру придумал французский математик Эдуард Люка[33] в 1889 году как один из способов увлекательного времяпрепровождения. До 1956 года эта игра поистине бросала вызов роботам, пока мы не начали создавать таких роботов, как Шейки.
Что действительно сделало STRIPS эффективным и могущественным, так это разделение математического описания задачи от описания ее решения. Такое разделение содержания проблемы от ее решения стало одной из главных особенностей эры символизма. Мы отделили что от как. Чтобы STRIPS решил новую задачу, мы просто меняем что, а не как. Добавить еще один диск на «Ханойскую башню»? Не проблема. Просто меняем описание задачи и добавляем еще один диск. Два диска одного размера? Снова не проблема. Просто меняем описание задачи.
Главная мотивация к такому разделению заключалась в том, что множество задач могут быть решены аналогичными способами. Следовательно, при обновлении задачи нам не нужно каждый раз обновлять описание того, как ее решить. В действительности у STRIPS был простой и универсальный способ решения задач «анализ средств и целей», при котором проводится поиск различий между текущим и целевым состоянием, а затем применяется оператор, устраняющий эти различия.
Например, одно из различий между исходным и целевым состояниями «Ханойской башни» заключается в том, что самый большой диск нанизан не на тот стержень. Исходное состояние – на левом стержне “on Peg 1”. Конечное состояние – на правом стержне “on Peg 3”. Анализ средств и целей предполагает, что нам необходимо переместить самый большой диск с исходного стержня на конечный. Это подразумевает новую подцель – переместить любой диск, находящийся над самый большим, таким образом, что мы сможем его высвободить и переместить на конечный стержень. Затем мы рекурсивно применяем анализ средств и целей к этой подцели – освобождению самого большого из оставшихся дисков, что позволит убрать с пути диски меньшего размера.
Анализ средств и целей – мощный способ для решения задач, который также применим и в нашей обычной жизни. Хотите вырастить собственные помидоры? Тогда сделайте из уголка вашего сада огород. Хотите сделать огород? Тогда удалите сорняки и вскопайте почву. Хотите вскопать почву? Тогда достаньте лопату из гаража. Хотите избавиться от сорняков? Тогда купите гербициды.
В теории мы можем сформулировать любую проблему в том виде, в котором STRIPS может ее решить, затем искать ответ, используя анализ средств и целей, но на практике выходит, что не совсем можем, поскольку сталкиваемся с ранее упомянутым «комбинаторным взрывом». Количество возможных выборов, которые мы должны учесть при поиске решения, экспоненциально растет и вскоре становится неподвластным.
Экспоненты становятся запредельно большими. Знаменитая притча об изобретении шахмат поможет понять, какие проблемы возникают у искусственного интеллекта в этом случае. Жил на свете человек, и создал он шахматы, которые захотел показать императору Индии. Император был настолько поражен и благодарен, что предложил изобретателю самому выбрать награду, ожидая, что он попросит золото или другие богатства. Изобретатель же попросил всего лишь рис.
«Император, мои желания очень просты. Я хотел бы только одного. Дайте мне одно рисовое зернышко за первую клетку шахматной доски, два зернышка – за вторую клетку, четыре зернышка – за следующую, восемь – за следующую и так далее за все 64 клетки».
Император сразу же согласился, не осознавая экспоненциальную опасность просьбы. Повторные удвоения вскоре делают числа очень большими. Сумма зерен на доске окажется больше, чем 18 квинтиллионов. Если быть предельно точным, то на всей шахматной доске будет 18 446 744 073 709 551 616 рисинок. Такое количество риса покрыло бы всю Индию слоем глубиной практически в метр.
Примеры экспоненциального роста мы наблюдаем каждый день: от инфекционных заболеваний, таких как COVID–19, распространяющихся молниеносно по всей планете, до ядерных цепных реакций, высвобождающих огромную энергию. Как и императору, нам не всегда удается интуитивно понять, как скоро что-то удваивающееся сможет выйти из-под контроля. Такие экспоненты – проблемы, продолжающие преследовать искусственный интеллект и сегодня. К ним также относится и вопрос, почему такие чат-боты, как ChatGPT, могут сочинить сонет в стиле Шекспира, но испытывают трудности при логическом мышлении. Логические выводы резко умножаются. Два больше, чем один. Три больше, чем один. Четыре больше, чем один. Экспоненциальный рост настигнет искусственный интеллект раньше, чем он попытается подумать. ChatGPT может без особых трудностей написать текстовый абзац, но не способен на простые умозаключения. Ему даже сложно считать и складывать.
Давайте я вам покажу.
Я: Сколько букв в слове «идеально»?
ChatGPT: В слове «идеально» девять букв[34].
Я: Нет, в слове восемь букв.
ChatGPT: На самом деле, в слове «идеально» девять букв. Вы можете сами посчитать их: и, д, е, а, л, ь, н, о.