Представим себе мышление человека в некоторой области, где он является экспертом, например в области учебы, и попытаемся его формализовать. Человек может рассуждать так: "В этой теории можно разобраться, если потратить достаточно много сил. Смогу ли я стать в ней специалистом?" Такая постановка вопроса является задачей и таким же объектом математики, как линейная алгебра или геометрия. Однако первое желание, возникающее при ее решении: перевести все слова и использованные понятия на язык школьного учебника математики. В таком разделе теории искусственного интеллекта как нечеткая логика пошли другим путем, приняв во внимание, что формализация может означать потерю смысла. Было предложено следующее: выберем один термин и будем считать его равным каждому возможному синониму с определенной степенью уверенности. Например, много - это минимум с уверенностью 0 и максимум с уверенностью 1. Мы получили основу для построения математического аппарата. Этот подход получил название нечеткой логики. Варианты максимум и минимум образуют множество, называемое универсальным, математическое определение много: {(минимум,0), (максимум,1)}, числа 1 и 0 выражают отношение элементов универсального множества к свойству множественности.
Пусть E - универсальное множество, x - элемент E, а R - некоторое свойство. Обычное (четкое) подмножество A универсального множества E, элементы которого удовлетворяют свойству R, определяется как множество упорядоченных пар A = {
A (х)/х},где
A(х) - характеристическая функция, принимающая значение 1, если x удовлетворяет свойству R, и 0 - в противном случае.
Нечеткое подмножество отличается от обычного тем, что для элементов x из E нет однозначного ответа "да-нет" относительно свойства R. В связи с этим, нечеткое подмножество A универсального множества E определяется как множество упорядоченных пар A = {
A(х)/х}, где
A(х) - характеристическая функция принадлежности (или просто функция принадлежности), принимающая значения в некотором вполне упорядоченном множестве M (например, M = [0,1]). Функция принадлежности указывает степень (или уровень) принадлежности элемента x подмножеству A. Множество M называют множеством принадлежностей. Если M = {0,1}, то нечеткое подмножество A может рассматриваться как обычное или четкое множество.
Заметим, что знак "+" не является обозначением операции сложения, а имеет смысл объединения.
Нечеткое множество может рассматриваться как некоторое, довольно грубое приближение понятию "понятие".
Рассмотрим примеры таких моделей понятий:
1. Понятие "Несколько". Определяется следующим образом:
Универсальное множество E = {0,1,2,..,10}, M =[0,1]
"Несколько" = 0,5/3+0,8/4+1/5+1/6+0,8/7+0,5/8
2. Понятие "Молодость" Определяется следующим образом:
Универсальное множество E = {16 лет,17 лет,30 лет,40 лет}, M =[0,1]
"Молодость" = 1,0/16+1,0/17+0/30+0/40
Нечеткое множество можно задать разными способами. Можно просто перечислить значения функции принадлежностей для каждого элемента универсального множества и для каждой нечеткой переменной. Это перечисление удобно представить в табличном виде. нечеткое множество можно задать в виде функции, если между значением элементом универсального множества и показателем свойства R действительно существует функциональная зависимость. Наконец нечеткое множество можно задать графически, откладывая на оси абсцисс элементы универсального множества, а но оси ординат - значения функции принадлежностей.
Для нечетких множеств выполняются следующие свойства:
Нечеткие переменные могут задавать нечеткие отношения с помощью матрицы, элементы которой измеряют правильность или соответствие некоторому понятию или свойству взятой вместе пары значений универсальных множеств двух нечетких переменных. Вместо матрицы может использоваться другой способ задания функции принадлежностей. Пусть Е = Е1xЕ2 x...xЕn - прямое произведение универсальных множеств и М - некоторое множество принадлежностей (например M = [0,1]). нечеткое n-арное отношение определяется как нечеткое подмножество R на E, принимающее свои значения в М. В случае n=2 и М = [0,1], нечетким отношением R между множествами X = Е1 и Y = Е2 будет называться функция R:(X,Y)I[0,1], которая ставит в соответствие каждой паре элементов (х,y) X,Y величину mR(x,y) M[0,1].
Таким образом, нечеткие переменные и нечеткие отношения - это тот инструмент, с помощью которого конструируются нечеткие высказывания, то есть высказывания, предназначенные для наиболее полного отражения неформализованных знаний. Заметим, что зачастую сложная при формулировке и не решаемая при использовании математическая модель является просто попыткой записать неформализованные знания средствами не предназначенного для этих целей математического инструментария.
Высказывания строятся из лингвистических переменных. Лингвистической переменной называется набор (b,T,X,G,M), где
b - наименование лингвистической переменной;
X - универсальное множество (область возможных значений, для примера - школа, вуз, аспирантура);
Т - множество значений b, представляющих собой наименования нечетких переменных, областью определения каждой из которых является множество X (например хорошее образование и плохое образование);
G - синтаксическая процедура, позволяющая оперировать элементами множества T, в частности, генерировать новые значения;
M - семантическая процедура, позволяющая превратить каждое новое значение лингвистической переменной, образуемое процедурой G, в нечеткую переменную, т.е. сформировать соответствующее нечеткое множество.
Например, лингвистическая переменная образованность может включать нечеткие переменные "плохое образование" и "хорошее образование" и иметь синтаксическую процедуру образования нового значения ("лучшее образование" - это есть "хорошее образование" и "другое") и семантическую, которая представит новое значение "лучшее образование" в виде нечеткой переменной - {(школа 0,1), ( вуз 0,5), (аспирантура 1,0)}. Теперь нужно представить механизм образования высказываний в виде нечеткого отношения лингвистических или нечетких переменных, и получаем способ преобразования близкой к естественной речи в набор матриц и простых алгебраических операций оперирования с ними. Такой математический аппарат применяется и для решения практических задач оптимального управления сложными объектами и для исследования языка и других форм естественного интеллекта.
Рабочей средой для разработки нечетких систем является программная оболочка FUZZY EXPERT. Она разработана с использованием языка программирования С++ (компилятор Microsoft Visual C++). Задача оболочки состоит в сборе, хранении и использовании знаний, полученных от экспертов, с целью решения прикладных задач идентификации и принятия решений.
Нечетким логическим выводом называется получение заключения в виде нечеткого множества, соответствующего текущим значениях входов, с использованием нечеткой базы знаний и нечетких операций. Основу нечеткого логического вывода составляет композиционное правило Заде, которое формулируется следующим образом: если известно нечеткое отношение
между входной (x) и выходной (y) переменными, то при нечетком значении входной переменной x=
, нечеткое значения выходной переменной определяется так:
Как операцию композиции, так и операцию импликации в алгебре нечетких множеств можно реализовывать по-разному (при этом, естественно, будет разниться и итоговый получаемый результат), но в любом случае общий логический вывод осуществляется за следующие четыре этапа:
1. Нечеткость (введение нечеткости, фазификация, fuzziflcation). Функции принадлежности, определенные на входных переменных применяются к их фактическим значениям для определения степени истинности каждой предпосылки каждого правила.
2. Логический вывод. Вычисленное значение истинности для предпосылок каждого правила применяется к заключениям каждого правила. Это приводит к одному нечеткому подмножеству, которое будет назначено каждой переменной вывода для каждого правила. В качестве правил логического вывода обычно используются только операции min (МИНИМУМ) или prod (УМНОЖЕНИЕ). В логическом выводе МИНИМУМА функция принадлежности вывода «отсекается» по высоте, соответствующей вычисленной степени истинности предпосылки правила (нечеткая логика «И»). В логическом выводе УМНОЖЕНИЯ функция принадлежности вывода масштабируется при помощи вычисленной степени истинности предпосылки правила.
3. Композиция. Все нечеткие подмножества, назначенные к каждой переменной вывода (во всех правилах), объединяются вместе, чтобы формировать одно нечеткое подмножество для каждой переменной вывода. При подобном объединении обычно используются операции max (МАКСИМУМ) или sum (СУММА). При композиции МАКСИМУМА комбинированный вывод нечеткого подмножества конструируется как поточечный максимум по всем нечетким подмножествам (нечеткая логика «ИЛИ»). При композиции СУММЫ комбинированный вывод нечеткого подмножества конструируется как поточечная сумма по всем нечетким подмножествам, назначенным переменной вывода правилами логического вывода.
4. В заключение (дополнительно) - приведение к четкости (дефазификация, defuzziflcation), которое используется, когда полезно преобразовать нечеткий набор выводов в четкое число. Имеется большое количество методов приведения к четкости, некоторые из которых рассмотрены ниже.
Пример. Пусть некоторая система описывается следующими нечеткими правилами:
П1: если x есть A, тогда w есть D,
П2: если y есть B, тогда w есть E,
П3: если z есть C, тогда w есть F,
где x, y и z - имена входных переменных,
w - имя переменной вывода,
A, B, C, D, E, F - заданные функции принадлежности (треугольной формы).
Предполагается, что входные переменные приняли некоторые конкретные (четкие) значения – x0, y0 и z0.
В соответствии с приведенными этапами, на этапе 1 для данных значений и исходя из функций принадлежности A, B, C, находятся степени истинности а(x0), a(y0) и a(z0) для предпосылок каждого из трех приведенных правил.
На этапе 2 происходит «отсекание» функций принадлежности заключений правил (т.е. D, E, F) на уровнях а(x0), a(y0) и a(z0).
На этапе 3 рассматриваются усеченные на втором этапе функции принадлежности и производится их объединение с использованием операции max, в результате чего получается комбинированное нечеткое подмножество, описываемое функцией принадлежности МЕ(w) и соответствующее логическому выводу для выходной переменной w.
Наконец, на 4-м этапе, при необходимости, находится четкое значение выходной переменной, например, с применением центроидного метода: четкое значение выходной переменной определяется как центр тяжести для кривой Мe(w), т.е.
Рассмотренные до сих пор нечеткие выводы представляют собой восходящие выводы от предпосылок к заключению. В последние годы в диагностических нечетких системах начинают применяться нисходящие выводы.
Между xi и yj существуют нечеткие причинные отношения rij = xi -> yj , которые можно представить в виде некоторой матрицы R с элементами rij из [0;1]. Конкретные входы (предпосылки) и выходы (заключения) можно рассматривать как нечеткие множества A и B на пространствах X и Y. Отношения этих множеств можно обозначить как
B = AоR,где «о» обозначает правило композиции нечетких выводов.
В данном случае направление выводов является обратным к направлению выводов для правил, т.е. в случае диагностики имеется (задана) матрица R (знания эксперта), наблюдаются выходы B (или симптомы) и определяются входы A (или факторы).
Рабочей средой для данной системы является MatLab, предоставляющий средства разработки гибридных сетей с помощью моделей адаптивных систем нейро-нечёткого вывода (ANFIS, Adaptive Neuro-Fuzzy Inference System).