Представление знаний



24.2. Представление знаний


В определенном смысле любая компьютерная программа содержит знания. Программа сортировки по методу "пузырька", написанная на языке BASIC, содержит знания программиста о том, как упорядочить элементы списка. Так чем же все-таки представление знаний отличается от обычного программирования?

Разобраться в сути компьютерной программы, решающей задачу сортировки списков, совсем непросто. Она, конечно же, содержит знания программиста о методе решения задачи, но, помимо этих знаний, в ней содержатся и другие:

  • как манипулировать языковыми конструкциями используемого языка программирования;
  • как добиться высокой производительности программы;
  • как выбрать подходящие методы решения частных проблем обработки данных, играющих, тем не менее, важную роль в достижении конечного результата, и как организовать управление процессом.
Языки представления знания являются языками высокого уровня, специально предназначенными для кодирования в явном виде фрагментов знаний человека, таких как правила влияния и набор свойств типовых объектов, причем высокий уровень языка проявляется в том, что от пользователя скрываются, насколько это возможно, технические подробности механизма представления знаний. Конечно, пользователь при желании может познакомиться со всеми деталями, но идея состоит в том, что это совсем не обязательно делать в процессе разработки программы. В отличие от более привычных языков профаммирования, языки представления знаний исключительно экономичны в смысле объема программного кода. В значительной мере это объясняется тем, что заботу о множестве мелочей берет на себя интерпретатор языка. Можно показать, что большинство из них обладает всеми признаками машины Тьюринга, другими словами, такие интерпретаторы теоретически способны выполнять любые вычисления, которые под силу машине, реализующей программу, написанную на любом из "обычных" языков программирования.



Несмотря на отмеченные достоинства таких языков, нельзя забывать и о существовании определенных проблем при их применении.

  • Переход от описания знаний о предметной области на всем понятном "человеческом" языке к их представлению в виде какого-либо формализма, воспринимаемого компьютером, требует определенного искусства, поскольку невозможно (по крайней мере, на сегодняшний день) описать, как механически выполнить такое преобразование. Так как возможности логического вывода, которые может реализовать программа, напрямую связаны с выбором способа представления знаний, то, по моему мнению, именно представление знаний, а не их извлечение является самым узким местом в практике проектирования экспертных систем.
  • Существует определенный баланс противоречий между выразительностью языка представления знаний и простотой трактовки представленных в нем процедур определения логического влияния. Другими словами, чем более концентрировано будут представлены знания в языковой форме, тем сложнее, а значит, и дольше будет процесс их осознания.
  • В большинстве случаев представление знаний осложняется неуверенностью в них или неопределенностью высказываемых суждений. Наши знания по самой своей природе часто являются неполными и содержат множество догадок и предположений.
Вызов со стороны проблемы представления знаний состоит в том, что мы не можем себе позволить опустить руки перед сложностями, связанными с передачей знаний от человека программе, возможностью их адекватной трактовки и неопределенностью знаний.

  • Мы вынужденно согласились на довольно эмпирический подход к переводу знаний на язык формальных правил или описаний объектов. Это действительно больше искусство, чем наука, и чем больше вы создадите правил и объектов в процессе своей деятельности, тем более высокого уровня совершенства добьетесь в этом деле. Вопреки распространенному мнению, эта работа далеко не каждому по плечу.
  • Желая добиться логической полноты, мы часто сталкиваемся с проблемой необозримости. Но чаще всего нам совсем нет нужды получать все логически возможные решения проблемы — можно отыскать только оптимальное или любое, удовлетворяющее заданным ограничениям.
  • При работе с неопределенностями мы согласны закрыть глаза на некоторую математическую некорректность. Хотя многие используемые на практике варианты схем влияния и не вполне согласуются с аксиомами теории вероятностей, мы идем на определенные упрощения ради практической выгоды.
Сказанное выше нужно расценивать как констатацию реально существующей ситуации. Я не сомневаюсь, что дальнейшие исследования методов представления знаний позволят нам лучше понять смысл этих компромиссов, но в настоящее время мы располагаем методами, которые вполне устраивают нас на практике.

Отошли в прошлое оживленные дискуссии на отвлеченные темы вроде "Может ли машина мыслить?" или "Как действительно представляются знания в мозге человека?" Сейчас чаще всего задаются вопросом: "Что позволяет сделать данная технология?", а ответ на него может быть получен только программой, в которой сконцентрированы результаты теоретической и практической работы, а не метафизические спекуляции.



Содержание раздела