А. В. Гаврилов
Скачать 0.52 Mb.
|
2.8. Фреймы "Держите себя в рамках!" Реплика В основе теории фреймов лежит восприятие фактов посредством сопос- тавления полученной извне информации с конкретными элементами и значе- ниями, а также, с рамками, определенными для каждого концептуального объ- екта в памяти. Структура, представляющая эти рамки, называется фреймом. Другими словами, фрейм – это структура, описывающая фрагмент базы знаний, который в какой-то степени рассматривается и обрабатывается обособ- ленно от других фрагментов. Другие фрагменты, с которыми он связан, во фрейме представлены только их именами (идентификаторами) так же как и он в них. В виде фрейма может описываться некоторый объект, ситуация, абстракт- ной понятие, формула, закон, правило, визуальная сцена и т.п. Понятие фрейма неразрывно связано с абстрагированием и построением иерархии понятий. Из понятия "фрейм", появившегося в конце 60-х годов в работах М. Мин- ского, выросло в дальнейшем понятие объекта и объектно-ориентированного программирования с его идеями инкапсуляции данных в объекте, наследования свойств и методами, привязанными к описанию объектов. Так как фрейм является более общей и гибкой концепцией, чем "объект", в дальнейшем будем использовать терминологию, сложившуюся при описании фреймов, подразумевая, что с некоторыми ограничениями они могут быть пе- ренесены в среду объектно-ориентированного программирования. Фреймы подразделяются на два типа: фреймы-прототипы (или классы) и фреймы-примеры (или экземпляры). Фреймы-прототипы используются для по- рождения фреймов-примеров. В общем виде фрейм можно описать как структуру, состоящую из имени фрейма, множества слотов, характеризующихся именами и значениями, и мно- жества присоединенных процедур, связанных с фреймом или со слотами: )), , , ( ),..., , , ( ),..., , , ( , , ( 1 1 1 n n n i i i P VS NS P VS NS P VS NS P NF F = где NF – имя фрейма, NS – имя слота, VS – значение слота, P – присоединенная процедура. Во фреймах различают два типа присоединенных процедур: процедуры- демоны и процедуры-слуги. Первые из них запускаются автоматически при на- личии некоторых условий или событий. Процедуры-слуги запускаются явно. В реальных системах, базирующихся на фреймах, структура, описанная выше, может быть более сложной за счет иерархической структуры значений слотов (наличия более глубоких уровней в описании фрейма). Ниже приводится пример фрейма-прототипа, описывающего земельный участок в виде многоугольника: 35 Имя фрейма: Земельный участок Количество сторон: (4) Длины сторон: Размеры углов: Площадь: IF_NEEDED: Вычисление площади IF_ADDED: Вычисление цены Цена: Здесь слот "Количество сторон" имеет значение "по умолчанию", равное 4, т.к. подавляющее большинство земельных участков имеет форму четырех- угольника. К слоту "Площадь" присоединены процедуры-демоны вычисляющие пло- щадь и цену, соответственно, запускаемые при запросе слота (событие "IF_NEEDED") и добавлении значения слота "Площадь" (событие "IF_ADDED"). В инженерии знаний существуют языки представления знаний, базирую- щиеся на концепции фреймов. Наиболее известные из них: KRL и FRL. Оба эти языка являются расширением языка LISP – функционального языка програм- мирования. В инженерии знаний существуют языки представления знаний, базирую- щиеся на концепции фреймов. Наиболее известные из них: KRL и FRL. Оба эти языка являются расширением языка LISP – функционального языка програм- мирования. 2.9. Нейронные сети В нейронных сетях знания содержатся в состояниях множества так назы- ваемых нейроподобных элементов (или просто нейронов) и связей между ни- ми. Направление, которое во главу угла ставит связи между нейронами, назы- вается коннективизмом. Формальная модель нейрона Мак-Каллока-Питтса, которая и сейчас яв- ляется наиболее применяемым формализмом для описания отдельного нейрона в нейронной сети, показана на рис. 9. Рис. 9. Формальная модель нейрона Мак-Каллока – Питтса ∑ ω = i i S x h y x 1 x 2 x 1 x n ω 1 ω 2 ω n 36 Здесь: x i ω i y h – – – – сигнал на i-м входе (синапсе) нейрона; вес i-го входа (синапса) нейрона; выход нейрона; порог срабатывания нейрона. В модели взвешенная сумма сигналов на входах нейрона сравнивается с пороговым значением h, и на выходе есть сигнал, если она превышает порог. В современных моделях нейронов пороговая функция в общем случае заменяется на нелинейную функцию y f S = ( ) , называемую передаточной функцией или функцией активации нейрона. В качестве этой функции может использоваться, одна из сигмоидальных функций, например, рациональная сигмоида α + = S S S f ) ( Параметр α обычно называется смещением. Таким образом, иногда гово- рят, что нейрон состоит из умножителей (на веса), сумматора и нелинейного элемента. Из связанных определенным образом нейронов (узлов) строится нейрон- ная сеть с определенным количеством входов и выходов. Обычно различают три типа узлов (нейронов) – входные (входной слой нейронов или Input layer), выходные (выходной слой или Output layer) и скрытые слои нейронов (Hidden layers) (рис. 10). Функционирование нейронной сети состоит из двух этапов: обучения сети "правильному" или адекватному реагированию на входную информацию (входной вектор) и использования обученной сети для распознавания входных векторов. Последний этап часто называют тестированием. Другими словами, сеть учится распознаванию входных векторов, т.е. формированию выходных векторов, соответствующих распознанному классу входных векторов. При этом знания о соответствии входных векторов выходным сохраняются в весах си- напсов Рис. 10. Нейронная сеть с прямыми связями Входной слой Скрытый слой Выходной слой 37 и порогах нейронов. В случае коннективистского подхода – только в весах си- напсов. Иногда под входным вектором понимается конкатенация входного и выходного вектора и не все разряды этого вектора могут задаваться при обуче- нии и тестировании сети. В некоторых моделях нейронных сетей (например, модели Хопфилда) входные и выходные сигналы не различаются и соответст- вующие им входы (выходы) сети могут меняться ролями в процессе функцио- нирования сети. Функционирование нейронной сети часто описывают в терминах задач оптимизации. Ее обучение можно представить как формирование n-мерной ги- перповерхности (где n – размерность входного вектора), определенной целевой функции, обычно называемой энергией сети. Описание этой гиперповерхности хранится в карте весов синапсов и в порогах нейронов. Например, в случае мо- дели Хопфилда энергетическая функция описывается формулой j i N i N j ij x x w E ∑ ∑ = = − = 1 1 2 1 где : N w ij x i – – – количество нейронов (размерность входного вектора), вес связи между i-м и j-м нейронами, состояние i-го нейрона. При тестировании (использовании) обученной нейронной сети происходит процесс поиска ближайшего минимума целевой функции. При этом происхо- дит восстановление искаженных разрядов входного вектора или "вспоминание" неизвестных разрядов, ассоциативно связанных с заданными (известными) раз- рядами. В настоящее время существует большое разнообразие моделей нейронных сетей. Их различают по структуре сети (связей между нейронами), особенно- стям модели нейрона, особенностям обучения сети. По структуре нейронные сети можно разделить на неполносвязные (или слоистые) и полносвязные, со случайными и регулярными связями, с симмет- ричными и несимметричными связями. Неполносвязные нейронные сети описываются неполносвязным ориенти- рованным графом. Наиболее распространенным типом таких нейронных сетей являются перцептроны: однослойные (простейшие перцептроны) и многослой- ные, с прямыми, перекрестными и обратными связями. В нейронных сетях с прямыми связями нейроны j-ого слоя по входам могут соединяться только с нейронами i-ых слоев, где j > i, т.е. с нейронами нижележащих слоев. В ней- ронных сетях с перекрестными связями допускаются связи внутри одного слоя, т.е. выше приведенное неравенство заменяется на j ≥ i . В нейронных сетях с обратными связями используются и связи j-ого слоя по входам с i-ым при j < i. Кроме того, по виду связей различают перцептроны с регулярными и случай- ными связями. По используемым на входах и выходах сигналам нейронные сети можно разделить на аналоговые и бинарные. 38 По моделированию времени нейронные сети подразделяются на сети с не- прерывным и дискретным временем. Для программной реализации применяет- ся, как правило, дискретное время. По способу подачи информации на входы нейронной сети различают: − подачу сигналов на синапсы входных нейронов, − подачу сигналов на выходы входных нейронов, − подачу сигналов в виде весов синапсов входных нейронов, − аддитивную подачу на синапсы входных нейронов. По способу съема информации с выходов нейронной сети различают: − съем с выходов выходных нейронов, − съем с синапсов выходных нейронов, − съем в виде значений весов синапсов выходных нейронов, − аддитивный съем с синапсов выходных нейронов. По организации обучения разделяют обучение нейронных сетей с учите- лем (supervised neural networks) и без учителя (nonsupervised). При обучении с учителем предполагается, что есть внешняя среда, которая предоставляет обу- чающие примеры (значения входов и соответствующие им значения выходов) на этапе обучения или оценивает правильность функционирования нейронной сети и в соответствии со своими критериями меняет состояние нейронной сети или поощряет (наказывает) нейронную сеть, запуская тем самым механизм из- менения ее состояния. Под состоянием нейронной сети, которое может изме- няться, обычно понимается: − веса синапсов нейронов (карта весов – map) (коннекционистский подход); − веса синапсов и пороги нейронов (обычно в этом случае порог является более легко изменяемым параметром, чем веса синапсов); − установление новых связей между нейронами (свойство биологических нейронов устанавливать новые связи и ликвидировать старые называется пла- стичностью). По способу обучения разделяют обучение по входам и по выходам. При обучении по входам обучающий пример представляет собой только вектор входных сигналов, а при обучении по выходам в него входит и вектор выход- ных сигналов, соответствующий входному вектору. По способу предъявления примеров различают предъявление одиночных примеров и "страницы" примеров. В первом случае изменение состояния ней- ронной сети (обучение) происходит после предъявления каждого примера. Во втором – после предъявления "страницы" (множества) примеров на основе ана- лиза сразу их всех. Если рассматривать нейронную сеть как способ представления знаний, то в ней хранятся знания об ассоциативных связях между стимулами (входными векторами) и откликами (выходными векторами). Знания хранятся (формируются в процессе обучения) обычно в форме ве- сов связей между нейронами. 39 Недостатками нейронных сетей в качестве метода представления знаний являются: • трудности вербализации результатов работы нейронной сети и объяс- нений, почему она приняла то или иное решение, • невозможность гарантировать повторяемость и однозначность полу- чения результатов Преимущества нейронных сетей в качестве метода представления зна- ний: • отсутствие необходимости формализации знаний, формализация за- меняется обучением на примерах, • естественное представление и обработка нечетких знаний примерно так, как это осуществляется в естественной интеллектуальной системе – мозге • ориентация на параллельную обработку, что при соответствующей ап- паратной поддержке обеспечивает возможность работы в реальном времени • отказоустойчивость и живучесть при аппаратной реализации нейрон- ной сети • возможность обработки многомерных (размерности больше трех) данных и знаний так же (без увеличения трудоемкости) как и неболь- шой размерности (но в этом случае затруднено объяснение результа- тов, т.к. человек с трудом воспринимает многомерность) В настоящее время наметились тенденции объединения в одной системе логических и/или эмпирических методов представления знаний (вербальных или символьных) с ассоциативными, использующими нейронные сети. В ходе этих исследований появились такие парадигмы как: • семантические нейронные сети, • нечеткие нейронные сети, • "двухполушарные" экспертные системы. Целью этих исследований является создание систем ИИ, способных обу- чаться примерно так, как это делает человек, создавая при обучении ассоциа- тивные связи между параметрами внешней среды и символьными понятиями и иерархии понятий, и решать задачи, комбинируя и чередуя ассоциативный по- иск и логический вывод. 40 3. МЕТОДЫ ОБРАБОТКИ ЗНАНИЙ 3.1. Дедуктивный логический вывод "Странная игра, – сказал Джошуа. – Единственная выигрышная страте- гия – не играть вообще". Д. Бишоф. Недетские игры Для решения задач в продукционной интеллектуальной системе существу- ет два основных метода дедуктивного логического вывода: обратный и прямой. Может использоваться и комбинация этих двух методов. При обратном логиче- ском выводе процесс интерпретации правил начинается с правил, непосредст- венно приводящих к решению задачи. В них в правой части находятся заклю- чения с фактами, являющимися решением (целевыми фактами). При интерпре- тации этих правил в процесс решения могут вовлекаться другие правила, ре- зультатом выполнения которых являются факты, участвующие в условиях ко- нечных правил и т.д. В самом общем виде алгоритм обратного логического вывода, записанный на псевдокоде в виде функции, выглядит так (условие ограничено конъюнкци- ей элементарных условий): функция Доказана_Цель(Цель): boolean; Поместить Цель в стек целей. пока стек целей не пуст цикл Выбор цели из стека целей и назначение ее текущей. Поиск множества правил, в правой части которых находится текущая цель (множества подходящих правил). Считать, что Цель не доказана. пока множество походящих правил не пусто и Цель не доказана цикл Выбор из этого множества одного текущего правила с использованием определенной стратегии. Считать текущим элементарным условием первое. пока не проверены все элементарные условия правила и не надо прервать проверку условия цикл если в текущем элементарном условии участвует факт, встречающийся в правой части какого-то правила 41 то если не Доказана_Цель(Этот факт) то Надо прервать проверку условия конец_если иначе Запросить информацию о факте. Проверить элементарное условие. если элементарное условие истинно то Добавить факт в базу данных. Перейти к следующему элементарному Условию. иначе Надо прервать проверку условия. конец_если конец_если конец_цикла если условие правила истинно то Выполнить заключение. Исключить Цель из стека целей. Считать, что Цель доказана. конец_если конец_цикла конец_цикла конец_функции. Существует много различных стратегий выбора правила из подходящих. Наиболее простой и часто встречающейся стратегией является "первая попав- шаяся". При этой стратегии решение задачи зависит от порядка расположения (перебора) правил в базе знаний. Другие используемые стратегии выбора: "стопки книг" (LIFO), "по приоритету", "наиболее свежие данные", "наиболее длинное условие". В прямом методе логического вывода интерпретация правил начинается от известных фактов, т.е. сначала выполняются правила, условия которых можно проверить с использованием фактов, уже находящихся в базе данных. В общем виде алгоритм прямого вывода выглядит так: пока Цель не доказана цикл Формирование множества подходящих правил (по их условиям и наличию фактов). 42 Выбор одного правила из этого множества (с использованием определенной стратегии выбора). Считать текущим элементарным условием первое. пока не проверены все элементарные условия правила и не надо прервать проверку условия цикл если элементарное условие истинно то Перейти к следующему элементарному условию. иначе Надо прервать проверку условия. конец_если конец_цикла Выполнить заключение. если при формировании заключения появился целевой факт то Считать, что Цель доказана. конец_если конец_цикла. Метод прямого логического вывода можно применять тогда, когда факты появляются в базе данных не зависимо от того, какую задачу сейчас требуется решить (какой целевой факт доказать) и в разные моменты времени. В этом случае можно говорить о том, что факты управляют логическим выводом (ре- шением задачи). Кроме того, этот метод целесообразно применять для форми- рования вторичных признаков (фактов) из первичных для подготовки решения задачи в дальнейшем с применением обратного логического вывода. Метод обратного логического вывода можно применять тогда, когда необ- ходимо минимизировать количество обращений к источнику данных (напри- мер, пользователю), исключив из рассмотрения заведомо ненужные для реше- ния задачи факты. 3.2. Методы поиска релевантных знаний "Иди туда, не знаю куда, ищи то, не знаю что". Описание проблемы будуще- го искусственного интеллекта в русских народных сказках В основе практически всех методов решения задач в искусственном ин- теллекте лежит какой-либо из вариантов сопоставления фрагмента базы знаний (запроса) с образцами, хранящимися в базе знаний (или поиск релевантных 43 знаний). Этот процесс в общем случае состоит из процедуры сравнения двух фрагментов знаний (собственно, сопоставление) и процедуры перебора вариан- тов для сопоставления. По способу сравнения двух фрагментов знаний различают следующие ви- ды сопоставлений: − синтаксическое; − параметрическое; − семантическое. При синтаксическом сопоставлении происходит сравнение на полное тож- дество двух структур данных, представляющих знания. Единственное разли- чие, допускаемое в этих структурах и приводящее к успешному сопоставле- нию, возможно в неопределенных переменных, включенных в сравниваемые структуры. Примером такого сопоставления является унификация предикатов в Прологе, при которой сначала проверяются на тождество имена предикатов, затем, проверяется количество аргументов в них, а затем попарно сравнивают- ся аргументы (при этом неопределенным переменным, если они есть в одном из предикатов, присваиваются значения из другого). При параметрическом сопоставлении возможно неполное тождество срав- ниваемых структур данных, представляющих фрагменты знаний. При этом ре- зультатом сопоставления является некоторая вычисляемая при сравнении мера их синтаксического различия (различия в структуре данных), которая может состоять из множества параметров, таких как различие в количестве аргумен- тов предиката, количественное различие в написании имен предикатов или ар- гументов (или названий или значений слотов) и т.п. При семантическом сопоставлении происходит сравнение семантики (смысла) сравниваемых фрагментов знаний. Обычно это приводит к необходи- мости просмотра структур данных, связанных со сравниваемыми фрагментами (других фрагментов знаний), т.е. описывающих их семантику и, в конечном итоге, к синтаксическому или параметрическому сопоставлению фрагментов знаний, из которых они состоят. Последние фрагменты являются более элемен- тарными (базовыми) фрагментами. Их можно сравнить с терминальными сим- волами при грамматическом разборе, а фрагменты, для сопоставления которых используется семантическое сравнение, – с нетерминальными символами. При семантическом сопоставлении обычно используют понятие семантической близости понятий (фрагментов знаний). Иногда семантическая близость может быть вычислена непосредственно, например, при сопоставлении двух лингвис- тических переменных, описанных на одной и той же метрической шкале. В бо- лее сложном случае семантическая близость может оцениваться в процессе просмотра описаний семантик, описывающих сравниваемые фрагменты зна- ний. При этом могут использоваться результаты параметрического сопоставле- ния базовых фрагментов знаний. Универсальных и достаточно хорошо матема- тически обоснованных алгоритмов семантического сопоставления (в отличие от синтаксического) не существует. 44 Несколько в стороне находится поиск релевантных знаний, реализуемый в нейронных сетях, который можно назвать ассоциативным поиском (см. 2.8). В отличие от методов, описанных выше, знания в этом случае представляются в виде сигналов или численных значений состояний нейронов, а не в виде сим- вольных обозначений. |