Интеллектуальные системы Интеллектуальные системы применяются для тиражирования профессионального опыта и решения сложных научных, производственных и экономических задач (прогнозирование рынка). Лекция 9 Интеллектуальные системы основываются на знаниях. Для обработки и моделирования знаний создаются так называемые базы знаний ( БЗ ). Знания – это выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области. Данные – это отдельные факты, характеризующие объекты, процессы и явления в предметной области, а так же их свойства. Знания основываются на данных, но представляют результат мыслительной деятельности человека, обобщают его опыт практической деятельности. Экспертные системы ( ЭС ) Знания существуют в двух видах – коллективный опыт и личный опыт. КоллекЛичные тивные знания знания Коллективные знания Личные знания Рис.1.ЭС не нужна Рис.2. Необходима ЭС. Экспертные системы – это программные комплексы, содержащие знания специалистов в конкретных предметных областях и предоставляющие этот опыт менее квалифицированным пользователям. Структура экспертной системы Блок логического вывода Интерфейс пользователя База знаний Интеллектуальный редактор БЗ Подсистема объяснений Пользователь Инженер по знаниям + эксперт Рис.3. Обобщённая структурная схема ЭС Если большая часть знаний в предметной области представлена в виде коллективного опыта, эта область не нуждается в экспертных системах (например, высшая математика) Рис.1. Если в предметной области большая часть знаний является личным опытом специалистов высокого уровня (экспертов), такая предметная область нуждается в экспертной системе Рис. 2. Обобщённая структурная схема ЭС представлена на Рис.3 Реальные ЭС могут иметь более сложную структуру, однако блоки, изображённые на рисунке, непременно будут присутствовать в любой действительно ЭС. Определим основные термины. Пользователь – специалист предметной области, для которого предназначена система. Инженер по знаниям – специалист по искусственному интеллекту, выступающий в роли буфера между экспертом и базой знаний. Интерфейс пользователя – комплекс программ, реализующих диалог пользователя с ЭС. База знаний (БЗ) – совокупность знаний предметной области, записанная на машинный носитель в форме, понятной эксперту и пользователю. Блок логического вывода – программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в БЗ. Подсистема объяснений – программа, позволяющая пользователю получать ответы на вопросы. Интеллектуальный редактор – программа, представляющая инженеру по знаниям возможность создавать БЗ в диалоговом режиме. Включает в себя сервисные средства, облегчающие работу с базой. В коллектив разработчиков ЭС входят: эксперт; инженер по знаниям; программист; пользователь. Возглавляет коллектив инженер по знаниям. Классификация экспертных систем: по задаче; по связи с реальным временем; по типу ЭВМ; по степени интеграции. Классификация по решаемой задаче 1. Интерпретация (трактовка) данных – определение смысла данных, результаты которого должны быть согласованными и корректными (определение свойств личности по результатам тестирования). 9_2 - Обычно его квалификация недостаточно высока, и он нуждается в помощи ЭС. - Синонимы: когнитолог, инженер - интерпретатор, аналитик. - Диалог на стадии ввода информации и получения результатов. - БЗ – ядро ЭС. Форма представления – некоторый язык, приближённый к естественному. - Синонимы – решатель, дедуктивная машина. - Как была получена та или иная рекомендация? Почему система приняла такое решение? Показывает все шаги цепи умозаключений. - Включает в себя систему вложенных меню, шаблонов языка представления знаний, подсказок и других сервисных средств, облегчающих работу с базой. Как минимум 4 человека Это ключевая фигура при разработке систем, основанных на знаниях. Класс «Экспертные системы» сегодня объединяет несколько тысяч различных программных комплексов, которые можно классифицировать по различным критериям. Полезными могут оказаться следующие классификации. Одна из традиционных задач для экспертных систем. Обычно предусматривается многовариантный анализ данных. 2. Диагностика – обнаружение неисправностей в некоторой системе (неисправность оборудования, линейного тракта, живых организмов). 3. Мониторинг – непрерывная интерпретация данных и сигнализация о выходе тех или иных параметров за допустимые пределы (контроль за работой электростанции, контроль аварийных датчиков). 4. Проектирование – подготовка спецификаций на создание «объектов» с заранее определёнными свойствами (проектирование конфигураций ЭВМ, проектирование БИС). В процессе проектирования необходимо связать процесс вывода решения и процесс объяснения. 5. Прогнозирование – вывод вероятных следствий из заданных ситуаций (предсказание погоды, оценка будущего урожая, прогнозы в экономики). 6. Планирование – нахождение планов действий, к объектам, способным выполнять некоторые функции (планирование поведения робота, заказов, эксперимента) 7. Обучение – какой-либо дисциплины с помощью ЭВМ – диагностирование ошибок, подсказывание правильных решений (обучение языку программирования). Все системы, основанные на знаниях, можно подразделить на: Системы, решающие задачи анализа (это интерпретация данных, диагностика), Системы, решающие задачи синтеза (это проектирование, планирование). Комбинированные задачи (обучение, мониторинг, прогнозирование) Классификация по связи с реальным временем 1. Статистические ЭС разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени. Они стабильны (диагностика неисправностей в автомобиле). 2. Квазигармонические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени (измерение технологического процесса один раз в 4 – 5 ч и анализ динамики полученных показателей по отношению к предыдущему измерению). 3. Динамические ЭС работают в режиме реального времени с непрерывной интерпретацией получаемых данных (управление производственными комплексами). 9_3 Неисправность – это отклонение от нормы. С единых теоретических позиций можно рассматривать и неисправность оборудования и живых организмов. Главные проблемы – «пропуск» тревожной ситуации и задача «ложного» срабатывания. В прогнозе используется модель, в которой значения параметров подгоняются под заданную ситуацию. В ЭС используются модели поведения реальных объектов с тем, чтобы логически вывести последствия планируемой –деятельности. Системы обучения планируют общение с учеником в зависимости от успехов ученика с целью передачи знаний и ликвидации слабости в знаниях. В задачах анализа множество решений может быть перечислено и включено в систему, в задачах синтеза – множество решений потенциально строится из решений компонентов или подпроблем. 9_4 Классификация ЭС по типу ЭВМ: Для универсальных стратегически важных задач На суперЭВМ (Эльбрус, CRAY, CONVEX); На ЭВМ средней производительности (типа ЕС ЭВМ) На символьных процессорах и рабочих станциях (SUN, APOLLO); На мини- и супермини-ЭВМ (VAX, micro-VAX и др.); На персональных компьютерах (IBM PC, MAC II). Классификация по степени интеграции с другими программами 1. Автономные ЭС – работают в режиме консультаций с пользователем. 2. Гибридные ЭС – программный комплекс объединяющий стандартные пакеты прикладных программ (математические статистику, программирование, СУБД) и средства манипулирования знаниями. Инструментальные средства построения ЭС: Традиционные языки программирования; Языки искусственного интеллекта; Специальный программный инструментарий; «Оболочки». Традиционные языки программирования С; Наиболее распространённые С++; Basic; Fortran и т.п. Достоинство языков – высокая эффективность, связанная с их близостью к традиционной машинной архитектуре. Языки искусственного интеллекта Лисп (LISP); Пролог (Prolog); РЕФАЛ (разработанный в России). Эти языки позволяют работать с символьными и логическими данными. Специальный программный инструментарий Это библиотеки и надстройки над языком искусственного интеллекта Лисп: KEE, FRL, KRL, ARTS. KEE (Knowledge Engineering Environment); FRL (Frame Representation Language); KRL (Knowledge Representation Language). В эту группу инструментальных средств входят традиционные языки программирования, ориентированные в основном на численные алгоритмы и слабо подходящие для работы с символьными и логическими данными. Языки, предназначенные для решения задач искусственного интеллекта. Универсальность их меньше, но они позволяют работать с символьными и логическими данными, что крайне важно для задач искусственного интеллекта. Надстройки позволяют пользователям работать с заготовками экспертных систем на более высоком уровне, нежели это возможно в обычных языках искусственного интеллекта. KEE-Знания в области инженерии FRL-Абстрактное представление система языка. KRL-Знание о том, как язык представляется. 9_5 “Оболочки” Это «пустые» версии существующих экспертных систем, т.е. готовые ЭС без базы знаний: EMYCIN (Empty MYCIN – пустой MYCIN) – незаполненная экспертная система MYCIN. Оболочки: - не требуют работы программистов для создания ЭС; - достаточно специалиста в предметной области для заполнения оболочки. Этапы разработки ЭС Целесообразность ЭС в областях: информационного поиска; сложных расчётов; графики; обработки текста. Процесс разработки делится на 6 независимых этапов: I. Выбор подходящей модели. Он включает в себя: определение проблемной области и задачи; нахождение нужного эксперта; определение предварительного подхода к решению проблемы; анализ расходов и прибыли от разработки; подготовку подробного плана разработки. II. Разработка протопитной системы – усечённой версии ЭС, спроектированной для проверки правильности кодирования фактов, связей и рассуждений. При этом: Уточняется задача, планируется ход разработки прототипа ЭС; Выявляется структура полученных знаний; Строится формализованное представление концепций предметной области; Создаётся прототип ЭС, включающий БЗ; Оценивается и проверяется ( тестирование )работа программ прототипа с целью приведения в соответствии с реальными запросами пользователей. III. Развитие прототипа до промышленной ЭС. Выделяют два этапа: Демонстрационный прототип (решает часть задач)– исследовательский прототип (большинство задач); Действующий прототип (обеспечивает высокое качество решений)– промышленная система (пригодна к продаже). Достоинство оболочек в том, что они вообще не требуют работы программистов для создания готовой экспертной системы. Достаточно специалиста в предметной области для заполнения оболочки. Разработка программных комплексов ЭС находится на уровне искусства, чем науки. Т.к. разрабатываются несколько прототипных версий программ, прежде чем получается конечный результат. где накоплен опыт по автоматизации рутинных процедур обработки информации. Этот этап включает деятельность, предшествующую решению начать разрабатывать конкретную ЭС. Правильный выбор проблемы представляет самую критическую часть разработки в целом, т.е. можно создать систему, которая стоит намного бол ьше, чем экономит или работает, но не приемлема для пользователя. Перед коллективом разработчиков стоит чётко определённая задача. Роли разработчиков являются постоянными на протяжении всей разработки. Идентификация проблемы – знакомство и обучение коллектива разработчиков, создание неформальной формулировки проблемы. Извлечение знаний – получение инженером по знаниям наиболее полного представления о предметной области. Концептуализация знаний – разработка неформального описания знаний о предметной области в виде графа, таблицы, диаграммы или текста. Формализация знаний – разработка БЗ на доступном языке. Реализация – разработка программного комплекса, демонстрирующего жизнеспособность подхода в целом. IV. Оценка системы по критериям: пользователей; приглашённых экспертов; коллектива разработчиков. V. Стыковка системы с другими программными средствами в среде, где она будет работать. VI. Поддержка системы. Язык программирования Си повышает быстродействие ЭС, но уменьшает её гибкость. 9_6 Тестирование – выявление ошибок в подходе и реализации прототипа и выработка рекомендаций по доводке системы до промышленного образца. Система должна обеспечить пользователю возможность лёгким и естественным образом спрашивать непонятное. Эксперты могут вводить новые правила. Стыковка подразумевает разработка связей между ЭС и средой, в которой она действует. Язык Си приемлем, если система сохраняет все знания проблемной области и это знание не будет изменяться в ближайшем будущем. В противном случае необходимо поддерживать систему в инструментальной среде разработки.