Аппарат нечеткой логики. Экспертные системы

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:15, 5 декабря 2016.

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

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

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

Приведенные выше определения оперируют понятиями «знания» и «данные», довольно широко трактуемыми в различных работах по искусственному интеллекту.

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

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

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

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

Наиболее распространенными формами представления знаний являются логические, семантические, продукционные модели и нечеткие системы..

Особенности нечетких систем

  1. возможность оперировать нечеткими входными данными: например, непрерывно изменяющиеся во времени значения (динамические задачи), значения, которые невозможно задать однозначно (результаты статистических опросов, рекламные компании и т.д.);
  2. возможность нечеткой формализации критериев оценки и сравнения: оперирование критериями "большинство", "возможно", преимущественно" и т.д.;
  3. возможность проведения качественных оценок как входных данных, так и выходных результатов: вы оперируете не только значениями данных, но и их степенью достоверности и ее распределением;
  4. возможность проведения быстрого моделирования сложных динамических систем и их сравнительный анализ с заданной степенью точности: оперируя принципами поведения системы, описанными fuzzy-методами, вы во-первых, не тратите много времени на выяснение точных значений переменных и составление описывающих уравнений, во-вторых, можете оценить разные варианты выходных значений.

Основы нечеткой логики были заложены в конце 60-х лет в работах известного американского математика Латфи Заде. Для создания действительно интеллектуальных систем, способных адекватно взаимодействовать с человеком, был необходим новый математический аппарат, который переводит неоднозначные жизненные утверждения в язык четких и формальных математических формул. Первым серьезным шагом в этом направлении стала теория нечетких множеств, разработанная Заде. Его работа "Fuzzy Sets", опубликованная в 1965 году в журнале "Information and Control", заложила основы моделирования интеллектуальной деятельности человека и стала начальным толчком к развитию новой математической теории. Он же дал и название для новой области науки - "fuzzy logic" (fuzzy - нечеткий, размытый, мягкий).

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

Третий период начался с конца 80-х годов и до сих пор. Этот период характеризуется бумом практического применения теории нечеткой логики в разных сферах науки и техники. До 90-ого года появилось около 40 патентов, относящихся к нечеткой логике (30 - японских). Сорок восемь японских компаний создают лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансирует 5-летнюю программу по нечеткой логике, которая включает 19 разных проектов - от систем оценки глобального загрязнения атмосферы и предвидения землетрясений до АСУ заводских цехов. Результатом выполнения этой программы было появление целого ряда новых массовых микрочипов, базирующихся на нечеткой логике. Смещение центра исследований нечетких систем в сторону практических применений привело к постановке целого ряда проблем, в частности:

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

Нечеткие множества

Пусть - универсальное множество, - элемент , а определенное свойство. Обычное (четкое) подмножество универсального множества , элементы которого удовлетворяют свойство , определяется как множество упорядоченной пары

где - характеристическая функция, принимающая значение 1, когда удовлетворяет свойство , и 0 - в другом случае.

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

где - характеристическая функция принадлежности (или просто функция принадлежности), принимающая значение в некотором упорядоченном множестве (например,).

Функция принадлежности указывает степень (или уровень) принадлежности элемента к подмножеству . Множество называют множеством принадлежностей. Если , тогда нечеткое подмножество может рассматриваться как обычное или четкое множество.

Рассмотрим множество всех чисел от 0 до 10. Определим подмножество множества всех действительных чисел от 5 до 8. Покажем функцию принадлежности множества , эта функция ставит в соответствие число 1 или 0 каждому элементу в , в зависимости от того, принадлежит данный элемент подмножеству или нет. Результат представлен на рисунке 2.1.

Рис. 2.1. Пример простой функции принадлежности.

Можно интерпретировать элементы, соответствующие 1, как элементы, находящиеся в множестве , а элементы, соответствующие 0, как элементы, не находящиеся в множестве . Эта концепция используется в многих областях. Но существуют ситуации, в которых данной концепции будет не хватать гибкости. Для примера опишем множество молодых людей. Формально можно записать так = {множество молодых людей}

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

Рис. 2.2. Характеристическая функция множества «молодых людей».

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

