Знания
Тема 4.3 Модели представления знаний
Со времен изобретения компьютера человек стремился использовать его для решения все более сложных задач. Поэтому с тех самых времен возникла необходимость изложения знаний, которые он использует для решения этих задач, в форме, пригодной для обработки с помощью компьютера. Но прежде, чем говорить о способах представления знаний в памяти компьютера, необходимо пояснить, что такое знания и чем они отличаются от данных.
Данные — это отдельные факты, характеризующие конкретные объекты, процессы и явления предметной области, а также их свойства.
Знания — это закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессионального опыта и позволяющие специалистам решать задачи в этой области.
Поясним на примерах эти определения. Следующая запись взята из журнала, который ведется в мастерской автосервиса.
«Марка автомобиля — ВАЗ 21053; номер — А678ОР 77; контактный телефон владельца — 345-67-34; неисправность — двигатель останавливается на холостом ходу».
|
|
Эта запись содержит в лаконичной форме фрагмент описания предметной области: на ремонте в мастерской находится машина определенной марки, имеющая определенный номер, с владельцем которой можно связаться по указанному телефону и в которой имеется конкретная неисправность, требующая устранения. Таким образом, приведенная запись отражает вполне определенные фактические данные.
Следующий пример относится к той же предметной области.
«ЕСЛИ двигатель останавливается на холостом ходу и зажигание в цилиндрах двигателя выставлено правильно, ТО возможная причина неисправности — засорены жиклеры холостого хода».
Приведенная фраза описывает определенную закономерность предметной области (т. е. относящуюся ко всем автомобилям с карбюраторным двигателем) и содержит в себе знание специалиста по ремонту двигателей, приобретенное им опытным путем за время работы в автосервисе либо полученное в результате обучения, т. е. от другого специалиста. Опытный мастер обладает большим набором утверждений подобного рода (не только по диагностике неисправностей, но и по их устранению), многие из которых имеют вид «ЕСЛИ — ТО», как приведенное ранее.
Следует отметить, что деление информации на классы «данные» и «знания» довольно условно, часто фактические данные (или просто факты) относят к знаниям специального вида, которые представляются в виде: АЛВ, где А — символьная строка, указывающие на имя конкретного объекта или ситуации, В — символьная строка или число, а знак А обозначает один из
|
|
математических знаков =, >, <, <, >.
Например, «марка = ВА321053», «неисправность = двигатель останавливается на холостом ходу», «температура <37», «цвет изделия е {черный, синий, красный}».
Первым подходом к строгому (формализованному) представлению знаний стал алгоритмический, или процедурный, подход. Развитие этого подхода было связано со значительными успехами в развитии языков программирования — от языка машинных кодов до языков высокого уровня (Фортран, Паскаль, Си, Модула и др.). Основная суть этого подхода заключается в том, что знания и процедуры их обработки выражаются в виде жесткой последовательности действий (алгоритма), предписываемых к исполнению компьютером. При таком подходе разработанная прикладная программа составляет единое целое со знаниями. Относительно быстро выяснилось, что такой подход влечет за собой следующие недостатки:
• увеличение сложности решаемых задач приводит к тому, что
программы становятся все сложнее для понимания, и поэтому
затрудняется их разработка;
• изменения, происходящие в предметной области, как правило, требуют корректировки алгоритма решения задачи, а это, в
свою очередь, влечет повторное написание отдельных фрагментов программы, а иногда и всей программы целиком.
Необходимым условием возможности решения задачи, используя процедурный подход, является наличие четкого алгоритма. Поэтому автоматизация коснулась прежде всего так называемых формализованных задач, алгоритм решения которых хорошо известен (например, задача расчета заработной платы).
Однако в практической деятельности человек чаще сталкивается с задачами совсем другого типа, для которых характерны следующие особенности:
• алгоритм решения задачи неизвестен или не может быть использован из-за ограниченности памяти и быстродействия компьютера;
• задача не может быть записана в числовой форме (например, задача медицинской или технической диагностики).
Такие задачи принято называть плохо формализуемыми.
Попытка устранить перечисленные выше недостатки процедурного подхода, а также попытка решения плохо формализуемых задач привели к формированию нового направления — инженерии знаний. В основе этого направления лежит идея выделения знаний из программного обеспечения компьютера и превращения их в отдельную компоненту — базу знаний. Знания, хранящиеся в базе знаний, представляются в конкретной единообразной форме, что дает возможность их легкого определения, модификации и пополнения. Решение же задач реализуется с помощью логических выводов, делаемых на основании знаний. Для этого предусмотрен отдельный модуль логического вывода, который, собственно, и составляет основную часть программного обеспечения. Системы, построенные по такому принципу, называются системами, основанными на знаниях, или интеллектуальными системами.
Наиболее значительное практическое достижение в области инженерии знаний представляет специальный класс интеллектуальных систем — экспертные системы, которые предназначены для решения разнообразных задач в конкретных областях человеческой деятельности без участия квалифицированных специалистов.
Знания, относящиеся к любой предметной области, обычно существуют в двух видах: общедоступные и индивидуальные. Общедоступные знания — это факты, определения, теории, которые обычно изложены в учебниках и справочниках по данной области. Но, как правило, специалисты в данной предметной области — эксперты — обладают еще и индивидуальными знаниями, которые отсутствуют в литературе. Эти личные знания основываются на собственном опыте эксперта, накопленном в результате многолетней практики, и в значительной мере состоят из эмпирических, т.е. основанных на опыте, правил, которые принято называть эвристиками. Эвристики позволяют экспертам выдвигать разумные предположения и находить перспективные подходы к решению плохо формализуемых задач.
|
|
Знания в базе знаний должны быть представлены в определенной форме. Форма представления знаний зависит от решаемой задачи и оказывает существенное влияние на характеристики и свойства разрабатываемой системы. Поэтому представление знаний является одной из наиболее важных проблем при разработке программных интеллектуальных систем.
Поскольку логический вывод и действия над знаниями выполняют специальные программы, знания нельзя представлять непосредственно в том виде, в котором они используются человеком (например, в виде простого текста). Поэтому для представления знаний разрабатываются математически строгие модели представления знаний.
В настоящее время существуют десятки моделей представления знаний для различных предметных областей. Большинство из них сводится к следующим классам:
· продукционная модель;
· модель семантической сети;
· модель, основанная на фреймах;
· логическая модель.
Рассмотрим основные концепции, лежащие в основе этих моделей.