Автор книги: Стюарт Рассел
Жанр: Прочая образовательная литература, Наука и Образование
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 4 (всего у книги 22 страниц) [доступный отрывок для чтения: 7 страниц]
Интеллектуальные компьютеры
Исследования логики Аристотелем и другими мыслителями привели к созданию законов рационального рассуждения, но мы не знаем, задумывался ли Аристотель о возможности существования машин, основанных на этих законах. В XIII в. влиятельный каталонский философ, соблазнитель и мистик Раймунд Луллий значительно ближе подошел к этому вопросу: он изготовил бумажные колеса, исписанные символами, с помощью которых получал логические комбинации суждений. Великий французский математик XVII в. Блез Паскаль первым создал настоящий, действующий механический калькулятор. Хотя это устройство могло только складывать и вычитать и по большей части использовалось его отцом при сборе налогов, Паскаль написал: «Арифметическая машина создает эффекты, которые кажутся более близкими к рассуждению, чем любые действия животных».
Технология совершила огромный скачок в XIX в., когда британский математик и изобретатель Чарльз Бэббидж разработал аналитическую машину, программируемое универсальное устройство, основанное на принципах, позднее описанных Тьюрингом. В работе ему помогала Ада, графиня Лавлейс, дочь поэта-романтика и авантюриста лорда Байрона. Если Бэббидж надеялся использовать аналитическую машину для точных расчетов математических и астрономических таблиц, Лавлейс понимала ее истинный потенциал[52]52
Записи Лавлейс о вычислениях содержатся по большей части в ее примечаниях к собственному переводу комментариев итальянского инженера по поводу машины Бэббиджа: L. F. Menabrea, “Sketch of the Analytical Engine invented by Charles Babbage,” trans. Ada, Countess of Lovelace, in Scientific Memoirs, vol. III, ed. R. Taylor (R. and J. E. Taylor, 1843). Оригинальная статья Менабреа, написанная на французском языке на основе лекций, с которыми Бэббидж выступал в 1840 г., вышла в издании Bibliothèque Universelle de Genève 82 (1842).
[Закрыть], описав ее в 1842 г. как «думающую или… логическую машину», способную мыслить обо «всех предметах во Вселенной». Итак, базовые концептуальные элементы создания ИИ были готовы! С этого момента, бесспорно, создание ИИ становилось лишь вопросом времени…
К сожалению, долгого времени. Аналитическая машина так и не была построена, и идеи Лавлейс оказались практически забыты. Благодаря теоретической работе Тьюринга 1936 г. и последующему импульсу, приданному Второй мировой войной, универсальные вычислительные машины были наконец реализованы в 1940-х гг. Сразу же возникли замыслы создания разума. Статья Тьюринга 1950 г. «Вычислительная техника и интеллект»[53]53
Одна из ранних эпохальных статей о возможности искусственного интеллекта: Alan Turing, “Computing machinery and intelligence,” Mind 59 (1950): 433–60.
[Закрыть] является наиболее известной из множества ранних работ о возможностях интеллектуальных машин. Скептики уже заявляли, что машины никогда не смогут осуществить действие Х, где вместо Х можно поставить практически любую задачу, и Тьюринг отрицал эти заявления. Он также предложил операциональный тест интеллектуальности, названный имитационной игрой, который впоследствии (в упрощенном виде) стал известен как тест Тьюринга. Этот тест измеряет поведение машины, а именно ее способность заставить испытателя-человека думать, что он имеет дело с человеком.
Имитационная игра занимает специфическое место в статье Тьюринга – это мысленный эксперимент, призванный переубедить скептиков, предполагавших, что машины не способны приходить к верным выводам, опираясь на правильные рассуждения и с нужной степенью осознанности. Тьюринг надеялся перенаправить споры на вопрос о том, способна ли машина вести себя определенным образом; если оказалось бы, что она на это способна – что она может, скажем, осмысленно рассуждать о сонетах Шекспира и их смыслах, – то скептицизм в отношении ИИ утратил бы основания. В противоположность общераспространенным интерпретациям, я сомневаюсь, что тест задумывался как подлинное определение интеллектуальности в том смысле, что машина интеллектуальна тогда и только тогда, если проходит тест Тьюринга. Действительно, Тьюринг писал: «Разве не может машина осуществлять нечто, что можно описать как рассуждение, но что очень сильно отличается от того, что делает человек?» Другая причина не воспринимать этот тест как определение ИИ состоит в том, что с таким определением чудовищно тяжело работать. Поэтому исследователи, профессионально занимающиеся изучением ИИ, практически не предпринимали попыток пройти тест Тьюринга.
Тест Тьюринга бесполезен для ИИ, потому что это неформальное и чрезвычайно обусловленное определение: оно зависит от невероятно сложных и по большей части неизвестных характеристик человеческого ума, основывающихся на биологическом строении и культурном контексте. Невозможно «распаковать» это определение и на его основании создать машину, которая с высокой вероятностью пройдет тест. Вместо этого исследования ИИ сосредоточились на рациональном поведении согласно вышеописанному: машина интеллектуальна настолько, насколько вероятно, что ее действия приведут ее к тому, чего она хочет, при условии, что это желание было воспринято.
Сначала исследователи ИИ вслед за Аристотелем идентифицировали «то, что она хочет» как цель, которая либо достигается, либо нет. Такие цели могли возникать в мире игр, например в пятнашках, где целью является расположить все костяшки с числами по порядку от 1 до 15 в маленьком (смоделированном) квадратном лотке или же в реальном физическом окружении. В начале 1970-х гг. робот Shakey Стэнфордского исследовательского института в Калифорнии складывал большие блоки в желаемые конфигурации, а робот Freddy Эдинбургского университета собирал деревянную лодку из деталей. Вся эта работа выполнялась с использованием логических систем решения задач, направленных на составление и исполнение планов, гарантированно приводящих к успеху[54]54
Проект «Шейки» Стэнфордского исследовательского института описан в воспоминаниях одного из его руководителей: Nils Nilsson, “Shakey the robot,” technical note 323 (SRI International, 1984). В 1969 г. был снят 24-минутный фильм «Шейки: эксперименты по обучению и планированию в робототехнике», вызвавший общенациональный интерес.
[Закрыть].
К 1980-м гг. стало очевидно, что одного только логического рассуждения недостаточно, потому что, как уже отмечалось, не существует плана, гарантирующего, что вы «попадете в аэропорт». Логика требует определенности, а реальный мир попросту ее не обеспечивает. Между тем американо-израильский специалист по компьютерным наукам Джуда Перл, впоследствии получивший премию Тьюринга 2011 г., работал над методами рассуждения в условиях неопределенности, основанными на теории вероятности[55]55
Книга, ознаменовавшая начало разработки современного, вероятностного ИИ: Judea Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference (Morgan Kaufmann, 1988).
[Закрыть]. Все исследователи постепенно приняли идеи Перла; они вооружились инструментами теории вероятности и теории полезности, таким образом связав ИИ с другими областями знания: статистикой, теорией контроля, экономикой и исследованиями операций. Это изменение ознаменовало начало, в терминологии некоторых обозревателей, современного ИИ.
Агенты и среда
Центральным понятием современного ИИ является интеллектуальный агент – нечто способное воспринимать и действовать. Агент – это процесс, протекающий во времени, в том смысле, что поток воспринимаемых входных сигналов преобразуется в поток действий. Предположим, например, что рассматриваемый агент – беспилотное такси, везущее меня в аэропорт. Его входной сигнал может включать данные с восьми RGB-камер, делающих 30 кадров в секунду; кадр состоит из, допустим, 7,5 млн пикселей, каждый из которых имеет значение интенсивности изображения в каждом из трех цветовых каналов, что в сумме дает свыше 5 Гб в секунду. (Поток данных от 200 млн фоторецепторов сетчатки еще больше, что отчасти объясняет, почему зрением занимается такая большая часть человеческого мозга.) Такси также получает данные акселерометра 100 раз в секунду плюс данные GPS. Этот колоссальный поток первичной информации преобразуется прямо-таки гигантской вычислительной мощностью миллиардов транзисторов (или нейронов) в последовательное согласованное поведение по управлению автомобилем. Действия такси включают электронные сигналы, подаваемые на руль, тормоза и акселератор 20 раз в секунду. (У опытного водителя-человека вся эта колоссальная деятельность остается по большей части неосознанной: возможно, вы осознаете лишь принятие таких решений, как «обогнать этот медленный грузовик» или «остановиться на заправке», но ваши глаза, мозг, нервы и мышцы постоянно занимаются всей работой.) В случае шахматной программы входные данные – главным образом лишь показания таймера и время от времени уведомление о ходе противника и новом состоянии доски, тогда как действия состоят по большей части в том, чтобы не делать ничего, пока программа думает, и временами выбирать ход и уведомлять о нем противника. У личного цифрового ассистента вроде Siri или Cortana входные данные включают не только акустический сигнал с микрофона (получаемого 48 000 раз в секунду) и ввод тачскрина, но и содержание каждой интернет-страницы, к которой он получает доступ, тогда как действия охватывают речь и демонстрацию материала на экране.
Способ создания интеллектуального агента зависит от характера стоящей перед нами задачи. Это, в свою очередь, зависит от трех вещей: во-первых, от характера среды, в которой будет действовать агент (шахматная доска очень сильно отличается от переполненного шоссе или мобильного телефона); во-вторых, от наблюдений и действий, связывающих агента со средой (например, «Сири» может иметь или не иметь доступ к камере телефона, позволяющей ей видеть); в-третьих, от задачи агента (задача научить противника лучше играть в шахматы очень отличается от задачи выиграть матч).
Приведу лишь один пример того, как агент зависит от всего этого. Если поставлена задача выиграть данную партию, шахматная программа должна учитывать только текущее состояние доски и совершенно не нуждается в памяти о прошлых событиях[56]56
Строго говоря, шахматы не являются полностью наблюдаемыми. Программе все-таки приходится помнить небольшой объем информации, чтобы устанавливать допустимость рокировок и взятий на проходе и определять ничьи троекратным повторением позиции или правилом 50 ходов.
[Закрыть]. Обучающая программа, напротив, должна постоянно обновлять свою модель того, какие нюансы игры в шахматы ученик понимает и какие не понимает, чтобы иметь возможность давать полезные советы. Иными словами, для обучающей программы ум ученика является релевантной частью среды. Более того, в отличие от доски, это та часть среды, которая недоступна для прямого наблюдения.
Характеристики задач, влияющие на конструкцию агента, требуют ответа на следующие вопросы[57]57
Полное описание см. в главе 2 кн.: Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 3rd ed. (Pearson, 2010).
[Закрыть]:
● Является ли среда полностью наблюдаемой (как в шахматах, где ввод обеспечивает прямой доступ ко всем релевантным событиям текущего состояния среды) или частично наблюдаемой (как при управлении автомобилем, где поле зрения водителя ограничено, транспортные средства непрозрачны, а намерения других водителей неизвестны)?
● Являются ли среда и действия дискретными (как в шахматах) или фактически непрерывными (как при вождении)?
● Содержит ли среда других агентов (как в шахматах и вождении) или нет (как при поиске кратчайшего маршрута на карте)?
● Являются ли результаты действий, заданные «предписаниями» или «физикой» среды, предсказуемыми (как в шахматах) или непредсказуемыми (как при вождении и прогнозировании погоды), а сами предписания – известными или неизвестными?
● Испытывает ли среда динамическое изменение, вследствие чего время принятия решения жестко ограничено (как при вождении), или не испытывает (как в стратегии оптимизации налогообложения)?
● Каков период времени, для которого производится оценка качества решения в соответствии с задачей? Он может быть очень коротким (как при экстренном торможении), средним (как в шахматах, где матч длится до сотни ходов) или очень длинным (как при доставке меня в аэропорт, что может потребовать сотен тысяч циклов принятия решения, если такси принимает их 100 раз в секунду).
Как видите, эти характеристики порождают ошеломляющее многообразие типов задач. Одно лишь перемножение вышеперечисленных вариантов дает 192 типа. Для всех них можно найти примеры в реальном мире. Некоторые виды задач обычно изучаются вне сферы ИИ: например, разработка автопилота, поддерживающего полет в заданном эшелоне, – это непрерывная динамическая задача с коротким горизонтом – такие обычно решаются в теории автоматического управления.
Очевидно, некоторые типы задач проще других. ИИ достиг большого прогресса в таких задачах, как настольные игры и пазлы, которые являются наблюдаемыми, дискретными, детерминистскими и имеют известные правила. В отношении относительно более простых задач исследователи ИИ разработали общие и достаточно эффективные алгоритмы и достигли глубокого понимания теории. Часто машины в этих случаях превосходят результативность человека. Мы можем сказать, что алгоритм является общим, если имеются математические доказательства того, что он обеспечивает оптимальные или близкие к оптимальным результаты при разумной сложности вычислений во всем классе задач; если он хорошо работает на практике при решении этих типов задач, не требуя каких-либо модификаций под конкретную задачу.
Видеоигры, например StarCraft, несколько сложнее настольных: они включают сотни движущихся частей и временные периоды в тысячи шагов, а доска лишь частично видна в любой момент времени. В каждый момент игрок может иметь выбор по меньшей мере из 1050 ходов; для сравнения: в игре го лишь около 102 ходов[58]58
Размер пространства состояний в StarCraft рассматривается в статье: Santiago Ontañon et al., “A survey of real-time strategy game AI research and competition in StarCraft,” IEEE Transactions on Computational Intelligence and AI in Games 5 (2013): 293–311. Огромное количество ходов возможно, потому что игрок может перемещать все юниты одновременно. Число ходов снижается с введением ограничений относительно того, сколько юнитов или их групп могут быть перемещены одновременно.
[Закрыть]. С другой стороны, правила известны, а мир дискретен и включает немного типов объектов. На начало 2019 г. машинные программы были так же хороши, как некоторые профессиональные игроки в StarCraft, но еще не готовы бросить вызов самым лучшим игрокам-людям[59]59
О состязании человека и машины в StarCraft: Tom Simonite, “DeepMind beats pros at StarCraft in another triumph for bots,” Wired, January 25, 2019.
[Закрыть]. Что более важно, требуется немало ориентированных на конкретную задачу усилий, чтобы этого достичь; методы общего назначения для StarCraft не вполне разработаны.
Такие задачи, как руководство правительством или преподавание молекулярной биологии, намного сложнее. Они имеют комплексную, по большей части ненаблюдаемую среду (состояние целой страны или состояние ума студента), намного больше объектов и их типов, отсутствие четкого определения того, в чем заключаются действия, практически неизвестные правила, огромную неопределенность и очень длинные временные интервалы. У нас есть идеи и стандартные инструменты, направленные на каждую из этих характеристик в отдельности, но на данный момент нет общих методов, которые охватывали бы все характеристики одновременно. Если мы строим системы ИИ для задач этого типа, они обычно требуют сложной доработки под конкретную задачу и часто очень ненадежны.
Прогресс в движении к общности происходит, когда мы изобретаем методы, эффективные для самой трудной задачи в данном типе, или же методы, требующие меньшего количества допущений, что делает их применимыми к большему числу задач. ИИ общего назначения будет методом, применимым ко всем типам проблем и эффективно работающим в масштабных и трудных случаях, требуя очень мало допущений. Это конечная цель исследования ИИ: система, не требующая доработки под конкретную задачу, которую запросто можно «попросить» вести занятия по молекулярной биологии или руководить правительством. Она будет учиться тому, что ей нужно будет уметь, пользуясь всеми доступными ресурсами, при необходимости задавать вопросы и начнет формулировать и осуществлять работающие планы.
Такого метода общего назначения пока не существует, но мы к нему приближаемся. Возможно, вас удивит, что в значительной мере это приближение к универсальному ИИ обеспечивается исследованиями, не связанными с построением экономных систем ИИ общего назначения. Оно обеспечено изучением инструментов ИИ, или узкого ИИ, под которым подразумеваются точные, надежные, скучные системы ИИ, разработанные для конкретных задач, например игры в го или распознавания рукописных цифр. Многие считают, что исследование этого типа ИИ не несет в себе никакого риска, потому что связано с конкретными задачами и не имеет ничего общего с разработкой универсального ИИ.
Это убеждение вытекает из непонимания того, какого рода работа входит в круг задач этих систем. В действительности исследование инструментов ИИ может обеспечить и часто обеспечивает прогресс в создании универсального ИИ, особенно когда им занимаются талантливые ученые, берущиеся за задачи, которые выходят за рамки существующих общих методов. В данном случае «талантливые» означает, что подход к решению не сводится к простой кодировке действий разумного человека в такой-то ситуации, но представляет собой попытку наделить машину способностью находить решение самостоятельно.
Например, команда AlphaGo из Google DeepMind сумела создать программу игры го, обыгравшую чемпиона мира, не работая в действительности над программой игры в го. Я имею в виду, что они не писали полный код, предназначенный исключительно для го, указывая, что делать в разных ситуациях этой игры. Они не разрабатывали процедуры принятия решений, работающие только для го. Они внесли улучшения в два более-менее общих метода – прогностическое исследование для принятия решений и обучение с подкреплением для обучения оценке позиций, – и этого оказалось достаточно, чтобы играть в го на сверхчеловеческом уровне. Эти улучшения применимы ко многим другим задачам, в том числе до сих пор относимым к области робототехники. Просто для примера: версия AlphaGo под названием AlphaZero недавно научилась побеждать AlphaGo в го, а также сокрушила Stockfish (лучшую в мире шахматную программу, далеко опережающую любого человека) и Elmo (лучшую в мире программу для игры сёги, также играющую гораздо лучше любого человека). AlphaZero сделала все это за один день[60]60
AlphaZero описана в: David Silver et al., “Mastering chess and shogi by self-play with a general reinforcement learning algorithm,” arXiv:1712.01815 (2017).
[Закрыть].
Был также достигнут значительный прогресс в движении к ИИ общего назначения в исследовании распознавания рукописных цифр в 1990-х гг. Команда Яна Лекуна из AT&T Labs не писала специальные алгоритмы для распознавания «8» путем поиска изогнутых линий и петель, а усовершенствовала существующие алгоритмы обучения нейронных сетей, создав сверхточные нейросети. Эти сети, в свою очередь, продемонстрировали эффективное распознавание знаков после соответствующего обучения на категоризованных примерах. Те же алгоритмы могут научиться распознавать буквы, формы, стоп-сигналы, собак, кошек и полицейские автомобили. Под шапкой «глубокого обучения» они совершили переворот в распознавании речи и визуальных объектов. Они являются и одним из ключевых элементов AlphaZero, а также большинства сегодняшних проектов автомобилей с автопилотом.
Если задуматься об этом, не приходится удивляться, что приближение к универсальному ИИ происходит в проектах узкого ИИ, решающих конкретные задачи. Эти задачи дают исследователям какой-то материал для работы. (Поэтому никто не говорит: «Нужно просто смотреть в окно – так совершаются изобретения».) В то же время важно понимать, как далеко мы уже продвинулись и где проходят границы. Когда AlphaGo разбила Ли Седоля, а затем всех остальных лучших игроков в го, многие предположили, что, поскольку машина с нуля научилась побеждать человеческую расу в задаче, известной своей сложностью даже для высокоинтеллектуальных людей, это начало конца – главенствование над нами искусственного интеллекта лишь вопрос времени. Даже некоторые скептики могли сдаться, когда AlphaZero выиграла не только в го, но и в шахматы, и в сёги. Однако у AlphaZero жесткие ограничения: она работает только в классе дискретных, наблюдаемых игр для двух игроков с известными правилами. Этот подход попросту совершенно не сработает для вождения, преподавания, руководства правительством или захвата мира.
Вследствие четких ограничений возможностей машины, когда люди говорят, что «машинный IQ» быстро растет и грозит превзойти человеческий IQ, это нонсенс. Концепция IQ имеет смысл применительно к человеку, потому что способности людей обычно коррелируют в широком спектре умственной деятельности. Пытаться оценить IQ машины – все равно что пытаться заставить животное участвовать в человеческом десятиборье. Действительно, лошади могут быстро бегать и высоко прыгать, но сталкиваются с большими трудностями в прыжках с шестом и метании диска.
Цели и стандартная модель
Если рассматривать интеллектуального агента снаружи, то имеет значение только последовательность действий, которую он создает, исходя из получаемого им потока входных данных. При рассмотрении изнутри действия должны выбираться программой, заложенной в агента. Люди от рождения имеют, скажем так, одну агентскую программу, которая со временем заставляет их действовать с разумной мерой успешности при выполнении громадного круга задач. На сегодняшний день это не относится к ИИ: мы не знаем, как построить одну универсальную программу ИИ, которая делала бы все, и вместо этого создаем разные типы агентских программ для разных типов задач. Мне придется дать хотя бы минимальные объяснения того, как работают разные агентские программы. Более подробные объяснения вы найдете в приложениях в конце книги, адресованных тем, кому это будет интересно. (Ссылки на конкретные приложения даются верхними индексами, например здесьА и здесьГ.) В центре внимания вопрос о том, как стандартная модель реализуется в этих разных типах агентов – иными словами, как ставится задача и как она транслируется агенту.
Самый простой способ сообщить о поставленной задаче – в форме цели. Когда вы садитесь в свою машину с автопилотом и нажимаете иконку «дом» на экране, бортовой компьютер принимает это как поставленную задачу, переходит к плану и осуществляет движение по маршруту. Состояние мира или соответствует цели (да, я дома), или не соответствует (нет, я не живу в аэропорту Сан-Франциско). В классический период исследования ИИ, до 1980-х гг., когда неопределенность стала главной проблемой, большинство исследований исходило из восприятия мира как полностью наблюдаемого и детерминистского, и цели имели смысл в качестве способа постановки задачи. Иногда имеется также функция издержек для оценки решений: оптимальным является то решение, которое минимизирует совокупные издержки при достижении цели. В случае автомобиля она может быть встроенной – например, издержки маршрута есть некая фиксированная комбинация времени и потребления топлива, – или же у человека может быть опция установления соотношения между этими двумя параметрами.
Ключом к выполнению таких задач является способность «мысленно моделировать» эффекты возможных действий, которая иногда называется опережающим поиском. Ваша машина с автопилотом имеет внутреннюю карту и знает, что если ехать на восток от Сан-Франциско по Бэй-бридж, то попадешь в Окленд. Алгоритмы, восходящие к 1960-м гг.[61]61
Оптимальные маршруты определяются с помощью А алгоритма и множества производных от него: Peter Hart, Nils Nilsson, and Bertram Raphael, “A formal basis for the heuristic determination of minimum cost paths,” IEEE Transactions on Systems Science and Cybernetics SSC– 4 (1968): 100–107.
[Закрыть], находят оптимальные маршруты, заглядывая вперед и ведя поиск среди многих возможных последовательностей действийА. Эти алгоритмы являются повсеместным элементом современной инфраструктуры: они дают нам не только указания, куда ехать, но и решения в области авиапутешествий, роботизированной сборки, организации строительства и логистики в сфере доставки. С некоторыми модификациями по нейтрализации нежелательного поведения противников та же идея опережающего изучения используется в играх, таких как крестики-нолики, шахматы и го, целью которых является выигрыш в соответствии с конкретным определением этого понятия в данной игре.
Алгоритмы опережающего поиска чрезвычайно эффективны для своих специфических задач, но не отличаются гибкостью. Например, AlphaGo «знает» правила го, но только в том смысле, что имеет две подпрограммы, написанные на традиционном языке программирования наподобие С++: одна подпрограмма генерирует все возможные допустимые шаги, другая кодирует цель, определяя, является ли данное состояние выигрышем или проигрышем. Чтобы AlphaGo сыграла в другую игру, кто-то должен переписать ее код на С++. Более того, если вы задаете новую цель, скажем, посетить экзопланету на орбите Проксимы Центавра, она станет исследовать миллиарды последовательностей ходов в го в бесплодной попытке найти ту последовательность, которая приведет к достижению цели. Она не может заглянуть внутрь кода на С++ и понять очевидное: никакая последовательность шагов го не доставит вас на Проксиму Центавра. Знание AlphaGo, в сущности, заперто внутри «черного ящика».
В 1958 г., через два года после летнего собрания в Дартмуте, на котором и появилась сфера разработки ИИ, Джон Маккарти предложил намного более универсальный подход, открывающий «черный ящик»: написание разумных программ общего назначения, способных усваивать знание по любой теме и мыслить на его основе, чтобы ответить на любой вопрос, имеющий ответ[62]62
Статья, представившая программу Advice Taker и системы знания на основе логики: John McCarthy, “Programs with common sense,” in Proceedings of the Symposium on Mechanisation of Thought Processes (Her Majesty’s Stationery Office, 1958).
[Закрыть]. В особенности полезным здесь окажется практическое рассуждение того типа, что предложил Аристотель: «Выполнение действий А, Б, В… достигнет цели Г». Цель может быть какой угодно: убедиться, что в доме чисто, до того, как я там окажусь, выиграть в шахматы, не потеряв ни одного своего коня, снизить мои налоги на 50 %, посетить Проксиму Центавра и т. д. Новый класс программ, предложенный Маккарти, скоро получил название экспертной системы[63]63
Чтобы составить некоторое представление о значимости систем на основе знания, рассмотрим системы баз данных. База данных содержит четкие отдельные факты вроде местоположения моих ключей и личностей четырех моих друзей в Facebook. Системы баз данных не могут хранить общие правила, например правила игры в шахматы или юридическое определение британского гражданства. Они могут сосчитать, сколько людей по имени Алиса имеют друзей, которые носят имя Боб, но не способны определить, отвечает ли конкретная Алиса условиям предоставления британского гражданства, или приведет ли к победе определенная последовательность шахматных ходов. Системы баз данных не могут соединить два фрагмента знания, чтобы получить третий: они поддерживают функцию запоминания, но не мышления. (Действительно, многие современные системы баз данных дают возможность добавлять правила и использовать эти правила для получения новых фактов; в той мере, в которой они это делают, они являются системами на основе знания.) Хотя они представляют собой ограниченные версии систем на основе знания, системы баз данных лежат в основе большей части сегодняшней коммерческой деятельности и приносят сотни миллиардов долларов ежегодно.
[Закрыть].
Чтобы создание экспертной системы стало возможным, нужно ответить на два вопроса. Во-первых, как хранить знание в компьютере? Во-вторых, как добиться, чтобы компьютер правильно мыслил на основе этого знания, делая новые выводы? К счастью, древнегреческие философы, особенно Аристотель, дали базовые ответы на эти вопросы задолго до появления компьютеров. В действительности кажется вполне вероятным, что если бы Аристотель получил доступ к компьютеру (и электроэнергии, разумеется), то стал бы исследователем ИИ. Ответ Аристотеля, заново данный Маккарти, состоял в использовании формальной логикиБ как основы знания и рассуждения.
Для компьютерной науки по-настоящему важны два типа логики. Первая, так называемая пропозиционная, или Булева логика, была известна грекам, а также древнекитайским и индийским философам. Это тот же язык, что использует логические соединения «и», «нет» и т. д., составляющие структуру компьютерных чипов. В самом буквальном смысле современный микропроцессор – это просто очень большое математическое выражение, в сотни миллионов страниц, написанное на языке пропозиционной логики. Второй тип логики, тот, что Маккарти предложил для ИИ, называется[64]64
В русскоязычной литературе используется название «узкое исчисление предикатов». – Прим. ред.
[Закрыть] логикой первого порядкаБ. Язык логики первого порядка намного более выразителен, чем логики пропозиционной; это означает, что есть вещи, которые очень легко выразить в логике первого порядка, но чрезвычайно трудно или невозможно – в пропозиционной. Например, правила го занимают около страницы в логике первого порядка, но миллионы страниц в пропозиционной логике. Также легко выражается знание о шахматах, британском гражданстве, налогообложении, купле-продаже, движении, живописи, кулинарии и многих других сторонах нашего практического мира.
В принципе, способность мыслить в логике первого порядка позволяет нам далеко продвинуться на пути к универсальному интеллекту. В 1930 г. блестящий австрийский логик Курт Гёдель опубликовал знаменитую теорему о полноте[65]65
Оригинальная статья, описывающая теорему о полноте для логики первого порядка: Kurt Gödel, “Die Vollständigkeit der Axiome des logischen Funktionenkalküls,” Monatshefte für Mathematik 37 (1930): 349–60.
[Закрыть], доказывающую возможность существования алгоритма со следующим свойством[66]66
Алгоритм рассуждения в логике первого порядка тем не менее имеет недостаток: если ответа нет – то есть если доступного знания недостаточно, чтобы дать ответ, – то алгоритм может никогда не завершиться. Этого невозможно избежать: математически невозможно, чтобы верный алгоритм всегда прерывался, отвечая «я не знаю», в сущности, по той же причине, по которой ни один алгоритм не может решить проблему остановки.
[Закрыть]:
Для любого собрания знания и любого вопроса, выразимого в логике первого порядка, алгоритм даст нам ответ на этот вопрос, если тот существует.
Это, вообще говоря, неслыханная гарантия. Она означает, к примеру, что мы можем объяснить системе правила игры в го и она ответит нам (если мы подождем достаточно долго), ведет ли этот дебютный ход к победе в партии. Мы можем сообщить ей факты о местной географии, и она укажет нам путь в аэропорт. Мы можем предоставить ей факты о геометрии, движении и столовых приборах, и она укажет роботу, как накрыть стол к ужину. В общем, получив любую достижимую цель и достаточное знание о последствиях своих действий, агент может использовать алгоритм для создания плана, который затем выполнит, чтобы достичь цели.
Следует сказать, что Гёдель не предложил сам алгоритм – он только доказал его существование. В начале 1960-х гг. стали появляться реальные алгоритмы логического вывода[67]67
Первый алгоритм доказательства теорем в логике первого порядка, занимающийся сокращением предложений первого порядка до (очень многочисленных) пропозиционных предложений: Martin Davis and Hilary Putnam, “A computing procedure for quantification theory,” Journal of the ACM 7 (1960): 201–15. Алгоритм разрешения Робинсона выполнял действия непосредственно над логическими предложениями первого порядка, используя «унификацию» для сопоставления комплексных выражений, содержащих логические переменные: J. Alan Robinson, “A machine-oriented logic based on the resolution principle,” Journal of the ACM 12 (1965): 23–41.
[Закрыть], и казалось, что мечта Маккарти об универсальных интеллектуальных системах на основе логики вот-вот сбудется. Первый в мире проект создания крупного мобильного робота, стэнфордский «Шеки», был основан на логическом рассуждении (см. рис. 4). Шеки получал цель от разработчиков-людей, с помощью алгоритмов визуализации создавал логические предположения, описывающие текущую ситуацию, выводил логическое умозаключение, чтобы построить план, гарантированно приводящий к цели, а затем выполнял этот план. Шеки был «живым» доказательством того, что аристотелевская концепция человеческого мыслительного процесса и действия по крайней мере частично верна.
К сожалению, Аристотель (и Маккарти) были правы далеко не полностью. Главной проблемой является невежество – разумеется, не Аристотеля или Маккарти, а всех людей и машин, настоящих и будущих. Лишь в очень немногом из нашего знания мы абсолютно уверены. Особенно важно, что мы очень мало знаем о будущем. Невежество – прямо-таки непреодолимая проблема для чисто логической системы. Если я спрошу: «Приеду ли я вовремя в аэропорт, если выйду за три часа до вылета?» или «Смогу ли я обзавестись домом, купив выигрышный лотерейный билет и приобретя дом на выигрыш?» – правильным ответом будет: «Не знаю». Дело в том, что на любой из вопросов с точки зрения логики одинаково возможны ответы «да» и «нет». На практике невозможно быть совершенно уверенным в ответе на любой эмпирический вопрос, если ответ еще не известен[68]68
Возникает вопрос, как логический робот Shekey вообще приходил к каким-либо определенным выводам о том, что делать. Ответ прост: база знаний Shekey включала ложные предположения. Например, он был убежден, что, если выполнить «протолкнуть объект А через дверь Г в комнату Б», то объект А в результате окажется в комнате Б. Это было ложное убеждение, потому что Shekey мог застрять в дверях, промахнуться мимо двери, или кто-то мог коварно похитить объект А у него из захвата. Его модуль выполнения плана был способен зарегистрировать провал плана и провести соответствующее перепланирование, так что, строго говоря, Shekey не был чисто логической системой.
[Закрыть]. К счастью, определенность совершенно не обязательна для того, чтобы действовать: нам достаточно знать, какое действие является наилучшим, а не какое обречено на успех.
В силу неопределенности «заложенное в машину назначение» не может, в общем, быть точно известной целью, которой следует добиваться любой ценой. Больше не существует такой вещи, как «последовательность действий, достигающая цели», поскольку любая последовательность действий будет иметь множественные результаты, часть которых не достигнет цели. Вероятность успеха действительно важна: выехав в аэропорт за три часа до вылета, вы, возможно, не опоздаете на самолет, а купив лотерейный билет, возможно, выиграете достаточно, чтобы купить новый дом, но это очень разные возможно. Вы не можете гарантировать достижение цели, даже выбирая план, максимизирующий вероятность ее достижения. План с наибольшей вероятностью поспеть на рейс может предполагать выезд из дома за несколько дней, организацию вооруженного эскорта, готовность разнообразных альтернативных средств транспорта на случай, если другие сломаются, и т. д. Неизбежно приходится принимать в расчет относительную желательность каждого исхода, а также его вероятность.
Таким образом, вместо цели мы можем использовать функцию полезности для описания желательности разных исходов или последовательностей состояний. Часто полезность последовательности состояний выражается в сумме вознаграждений за каждое состояние в последовательности. Если цель определена через функцию полезности или вознаграждения, машина ориентируется на поведение, максимизирующее ожидаемую полезность или ожидаемую сумму вознаграждений, усредненных по возможным результатам с весами-вероятностями. Современный ИИ отчасти возрождает мечту Маккарти, только с полезностями и вероятностями вместо целей и логики.
Пьер-Симон Лаплас, великий французский математик, писал в 1814 г.: «Теория вероятности есть обычный здравый смысл, сведенный к расчетам»[69]69
Ранние замечания о роли вероятности в человеческом мышлении: Pierre-Simon Laplace, Essai philosophique sur les probabilités (Mme. Ve. Courcier, 1814).
[Закрыть]. Однако только в 1980-х гг. были разработаны практический формальный язык и алгоритмы формирования рассуждений для вероятностного знания. Это был язык Байесовых сетейВ, предложенный Джудой Перлом. Попросту говоря, Байесовы сети – вероятностные родственники пропозиционной логики. Они также являются вероятностным подобием логики первого порядка, в том числе Байесовой логики[70]70
Описание Байесовой логики доступным языком: Stuart Russell, “Unifying logic and probability,” Communications of the ACM 58 (2015): 88–97. Статья опирается на исследование моего бывшего студента Брайана Милча, проведенное в ходе работы над диссертацией на соискание звания доктора философии.
[Закрыть] и большого разнообразия языков вероятностного программирования.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?