Проблема декларативного и процедурного подходов к преставлению знаний.

Этот вопрос связан с предыдущим.

Лекция

Процедурное знание - содержит в себе некоторую процедуру.

Преимущества декларативного знания
1) Более гибко
2) Обеспечивается публичный доступ к декларативному знанию
3) ???? - TODO:изыскать
4) Формальность или универсальность вывода. Вывод отделен от области знания
Декларативное знание можно рассматривать как контекстно-свободное(это включает в себя запреты на здесь/сейчас, см. предыдущий билет).

Нильсен предлагает логический подход. Знания - запись на языке логики: общие законы записываются с помощью высказываний с "=>" - импликацией, факты - атомарны.

(+):

  • Естественность представления знаний. неочевидно и непонятно что имеется ввиду
  • Надежность вывода. Вывод может совершить любой человек(даже не эксперт) если ему объяснить правила логики.

(-):

  • Не эффективен вывод. Имеется ввиду проблема неразрешимости определения выводимости формулы в логике предикатов первого порядка - аналог проблемы останова МТ. Это показал Стефен Кук.

Хотя вывод полный. В пропозициональной логике тоже все плохо - экспоненциальная временная сложность от количества термов(хотя конечно), хотя вывод непротиворечив и полон.

  • Проблема монотонности вывода (пересмотр при новой информации). Пример:

Есть правило:
мотор перегрелся => машина останавливается
ситуация1: мотор перегрелся, остановились
ситуация2: мотор перегрелся, но едем по оживленной трассе => ??? что делать

Первые ЭС использовали правила продукции: A => B. Если A, то B - действие. Декларативной семантики не было.

// материал из книжки Норвинга, на лекции рассазывали тоже самое но менее структурировано и полно.
Хорновские дизъюнкты:
Для вывода в пропозициональной логике используют правило резоюции. Но не всегда требуется полная мощь. Существуют базы знаний представленных в специальном виде - в хорновских выражениях. В общем случае, Хорновское выражение - коньюнкция литералов из которых положитилен не более чем один. Каждое Хорновское выражение может быть записано как импликация предпосылкой которой является коньюнкция положительных литералов, а заключение один положительный литерал.
( not A) or (not B) or C будет A&B=>C
Хорновские выражения имеющие только один положительный литерал называются определенными выражениями. Положительный литерал - голова выражения, остальные - тело. Определенное выражение без отрицательных литералов - просто утверждает что-то и называется фактом. Хорновские выражения не имеющие положительных литералов могут быть записаны как …=>False, и называются для ограничений целостности(используются для обнаружения ошибок в БД).

Это нужно для того чтобы:

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

Пример такой базы:
P => Q
L & M => P
B & L => M
A & P => L
A &B =>
A
B
// конец материала.

Подход на основе семантических сетей. Это набор объектов и бинарных связей.
(+):

  • прямая обращенность к вопросам поиска информации
  • достаточность принципов организации -???

(-):

  • нет надежности механизмов вывода
  • нет формальной семантики

Фреймовый подход - Марвин Мински. Предложил психологическую модель, альтернатива логическому представлению.
Фрейм - структура данных для представления стереотипной ситуации, и по мнению Минского структуры человеческой памяти. Фреймы - состоят из слотов, для представления объектов в ситуации, указываем отношения в ситуации.
Пример: ???
(-):

  • Нет механизма вывода
  • Обоснованность модели отсутствует

Общие проблемы представления знаний
1) Нет психологических подтверждений того, что когнитивная структура мозга соответсвует предлагаемым моделям.
2) Знания человека интуитивны, он умеет обращаться с противоречиями. Эти модели - не умеют или плохо справляются.
3) Знания играют активную роль, противоречие приводит к истине - у человека.

Этот вопрос связан с предыдущим.


Из "Искусственный интеллект, современный подход", by П. Норвинг(глава гугл ресерч) и С. Рассел.

Имхо это даст более сильный ответ, в крайнем случае, помедитировав можно сильно расширить свой ответ.

