Процедурные и декларативные знания: примеры и описание

С формальной точки зрения знание с трудом поддается формализации, систематизации и точному описанию вообще. Само по себе понимание, что такое знание зависит от конкретного человека, от уровня его образования, жизненного опыта, профессии, особенностей психики, эмоциональности.

Факторов восприятия знаний достаточно много. Существенно и неоспоримо лишь то, что это восприятие развивается во времени в сознании того, кто воспринимает то или иное знание. Важно понимать - знание может быть представлено тем, кто его воспринял и передал другому субъекту, но без гарантии той же точности восприятия и понимания.

Что связывает людей между собой в понимании сущности знаний?

Знания, которые необходимы человеку для жизни, учебы и работы в большинстве своем воспринимаются и понимаются всеми людьми эквивалентно. На тривиальное предложение: «Попробуйте привести примеры декларативных и процедурных знаний» и русский, и китаец, и американец ответят незамедлительно, но если любой из них уже много лет как программист, будет проблема с ассоциациями.

Профессия накладывает на восприятие человека отпечаток, а то, что это восприятие однозначно допускает, человек может не ассоциировать с такими простыми школьными понятиями. Сомнительно, что по данному примеру профессиональный программист вообще вспомнит слово «процедурный» и отнесет его к знанию, хотя перед этим он не задумываясь выполнил декларирование переменных, написал функцию передачи информации с сайта на сервер. Специалист знает, что это такое, но нет никакой ассоциативной связи.

Значение слова "декларация" не понимает только ребёнок из детского садика. Декларации составляет каждый в аэропорту, на таможне, в налоговой, но не каждый сообразит, что такое декларативное знание.

Таким образом, школьник начальных классов и взрослый человек на простой вопрос: "Приведите примеры своих декларативных и процедурных знаний" могут просто не ответить, но не потому что не знают. Сначала нужно предварительно пояснить, что декларативное знание что-то описывает, а процедурное знание - определяет алгоритм действий.

Представления о декларативном знании

Описать предмет, явление, продукт питания или станок можно по-разному. Поиск в Интернете по фразе «декларативные знания, примеры» дает такие ответы: «Любое знание о мире, к которому человек имеет осознанный доступ» или «Декларативные знания записаны в памяти интеллектуальной системы так, что они непосредственно доступны для использования после обращения к соответствующему полю памяти».

Сказано в обоих случаях красиво, но к декларативным знаниями - это имеет слабое отношение. Во-первых, любое знание о мире можно изложить декларативно, даже если оно по природе своей - очевидный алгоритм. Во-вторых, какое значение имеет наличие или отсутствие «осознанного» доступа.

Бывает ли восприятие информации не осознанным? Но если восприятие было неосознанным (это реально), то как бы оно восприняло именно знание, а не сигнал, не ощущение, не реакцию? Имплантировать в мозг знания пока умеют только фантасты при помощи сложных механизмов.

В-третьих, какое имеет отношение к делу память интеллектуальной системы? Называть программу интеллектуальной или нет - вопрос воображения. Кроме того, сегодня нет ни одной программной системы, которую можно объективно назвать интеллектуальной.

Представления о процедурном знании

Здесь всё сложнее. Умение жарить яичницу, умение открывать дверь или умываться - не воспринимается, как процедурное знание. Всё это настолько привычно и естественно, что все мыслимые и немыслимые действия, которые обычно выполняет человек, он не воспринимает как алгоритм.

Все люди по природе своей программисты, но писать программы умеет не все. А из тех, кто умеет это делать, программистов ещё меньше. Если упростить ситуацию и попробовать среди профессиональных программистов найти тех, которые могут написать реально объектно-ориентированную, полностью рекурсивную на уровне каждого компонента программу, то это будут единицы.

Реальность в этом случае не проходит через барьер привычности и не воспринимается как процедурное знание, но если просто подсказать в чём дело, любой человек приведет примеры декларативных и процедурных знаний не только из собственного опыта, но на примере любых событий, явлений и обстоятельств.

Примеры декларативных и процедурных знаний

Яблоко зеленое - это декларативное знание. Футбольное поле - тоже. Но яблоко может быть не только зеленым, да и не яблоком вовсе. Чтобы отличить настоящее яблоко от изготовленного из воска, потребуется знание того, как оно выглядит в реальности и другие отличия (запах, текстура, форма).