В первом примере мы кодировали все элементы множества с помощью 0 ли 1. Простым способом обобщить данную концепцию является введение значений между 0 и 1. Реально можно даже допустить бесконечное число значений между 0 и 1, в единичном интервале .

Интерпретация чисел при соотношении всех элементов множества становится теперь сложнее. Конечно, число 1 соответствует элементу, принадлежащему множеству , а 0 означает, что элемент точно не принадлежит множеству . Все другие значения определяют степень принадлежности к множеству . Для наглядности приведем характеристическую функцию множества молодых людей, как и в первом примере (см. Рис. 2.1).

Операции над нечеткими множествами

Содержание Пусть и - нечеткие множества на универсальном множестве . Говорят, что содержится в , если . Обозначение: .
Равенство и равны, . Обозначение: .
Дополнение. Пусть , и - нечеткие множества, заданные на. и дополняют друг друга, . Обозначение: .
Пересечение - наибольшее нечеткое подмножество, которое содержится одновременно в и . Функция принадлежности: .
Объединение - наименьшее нечеткое подмножество, которое включает как, так и , с функцией принадлежности: .
Разность с функцией принадлежности:
Дизъюнктивная сумма с функцией принадлежности:

Ниже проиллюстрировано графическое представление операций над нечеткими множествами.

Пусть - нечеткий интервал между 5 до 8 и B нечеткое число около 4, как показано на рисунке.

Рис. 3.1. Примеры характеристических функций нечеткого интервала и нечеткого числа.

Проиллюстрируем нечеткое множество между 5 и 8 И (AND) около 4 (жирная линия) на рисунке 3.2. Нечеткое множество между 5 и 8 ИЛИ (OR) около 4 показано на рисунке справа (снова жирная линия). Рисунок 3.3 иллюстрирует операцию отрицания. Жирная линия - это ОТРИЦАНИЕ нечеткого множества .

Нечеткие и лингвистические переменные

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

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

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

Нечеткая переменная характеризуется тройкой ,

где
- название переменной;
- универсальное множество с базовой переменной ;
- нечеткое подмножество множества , представляющее собой нечеткое ограничение на значения переменной , обусловленное .

Предположим, что . Тогда нечеткое подмножество, описываемое понятием несколько, можно записать, например, в виде:

несколько .

Аналогично, если - интервал с элементами переменной возраст, то нечеткие подмножества, описываемые понятиями "молодой" и "старый", можно представить в виде:

Рис. 4.1. Графическое представление терминов «молодой» и «старый»

For2.png

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

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

Более точно структура лингвистической переменной описывается набором

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

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

Язык можно рассматривать как соответствие между множеством терминов и областью рассуждения . Это соответствие характеризуется нечетким называющим отношением из в , которое связывает с каждым термином в и каждым элементом в степень применимости к .

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

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

Более сложные понятия могут характеризоваться составной лингвистической переменной. Например, понятие "человек" может рассматриваться как название составной лингвистической переменной, компонентами которой являются лингвистические переменные Возраст, Рост, Вес, Внешность и т.п.

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

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

Лингвистические неопределенности и вычисление значений лингвистической переменной

В общем случае значение лингвистической переменной есть составной терм, который представляет собой сочетание элементарных термов . Эти элементарные термы можно разбить на 4 категории:

  1. первичные термы, которые являются символами нечетких подмножеств области рассуждения (например, молодой, старый);
  2. отрицание не и союзы и, или;
  3. лингвистические неопределенности типа очень, много, слабо, более или менее и т.д., которые дают возможность модифицировать значения элементарных и составных терминов и служат для увеличения области значений лингвистической переменной;
  4. маркеры, такие, как скобки, вводные слова.

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

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

Рис. 7. Графическое представление терминов старый и очень старый.

Другой простой пример -

если терм маленький ,
то очень маленький = (маленький).

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

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

  1. , не
  2. и
  3. или

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

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

Нечеткие высказывания

Исходя из всего вышесказанного, определим нечеткие высказывания как высказывания следующего вида:

Исходя из всего вышесказанного, определим нечеткие высказывания как высказывания следующего вида:

  1. Высказывание

