- •Содержание
- •Введение
- •Глава 1. Основные понятия
- •1.1. Понятие об искусственном интеллекте
- •1.1.1. Точка зрения Петрунина.
- •1.1.2. Интеллектуальные алгоритмы.
- •1.2. Основные направления исследования в области ии
- •1.3. Данные и знания. Основные модели представления знаний
- •Глава 2. Логические модели представления знаний
- •2.1. Логика высказываний
- •2.1.1. Булева алгебра.
- •2.1.2. Понятие о логическом следствии.
- •2.1.3. Метод резолюции в лв.
- •Имеет место теорема о полноте резолютивного вывода. Множество клозов противоречиво тогда и только тогда, когда из него методом резолюции можно вывести пустой клоз.
- •2.2. Логика предикатов первого порядка
- •2.2.1. Основные определения.
- •2.2.2. Метод резолюции в лппп.
- •2.2.3. Стратегии проведения резолюции.
- •2.2.4. Упорядоченный линейный вывод в лппп.
- •2.2.5.Применение поиска в пространстве состояний при реализации автоматизированного логического вывода.
- •2.2.6. Логический вывод на хорновских дизъюнктах.
- •Понятие экспертной системы и применение логического вывода при построении экспертных систем.
- •2.2.9. Запросы класса b.
- •2.2.10. Запросы класса c.
- •2.3. Понятие о нечетком выводе
- •2.4. Неклассические логики
- •2.4.1. Логики высших порядков.
- •2.4.2. Модальные логики.
- •2.4.3. Многозначные логики.
- •Глава 3. Продукционные модели представления знаний
- •3.1. Основные понятия
- •3.2. Стратегии управления
- •3.2.1. Поиск с возвратом.
- •3.2.2. Поиск в пространстве состояний.
- •3.3. Понятие о коммутативных системах продукций
- •3.4. Понятие о нечетком выводе на продукциях
- •3.5. Сравнение продукционных и логических моделей
- •Глава 4. Реляционные языки представления знаний
- •4.1. Основные элементы естественных языков
- •4.2. Дескрипторные модели
- •4.2.1. Понятие об ипс.
- •4.2.2. Линейная модель работы ипс.
- •4.2.3. Понятие о многоуровневом поиске.
- •4.2.4. Основные характеристики ипс.
- •4.4. Синтагматические цепи
- •4.4.1. Понятие синтагматических цепей.
- •4.4.2. Фреймы.
- •4.5. Сетевые модели представления знаний
- •4.5.1. Понятие семантической сети.
- •4.5.2. Структура интеллектуальной системы доступа к данным на основе семантической сети.
- •4.5.3. Задача поиска кратчайшего обхода образца в семантической сети.
- •4.5.4. Понятие о логическом выводе на семантических сетях.
- •Глава 5. Нейронные сети
- •5.1. Параллели из биологии
- •5.2. Базовая искусственная модель
- •5.3. Применение нейронных сетей
- •5.4. Обучение сети
- •Глава 6. Организация диалога с эвм на естественном языке
- •6.1. Элементы теории формальных языков
- •6.2. Обратная польская запись
- •6.3. Недостатки применения аппарата формальных грамматик
- •6.4. Элементы семиотики
- •6.5. Модель непосредственных составляющих
- •6.6. Многозначность в естественных языках
- •6.7. Расширенные сети переходов
- •6.8. Глубинные (семантические) падежи
- •Глава 7. Логическое программирование на языке пролог
- •7.1. Основные понятия в языке Пролог
- •7.2. Пакет Turbo Prolog
- •7.3. Структура программы
- •7.4. Поиск решений
- •7.5. Механизм отката
- •7.6. Операторы. Декларативный и процедурный смысл программы
- •7.7. Повторение и рекурсия
- •7.8. Повторение и откат
- •7.8.1. Метод отката после неудачи (опн).
- •7.8.2. Метод отсечения и отката (оо).
- •7.8.3. Метод повтора, определенный пользователем.
- •7.9. Методы организации рекурсии
- •7.10. Отладка программы и обнаружение ошибок
- •7.11. Графика в Turbo Prolog’е
- •7.11.1 Создание меню.
- •7.11.2. Создание графического режима.
- •7.11.3. Черепашья графика
- •7.12. Списки и их использование
- •7.12.1. Использование списка.
- •7.12.2. Поиск элементов в списке.
- •7.12.3. Создание нового списка путем слияния двух списков
- •7.12.3. Разделение на два списка.
- •7.13. Сортировки
- •7.13.1. Наивная сортировка.
- •7.13.2. Сортировка включением.
- •7.13.3. Метод «пузырька».
- •7.13.4. Быстрая сортировка.
- •7.14. Компоновка данных из базы в список
- •7.15. Работа с символами и строками
- •7.16. Специальные строки
- •7.17. Работа с файлами
- •7.18. Создание динамических баз данных
- •7.19. Библиотеки Turbo Prolog’а
- •7.19. Модульное программирование
- •7.20. Решение задачи о волке, козе и капусте
- •Глава 8. Введение в язык лисп
- •8.1. Основные особенности языка Лисп
- •8.2. Понятия языка Лисп
- •8.2.1 Атомы и списки.
- •8.2.2 . Внутреннее представление списка.
- •8.2.3 .Написание программы на Лиспе.
- •8.2.4. Определение функций.
- •8.2.5. Рекурсия и итерация.
- •В) maplist. Эта функция действует подобно mapcar, но действия осуществляет не над элементами списка, а над последовательными cdr этого списка.
- •8.2.6 . Функции интерпретации выражения.
- •8.2.7. Макросредства.
- •8.2.8. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
4.5.4. Понятие о логическом выводе на семантических сетях.
Часто существуют отношения, в явном виде не заданные в сети, часто вместо отношения задана его редукция. Под редукцией здесь понимается решение уравнения R = R+, где R+ – положительное транзитивное замыкание отношения.
Такая ситуация связана с тем, что, во-первых, пользователю просто физически тяжело выявить все отношения, а во-вторых, семантические сети на практике и так достигают очень больших размеров, что дальнейшее требование памяти становится неприемлемым. Человек в повседневной жизни практически никогда не хранит информацию обо всем, то он может ее восстановить, пользуясь причинно-следственными связями. Так математик зачастую вроде бы помнит наизусть сложные доказательства, но на самом деле он помнит не текст доказательства, а его внутреннюю логику. Существует смысл и семантические сети научить восстанавливать связи, неуказанные в явном виде.
Будем считать, что отношения могут быть:
-
имплициптными, т.е. явно заданными в семантической сети;
-
эксплицитными, т.е. их следует восстанавливать.
Идея восстановления состоит в том, чтобы хранить логические правила, справедливые для отношений, тогда можно воспользоваться системой автоматизированного логического вывода.
Пример. Отношение правее.
//пример (21)
((X n y) (y n Z)) => (X n Z)
Опишем проблему с формальной точки зрения. Пусть имеется некоторая теория T, содержащая множество аксиом типа rirj→rk. Будем считать, что вершины x и z семантической сети связаны эксплицитным отношением rk, если в сети существует маршрут и в теории T может быть доказана теорема .
Обычно используется логика высказываний, в которой скорость вывода значительно выше, чем в ЛППП.
На первый взгляд эта модель кажется универсальной. На самом деле все же возникают значительные трудности.
A) Пользователю нелегко задать все логические правила.
B) Любая формальная теория, в том числе и теория T, неполна в соответствии с теоремой Геделя, т.е. неизбежны случаи, когда существование эксплицитного отношения будет невозможно ни доказать, ни опровергнуть.
Глава 5. Нейронные сети
Данная глава является введением в теорию нейронных сетей и нейроинформатику (наука о нейронных сетях). Материал разработан на основе электронного учебника [(c) Copyright StatSoft, Inc., 1984-2001].
К идее использования нейронных сетей подтолкнули неудачи в моделировании мыслительного процесса. Развивалась гипотеза, что способность человека к мышлению определяется структурой мозга, и следует создать модель представления знаний, сходную со структурой мозга. Так возникла идея нейронной сети, которое однако не принесло ощутимых результатов для решения проблемы.
Второй бум популярности нейронных сетей приходится уже на конец 20–начало 21 века, но нейронная сеть все чаще воспринимается как средство для решения конкретных задач (например построения ЭС с лучшими характеристиками, нежели при использовании продукционных и логических моделей, распознавания образов и т.д.). Тем не менее, некоторые специалисты в области нейроинформатики (науке о нейронных сетях) склонны верить в возможность моделирования мышления, и построения универсального метода для решения любой задачи с помощью нейронных сетей. Различают нейроинформатику, как комплекс всех знаний о нейронных сетях и нейрокибернетику, рассматривающую вопросы, связанные с их аппаратной реализацией. Аппаратная реализация нейронных сетей приводит к идее нейрокомпьютера. Именно, с нейрокомпьютерами часто связываются надежды на истинный искусственный разум, но на самом деле доказана алгоритмическая сводимость нейрокомпьютера к все той же машине Тьюринга.
Так или иначе, нейронные сети – исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. В частности, нейронные сети нелинейны по своей природе. На протяжение многих лет линейное моделирование было основным методом моделирования в большинстве областей, поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где линейная аппроксимация неудовлетворительна (а таких достаточно много), линейные модели работают плохо. Кроме того, нейронные сети справляются с "проклятием размерности", которое не позволяет моделировать линейные зависимости в случае большого числа переменных.
Немаловажную роль играет и простота использования для конечного пользователя (но не для программиста). Нейронные сети учатся на примерах. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов статистики.