6.2. Методологии создания и модели жизненного цикла интеллектуальных систем
В настоящее время в области разработки и реализации интеллектуальных систем сложилось следующее положение: с одной стороны, квалификация коллективов разработчиков здесь, как правило, достаточно высока, чтобы считать классические положения технологии разработки ПО, обсуждавшиеся выше, естественным компонентом работы. С другой стороны, жизненно важными технологические аспекты создания интеллектуальных систем становятся, лишь когда такие системы выходят на уровень промышленных разработок. Создание и внедрение интеллектуальных систем общения с промышленными базами данных, систем машинного перевода нового поколения, интеллектуальных систем автоматического синтеза программ и особенно экспертных систем, по существу, и выдвинуло проблему технологической поддержки разработок в области ИИ на передний план [SIG-SOFT, 1986].
На фоне вышеописанной ситуации обращает на себя внимание тот факт, что имеются только единичные примеры инструментальных систем, которые бы поддерживали некоторую четко провозглашенную технологию разработки ПО и опирались бы на достаточно развитые системы представления знаний [Ramanioorthy et al, 1987]. Учитывая это, в данном параграфе рассматриваются технологические аспекты и методологии создания интеллектуальных систем в свете введенных выше понятий технологии программирования, а в следующих — инструментарий для разработки систем ИИ.
Стиль программирования систем искусственного интеллекта существенно отличается от стиля программирования с использованием обычных алгоритмических языков. При этом почти каждая подобласть области ИИ характеризуется своим собственным стилем программирования, не всегда адекватным для других приложений. В табл. 6.1 приведены некоторые характерные отличия между обычными программными системами и системами ИИ [Ramamoorthy et al, 1987].
Таблица 6.1.
Отличия систем ИИ от обычных программных систем
Характеристика программирование | Программирование в СИИ | Традиционное |
Тип обработки | Символьная | Числовая |
Методы | Эвристический приск | Алгоритм |
Задание шагов решения | Неявное | Точное |
Искомое решение | Удовлетворительное | Оптимальное |
Управление и данные | Перемешаны | Разделены |
Знания | Неточные | Точные |
Модификации | Частые | Редкие |
Но ввиду все возрастающего использования систем ИИ в конкретных приложениях, к ним начинают предъявляться практически те лее требования, что и к традиционным программным комплексам и системам. В связи с этим становится весьма актуальной поддержка жизненного цикла программ в ИИ. К основным этапам в этом случае относятся инженерия требований, тестирование на прототипах и сопровождение.
Как и в случае обычных программных систем, разработка системы ИИ должна начинаться с формулирования полных, непротиворечивых и однозначных требований к ней [Basil! et al., 1984]. При проектировании должны использоваться принципы технологии разработки ПО — такие, например, как сокрытие информации, локализация и модульность. Предполагается, что система должна проектироваться как композиция уровней. Любой уровень должен быть чувствителен лишь к нижележащим уровням. Такое проектирование упрощает не только реализацию, но и тестирование.
Тестирование ПО ИИ отличается от тестирования обычных систем, так как для первых характерно недетерминированное поведение вследствие использования стратегии разрешения конфликтов, зависящей от параметров периода исполнения программы. Поэтому единственным эффективным способом тестирования систем ИИ является прототипизация.
Фаза сопровождения, включающая выполнение самых различных модификаций системы, является важнейшим этапом процесса разработки любой системы, но имеет свою специфику для систем ИИ. Здесь база знаний — наиболее динамичный компонент и меняется в течение всего жизненного цикла. Поэтому сопровождение интеллектуальных систем — серьезная проблема. Но именно вопросам сопровождения уделяется мало внимания, хотя в обычном программировании имеются средства, которые могли бы быть адаптированы и для случая ПО ИИ. Это, например, системы управления версиями, системы управления конфигурацией и системы модифицирующих запросов.
Таким образом, создание ПО систем, основанных на знаниях, имеет как общие моменты с разработкой традиционных систем ПО, так и свою специфику, которая явным образом должна отражаться в соответствующих моделях жизненного цикла.
В недавнем прошлом полигоном для создания и испытания таких моделей являлись экспертные системы (ЭС).
В ходе работ по созданию ЭС практически сложилась определенная технология, включающая следующие основные этапы: идентификацию, концептуализацию, формализацию, реализацию и тестирование [Попов, 1987; Уотерман, 1989]. На этапе идентификации определяются задачи, подлежащие решению, выявляются цели разработки, ресурсы, наличие экпертов, готовых и способных передать свои знания проектируемой ЭС, категории и требования будущих пользователей. Концептуализация необходима для проведения содержательного анализа предметной области, в процессе которого выделяются используемые понятия и их взаимосвязи, определяются методы решения задач, и подробно обсуждалась в предыдущих главах.
На этапе формализации определяются способы представления всех типов знаний, специфицируются выделенные ранее понятия, фиксируются способы интерпретации знаний, моделируется работа системы, и оцениваются полученные результаты.
Этап реализации предполагает создание программной обстановки, в которой будет функционировать будущая система, и наполнение экспертом базы знаний, а на этапе тестирования эксперт и инженер по знаниям в интерактивном режиме, используя, в частности, объяснения, проверяют компетентность ЭС. В заключение на этапе тестирования проверяется пригодность ЭС для конечных пользователей.
Понятно, что процесс создания ЭС не сводится к строгой последовательности выполнения вышеперечисленных этапов. В ходе разработки происходят многочисленные возвраты к предыдущим этапам и решения, принятые там, пересматриваются. Все это существенно снижает общую эффективность разработки конкретной системы и позволяет сделать вывод о том, что модель жизненного цикла, соответствующая такой технологии, имеет мало шансов на промышленное использование.
Это, конечно, не означает, что ЭС, разработанные в рамках такой методологии, практически бесполезны или их проектирование вообще невозможно. Обычно таким образом создаются небольшие автономно функционирующие ЭС первого поколения.
Промышленная технология создания ЭС включает три фазы (или, если быть точнее, технологии): проектирование, реализацию и внедрение. Жизненный цикл разработки, охватываемый этой технологией или совокупностью технологий, состоит из 6 этапов: исследование выполнимости проекта;разработка общей концепции ЭС;разработка и тестирование серии прототипов;разработка и испытание головного образца; разработка и проверка расширенных версий системы; привязка системы к реальной рабочей среде.
На фазе проектирования проект инициализируется, формируется группа разработчиков, определяются требования к будущей ЭС, проводятся исследования выполнимости проекта и вырабатывается общая концепция будущей системы. Остальные фазы данной технологии, по мнению [Микулич, 1990], ближе к технологии Уотермана (Waterman) и направлены на реализацию разработанной концепции в виде серии прототипов, последовательно приближающихся к требуемой ЭС. Последний из прототипов и приобретает статус головного образца, который устанавливается будущим пользователем в реальную операционную среду.
Нетрудно понять, что первые два этапа промышленной технологии соответствуют этапу идентификации; следующие три — этапам концептуализации, формализации, реализации и тестирования. Новым и вместе с тем естественным для промышленной технологии является здесь этап привязки системы к реальной рабочей обстановке.
Недостатком и той и другой технологии является то, что в действительности это лишь более или менее структурированный набор методических рекомендаций, к отдельным элементам которого, в лучшем случае, привязаны те или иные инструментальные средства. И можно сказать, что сегодняшнее состояние здесь ближе к описательному, чем к естественно-научному. А это влечет за собой наличие интерпретаций методологических рекомендаций, которые могут быть настолько различными, что теряется сама идея технологии. Таким образом, самым важным на данном этапе является создание операциональных моделей технологии разработки интеллектуальных систем. И здесь, по нашему мнению, хорошим примером могут послужить модели экспертизы, уже разработанные в рамках исследований по приобретению знаний.
Приобретение знаний, как уже неоднократно отмечалось выше, является ключевой задачей во всех технологиях построения систем, основанных на знаниях (СОЗ). Существует распространенный принцип, согласно которому производительность СОЗ находится в прямой зависимости от количества знаний, содержащихся в системе [Feigenbaum, 1977]. Более 15 лет, с момента появления известной программы TIERESIAS [Davis, 1984], исследователи в области ИИ рассматривают приобретение знаний как задачу переноса знаний эксперта в БЗ системы, что чрезвычайно важно для создания действующей системы. Но в настоящее время работы в области приобретения знаний становятся важными и с точки зрения использования полученных здесь результатов для создания интеллектуальных технологий разработки самих СОЗ.
Первое поколение методик для СОЗ базировалось на подходах двух типов: поэтапном и прототипном.
Поэтапный подход связан с представлениями о жизненном цикле [Buchanan et al., 1983; Guida et al., 1989] и соответствующей поддержке его основных стадий.
В прототипном подходе первого поколения [Grover, 1983; Wielinga et al., 1988] процесс приобретения знаний может не отрабатывать все стадии, так как основным предположением здесь была возможность раскрытия структуры области экспертизы на раннем этапе проектирования на основе сравнительно небольшого анализа. Во втором поколении СОЗ-методик признана сложность процесса приобретения знаний, преодоление которой видится в моделировании экспертизы. В данной области были предложены такие методики, как онтологический анализ [Alexander et al, 1987], концептуальные графы Sowa [Clancey, 1985], подходы, основанные на обобщенных (родовых) задачах [Chandrasekaran, 1985], и концептуальное моделирование, например КADS-методология [Breuker et al., 1986]. Методики приобретения знаний обсуждаются в огромном числе работ и, в частности, в предыдущих главах настоящей книги. Не имея места для их сколько-нибудь полного анализа, сошлемся здесь лишь на обзоры [Wielinga et al., 1988; Молокова, 1992; Осипов, 1993] и перейдем к инструментальным средствам поддержки разработки интеллектуальных систем.
- Т. А. Гаврилова в. Ф. Хорошевский
- Санкт-Петербург
- Предисловие
- Об авторах
- 1.1.2. Зарождение нейрокибернетики
- 1.1.3. От кибернетики «черного ящика» к ии
- 1.1.4. История искусственного интеллекта в России
- 1.2. Основные направления исследований в области искусственного интеллекта
- 1.2.1. Представление знаний и разработка систем, основанных на знаниях (knowledge-based
- 1.2.2. Программное обеспечение систем
- 1.2.3. Разработка естественно-языковых интерфейсов и машинный перевод (natural
- 1.2.4. Интеллектуальные роботы (robotics)
- 1.2.5. Обучение и самообучение (machine
- 1.2.6. Распознавание образов (pattern
- 1.2.7. Новые архитектуры компьютеров (new
- 1.2.8. Игры и машинное творчество
- 1.2.9. Другие направления
- 1.3. Представление знаний и вывод на знаниях
- 1.3.1. Данные и знания
- 1.3.2. Модели представления знаний
- Структура фрейма
- 1.3.3. Вывод на знаниях
- 1.4. Нечеткие знания
- 1.4.1. Основы теории нечетких множеств
- 1.4.2. Операции с нечеткими знаниями
- 1.5. Прикладные интеллектуальные системы
- 2.2. Классификация систем, основанных на знаниях
- 2.2.1. Классификация по решаемой задаче
- 2.2.2. Классификация по связи с реальным временем
- 2.2.3. Классификация по типу эвм
- 2.2.4. Классификация по степени интеграции с другими программами
- 2.3. Коллектив разработчиков
- 2.4. Технология проектирования и разработки
- 2.4.1. Проблемы разработки промышленных эс
- 2.4.2. Выбор подходящей проблемы
- 2.4.3. Технология быстрого прототипирования
- 2.4.4. Развитие прототипа до промышленной эс
- 2.4.5. Оценка системы
- 2.4.6. Стыковка системы
- 2.4.7. Поддержка системы
- Теоретические аспекты инженерии знаний
- 3.1. Поле знаний
- 3.1.1. О языке описания поля знаний
- 3.1.2. Семиотическая модель поля знаний
- 3.1.3. «Пирамида» знаний
- 3.2. Стратегии получения знаний
- 3.3. Теоретические аспекты извлечения знаний
- 3.3.1. Психологический аспект
- 3.3.2. Лингвистический аспект
- 3.3.3. Гносеологический аспект извлечения знаний
- 3.4. Теоретические аспекты структурирования знаний
- 3.4.1. Историческая справка
- 3.4.2. Иерархический подход
- 3.4.3. Традиционные методологии структурирования
- 3.4.4. Объектно-структурный подход (осп)
- Технологии инженерии знаний
- 4.1. Классификация методов практического извлечения знаний
- 4.2. Коммуникативные методы
- 4.2.1. Пассивные методы
- Сравнительные характеристики пассивных методов извлечения знаний
- 4.2.2. Активные индивидуальные методы
- Сравнительные характеристики активных индивидуальных методов извлечения
- 4.2.3. Активные групповые методы
- 4.3. Текстологические методы
- 4.4. Простейшие методы структурирования
- 4.4.1. Алгоритм для «чайников»
- 4.4.2. Специальные методы структурирования
- 4.5. Состояние и перспективы автоматизированного приобретения знаний
- 4.5.1. Эволюция систем приобретения знаний
- 4.5.2. Современное состояние автоматизированных систем приобретения знаний
- 4.6.2. Имитация консультаций
- 4.6.3. Интегрированные среды приобретения знаний
- 4.6.4. Приобретение знаний из текстов
- 4.6.5. Инструментарий прямого приобретения
- Формы сообщений
- 5.1.1. Семантические пространства и психологическое шкалирование
- 5.1.2. Методы многомерного шкалирования
- 5.1.3. Использование метафор для выявления «скрытых» структур знаний
- 5.2. Метод репертуарных решеток
- 5.2.1. Основные понятия
- 5.2.2. Методы выявления конструктов
- 5.2.3. Анализ репертуарных решеток
- 5.2.4. Автоматизированные методы
- 5.3. Управление знаниями
- 5.3.1. Что такое «управление знаниями»
- 5.3.2. Управление знаниям и корпоративная память
- 5.3.3. Системы omis
- 5.3.4. Особенности разработки omis
- 5.4. Визуальное проектирование баз знаний как инструмент познания
- 5.4.1. От понятийных карт к семантическим сетям
- 5.4.2. База знаний как познавательный инструмент
- 5.5. Проектирование гипермедиа бд и адаптивных обучающих систем
- 5.5.1. Гипертекстовые системы
- 5.5.2. От мультимедиа к гипермедиа
- 5.5.3. На пути к адаптивным обучающим системам
- 6.1.3. Инструментальные средства поддержки разработки систем по
- 6.2. Методологии создания и модели жизненного цикла интеллектуальных систем
- 6.3. Языки программирования для ии и языки представления знаний
- 6.4. Инструментальные пакеты для ии
- 6.5. WorkBench-системы
- Пример разработки системы, основанной на знаниях
- 7.1. Продукционно-фреймовый япз pilot/2
- 7.1.1. Структура пилот-программ и управление выводом
- 7.1.2. Декларативное представление данных и знаний
- 7.1.3. Процедурные средства языка
- 7.2. Психодиагностика — пример предметной области для построения экспертных систем
- 7.2.1. Особенности предметной области
- 7.2.2. Батарея психодиагностических эс «Ориентир»
- 7.3. Разработка и реализация психодиагностической эс «Cattell»
- 7.3.1. Архитектура системы и ее база знаний
- 7.3.2. Общение с пользователем и опрос испытуемых
- 7.3.3. Вывод портретов и генерация их текстовых представлений
- 7.3.4. Помощь и объяснения в эс «Cattell»
- 8.1.2. Html — язык гипертекстовой разметки Интернет-документов
- 8.1.3. Возможности представления знаний на базе языка html
- 8.2. Онтологии и онтологические системы
- 8.2.1. Основные определения
- 8.2.2. Модели онтологии и онтологической системы
- 8.2.3. Методологии создания и «жизненный цикл» онтологии
- Фрагмент описания аксиомы
- 8.2.4. Примеры онтологии
- 8.3. Системы и средства представления онтологических знаний
- 8.8.1. Основные подходы
- 8.3.2. Инициатива (ка)2 и инструментарий Ontobroker
- 8.3.3. Проект shoe — спецификация онтологии и инструментарий
- 8.3.4. Другие подходы и тенденции
- 9.1.2. Основные понятия
- 9.2.2. Инструментарий AgentBuilder
- 9.2.3. Система Bee-gent
- 9.3. Информационный поиск в среде Интернет
- 9.3.1. Машины поиска
- 9.3.2. Неспециализированные и специализированные поисковые агенты
- 9.3.3. Системы интеллектуальных поисковых агентов
- Заключение
- Литература
- Содержание
- Базы знаний интеллектуальных систем
- 196105, Санкт-Петербург, ул. Благодатная, 67.
- 197110, Санкт-Петербург, Чкаловский пр., 15.