Среди наиболее широко распространенных формальных языков наиболее крупным классом являются языки программирования(такие как C++, Java или Lisp). Сами программы представляют, в прямом смысле этого понятия, только вычислительные процессы, а структуры данных в этих программах могут представлять факты; например в программе для представления содержимого мира вампуса может использоваться массив 4x4. Поэтому оператор World[2,2]<-Pit языка программирования представляет собой довольно естественный способ формирования утверждения что в квадрате 2x2 имеется яма (Такие представления могут рассматриваться как выбранные произвольным образом; системы баз данных были разработаны именно для такого более общего способа хранения и выборки фактов, независимо от проблемной области). В языках программирования не достает какого-то общего механизма логического вывода фактов на основе других фактов; каждое обновление в структуре данных осуществляется с помощью процедуры характерной для данной конкретной области, подробности устройства которой уточняются программистом на основании его знаний о проблемной области. Такой процедурный подход представляет собой резкий контраст с декларативным характером пропозициональной логики, в которой не смешиваются знания и методы логического вывода, а логический вывод осуществляется независимо от проблемной области. Еще одним недостатком применения структур данных в программах (а, так же, в этом отношении и баз данных) является например отсутствие способа удобно сформулировать такое утверждение "в квадрате [2,2] или [3,1] имеется яма" ил "Если вампус находится в квадрате [1,1], то его нет в квадрате [2,2]". Программы позволяют хранить в каждой переменной единственное значение, некоторые системы допускают использование "неопределенных" значений, но в них не хватает выразительности, которая требуется при обработке частичной информации. Пропозициональная логика - декларативный язык, поскольку ее семантика построена на истиностных отношениях между высказываниями и возможными мирами. Кроме того, она имеет достаточную выразительную мощь для того, чтобы с ее помощью можно было обрабатывать частично заданную информации с использованием дизъюнкции и отрицания. Пропозициональная логика обладает еще одним свойством, которое является желательным для языков представления - композициональностью. В композициональном языке смысл высказывания представляет собой функцию от смысла его частей. Например, смысл высказывания "S(1,4)&S(1,2)" связан со смыслами высказываний "S(1,4)" и "S(1,2)". Было бы очень странно, если бы "S(1,4)" означало бы что в квадрате [1,3] чувствуется неприятный запах, а "S(1,2)" что неприятный запах чувствуется в квадрате [1,2], а "S(1,4)&S(1,2)", что квалификационный матч по хоккею с шайбой между Францией и Польшей, проходивший на прошлой неделе, закончился со счетом 1:1. Безусловно, при отсутствии в языке представления свойства композициональности функционирование системы рассуждений значительно затрудняется. Как было показано в главе 7, пропозициональная логика не обладает достаточной выразительной мощью, которая бы позволила кратко описывать среду с многочисленными объектами. Например, мы были вынуждены записывать отдельное правило, которое связывает между собой наличие ветерка и ям для каждого квадрата, например, вот таким образом: B1,1<=>(P1,2&P2,1). С другой стороны на естественном языке, несложно раз и навсегда сформулировать правило "в квадратах непосредственно примыкающих к ямам чувствуется ветерок". Синтаксис и семантика естественного языка каким-то образом позволяют кратко описать эту среду. Даже не очень глубокие рассуждения наводят на мысль что, естественные языки(такие как английски и русский) действительно являются очень выразительными. Например, авторы смогли написать почти всю эту книгу на естественном языке, лишь время от времени прибегая к использованию формальных языков (включая логику, математику и язык схем). В лингвистике и философии языка давно существует традиция, в которой естественный язык рассматривается по сути как декларативный язык для представления знаний и предпринимаются попытки однозначно определить его формальную семантику. Если бы такая программа завершилась успехом, это имело бы большое значение для искуственного интеллекта, поскольку позволило бы непосредственно использовать естественный язык(или его производную) в системах представления и формирования рассуждений. В соответствии с современными взглядами, естественный язык выполняет немного иное назначение: служит в качестве средства общения, а не исключительно как средство представления. Когда один приятель указывает пальцем и говорит другому: "смотри!", он хочет этим сказать, что, допустим, в фильме Супермен наконец-то взлетел над крышами. Тем не менее, нельзя утверждать, что в предложении "Смотри!" закодирован именно этот факт. Вместо этого смысл предложения на естественном языке зависит и от самого предложения и от контекста, в котором оно было сказано. Очевидно, невозможно сохранить такое предложение как "Смотри!" в базе знаний и надеятся на то, что удастся восстановить его смысл, если в базе не будет представлен так же и контекст. А следующий вопрос - как же можно представить контекст? К тому же, естественные языки являются некомпозициональными - смысл предложения такого как "Потом она это увидела", может зависеть от контекста, состоящего из многих предшествующих и последующих предложений. Наконец, недостатком естественных языков является неоднозначность, которая может стать причиной затруднений при формировании предложений. Например, Пинкер выразил эту мысль таким образом: "Когда люди говорит о косе, то их, безусловно не затрудняет определение того, идет ли речь об элементе женской прически, или о форме береговой косы, или о чем-то другом, а поскольку одно и тоже слово может соответствовать двум идеям".

