Представление знаний в системах ИИ
С разработкой и использованием вычислительной техники традиционно связаны такие понятия, как программы и данные. При этом первые предназначены для обработки вторых. Программист разрабатывал программу, и сам вводил в нее необходимые данные.
Затем произошло крупное изменение - данные были отделены от программ, появились базы данных различной структуры (реляционные(табличные), иерархические, сетевые) и системы управления базами данных (СУБД).
Для отделения данных от программ использовались средства описания данных, содержащиеся в языках программирования. Такие языки, как ФОРТРАН и АЛГОЛ, содержат средства описания относительно простых структур данных в памяти ЭВМ. Более сложные средства описания иерархических структур данных имеются в языках КОБОЛ, СИ, ПАСКАЛЬ. В языках ПАСКАЛЬ, МОДУЛА-2, АДА также есть средства для конструирования структур данных самим пользователем.
Параллельно, с некоторым временным сдвигом, развивались представления данных во внешней памяти ЭВМ. Здесь фундаментальным понятием стало понятие информационного массива- файла, имеющего имя и содержащего все необходимые структурированные записи данных о различных объектах, с которыми ведет работу система. Файл можно трактовать как информационную модель объекта.
Представление данных во внешней памяти ЭВМ прошло через три этапа:
1) Способы формирования записей данных в файлах, ведение файлов и организация доступа к ним полностью определялись в конкретных программах пользователя;
2) Управление файлами и организацию доступа к ним стали осуществлять операционные системы ЭВМ;
3) Создание баз данных и развитых систем управления ими, когда стала возможной эффективная работа с большими базами данных (в частности, с интегрированными, содержащими разнородные данные), обрабатываемыми в интересах целого предприятия, отрасли и т.п., и предназначенными для использования в прикладных задачах.
На первом этапе создание, поддержание, организация доступа к данным, как на логическом, так и на физическом уровнях целиком возлагались на разработчика и пользователя каждой программы. Работа с данными программы и тем более их использование в других программах были крайне трудоемки и малоэффективны.
Однако работа с интегрированными данными стала реальностью лишь на третьем этапе, когда появилась возможность эффективно организовывать базы данных со сложной структурой, а в рамках СУБД появились мощные средства для работы с данными. Это сделало оправданным и эффективным существование в системе данных, независимых от прикладных программ, в которых эти данные создаются и используются, позволило технологически отделить друг от друга различные программы (создающие, поддерживающие и использующие данные). Появилась возможность эффективно связывать программы для обработки данных с самими этими данными и вызывать уже программы исходя изданных, а не наоборот, как было ранее.
На втором этапе часть забот по работе с данными во внешней памяти ЭВМ (в основном на физическом уровне) взяла на себя операционная система.
Наконец, СУБД дали средства для создания в каждом программном комплексе промежуточного слоя математического обеспечения, отделяющего собственно прикладные программы от используемых данных, эффективно реализующего поиск, размещение и прочие операции над данными и тем самым освобождающего от этой деятельности прикладных программистов. Этот слой частично состоит из системных программ СУБД, частично достраивается пользователем, средства для чего предоставляются специализированными языками описания данных и языками манипулирования данными, включаемыми в СУБД.
Эти языки дополняют традиционные языки программирования средствами для организации больших групп данных. Чтобы обеспечить возможность прямого использования этих средств в прикладных программах на традиционных языках, язык описания данных и язык манипулирования данными зачастую оформляются как расширение развитого языка программирования – включающего языка.
В настоящее время можно говорить о новом этапе представления данных в памяти ЭВМ - о создании информационно- вычислительных сетей и на их основе – распределенных баз данных коллективного пользования. Это приводит как к снижению затрат на создание и введение баз данных, так и к повышению качества хранимой информации, поскольку для ведения баз данных возможно привлечение более квалифицированных специалистов. Одновременно резко возрастает доступность этой информации для пользователей.
С появлением систем ИИ появилось новое понятие – «база знаний»
(БЗ) [1]. Следует как-то соотнести ставшие привычными понятия «данные и БД» с понятиями «знания и БЗ». Несомненно, что данные и структура базы данных в определенной степени отражают знания о предметной области и ее структуре. Тем не менее, имеются специфические признаки, отличающие знания от данных. В качестве таких специфических признаков знаний в связи с представлением их в ЭМВ можно выделить следующие четыре признака:
Ø внутренняя интерпретируемость;
Ø структурированность;
Ø связность;
Ø активность.
Если обратиться к структурированным данным, то некоторые из указанных признаков, свойственных знаниям, будут справедливы и для структур данных. Например, первый признак –интерпретируемость– явно просматривается в реляционной базе данных, где имена столбцов являются атрибутами отношений, имена которых указаны в строках. Внутренняя интерпретируемость предусматривает возможность установки для элемента данных связанной с ним системы имен. Система имен включает в себя индивидуальное имя, которое присвоено данной информационной единице. Наличие системы «избыточных» имен позволяет системе ИИ знать, что хранится в ее базе знаний, и, следовательно, уметь отвечать на нечеткие вопросы о содержимом базы знаний.
Второй признак – структурированность – можно рассматривать как свойство декомпозиции сложных объектов на более простые и установление связей между простыми объектами, что означает использование отношений «часть-целое», «класс-подкласс», «род-вид» и т.п. Отношения подобного рода встречаются и в иерархических и сетевых базах банных. Эти же отношения могут быть реализованы и в табличных базах данных.
Для третьего признака знаний – связность – практически нельзя найти аналогов в упоминавшихся базах данных. Знания наши связаны не только в смысле структуры. Они отражают закономерности относительно фактов, процессов, явлений и причинно-следственные отношения между ними. Связность характеризует возможность установления между информационными единицами самых разнообразных отношений (четких, нечетких, бинарных, составных), которые определяют семантику и прагматику связей явлений и фактов, а также отношений, определяющих смысл системы в целом.
Что касается четвертого признака – активность, то сложилось так, что при использовании ЭВМ порождающими новые знания являются программы, а данные пассивно хранятся в памяти ЭВМ. Человеку свойственна познавательная активность, другими словами, знания человека активны. И это принципиально отличает знания от данных. Например, обнаружение противоречий в знаниях становится побудительной причиной их преодоления и появления новых знаний, таким же стимулом активности является неполнота знаний, выражающаяся в необходимости их пополнения.
Знания, используемые для создания системы ИИ, ее работы, хранящиеся и вырабатываемые в ней, могут быть определены различным образом. В настоящее время используют три определения. Знания - это:
¨ результат, полученный познанием;
¨ система суждений с принципиальной и единой организацией, основанная на объективной закономерности;
¨ формализованная информация, на которую ссылаются или используют в процессе логического вывода.
Процесс решения задач с помощью простейшей модели системы ИИ представлен на рис 2.1.
Рис 2.1. Связь между знаниями и выводом при решении ин-
теллектуальной проблемы.
В данном случае знания – это информация, на которую ссылаются, когда делают различные заключения на основании имеющихся данных с помощью логических выводов. Если эта работа выполнятся программным путем, то знания – это обязательно информация, представленная в опре-деленной форме.
Постановка и решение любой задачи, связанной с обработкой данных и знаний, всегда связаны с ее «погружением» в подходящую предметную область.
Предметная область – это все предметы и события, которые составляют основу общего понимания необходимой для решения задачи информации. Мысленно предметная область представляется состоящей из реальных или абстрактных объектов, называемых сущностями. Так, решая задачу составления расписания обработки деталей на металлорежущих станках, мы вовлекаем в предметную область такие сущности, как конкретные станки, детали, интервалы времени, так и общие понятия «станок», «деталь», «тип станка».
При решении задач в некоторой предметной области знания удобно разделить на две большие категории – факты и эвристику. Первая категория указывает обычно на хорошо известные в данной предметной области обстоятельства, поэтому знания этой категории иногда называют текстовыми, имея в виду достаточную их освещенность в специальной литературе или учебниках. Вторая категория знаний основывается на собственном опыте специалиста в данной предметной области – эксперта, накопленном в результате многолетней практики. В так называемых экспертных системах эвристические знания играют решающую роль в повышении эффективности систем. Иными словами, в эту категорию входят такие знания, как «способы сосредоточения», «способы удаления бесполезных идей», «способы использования нечеткой информации» и т.п., позволяющие с большей эффективностью решать задачи. Тем не менее, из-за недостаточной научной обоснованности и отсутствия исчерпывающих сведений пользоваться такими знаниями нужно осмотрительно.
Знания, кроме того, можно разделить на факты (фактические знания) и правила (знания для принятия решения). Под фактами подразумеваются знания типа «А это А», они характерны для баз данных и сетевых моделей. Под правилами подразумеваются знания вида «ЕСЛИ – ТО». Кроме них существуют так называемые метазнания (знания о знаниях). Понятие «метазнания» указывает на знания, касающиеся способов использования знаний, и знания, касающиеся свойств знаний. Это понятие необходимо для управления базой знаний, логическим выводом, отождествления, обучения и т.п.
Совокупность предметной области и задач, решаемых в этой области, определяется понятием «проблемная область».
Данные и структуры данных далеко не в полной мере отражают особенности предметных областей. Хотя, вообще говоря, четкую грань между данными и знаниями провести можно не всегда, тем не менее, отличия между данными и знаниями существуют, и эти отличия привели к появлению специальных формализмов в виде моделей представления знаний в ЭВМ, отражающих в той или иной степени все четыре признака, характеризующих знания. Вернуться
Сейчас известны, по меньшей мере, четыре вида моделей и соответственно языков представления знаний[8,10,13]:
1) языки (модели) семантических сетей;
2) системы фреймов;
3) логические языки (модели);
4) продукционные системы.
Перейдем к описанию известных моделей представления знаний в ЭВМ.