есть

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

Например, высказывание <давление большое> предполагает, что лингвистической переменной "давление" предоставляется значение "большой", для которого на универсальном множестве переменной "давление" определено, соответственно данному значению "большой", нечеткое множество.

  1. Высказывание есть , где - модификатор, которому соответствуют слова "ОЧЕНЬ", "БОЛЕЕ ИЛИ МЕНЕЕ", "НАМНОГО БОЛЬШЕ" и др.
  2. Сложные высказывания, образованные из высказываний вида 1. и 2. и союзов "И", "ИЛИ", "ЕСЛИ.., ТОГДА...", "ЕСЛИ.., ТОГДА.., ИНАЧЕ".

Модели систем нечеткой логики

Простые системы нечеткой логики

Базовая конфигурация простой системы нечеткой логики представлена на Рисунке 8. Базис нечетких правил содержит набор нечетких IF-THEN (ЕСЛИ-TO) правил, а механизм нечеткого вывода на основе принципов нечеткой логики использует эти IF-THEN-правила для отображения нечетких множеств из входящего множества высказываний в нечеткие множества из множества высказываний на выходе системы. Нечеткие IF-THEN-правила выглядят следующим образом:

есть и . . . и есть есть
где и - нечеткие множества;
и есть входные и выходная лингвистические переменные соответственно;
Рис. 7.1.1. Конфигурация простой системы нечеткой логики.

Практика показывает, что эти нечеткие IF-THEN-правила обеспечивают удобный механизм для представления знаний человека-эксперта. Каждое нечеткое IF-THEN-правило определяет нечеткое множество

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

Нечеткие системы Такаги и Суджено

Вместо рассмотрения нечетких IF-THEN-правил в виде (1) Такаги и Суджено предложили использовать следующие IF-THEN-правила:

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

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

где вес подразумевает обобщенную величину истинности при применении к входу правила
вычисляется как

Конфигурация нечеткой системы Такаги-Суджено представлена на Рисунке 9:

Рис. 7.2.1. Система нечеткой логики Такаги-Суджено.

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

Системы нечеткой логики с фаззификатором и дефаззификатором

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

Базовая конфигурация системы нечеткой логики с фаззификатором и дефаззификатором представлена на Рисунке 8.1.

Рис. 8.1. Система нечеткой логики с фаззификатором и дефаззификатором

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

Системы нечеткой логики с фаззификатором и дефаззификатором имеют несколько привлекательных черт:

  1. они пригодны для использования в технических системах, так как их входные и выходные переменные принимают реальные значения;
  2. они предоставляют возможность естественного перехода от заключений эксперта к нечетким IF-THEN-правилам;
  3. они предоставляют большую свободу в выборе фаззификатора, механизма нечеткого вывода и дефаззификатора, т.е. можно подобрать систему нечеткой логики, наиболее подходящую для решения конкретной задачи;
  4. могут быть разработаны различные алгоритмы настройки таких систем нечеткой логики, что позволяет эффективно объединять численную и лингвистическую информацию.

Базис нечетких правил. Базис нечетких правил состоит из набора нечетких IF-THEN-правил вида (1). Без потери общности можно рассматривать многовходовую систему нечеткой логики с одним выходом (МISO-систему), т.к. система со многими выходами (MIMO - система) может быть представлена как композиция группы систем, имеющих один выход. Базис нечетких правил является основной частью системы нечеткой логики в том смысле, что остальные ее компоненты используются для интерпретации этих правил и их применения при решении конкретных задач. Практика показывает, что нечеткие IF-THEN-правила в форме (1) предоставляют удобный механизм человеку-эксперту для выражения своих знаний.

Рис. 8.2. Пример системы вывода Мамдани-Заде.

Литература

  1. С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику" портал HU
  2. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений. – М.: Мир, 1976.
  3. Круглов В.В., Дли М.И. Интеллектуальные информационные системы: компьютерная поддержка систем нечеткой логики и нечеткого вывода. – М.: Физматлит, 2002.
  4. Чичварин Н.В. Экспертные компоненты САПР. — М.: Машиностроение, 1991. — 240 с: ил.