Гипотеза сапира - уорфа: язык на котором мы говорим оказывает влияние на способ мышления. Пример про эскимосов и 50 слов для описания видов снега(пример Уорфа). Были и противники - Палль(нашел языки юпик и инупик которые имеют такое же количество слов как и в английском для обозначения снега). В целом же, популяция глубже знающая аспект мира - имеет больший словарь для описания понятий. Пример из профессиональной области - энтомологи имеют сотни тысяч слов для того что другие зовут просто жучками. Или в сфере профессиональных лыжников так же.

Язык логики первого порядка, синтаксис и семантику которого мы определим в следующем разделе, основан на понятиях объектов и отношений. Он стал чрезвычайно важным для математики, философии и искусственного интеллекта именно потому что эти области знаний(а фактически основная часть повседневного человеческого существования) могут вполне продуктивно рассматриватся как касающиеся объектов и отношений между ними. Логика первого порядка позволяет выражать факты о некоторых или всех объектах во вселенной. Это дает возможность представлять общие законы и правила, такие как следующее утверждение: "в квадратах, соседствующих с теми, где находися вампус чувствуется неприятный запах". Основное различие между пропозициональной логикой и логикой первого порядка заключается в том, что каждый из этих языков вносит различный онтологический вклад в описание действительности, те они по разному представляют характер действительности. Например, в пропозициональной логике предполагается что существуют лишь факты, которые относятся или не относятся к данному миру. Каждый факт может находится в одном из двух состояний - быть истинными или ложным. В логике первого порядка приняты более широкие предположения, а именно - мир состоит из объектов между которыми могут быть или могут не быть некоторые отношения. Некоторые варианты логики специального назначения позволяют внести еще больший онтологический вклад - например временная логика позволяет описать объекты с местом и временем. Так же, логику можно описать по эпистемологическому вкладу в познание - те возможные состояния знаний относительно факта которые она позволяет выразить.

Язык Онтологический вклад(что существует в мире) Эпистемологический вклад(степень доверия относительно фактов)
Пропозициональная логика Факты Истинно/ложно,неизвестно
Логика первого порядка факты,объекты,отношения Истинно/ложно,неизвестно
Временная логика факты,объекты,отношения, интервалы времени Истинно/ложно,неизвестно
Теория вероятностей Факты Степень доверия [0,1]
Нечеткая логика Факты со степенью истинности [0,1] Известное интервальное значение

Итоги:

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

Некоторые факты для усиления исходного ответа, оттуда же.

Первое полное описание пропозициональной логики и логики первого порядка в книге "Begriffschrift"(система обозначения понятий) Готтлоба Фреге.
Первое механическое устройство логического вывода было сконструировано графом Стенхоупом (1753-1816). Машина Стенхоупа, Demonstrator, была способна обрабатывать силлогизмы и некоторые логические выводы в теории вероятностей. Уильям Стэнли Джевонс в 1869, один из тех кто совершенствовал выводы Буля сконструировал "логическое фортепьяно" для вывода в булевой логике. Первой опубликованной компьютерной программой была Logic Theorist разработанная Саймоном, Ньюэллом, Шоу. Программа для формирования доказательств была спроектирована в 1954 году Мартином Дэвисом, но результаты работ по Logic Theorist были опубликованы немного раньше. Алгоритм проверки в пропозициональной логик через истинностные таблицы был разработан Л. Витгенштейном и Э.Постом.


Кратко суть:
Процедурное представление знаний - в виде некоторых алгоритмов управления; знания встроены в алгоритм; примеры - логическая модель, продукционная модель (примеры спорны, Норвиг считает иначе, да и Милославов тоже. Да и если подумать, из выданных определений - логический подход декларативен).
Логическая и продукционная модель представлены в ответе выше

Декларативное представление знаний - модель знаний, которая отделена от механизма порождения решений (соответственно упрощено описание системы управления и ее функционирования); примеры моделей: семантические сети, фреймовая модель

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

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

Фреймовая модель основана на принципе фрагментации знаний.

Основа фреймовой модели – слот, который состоит из имени некоторого признака, значений этого признака и связи с другими слотами.

Например, описание ситуации «Студент Иванов получил книгу А. Я. Архангельского «100 компонентов Delphi» в библиотеке ТГПУ им. Л. Н. Толстого в г. Туле» может быть представлено следующим образом:

ПОЛУЧЕНИЕ:

ОБЪЕКТ (КНИГА: (Автор, А. Я. Архангельский), (Название, 100 компонентов Delphi));

АГЕНТ (СТУДЕНТ: (Фамилия, Иванов));

МЕСТО: (БИБЛИОТЕКА: (Название, ТГПУ), (Расположение, Тула)).

Здесь ОБЪЕКТ, АГЕНТ и МЕСТО – это роли, которые играют слоты КНИГА, СТУДЕНТ и БИБЛИОТЕКА в рамках фрейма ПОЛУЧЕНИЕ.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License