С футбольным полем посложнее. Определив определенную поверхность как футбольное поле, можно совершить ошибку. Приехал друг из города в деревню и ему назначена встреча на футбольном поле. Естественно, он будет искать место, где есть ворота, трибуны и классическая футбольная разметка.

Процедурное знание:

  • кулинарный рецепт;
  • сборка автомобиля;
  • написание сочинения или стиха.

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

В алгоритме всегда труднее ошибиться, чем в описании. Процедурное знание, как правило, тестируется на предмет работоспособности. Декларативное тоже требует проверки, но какой именно - определяет область использования декларативного знания.

Для художника, отображающего примеры такого знания (зеленое яблоко и футбольное поле) совершенно безразлично, что он рисует. Для него важно передать форму, цвет, пропорции, отобразить то, что он видит. Для покупателя на рынке совсем другая система ценностей. Форма и цвет фрукта покупателя меньше волнует, чем его потребительские качества. Для человека, которому назначили встречу на футбольном поле важны критерии, позволяющие принять однозначное решение.

Программирование и знания

Самый лучший критерий для декларативного и процедурного знания - аксиомы из области программирования. Причем программирование 80 годов прошлого века в этом контексте практичнее. В те времена четко было понятно описание данных, то есть: что такое декларативное знание. Любое такое описание четко обозначено: компьютер никогда не прощает ошибок.

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

Процедурное знание всегда четко регламентировано. Понятие синтаксиса в описании алгоритма или процедуры настолько важно, что без конкретных условностей и обозначений признать процедурным его никак нельзя.

Рассматривая декларативные знания, примеры: «я знаю, что ...» можно четко сформулировать два момента:

  • пример - это одно;
  • я знаю, что ... - это совсем другое.

Пример в большинстве случаев (в образовании, на производстве, в быту) четко определен и люди, имеющие о нем представление, понимают его смысл одинаковым образом. Человек, который пришел учиться, работать или оказался в другом месте, определяет смысл примера по-своему, у него есть два пути: настаивать на своем или изменить свое собственное мнение о конкретном знании.

Интеллектуальные системы и знания

Декларативные знания, как примеры - это описательные части программ. Имеется ввиду не описание переменных, а описание реальных данных. Например, штатное расписание, карточка сотрудника, трудовая книжка, благодарность и другое. Любой из этих документов - реальное декларативное знание.

Процедурные знания, как примеры - это функции (процедуры) = алгоритмы действий, причем не обязательно последовательных. Процедурное знание - это не всегда рецепт, который следует исполнить последовательно.

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

При таком варианте и реальном положении вещей декларативные знания - примеры безукоризненно исполненной статики. Что до процедурных, то в данном контексте они всегда статичны. Любая сверхтехнологичная современная интеллектуальная или экспертная система не ответит на простой до безумия вопрос: "Попробуйте привести примеры декларативных и процедурных знаний".

Классического синего экрана от Windows не будет, но решения - тоже. Критерий интеллектуальности любой программы вовсе не в том, как её называет разработчик, какой рейтинг он составил, а в том, что может делать это изделие за пределами его воображения.

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

Однако известно, что в период очередной волны интереса к искусственному интеллекту была создана программа, которая имитировала ситуативную стадию интеллекта человека ("Лиси"). Разработчик позиционировал её как систему накопления ситуативных (декларативных) и репродуцирующих (процедурных) знаний и самостоятельного их применения. Чему научилась, то и сделала.

К системе имели доступ другие разработчики. Автор обучил ее простым знаниям: "мама", "мяч", "играть", "скажи папа", "мяч круглый" и другое. Коллеги по работе решили иначе и научили "Лиси" математике: 1+1 = 1; 1 x 0 = 0; 2 x 0= 0.

Всё это не имеет никакого отношения к искусственному интеллекту, но все же факт, что правильное понимание сути декларативных и процедурных знаний позволяет более эффективно их использовать. Кроме того, четкое обозначение знаний имеет важное значения для понимания людьми друг друга.

Комментарии
Здесь ошибка: 1+1 = 1
Точно, спасибо!