Секция 4 - Нейросетевые технологии (1250001), страница 18
Текст из файла (страница 18)
4. Обучающая (а) и тестирующая (б) выборки.На основе этих выборок спроектируем нечеткий классификатор.Входы нечеткого классификатора будем рассматривать как лингвистические переменные, значения которых определяются из следующих терммножеств: {«low», «average», «high»} для x1 , и {«low», «lower average»,«higher average», «high»} для x2 . Формализацию термов осуществим симметричной гауссовской функции принадлежности:−( x − h )2µ( x ) = e 2 c ,где x — элемент универсального множества; h и c — параметры функциипринадлежности - координата максимума коэффициент концентрации.До настройки коэффициенты концентраций всех функций принадлежности равны 2. Координаты максимумов выбирались так, чтобы разбить интервал [0, 10] на три (для x1 ) и на четыре (для x2 ) равные части(рис. 5а).
По рис. 4а эксперт сгенерировал шесть нечетких правил классификации (табл. 1).2Таблица 1.К примеру 5.2: нечеткая база знаний.x1x2yaverageaveragelowhighlowaveragelowbelow averagebelow averagehigher averagehigher averagehighd1d1d2d2d3d3wwww(до настройки) (классификатор I) (классификатор II) (классификатор III)10.620.750.7110.410.390.4910.8110.9010.4610.7110.660.490.6510.020.020.911329Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»а) исходный классификаторб) классификатор Iв) классификатор IIг) классификатор IIIРис.
5. Функции принадлежности.Исходная нечеткая база знаний с шестью правилами грубо отражаетнелинейные разделяющие кривые - на тестирующей выборке ошибочноклассифицировано 26.6% объектов (рис. 6а). После настройки весов правил количество ошибок уменьшилось до 15%, однако безошибочность нечеткого классификатора остается на уровне следующего простого дереварешений:Если ((x1>1.2929) & (x2≤1))Если ((x1>4.6335) & (x2>1) & (x1≤7.5) & (x2≤6))Если ((x2>8.3607) & (x1>5.3301))Если ((x1≤5.3301) & (x2>6.9107))Если ((x1≤1.2929) & (x2>3.4988) & (x2≤6.9107) )Иначе,то y=d1,то y=d1,то y=d3,то y=d3,то y=d3,y=d2.Низкая безошибочность нечеткого классификатора после настройкивесов правил объясняется «плохими» функциями принадлежности.
Поэтому, необходимо модифицировать не только веса правил, но и функциипринадлежности. Будем настраивать следующие 16 параметров нечеткогоклассификатора:1330Секция 4. Нейро-сетевые технологии• 3 координаты максимумов функций принадлежностей термов«average», «lower average» и «higher average»;• 7 коэффициентов концентраций функций принадлежностей термоввходных переменных;• 6 весовых коэффициентов правил базы знаний.Результаты настройки с использованием различных критериев приведены на рис.
5 и в табл. 1. Использовались такие критерии настройки:критерий I — формула (5); критерий II — формула (7); критерий III - формула (8). Результаты тестирования классификаторов сведены в табл. 2.Классификатор I настроен по критерию I, классификатор II — по критерию II и классификатор III - по критерию III.КлассификаторИсходныйКлассификатор IКлассификатор IIКлассификатор IIIДерево решенийТаблица 2.Результаты тестирования классификаторов.Критерий IКритерий II Критерий IIIБезошибочность натестирующей выборке33.75%0.4333.9926.6%6.25%0.4811.089.78%18.75%0.4171.4916.42%6.25%0.4160.989.28%7.5%15.24%а) исходный классификаторб) классификатор I1331Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»в) классификатор IIг) классификатор IIIРис.
6. Классификация на тестирующей выборке.ВыводыВ статье показано как расширить Fuzzy Logic Toolbox для проектирования нечетких классификаторов, т. е. систем нечеткого логического вывода с дискретным выходом. Проанализированы критерии настройки нечеткого классификатора. Предложен пакет программ FALEFC для быстройнастройки весов правил нечеткого классификатора. Приведенные примерыпроектирования нечетких классификаторов подтверждают эффективностьпредложенных программ расширения пакета Fuzzy Logic Toolbox.Литература1. Kasabov N. Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. The MIT Press.— 1996.— 550 p.2.
Rotshtein A. Desig and Tuning of Fuzzy Rule-Based System for Medical Diagnosis. In Fuzzy and Neuro-Fuzzy Systems in Medicine (Teodorescu N.H.(ed.)). CRC-Press, 1998.— P.243–289.3. Ротштейн А. П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети.— Винница:УНІВЕРСУМ-Вінниця, 1999.— 320 с.4. Fuzzy Logic Toolbox. User’s Guide, Version 2.— The MathWorks, Inc.,2001.5. Штовба С.
Д. Идентификация нелинейных зависимостей с помощьюнечеткого логического вывода в системе MATLAB // Exponenta Pro.Математика в приложениях.— 2003.— №2.— С.9–15.1332Секция 4. Нейро-сетевые технологииПриложение 1. Листинг функции fuzzy_classifierfunction [decision, mf_grades]=fuzzy_classifier(x, fis, type)%FUZZY_CLASSIFIER выполняет нечеткий логический вывод для задач%классификации.% x - входной вектор (признаки классифицирумого объекта);% fis - система нечеткого логического вывода;% type - формат решения:%'number' - порядковый номер класса (значение по умолчанию);%'name' - наименование класса;% decision - результат классификации объекта x;% mf_grades - вектор степеней принадлежности каждому классу.%Требуемые программные средства: Fuzzy Logic Toolbox v.2.X%Serhiy D.
Shtovba shtovba@ksu.vstu.vinnica.ua%Vinnitsa State Technical University%$Revision: 1.6 $ $Date: 2004/03/12%Проверка входных аргументов:if nargin<2error ('Необходимо задать 2 или 3 входных аргумента');end[tmp1 tmp2]=size(x);if tmp1~=1error ('Классификация выполняется только одного объекта');endif isfis(fis)==0error('Второй аргумент должен быть системой нечеткого вывода');endif fis.type(1:6)~='sugeno'error('Система нечеткого вывода должна быть типа Сугено');endif nargin==2type='number';% <---- Установка значения по умолчаниюendnumber_of_decisions=length(fis.output(1).mf);number_of_rules=length(fis.rule);[a,b,c,d]=evalfis(x,fis); % <---- Нечеткий логический вывод%Номера правил с максимальной степенью выполнения:rule_num_with_max_fulfilment=find(d==max(d));%количество таких правил:number_rules_with_max=length(rule_num_with_max_fulfilment);if number_rules_with_max>1%Если таких правил несколько, то возможно объект попал на границу классов:colision_flag=zeros(1,number_of_decisions);for i=1:number_rules_with_maxindex=rule_num_with_max_fulfilment(i);%Помечаем решения с максимальной степенью принадлежности:colision_flag (fis.rule(index).consequent )=1;1333Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»end%Суммируем степени принадлежности проблемного объекта по разным правилам:sum_mf=zeros(1,number_of_decisions);for i=1:number_of_rulesindex=fis.rule(i).consequent;sum_mf(index)=sum_mf(index)+d(i);end%оставляем классы с максимальной степенью принадлежности (через *)%и выбираем класс по максимальной сумме степеней принадлежности:[tmp1 number_of_the_class]=max(sum_mf.*colision_flag);else number_of_the_class=fis.rule(rule_num_with_max_fulfilment).consequent;end%Возврат результата классификации в требуемом формате:switch typecase 'number', decision=number_of_the_class;case 'name', decision=fis.output.mf(number_of_the_class).name;otherwise, error('Допустимые значения для 3-го аргумента: number или name')endif nargout==2mf_grades( 1:number_of_decisions )=0;for i=1:number_of_rulesindex=fis.rule(i).consequent;%номер класса в i-м правиле%Объединим через операцию макcимума степени принадлежности одному и%тому же классу по различным правилам:mf_grades(index)=max(mf_grades(index), d(i));endendПриложение 2.
Листинг сценария настройки нечеткого классификатора ирисов%Настройки нечеткого классификатора ирисов%Требуемые программные средства: Fuzzy Logic Toolbox v.2.X%Optimization Toolbox v.2.X%FALEFC v.1.0%Serhiy D. Shtovba shtovba@ksu.vstu.vinnica.ua%Vinnitsa State Technical University%$Revision: 1.2 $ $Date: 2004/03/14%Загрузка исходной нечеткой модели:fis=readfis('iris_сд.fis');RULE_order=rule_order_fuz_cl(fis);%Загрузка обучающей выборки:[INP OUT_c OUT_mu]=dp_for_fuzzy_cl_learning(fis, 'iris.dat');%Расчет RMG:num_rule=length(fis.rule);for i=1:num_rulefis.rule(i).weight=1;end1334Секция 4. Нейро-сетевые технологииRMG=rmg_fuzzy_cl(INP, fis);%НАСТРАИВАЕМЫЕПАРАМЕТРЫ_______________________________________________________vlb_w(1:num_rule)=0;%нижняя границаw0(1:num_rule)=rand(1, num_rule);%начальная точкаvub_w(1:num_rule)=1;%верхняя граница%-----------------------------------------------------------------------------%ПАРАМЕТРЫ ОПТИМИЗАЦИИ:options=[];options=optimset('Display', 'iter');options.DiffMinChange=0.1;options.DiffMaxChange=0.25;options.LargeScale='off';options.MaxIter=20;options.MaxFunEvals=150;%Формирование обучающей выборки:ii=1;for i=1:150if rem(i,5)~=0tr_index(ii)=i; ii=ii+1;endend%Оптимизация:[wopt, delta]=fmincon(@ob_fun_fast_w, w0, [], [], [], [], vlb_w, ...vub_w, [], options, RULE_order, RMG(tr_index,:), OUT_c(tr_index,:), ...3, OUT_mu(tr_index,:))%Тестирование по трем критериям на обучающей выборке:[decision, delta_m, delta_s, delta_p] =fast_cl_testing_with_rmg(wopt, ...RULE_order, RMG(tr_index,:), OUT_c(tr_index,:), OUT_mu(tr_index,:));%Тестирование по трем критериям на всей выборке:[decision, delta_m, delta_s, delta_p] =fast_cl_testing_with_rmg(wopt, ...RULE_order, RMG, OUT_c, OUT_mu);%Запись оптимальных весов в систему нечеткого вывода:for i=1:num_rulefis.rule(i).weight=wopt(i);end1335Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»УДК 519.6НЕЙРОННЫЕ СЕТИ ТРЕТЬЕГО ПОКОЛЕНИЯ.РАСПОЗНАВАНИЕ ОБРАЗОВ И СКРЫТЫХЗАВИСИМОСТЕЙ В ПРОИЗВОЛЬНОМ СИГНАЛЕ СПОМОЩЬЮ ИМПУЛЬСНЫХ НЕЙРОСЕТЕЙ СИСПОЛЬЗОВАНИЕМ СРЕДЫ MATLABЮзбашев Д.
А.Московский государственный университет им. М.В.Ломоносова,факультет вычислительной математики и кибернетики, Москва,e-mail: dimuse@mail.ruВведениеПроводя классификацию нейронных сетей в соответствии с их базовыми вычислительными единицами — нейронами, можно достаточно четко разделить все виды нейросетей на три поколения. Первое поколение сетей представлено персептронами и пороговыми нейросетевыми архитектурами. Они восходят к таким моделям нейронных сетей, как многослойныеперсептроны (Threshold circuits), сети Хопфилда и Машины Больцмана.Характерной особенностью для моделей данного поколения является то,что они могут только выдавать дискретные величины на выходе.