Секция 4 - Нейросетевые технологии (1250001), страница 17
Текст из файла (страница 17)
На управляемые переменные P обычно накладывают ограничения, обеспечивающие линейную упорядоченность элементов терм-множеств. Такие ограничения не позволяют алгоритмам оптимизации сделать, например, нечеткоемножество «Низкий» больше «Высокого». Кроме того, ядра нечеткихмножеств не должны выходить за пределы диапазонов изменения соответствующих переменных.
Это обеспечивает прозрачность, т. е. содержательную интерпретабельность нечеткой базы знаний после настройки. Что касается вектора W , то его координаты должны находиться в диапазоне[0, 1]. Если к уровню интерпретабельности базы знаний предъявляютсявысокие требования, то веса правил не настраивают, оставляя их равными1. Возможен и промежуточный вариант, когда весовые коэффициенты могут принимают значения 0 и 1.
В этом случае нулевое значения весовогокоэффициента эквивалентно исключению правила из нечеткой базы знаний.Параметры функций принадлежности и веса правил можно настраивать одновременно или по отдельности. При настройке только весов правил объем вычислений можно значительно сократить, т. к. степени принадлежности µ jp ( xi* ) , входящие в (2), не зависят от W .
Для этого в началеоптимизации надо рассчитать степени выполнения правил при единичныхвесовых коэффициентах ( w jp = 1 ) для каждого объекта из обучающей выборки:(g jp ( X r ) =∧i =1,nµ jp ( xr ,i ) ,)j = 1, m, p = 1, k j , r = 1, M .1324Секция 4. Нейро-сетевые технологииДля новых весовых коэффициентов степени принадлежности объекта X rклассам d j рассчитываются так:µd j (X r ) =∨p =1,k jw jp ⋅ g jp ( X r ),j = 1, m .(9)3.
Классификация на основе нечеткого вывода в системе MATLABПакет Fuzzy Logic Toolbox [4] вычислительной системы MATLABобеспечивает проектирование систем нечеткого логического вывода дляобъектов с непрерывным выходом, т. е. для случая, когда выходная переменная y может принимать значения из диапазона y, y . В настоящейразделе показывается, как расширить Fuzzy Logic Toolbox для выполненияклассификации на основе нечеткого вывода.В качестве нечеткого классификатора предлагается использоватьсистему нечеткого логического вывода типа Сугено. Классам решений{d 1 , d 2 ,..., d m } ставятся в соответствие термы выходной переменной; наименование класса решений зададим как элемент терм-множества выходной переменной. Параметры заключений правил (параметры «функцийпринадлежности» выходной переменной) могут быть произвольными, т. к.они не влияют на результат классификации.
Проектирование системы нечеткого вывода типа Сугено можно удобно осуществлять в редакторе fuzzyиз Fuzzy Logic Toolbox.Для выполнения нечеткой классификации нами разработана функцияfuzzy_classifier, листинг которой приведен в Приложении 1.
Функция нечеткой классификации вызывается в таком формате:decision=fuzzy_classifier(X, fis, type),где X — вектор информативных признаков объекта классификации; fis —система нечеткого логического вывода; type — тип возвращаемого функцией результата (допустимые значения: ‘number’ — порядковый номеркласса и ‘name’ — имя класса. Значение по умолчанию — ‘number’);decision — результат классификации для объекта X .Функция fuzzy_classifier вызывает функцию evalfis в формате[a, b, c, d] = evalfis(x, fis) ,что позволяет получить промежуточные результаты нечеткого логическоговывода. Затем находятся правила с максимальной степенью выполнения.Если таких правил несколько, тогда среди конкурирующих классов выбирает тот, сумма степеней принадлежности которому максимальна.Функция нечеткой классификации может вызываться с двумя выходными аргументами:[decision, mf_grades]=fuzzy_classifier(X, fis, type),где mf_grades — вектор степеней принадлежности объекта X классам решений.[ ]1325Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»4.
Настройка нечеткого классификатора в системе MATLABНастройка нечеткого классификатора сводится к задачам оптимизации (5), (7) или (8). Для решения этих задач в системе MATLAB можновоспользоваться пакетом Optimization Toolbox. На основе программ обучения нечетких моделей типа Мамдани [5] нами разработаны типовые сценарии настройки нечетких классификаторов, а также типовые целевыефункции. M-файлы этих программ приведены на сайте www.MATLAB.ru вразделе Fuzzy Logic Toolbox.Для быстрой настройки весов правил нечеткого классификатора наоснове соотношения (9) авторами написан пакет FALEFC (FAst LEarningthe Fuzzy Classifier).
Время настройки весов правил с помощью пакетаFALEFC на порядок меньше, чем при настройке функций принадлежности.Пакет FALEFC использует функции Fuzzy Logic Toolbox и OptimizationToolbox. Пакет включает такие программы:- выполнение нечеткого вывода для задач класfuzzy_classifierсификации;- сценарий быстрой настройки весов правил неfast_w_learningчеткого классификатора;dp_for_fuzzy_cl_learnin - считывание выборки данных и преобразованиеее к формату, требуемого программами наgстройки нечеткого классификатора;- расчет RMG - матрицы степеней выполненияrmg_fuzzy_clправил при единичных весовых коэффициентах, необходимой для быстрой классификации;- быстрая классификация на основе нечеткогоfuzzy_classifier_rmgвывода при новых значениях весов правил сиспользованием RMG (матрицы степеней выполнения правил при единичных весовых коэффициентах);- целевая функция для быстрой настройки весовob_fun_fast_wнечетких правил, использующая RMG;fast_cl_testing_with_rmg - быстрое тестирование нечеткого классификатора при новых весах правил с использованиемRMG;- определение количества правил в базе знанийrule_order_fuzzy_clдля каждого класса (типа решения).Пакет FALEFC также доступен в разделе Fuzzy Logic Toolbox сайтаwww.MATLAB.ru .1326Секция 4.
Нейро-сетевые технологии5. Примеры проектирования нечетких классификаторов в системеMATLABПример 5.1. Рассматривается задача классификации ирисов, предложенная Фишером в 1936 г. Задача состоит в отнесении ириса к одномуиз трех классов: 1 - Iris Setosa, 2 - Iris Versicolor; 3 - Iris Virginica. При классификации используются следующие признаки цветков: x1 - длина чашелистика; x2 - ширина чашелистика; x3 - длина лепестка; x4 - ширина лепестка. Исходные данные для классификации ирисов записаны в файлеiris.dat, входящего в Fuzzy Logic Toolbox . Файл содержит 150 строк, каждая из которых описывает один ирис.
Информация о цветке представленапятеркой чисел - первые четыре числа соответствуют значениям признаков, а пятое — классу ириса. Двумерные распределения ирисов показанына рис. 3.Рис. 3. 2D-распределения фишеровских ирисов.В редакторе fuzzy создадим систему нечеткого логического выводатипа Сугено с четырьмя входными и одной выходной переменными. Диапазоны изменения входных переменных установим такими же, как и дляисходных данных: x1 ∈ [47, 79] ; x 2 ∈ [20, 44] ; x 3 ∈ [10, 69] ; x 4 ∈ [1, 25] .
Длялингвистической оценки признаков цветков будем использовать термы«низкий», «средний» и «высокий» с установленными по умолчанию треугольными функциями принадлежности. Взаимосвязь «входы - выход»опишем тремя нечеткими правилами:то y =' Iris Setosa' ;если x4 =' низкий' ,1327Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»если x 3 =' средний' и x 4 =' средний' ,то y =' Iris Versicolor' ;если x 3 =' высокий ' и x 4 =' высокий' ,то y =' Iris Virginica' .Логической операций «И» в посылках правил поставим в соответствие операцию минимума над функциями принадлежности. Для этого в редакторе fuzzy выберем опцию min в меню And method.Применяя функцию fuzzy_classifier обнаруживаем, что созданнаянечеткая модель правильно классифицирует 130 из 150 ирисов.
Для настройки весов правил сформируем обучающую и тестирующую выборки.В обучающую выборку включим 120 ирисов с порядковыми номерами некратными 5. В связи с небольшим количеством данных тестировать нечеткий классификатор будем на всей выборке. Для быстрой настройки весовправил нечеткого классификатора в типовом сценарии fast_w_learningукажем имена файлов системы нечеткого вывода iris_cl.fis и экспериментальных данных iris.dat. Сценарий настройки нечеткого классификатораирисов приведен в Приложении 2.В результате настройки получены такие весовые коэффициенты:0.9 — для первого правила; 0.1 — для второго правила; 0.8 — для третьегоправила.
Настроенная система нечеткого логического вывода правильноклассифицирует 116 ирисов (96.67%) из обучающей выборки и 144 (96%)ирисов из всей выборки цветков.Пример 5.2. Рассматривается объект с двумя входами x1 , x2 ∈ [0 , 10]и одним выходом y , который может принимать одно из трех дискретныхзначений {d 1 , d 2 , d 3 } в соответствии с решающими правилами:14.6<d,еслиx122.25 + (x1 − 6.5 )214.6< x2 < 2.2 ⋅ x 1 + 3 .y = d 2 , если2225+−65.(x.)1d , если x > 2.2 ⋅ x 1 + 32 3(9)(10)Обучающие и тестирующие выборки показаны на рис.
4. Они содержат 80 и 5000 пар «входы — выход», соответственно. В выборках значениявходов выбирались случайно, а значения выхода рассчитывались по (10).Файлы данных доступны в разделе Fuzzy Logic Toolbox сайтаwww.MATLAB.ru.1328Секция 4. Нейро-сетевые технологииа)б)Рис.