Люгер, Джордж, Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание. : Пер. с англ. - М.: Издательский дом "Вильяме", 2003. - 864 с.-С.5-217.
Данная книга посвящена одной из наиболее перспективных и привлекательных областей развития научного знания - методологии искусственного интеллекта. В ней детально описываются как теоретические основы искусственного интеллекта, так и примеры построения конкретных прикладных систем. Книга дает полное представление о современном состоянии развития этой области науки.
Книга будет полезна как опытным специалистам в области искусственного интеллекта, так и студентам и начинающим ученым.
Оглавление
Предисловие 19
Часть I. Искусственный интеллект: его истоки и проблемы 27
Глава 1. Искусственный интеллект: история развития и области приложения 29
Часть II. Искусственный интеллект как представление и поиск 57
Глава 2. Исчисление предикатов 73
Глава 3. Структуры и стратегии поиска в пространстве состояний 107
Глава 4. Эвристический поиск 149
Глава 5. Управление поиском и его реализация в пространстве состояний 185
Часть III. Представление и разум в ракурсе искусственного
интеллекта 219
Глава 6. Представление знаний 225
Глава 7. Сильные методы решения задач 273
Глава 8. Рассуждения в условиях неопределенности 325
Часть IV. Машинное обучение 369
Глава 9. Машинное обучение, основанное на символьном представлении
информации 371
Глава 10. Машинное обучение на основе связей 435
Глава 11. Машинное обучение на основе социальных и эмерджентных принципов 483
Часть V. Дополнительные вопросы решения задач
искусственного интеллекта 519
Глава 12. Автоматические рассуждения 521
Глава 13. Понимание естественного языка 561
Часть VI. Языки и технологии программирования для
искусственного интеллекта 603
Глава 14. Введение в PROLOG 609
Глава 15. Введение в LISP 685
Часть VII. Эпилог 777
Глава 16. Искусственный интеллект как эмпирическая проблема 779
Библиография 809
Алфавитный указатель авторов 841
Предметный указатель 848
Содержание
Предисловие 19
Добро пожаловать в четвертое издание! 19
Что нового в этом издании 21
Содержание книги 22
Использование книги 24
Дополнительный материал, доступный через Internet 25
Благодарности 25
Часть I. Искусственный интеллект: его истоки и проблемы 27
Попытка дать определение искусственному интеллекту 27
Глава 1. Искусственный интеллект: история развития и области приложения 29
1.1. Отношение к интеллекту, знанию и человеческому мастерству 29
Историческая подоплека 30
Развитие логики 32
Тест Тьюринга 35
Биологические и социальные модели интеллекта: агенты 38
1.2. Обзор прикладных областей искусственного интеллекта 42
Ведение игр 43
Автоматические рассуждения и доказательство теорем 43
Экспертные системы 44
Понимание естественных языков и семантическое моделирование 46
Моделирование работы человеческого интеллекта 47
Планирование и робототехника 48
Языки и среды ИИ 49
Машинное обучение 50
Альтернативные представления: нейронные сети и генетические алгоритмы 51
8.3. Стохастический подход к описанию неопределенности 354
Байесовские рассуждения 355
Байесовские сети доверия 359
Резюме и дополнительная литература 365
Упражнения 367
Часть IV. Машинное обучение 369
Символьное, нейросетевое и эмерджентное обучение 369
Глава 9. Машинное обучение, основанное на символьном представлении
информации 371
Введение 371
Символьное обучение 374
Поиск в пространстве версий 380
Операция обобщения и пространство понятий 380
Алгоритм исключения кандидата 381
Программа LEX: индуктивное изучение эвристик поиска 388
Обсуждение алгоритма исключения кандидата 391
9.3. Индуктивный алгоритм построения дерева решений ID3 392
Построение дерева решений сверху вниз 394
Выбор свойств на основе теории информации 396
Анализ алгоритма ID3 398
Вопросы обработки данных для построения дерева решений 399
9.4. Индуктивный порог и возможности обучения 400
Индуктивный порог 400
Теория изучаемости 403
9.5. Знания и обучение 405
Алгоритм Meta-DENDRAL 406
Обучение на основе объяснения 407
Алгоритм EBL и обучение на уровне знаний 411
Обоснование по аналогии 412
9.6. Обучение без учителя 415
Научная деятельность и обучение без учителя 415
Концептуальная кластеризация 417
Программа СОВ-WEB и структурные таксономические знания 419
9.7. Обучение с подкреплением 424
Компоненты обучения с подкреплением 425
Пример: снова "крестики-нолики" 427
Алгоритмы вывода и их применение к обучению с подкреплением 429
Резюме и ссылки 431
Упражнения 432
Глава 10. Машинное обучение на основе связей 435
Введение 435
Основы теории сетей связей 437
10.1.1. Ранняя история 437
Обучение персептрона 439
Алгоритм обучения персептрона 439
Пример: использование персешронной сети для классификации образов 442
Обобщенное дельта-правило 445
10.3. Обучение по методу обратного распространения 448
Вывод алгоритма обратного распространения 448
Пример применения метода обратного распространения ошибки:
система NETtalk 452
10.3.3. Применение метода обратного распространения для решения задачи
"исключающего ИЛИ" 454
10.4. Конкурентное обучение 455
Алгоритм обучения "победитель забирает все" для задачи классификации 455
Сеть Кохонена для изучения прототипов 457
Нейроны Гроссберга и сети встречного распространения 459
10.5. Синхронное обучение Хебба 462
Введение 462
Пример алгоритма обучения Хебба без учителя 463
Обучение Хебба с учителем 466
Ассоциативная память и линейный ассоциатор 467
10.6. Аттракторные сети (сети "ассоциативной памяти") 471
Введение 471
Двунаправленная ассоциативная память 472
Примеры обработки данных в сети ДАП 475
Автоассоциативная память и сети Хопфилда 477
Резюме и дополнительная литература 481
Упражнения 482
Глава 11. Машинное обучение на основе социальных и эмерджентных
принципов 483
Социальные и эмерджентные модели обучения 483
Генетические алгоритмы 485
11.1.3. Два примера: описание задачи в конъюнктивной нормальной
форме и задача коммивояжера 488
11.1.4. Обсуждение генетического алгоритма 491
11.2. Системы классификации и генетическое программирование 495
Системы классификации 495
Программирование с использованием генетических операторов 500
11.3. Искусственная жизнь и эмерджентное обучение 505
Игра "Жизнь" 506
Эволюционное программирование 509
Пример эмерджентности 511
Резюме и дополнительная литература 515
Упражнения 516
Часть V. Дополнительные вопросы решения задач
искусственного интеллекта 519
Автоматические рассуждения и естественный язык 519
Глава 12. Автоматические рассуждения 521
Введение в слабые методы доказательства теорем 521
Система решения общих задач и таблицы отличий 522
Доказательство теорем методом резолюции 528
12.2.1. Введение 528
Построение дизъюнктивной формы для опровержения разрешения 530
Процедура доказательства на основе бинарной резолюции 533
Стратегии и методы упрощения резолюции 538
Извлечение ответов в процессе опровержения 543
12.3. Язык PROLOG и автоматические рассуждения 546
Введение 546
Логическое программирование и язык PROLOG 547
12.4. Дополнительные вопросы автоматических рассуждений 552
Единое представление для реализации слабых методов решения 552
Альтернативные правила вывода 555
Стратегии поиска и их использование 557
Резюме и дополнительная литература 558
Упражнения . 559
Глава 13. Понимание естественного языка 561
Проблема понимания естественного языка 561
Разбор языка: символьный анализ 564
Введение 564
Стадии анализа языка 565
13.2. Синтаксический анализ 567
Спецификация и синтаксический анализ с использованием
контекстно-свободных грамматик 567
Анализаторы на основе сети переходов 569
Иерархия Хомского и контекстно-зависимые грамматики 573
13.3. Синтаксис и знания в ATN-анализаторах 576
Анализаторы на основе расширенных сетей переходов 576
Объединение знаний о синтаксисе и семантике 580
13.4. Стохастический подход к анализу языка 585
Введение 585
Подход на основе марковских моделей 586
Подход на основе дерева решений 588
Грамматический анализ и другие приложения стохастического подхода 590
13.5. Приложения задачи анализа естественного языка 592
Обучение и ответы на вопросы 592
Интерфейс для базы данных 592
Извлечение информации и системы автоматического
резюмирования для Web 596
13.5.4. Использование алгоритмов обучения для обобщения извлеченной
информации 598
Резюме и дополнительная литература 598
Упражнения 600
Часть VI. Языки и технологии программирования
для искусственного интеллекта 603
Обзор языков PROLOG и LISP 606
PROLOG 606
LISP 607
Выбор языка реализации 608
Глава14.Введение в PROLOG 609
Введение 609
Синтаксис для программирования логики предикатов 610
Представление фактов и правил 610
Создание, изменение и мониторинг среды PROLOG 614
Списки и рекурсия в языке PROLOG 615
Рекурсивный поиск в языке PROLOG 618
Использование оператора отсечения для управления поиском
в языке PROLOG 620
14.2. Абстрактные типы данных в PROLOG 622
Стек 622
Очередь 624
Приоритетная очередь 624
Множество 625
Пример продукционной системы на языке PROLOG 626
Разработка альтернативных стратегий поиска 631
Поиск в глубину с использованием списка closed 631
Поиск в ширину в языке PROLOG 633
Реализация "жадного" алгоритма поиска на языке PROLOG 634
Реализация планировщика на языке PROLOG 636
Метапредикаты, типы и подстановки унификации в языке PROLOG 639
Металогические предикаты 639
Типы данных в языке PROLOG 640
Унификация, механизм проверки соответствия предикатов и оценка 643
14.7. Метаинтерпретаторы в языке PROLOG 646
Введение в метаинтерпретаторы: PROLOG в языке PROLOG 646
Оболочка для экспертной системы на основе правил 649
Семантические сети в языке PROLOG 657
Фреймы и схемы в языке PROLOG 659
14.8. Алгоритмы обучения в PROLOG 661
Поиск в пространстве версий языка PROLOG 661
Алгоритм исключения кандидата 666
Реализация обучения на основе пояснения на языке PROLOG 668
14.9. Обработка естественного языка на PROLOG 671
Семантические представления для обработки естественного языка 671
Рекурсивный анализатор на языке PROLOG 672
Рекурсивный анализатор на основе семантических сетей 675
Резюме и дополнительная литература 678
Упражнения 680
Глава 15. Введение в LISP 685
Введение 685
LISP: краткий обзор 686
Символьные выражения как синтаксическая основа LISP 686
Управление оцениванием в LISP: функции quote и eval 689
Программирование на LISP: создание новых функций 690
Управление программой в LISP: условия и предикаты 69
Функции, списки и символьные вычисления 694
Списки как рекурсивные структуры 696
Вложенные списки, структуры и рекурсия car-cdr 698
Связывание переменных с помощью функции set 701
Определение локальных переменных с помощью функции let 703
15.1.10. Типы данных в Common LISP 705
15.2. Поиск в LISP: функциональный подход к решению задачи переправы
человека, волка, козы и капусты 706
15.3. Функции и абстракции высшего порядка 711
Отображения и фильтры 711
Функциональные аргументы и лямбда-выражения 713
15.4. Стратегии поиска в LISP 714
Поиске ширину и в глубину 714
"Жадный" алгоритм поиска 717
Проверка соответствия шаблонам LISP 718
Рекурсивная функция унификации 720
Интерпретаторы и внедренные языки 724
Логическое программирование на языке LISP 727
Простой язык логического программирования 727
Потоки и их обработка 729
Интерпретатор для задач логического программирования
на основе потоков 731
15.9. Потоки и оценивание с задержкой 736
15.10. Оболочка экспертной системы на LISP 739
Реализация факторов достоверности 740
Архитектура оболочки lisp-shell 741
Классификация с использованием оболочки lisp-shell 744
Семантические сети и наследование в LISP 746
Объектно-ориентированное программирование с использованием CLOS 749
Определение классов и экземпляров в CLOS 751
Определение родовых функций и методов 753
Наследование в CLOS 755
Пример: моделирование термостата 756
15.13. Обучение в LISP: алгоритм ID3 761
Определение структур с помощью функции defstruct 761
Алгоритм ЮЗ 767
Резюме и дополнительная литература 772
Упражнения 773
Часть VII. Эпилог 777
Рассуждения о природе интеллекта 777
Глава 16. Искусственный интеллект как эмпирическая проблема 779
Введение 779
Искусственный интеллект: пересмотренное определение 781
Интеллект и гипотеза о физической символьной системе 781
Коннцкционистские, или нейросетевые, вычислительные системы 786
16.1.3. Агенты, интеллект и эволюция 789
16.2. Теория интеллектуальных систем 792
Ограничения психологии 793
Вопросы эпистемологии 795
Внедренный исполнитель и экзистенциальный разум 801
Искусственный интеллект: текущие задачи и будущие направления 803
Резюме и дополнительная литература 807
Библиография 80
Моей жене, Кэтлин, и нашим детям - Саре, Дэвиду и Питеру.
Si quid est in me ingenii, judices... Цицерон (Cicero)
— Джордж Люгер (George Luger)
Предисловие
Чтобы научиться что-то делать, надо делать это.
— Аристотель (Aristotle), Этика
—
Добро пожаловать в четвертое издание!
Предложение о выпуске четвертого издания книги по искусственному интеллекту я принял с удовольствием. Я расценил его как комплимент предыдущим изданиям, первое из которых вышло более десяти лет назад. Это предложение означает, что наш подход к искусственному интеллекту был широко поддержан. В новом издании представлены самые современные наработки в этой области. Спасибо читателям, коллегам и студентам за высокую оценку книги и неослабевающий интерес к ее теме.
Многие разделы прежних изданий замечательно выдержали проверку временем. Это главы, посвященные логике, алгоритмам поиска, представлению знаний, продукционным системам, машинному обучению и технологиям программирования на языках LISP и PROLOG. Эти вопросы остаются центральными в области искусственного интеллекта, поэтому существенной доработки соответствующих глав не потребовалось. Однако некоторые главы, в том числе связанные с вопросами понимания естественного языка, обучения с подкреплением и неточными рассуждениями, были подвергнуты значительной переработке. Часть вопросов, которые в первых изданиях были лишь слегка затронуты, но впоследствии доказали свою актуальность, описаны более детально. К ним относятся эволюционирующие вычисления, рассуждения на основе логических доказательств и решение задач на базе моделей. Эти изменения отражают современные тенденции и состояние области искусственного интеллекта.
В ходе проекта мы получили поддержку от наших издателей, редакторов, друзей, коллег, а главное - читателей, которым наша работа обязана своей долгой и продуктивной жизнью. Мы были очень рады представившейся возможности - ученым очень редко удается вырваться за рамки своей узкой специализации. Благодаря издателям и читателям у нас это получилось.
Несмотря на то что искусственный интеллект, как и большинство инженерных дисциплин, должен подтвердить свою значимость в коммерческом мире путем решения важных практических задач, мы рассматриваем его с тех же позиций, что и многие наши коллеги и студенты. Мы хотим понять и исследовать механизмы работы мозга, обеспечивающие возможности интеллектуального мышления и осмысленной деятельности. Отвергая несколько наивное утверждение о том, что интеллект - это исключительная пре-
19
рогатива человека, мы допускаем возможность эффективного исследования области интеллекта, а также разработки интеллектуальных артефактов. В предыдущих изданиях были отмечены три отличительные черты предлагаемого подхода к изучению искусственного интеллекта. Поэтому имеет смысл в предисловии к четвертому изданию вернуться к этой теме и оценить, насколько наши взгляды выдержали проверку временем в процессе активного развития этой области знаний.
Основной целью мы считали "объединение разрозненных областей искусственного интеллекта с помощью детального описания его теоретических основ". В процессе ее реализации оказалось, что главная проблема- примирить исследователей, уделяющих основное внимание изучению и анализу различных теорий интеллекта (чистых теоретиков), с их коллегами, рассматривающими интеллект как средство решения конкретных прикладных задач (практиками). Эта простая дихотомия оказалась на деле далеко не такой простой. На современном этапе развития искусственного интеллекта жаркие споры между теоретиками и практиками ведутся по множеству вопросов из самых разных областей. Приверженцы символьного подхода спорят с почитателями нейронных сетей, ученые-логики дискутируют с разработчиками форм искусственной жизни, эволюционирующей вопреки логическим принципам, архитекторы экспертных систем противостоят разработчикам программ на основе логических доказательств. И, наконец, самые непримиримые дебаты ведутся между теми, кто считает задачу создания искусственного интеллекта уже решенной, и пессимистами, вообще не верящими в возможность ее решения. Наше исходное вмдение искусственного интеллекта как пограничной области науки, призванной укротить бунтовщиков, прорицателей, старателей и других безудержных мечтателей с помощью формализма и эмпиризма, трансформировалось в другую метафору. Искусственный интеллект - это большой, хаотичный, но в целом мирный город, который законопослушные горожане разделили на отдельные деловые и богемные районы в соответствии со своими жизненными принципами. За годы работы над разными изданиями книги у авторов начинает появляться общее видение архитектуры искусственного интеллекта, отражающее структуру, культуру и жизненный уклад этого города.
Интеллект - это очень сложная область знаний, которую невозможно описать с помощью какой-то одной теории. Ученые строят целую иерархию теорий, характеризующих его на разных уровнях абстракции. На самом нижнем уровне этой иерархии находятся нейронные сети, генетические алгоритмы и другие формы эволюционирующих вычислений, позволяющие понять процессы адаптации, восприятия, воплощения и взаимодействия с физическим миром, лежащим в основе любой формы интеллектуальной деятельности. С помощью некоторого частично понятного процесса разрешения эта хаотическая популяция "слепых" и примитивных действующих лиц превращается в более строгие шаблоны логического вывода. Работая на этом уровне, последователи Аристотеля изучают схемы дедукции, абдукции, индукции, поддержки истинности и другие бесчисленные модели и принципы рассуждений. На более высоком уровне абстракции разработчики экспертных систем, интеллектуальных агентов, систем понимания естественного языка пытаются определить роль социальных процессов в создании, передаче и подкреплении знаний. В четвертом издании книги мы рассмотрим все эти уровни иерархии искусственного интеллекта.
Второй тезис, высказанный в предыдущих изданиях, касался центральной роли "расширенных формализмов представления и стратегий поиска" в методологии искусственного интеллекта. Это, пожалуй, наиболее спорный аспект наших предыдущих рассуждений и раннего этапа развития искусственного интеллекта вообще. Многие исследователи,
20
работающие в области эволюционирующих вычислений ставят под сомнение роль символьных рассуждений и семантики ссылок с процессе мышления. Несмотря на то что идея представления как процедуры присвоения имен некоторым объектам во многом утратила свою уникальность с появлением неявных представлений, обеспечиваемых нейросетевыми моделями или системами искусственной жизни, по мнению автора, понимание вопросов представления и алгоритмов поиска остается очень важным моментом для специалистов-практиков в области искусственного интеллекта. Более того, автор считает, что навыки и знания, приобретенные при изучении способов представления и механизмов поиска, являются неоценимым средством анализа таких аспектов несимвольных областей искусственного интеллекта, как нейронные сети или генетические алгоритмы. Сравнение, противопоставление и критические замечания в адрес различных подходов современного искусственного интеллекта приводятся в главе 16.
Третье утверждение, сформулированное в начале жизненного цикла этой книги, - "рассматривать искусственный интеллект в контексте эмпирической науки" осталось неизменным. Здесь уместно привести цитату из предисловия к третьему изданию. Автор продолжает верить, что искусственный интеллект - это не
"...некое странное ответвление от научной традиции, а... часть общего пути к знанию и пониманию самого интеллекта. Более того, наши программные средства искусственного интеллекта наряду с исследованием методологии программирования... идеально подходят для изучения окружающего мира. Эти средства создают почву и для понимания и для появления вопросов. Мы приходим к оценке и знанию феномена конструктивно, т.е. путем последовательной аппроксимации.
Каждую разработку и программу можно рассматривать как эксперимент с природой: мы предлагаем представление, генерируем алгоритм поиска, а затем ставим вопрос об адекватности нашей характеристики некоторой части феномена интеллекта. И реальный мир дает ответ на этот вопрос. Наш эксперимент можно проанализировать, модифицировать, расширить и возобновить. Нашу модель можно подкорректировать, а понимание - расширить".
Что нового в этом издании
Я, Джордж Люгер (George Luger), - единственный автор четвертого издания. Несмотря на то что интересы Билла Стабблефилда (Bill Stubblefield) сместились в сторону новых областей компьютерных наук, его след останется и в настоящем, и в последующих изданиях книги. На самом деле эта книга является результатом моей работы в качестве профессора компьютерных наук в университете Нью-Мексико и труда моих коллег, аспирантов и друзей - членов сообщества специалистов в области искусственного интеллекта, а также многих читателей, направивших по электронной почте свои комментарии, пожелания и уточнения. Данная книга продолжает традиции предыдущих изданий, поэтому, чтобы отразить коллективный вклад в ее написание, при изложении материала я буду по-прежнему употреблять местоимение "мы". Отдельные слова благодарности за участие в подготовке четвертого издания приводятся в соответствующем разделе этого предисловия.
Мы переделали многие разделы этой книги, чтобы отразить возрастающую роль агентного подхода к решению задач как новой технологии искусственного интеллекта (ИИ). При обсуждении основ ИИ мы определяем интеллект как физически воплощенный и расположенный в природном и социальном мире контекст. В соответствии с этим определением в главе 6 описывается эволюция схем представления ИИ, начиная от ассоциативного
21
и раннего логического представлений через слабые и сильные методы решения, включая коннекционистские и эмерджентные модели, и заканчивая ситуативными и социальными подходами к решению задач ИИ. В главе 16 содержатся критические замечания по каждой из парадигм.
При работе над четвертым изданием мы проанализировали все вопросы, представленные ранее, и изложили их в более современной интерпретации. В частности, в главу 9 добавлен раздел, посвященный обучению с подкреплением. Описаны алгоритмы такого обучения (метод временных разностей и Q-обучения), получающие сигналы из внешней среды и формирующие на их основе политику изменения состояний.
Помимо содержащегося в предыдущих изданиях анализа систем вывода от данных и от цели, в главе 7 представлены рассуждения на основе модели и опыта, в том числе примеры из космической программы NASA. В эту главу добавлен раздел, посвященный обсуждению преимуществ и недостатков каждого из этих подходов для решения задач, интенсивно использующих знания.
В главе 8 описан подход к реализации рассуждений при неточной или неполной информации. Представлено множество важных подходов к решению этой задачи, включая байесовский подход к рассуждениям, сети доверия (belief network), модель Демпстера-Шафера и неточный вывод с использованием фактора уверенности. Описаны также приемы поддержания истинности в немонотонных ситуациях, а также рассуждения на основе минимальных моделей и логической абдукции. В заключении главы глубоко проанализированы байесовские сети доверия и алгоритм дерева клик для распространения меры правдоподобия по сети доверия в контексте новой информации.
В главе 13 обсуждаются вопросы понимания естественного языка, включая раздел по стохастическим моделям для постижения языка. Здесь описаны марковские модели, CART-деревья, метод взаимной кластеризации информации и статистического грамматического разбора. В заключении главы приводится несколько примеров, в том числе приложения по восполнению текста и методы реферирования текстов для WWW.
И, наконец, в обновленной главе 16 мы снова возвращаемся к вопросам природы интеллекта и возможности создания интеллектуальных машин. Последние достижения ИИ рассматриваются с точки зрения психологии, философии и нейрофизиологии.
Содержание книги
В главе 1 дается введение в теорию искусственного интеллекта, предваренное краткой историей попыток понять принципы работы мозга и сущность интеллекта с позиций философии, психологии и других наук. Важно понимать, что ИИ- это старая наука, уходящая корнями как минимум к трудам Аристотеля. Осмысление этого опыта играет важную роль в понимании результатов современных исследований. В этой главе также приводится обзор некоторых важных приложений ИИ. Цель главы 1 - обеспечить основу и мотивацию для излагаемой далее теории и ее приложений.
В главах 2, 3,4 и 5 (часть П) описаны средства решения задач ИИ. К ним относятся язык теории предикатов, предназначенный для описания основных свойств предметной области (глава 2), методы поиска, применяемые для рассуждения об этих описаниях (глава 3), а также алгоритмы и структуры данных, используемые для реализации этого поиска. В главах 4 и 5 обсуждается важная роль эвристик в фокусировке и ограничении пространства поиска. Представлено множество архитектур, предназначенных для построения алгоритмов поиска, включая методологию "классной доски" и продукционные системы.
22
Главы 6, 7 и 8 составляют третью часть книги. В них описаны представления для задач искусственного интеллекта и методы решения задач, интенсивно использующих знания. В главе 6 рассматривается эволюция схем представлений для ИИ. Сначала обсуждаются семантические сети и расширение этой модели на теорию концептуальной зависимости, фреймы и сценарии. Затем глубоко анализируется конкретный формализм - концептуальные графы. Основное внимание уделяется вопросам образования понятий в процессе представления знаний и решению этих вопросов в современном языке представления. В главе 13 показано, как концептуальные графы можно использовать для реализации интерфейса с базой данных, работающего на основе естественного языка. В заключении главы 6 рассмотрены более современные подходы к представлению, включая агентно-ориентированные архитектуры и систему Copycat.
В главе 7 рассмотрена основанная на правилах экспертная система, а также системы рассуждений на основе моделей и опыта, включая примеры из космической программы NASA. Эти подходы к решению задачи представлены как естественное продолжение материала, изложенного в первых пяти главах книги: продукционная система на основе выражений из теории предикатов гармонично сочетается с алгоритмами поиска на графах. В заключении главы анализируются преимущества и недостатки каждого из этих подходов к решению задач, интенсивно использующих знания.
В главе 8 приводятся модели рассуждений в условиях неопределенности и методы использования ненадежной информации. Здесь обсуждаются байесовские модели, сети доверия (belief network), модель Демпстера-Шафера и неточный вывод с учетом фактора уверенности, применяемые для рассуждения в условиях неопределенности. Описаны приемы поддержания истинности, рассуждения на основе минимальных моделей и логической абдукции, а также алгоритм дерева клик для байесовских сетей доверия.
В части IV (главы 9-11) подробно изложены вопросы машинного обучения. В главе 9 детально изучаются алгоритмы символьного обучения - обширной области исследований, связанной с решением множества различных задач. Эти алгоритмы различаются по своему назначению, используемым обучающим данным, стратегиям обучения и представлениям знаний. К символьным алгоритмам обучения относятся индукция, концептуальное обучение, поиск в пространстве версий и ID3. Подчеркивается роль индуктивного порога, обобщения на основе реальных данных и эффективного использования знаний при обучении на единственном примере на основе объяснения. Изучение категорий и кластеризация понятий представлены в ракурсе обучения без учителя. Главу завершает раздел, посвященный обучению с подкреплением, - способности интегрировать обратную связь от внешней среды и политику принятия новых решений.
В главе 10 описаны нейронные сети, которые зачастую называют суб-символьными, или коннекционистскими, моделями обучения. В нейронной сети информация структурирована неявно. Она распространяется между набором взаимосвязанных процессоров с учетом весовых коэффициентов, а обучение сводится к пересортировке и модификации весов узлов сети. Рассмотрено множество нейроподобных архитектур, включая обучение персептрона, метод обратного распространения ошибки и встречного распространения. Изучены модели Кохонена, Гроссберга и Хебба. Описана аттракторная модель и ассоциативное обучение, в том числе сети Хопфилда.
Генетические алгоритмы и эмерджентный подход к обучению представлены в главе 11. С этой точки зрения обучение - это процесс адаптации и эволюции. После нескольких примеров решения задач на основе генетических алгоритмов рассматривается возможность применения этой методологии для решения более общих проблем. К ним
23
относятся системы классификации и генетическое программирование. Затем описывается "социальное" обучение с примерами из области "искусственной жизни". В заключение приводится пример эмерджентных вычислений, реализованных в институте Санта-Фе. В главе 16 сравниваются и противопоставляются три подхода к машинному обучению (символьный, коннекционистский и эмерджентный).
В части V (главы 12 и 13) продолжается представление важных областей применения технологий ИИ. Одной из старейших областей является автоматическое доказательство теорем, которое зачастую называют автоматическими рассуждениями. В главе 12 описываются первые программы, реализующие этот подход, включая Logic Theorist и General Problem Solver. В этой главе основное внимание уделяется разрешающим процедурам доказательства теорем, а особенно резолюции на основе опровержения. Рассмотрены также более сложные методы вывода на основе гиперрезолюции и парамодуляции. В заключении интерпретатор PROLOG описан как система вывода на основе хорновских выражений и резолюции, а вычисления на PROLOG - как пример парадигмы логического программирования.
Глава 13 посвящена проблеме понимания естественного языка. Традиционный подход к пониманию языка, проиллюстрированный с использованием многих описанных в главе 6 семантических структур, в этом издании дополнен описанием стохастического подхода. Здесь рассмотрены марковские модели, CART-деревья, метод взаимной кластеризации информации и статистического грамматического разбора. В заключении главы приводится несколько примеров, включая приложения по восполнению текста и методы реферирования текстов для использования в WWW.
В части VI описаны языки LISP и PROLOG. В главе 14 рассматривается PROLOG, а в главе 15 - LISP. Эти языки представлены как средства решения задач искусственного интеллекта на основе изложенных в предыдущих главах методов поиска, включая алгоритмы поиска в ширину, глубину и "жадный" алгоритм. Реализация этих методов поиска проблемно-независима, поэтому ее можно применять для создания оболочек поиска в экспертных системах на основе правил построения семантических сетей, систем понимания естественного языка и обучения.
И, наконец, глава 16 служит эпилогом этой книги. В ней рассмотрены возможности науки об интеллектуальных системах, а также альтернативные современные подходы. Обсуждаются современные рамки искусственного интеллекта и перспективы его развития.
Использование книги
Искусственный интеллект - это обширная область, поэтому объем этой книги достаточно велик. Хотя для детального изучения всего материала потребуется не один семестр, мы скомпоновали книгу таким образом, чтобы ее можно было читать по частям. Выбирая отдельные части материала, можно сформировать семестровый и годичный (двухсеместровый) курс изучения предмета.
Предполагается, что студенты уже прослушали курсы дискретной математики, включая теорию предикатов и теорию графов. Если это не так, то при изучении начальных разделов (2.1 и 3.1) необходимо уделить этим теориям больше внимания. Надеемся также, что студенты изучили курс по структурам данных, в том числе деревьям, графам, методам рекурсивного поиска с помощью стеков, очередей и приоритетных очередей. Если это не так, то обратите особое внимание на начальные разделы глав 3, 4 и 5.
24
В семестровом курсе мы кратко останавливаемся на первых двух частях книги. После такой подготовки студенты готовы к восприятию материала части III. Затем мы изучаем PROLOG и LISP (часть VI) и требуем от студентов построения различных представлений и реализации стратегий поиска, описанных в первых главах. Один из языков, к примеру PROLOG, можно ввести в первой части курса, а затем использовать его при изучении структур данных и алгоритмов поиска. По нашему мнению, полезным средством построения систем решения задач на основе правил и знаний являются метаинтерпретаторы, представленные в главе, посвященной обработке естественного языка. PROLOG, в свою очередь, - отличное средство для построения систем понимания естественного языка.
В двухсеместровом курсе имеется возможность рассмотреть области применения ИИ, описанные в частях IV и V. Особенно это касается машинного обучения. Кроме того, студенты реализуют гораздо более серьезные программные проекты. На наш взгляд, во втором семестре очень важно, чтобы студенты познакомились с основными первоисточниками знаний по искусственному интеллекту. Студенты должны понимать, где мы находимся в данный момент, как мы к этому пришли, и представлять себе перспективы развития ИИ. Для этой цели мы используем обзор [Luger, 1995].
Упомянутые в книге алгоритмы написаны на паскалеподобном псевдокоде. При этом используются управляющие структуры языка Паскаль (Pascal) и описания проверок и операций на родном языке. К числу управляющих структур Паскаля мы добавили две новые полезные конструкции. Первая из них - модифицированный оператор case, который не просто сравнивает значение переменной с постоянной меткой, как в обычном Паскале, но и позволяет связывать с каждым элементом произвольную логическую проверку. Оператор case по порядку выполняет эти проверки до тех пор, пока результат одной из них не примет значение "истина". Тогда выполняется соответствующее действие. Все остальные действия игнорируются. Читатели, знакомые с языком LISP, сразу же заметят, что этот оператор обладает той же семантикой, что и оператор cond из LISP.
Вторым нововведением является оператор return, зависящий от одного аргумента. Он может встречаться в любом месте процедуры или функции. При достижении этого оператора программа немедленно завершает выполнение функции и возвращает результат. Остальной стиль псевдокода соответствует синтаксису языка Pascal.
Дополнительный материал, доступный через Internet
Представленный в книге код на языках PROLOG и LISP читатели могут получить через Internet. Там же можно найти подробные методические рекомендации по использованию этой книги для преподавателей. Эти файлы находятся по адресу www.booksites .net/luger или на личной странице автора www. сs. uran .edu/-luger/.
Дополнительные материалы и программные средства, в том числе публикуемые издательствами Addison-Wesley и Pearson Education, находятся по адресу www. aw. com/cs/ и www.pearsoneduc .com/computing. Автор с удовольствием ожидает электронных писем читателей по адресу luger@cs. unm. edu.
Благодарности
Во-первых, мы хотим поблагодарить Билла Стабблефидда - соавтора первых трех изданий за более чем десятилетний труд над этой книгой. Спасибо также многим рецензентам,
25
которые помогли подготовить эти четыре издания. В их числе Дэннис Бахлер (Dennis Bahler), Скона Бриттэн (Skona Brittain), Филипп Чен (Philip Chan), Питер Колингвуд (Peter Collingwood), Джон Дональд (John Donald), Сара Дуглас (Sarah Douglas), Кристоф ЖиредКарьер (Christophe Giraud-Carrier), Эндрю Косорезов (Andrew Kosoresov), Крис Малкольм (Chris Malcolm), Рэй Муни (Ray Mooney), Брюс Портер (Bruce Porter), Джуд Шавлик (Jude Shavlik), Карл Стерн (Carl Stern), Марко Валторта (Marco Valtorta) и Боб Верофф (Bob Ver-off). Мы также благодарны за многочисленные предложения и комментарии, направляемые непосредственно авторам книги ее читателями по электронной почте.
За помощь в реорганизации материала автор признателен своим аспирантам. Благодаря им была переработана часть III, в которой впервые описана эволюция схем представлений для задач искусственного интеллекта, создан отдельный раздел по машинному обучению, а вопросы понимания естественных языков перенесены в конец книги. Мы благодарны Дану Плессу (Dan Pless) за его вклад в подготовку материала по абдуктивному выводу для главы 8, Карлу Стерну (Carl Stern) за помощь в написании главы 10, посвященной коннекционистскому обучению, Яреду Сайа (Jared Saia) за помощь в описании стохастических моделей для главы 13. "Внешними" рецензентами четвертого издания стали Леон ван дер Торре (Leon van der Torre) и Меди Дастани (Mehdi Dastard) из Нидерландов, а также Леонардо Ботгачи (Leonardo Bottaci) и Джулиан Ричардсон (Julian Richardson) из Великобритании. Среди американских рецензентов следует отметить Марека Перковски (Marek Perkowski) из портлендского университета и Джона Шеппарда (John Sheppard) из университета имени Джона Хопкинса. Барак Пермуттер (Barak Pearmutter) рецензировал главы по машинному обучению. И, наконец, Джозеф Льюис (Joseph Lewis), Крис Малколм (Chris Malcolm), Брэнден Мак-Гоннигл (Brendan McGonnigle) и Акаша Танг (Akasha Tang) приняли участие в обсуждении главы 16.
Автор благодарен издательству Academic Press за разрешение на перепечатку большей части материала из главы 10, которая была ранее опубликована в [Luger, 1994]. И, наконец, большое спасибо студентам университета Нью-Мексико, которые более десяти лет изучали эту книгу и описанные в ней программные средства. Они существенно расширили наш горизонт, а также позволили избавиться от опечаток и неточностей.
Спасибо моим друзьям из издательства Addison-Wesley за поддержку при написании книги, особенно Алану Апту (Alan Apt) за помощь в подготовке первого издания, Лизе Моллер (Lisa Moller) и Мэри Тюдор (Mary Tudor) за участие в подготовке второго, Виктории Хендерсон (Victoria Henderson), Луизе Вилсон (Louise Wilson) и Карен Мосман (Karen Mosman) за содействие в работе над третьим, а также Кэйт Мансфилд (Keith Mansfield), Карен Сюзерланд (Karen Sutherland) и Аните Аткинсон (Anite Atkinson) за поддержку этого четвертого издания. Особая благодарность Линде Цицарелле (Linda Ci-carella) из университета Нью-Мексико за помощь в подготовке рисунков.
Спасибо большое Томасу Бэрроу (Thomas Barrow) - всемирно признанному художнику и профессору искусств университета Нью-Мексико, который сделал семь фотографий для этой книги.
Во многих местах мы использовали рисунки и цитаты из работ других авторов. Мы благодарны авторам и издателям за разрешение на использование этого материала.
Искусственный интеллект- это увлекательная и благодарная дисциплина. Осознав его силу и глубину, вы получите удовольствие от изучения этой книги.
Джордж Люгер 1 июля 2001 года
26
Часть I
Искусственный интеллект: его истоки и проблемы
Всему есть начало, как говорил Санчо Панса, и это начало должно опираться на нечто, ему предшествующее. Индусы придумали слона, который удерживал мир, но им пришлось поставить его на черепаху. Нужно отметить, что изобретение состоит в сотворении не из пустоты, но из хаоса: в первую очередь следует позаботиться о материале...
- Мэри Шелли (Mary Shelley), Франкенштейн
Попытка дать определение искусственному интеллекту
Искусственный интеллект (ИИ) можно определить как область компьютерной науки, занимающуюся автоматизацией разумного поведения. Это определение наиболее точно соответствует содержанию данной книги, поскольку в ней ИИ рассматривается как часть компьютерной науки, которая опирается на ее теоретические и прикладные принципы. Эти принципы сводятся к структурам данных, используемым для представления знаний, алгоритмам применения этих знаний, а также языкам и методикам программирования, используемым при их реализации.
Тем не менее это определение имеет существенный недостаток, поскольку само понятие интеллекта не очень понятно и четко сформулировано. Большинство из нас уверены, что смогут отличить "разумное поведение", когда с ним столкнутся. Однако вряд ли кто-нибудь сможет дать интеллекту определение, достаточно конкретное для оценки предположительно разумной компьютерной программы и одновременно отражающее жизнеспособность и сложность человеческого разума.
Итак, проблема определения искусственного интеллекта сводится к проблеме определения интеллекта вообще: является ли он чем-то единым, или же этот термин объединяет набор разрозненных способностей? В какой мере интеллект можно создать, а в
27
какой он существует априори? Что именно происходит при таком создании? Что такое творчество? Что такое интуиция? Можно ли судить о наличии интеллекта только по наблюдаемому поведению, или же требуется свидетельство наличия некоего скрытого механизма? Как представляются знания в нервных тканях живых существ, и как можно применить это в проектировании интеллектуальных устройств? Что такое самоанализ и как он связан с разумностью? И, более того, необходимо ли создавать интеллектуальную компьютерную программу по образу и подобию человеческого разума, или же достаточно строго "инженерного" подхода? Возможно ли вообще достичь разумности посредством компьютерной техники, или же сущность интеллекта требует богатства чувств и опыта, присущего лишь биологическим существам?
На эти вопросы ответа пока не найдено, но все они помогли сформировать задачи и методологию, составляющие основу современного ИИ. Отчасти привлекательность искусственного интеллекта в том и состоит, что он является оригинальным и мощным орудием для исследования именно этих проблем. ИИ предоставляет средство и испытательную модель для теорий интеллекта: такие теории могут быть переформулированы на языке компьютерных программ, а затем испытаны при их выполнении.
По этим причинам наше первоначальное определение, очевидно, не дает однозначной характеристики для этой области науки. Оно лишь ставит новые вопросы и открывает парадоксы в области, одной из главных задач которой является поиск самоопределения. Однако проблема поиска точного определения ИИ вполне объяснима. Изучение искусственного интеллекта - еще молодая дисциплина, и ее структура, круг вопросов и методики не так четко определены, как в более зрелых науках, например, физике.
Искусственный интеллект призван расширить возможности компьютерных наук, а не определить их границы. Одной из важных задач, стоящих перед исследователями, является поддержание этих усилий ясными теоретическими принципами.
Из-за специфики проблем и целей искусственный интеллект не поддается простому определению. Поэтому на первых порах просто опишем его как спектр проблем и методологий, изучаемых разработчиками систем искусственного интеллекта. Это определение может показаться глупым и бессмысленным, но оно отражает важный факт: искусственный интеллект, как и любая наука, является сферой интересов человека, и лучше всего рассматривать его в этом контексте.
Любая наука, включая ИИ, рассматривает некоторый круг проблем и разрабатывает подходы к их решению. Краткое изложение истории искусственного интеллекта, рассказ о личностях и их гипотезах, положенных в основу этой науки, поясняет, почему некоторые проблемы стали доминировать в этой области и почему для их решения были взяты на вооружение методы, описываемые в этой книге.