УДК 004.8.023:681.51.015 И.А. Ходашинский, П.А. Дудин
Идентификация нечетких систем на основе метода дифференциальной эволюции
Для идентификации нечетких систем предложен алгоритм дифференциальной эволюции. На основе указанного алгоритма построено пять нечетких систем, аппроксимирующих нелинейные функции от одной, двух и трех переменных. Исследовано влияние параметров алгоритма на ошибку аппроксимации.
Ключевые слова: нечеткие системы, метаэвристики, метод дифференциальной эволюции.
Постановка задачи
Задачей идентификации системы является построение модели, описывающей отображение «вход-выход» системы. В нечеткой идентификации это отображение задается в виде нечеткой системы. Основным преимуществом таких систем является возможность задания на их основе сложных и неопределенных отношений достаточно прозрачным способом. Применение нечетких систем для решения проблем автоматического управления, прогнозирования, распознавания образов, принятия решений заставляет специалистов искать эффективные методы построения таких систем, для идентификации которых наряду с алгоритмами оптимизации, основанными на производных, применяются метаэвристики [1].
Рассматривается нечеткая система типа синглтон, i-е правило в которой имеет следующий вид: IF x1=A1i AND x2=A2i AND ... AND xn=Ani THEN y = r, где Aij - лингвистический терм, которым оценивается переменная x,; ri - действительное число, которым оценивается скалярный выход у.
Нечеткая система осуществляет отображение f: ЭТп ^ :
R /Я
f (х) = Z ЦA1i (x1) • ЦA2i (x2) •... • ЦAni (xn ) • ri Z ЦA1i (x1)• ЦA2i (x2) •... • ЦAni (xn ) , i=1 / i=1
где x - входной вектор; R - число правил; n - число входных переменных; цAij - функция принадлежности, определяемая набором своих параметров, например: треугольная - тремя параметрами, трапециевидная - четырьмя, гауссова и параболическая - двумя.
Нечеткая система может быть представлена как
у = fx, 0),
где 0 = ||0i,..., 0^|| - вектор параметров нечеткой системы [2].
Пусть дано множество обучающих данных {(х^; tp), p = 1,..., m}, тогда среднеквадратическая функция ошибки, которую необходимо минимизировать, будет иметь вид
т
I «р - /(Xр ,0))2
Е (0) --------------------------------------------. (1)
т
Трудности применения классических методов оптимизации, в частности проблема локального экстремума и «проклятие размерности», заставляют специалистов обратиться к метаэвристическим методам. Для решения проблемы минимизации предлагается использовать метод дифференциальной эволюции. По сравнению с большинством метаэвристик указанный метод содержит небольшое число настраиваемых параметров, прост в реализации и использовании.
Метод дифференциальной эволюции
Метаэвристика под названием «дифференциальная эволюция» была разработана Р Сторном и К. Прайсом, это метод многомерной математической оптимизации, относящийся к классу стохастических алгоритмов [3].
В методе дифференциальной эволюции (ДЭ), также как в генетическом алгоритме, генерируется некоторое множество хромосом или векторов параметров, каждый из которых содержит помимо
значений параметров нечеткой системы еще и ошибку, вычисленную по формуле (1). Множество векторов-хромосом называют поколением. На каждой итерации порождается новое поколение, полученное из предыдущего применением специальной процедуры, объединяющей в себе операции мутации и кроссовера. Число векторов в каждом поколении неизменно и является параметром метода.
Новое поколение генерируется следующим образом. В предыдущем поколении определяется вектор с минимальной ошибкой 0^. Из предыдущего поколения для каждого вектора 0к выбираются четыре случайных вектора 0,1, 0,2, 0,3, 0,4 и генерируется мутантный вектор следующим образом:
0т* = ( 0,1 - 0,2) + ( 0,3 - 0,4). (2)
На основе лучшего и мутантного вектора генерируется новый вектор по следующей формуле:
0пЬ = 0ЬеИ + Е* 0ту, (3)
где Е - действительное число в интервале [0, 1].
Над полученным вектором 0пЬ выполняется специальная операция кроссовера, в результате получается вектор 0„ек. Если для этого вектора ошибка нечеткой системы меньше, чем ошибка для вектора 0к, то в новом поколении вектор 0к заменяется вектором 0пек, иначе в новое поколение перейдет вектор 0к.
Ниже приведен пошаговый алгоритм идентификации параметров нечеткой системы.
Вход. Н- число векторов-хромосом в поколении, Е- действительное число в интервале [0, 1].
Выход. Оптимальные параметры нечеткой системы.
Алгоритм:
Шаг 1. Генерация векторов-хромосом 0г (г = 1,..., Н) со случайными значениями ненулевых параметров. Проверка соблюдения условий построения нечеткой системы. Вычисление ошибки для каждой хромосомы по формуле (1). Сохранение вычисленной ошибки в нулевом гене хромосомы.
Шаг 2. Поиск вектора с минимальной ошибкой 0Ь,
Шаг 3. Выбор из текущего поколения четырех случайных вектора 0,1, 0,2, 0,3, 0,4. Вычисление мутантного вектора по формуле (2).
Шаг 4. Вычисление вектора 0пЬ по формуле (3).
Шаг 5. Выбор в качестве текущей первой хромосомы в поколении, к=1.
Шаг 6. Генерация СЯ - случайное число из интервала [0,1].
Шаг 7. Генерация новой хромосомы 0печ, следующим образом: для всех (кроме последнего и нулевого) генов хромосомы 0к генерируем случайное число из интервала [0, 1]; если случайное число меньше, чем СЯ, тогда в текущий ген хромосомы 0пе№ переходит ген из 0пЬ, иначе - ген из хромосомы 0к. Последний ген хромосомы 0пг„ берет свое значение из вектора 0пЬ, это необходимо для того, чтобы всегда было изменение хромосомы.
Шаг 8. Проверка валидности генов хромосомы как параметров функций принадлежности нечеткой системы. Если не удовлетворяет условиям построения нечеткой системы, то переход на Шаг 6.
Шаг 9. Оценивание хромосомы 0пек. Если ошибка меньше, чем у хромосомы 0к, в новом поколении вектор 0к заменяется вектором 0пек, иначе в новое поколение перейдет вектор 0к. Если есть следующая хромосома в популяции, то к = к+1 и переход на Шаг 6.
Шаг 10. Проверка условия окончания работы. Если условие выполнено, то ВЫХОД.
Шаг 11. Генерация Н-1 хромосом со случайными параметрами. Проверка соблюдения условий построения нечеткой системы. Оценивание каждой хромосомы с помощью среднеквадратической ошибки по формуле 1. Сохранение вычисленной ошибки в нулевом гене хромосомы.
Шаг 12. Добавление в новое поколение лучшей хромосомы из предыдущей популяции. Переход на Шаг 2.
Условием окончания работы алгоритма является достижение определенного числа итераций либо получение ошибки, меньше заданной.
Исследование алгоритма
Исследование алгоритмов идентификации нечетких систем проводилось при решении задач аппроксимации. В качестве тестовых были выбраны следующие функции:
1) У(х1, х2) = х1*8т(х2), -п/2 < XI, х2 < п/2;
2) У(х1, х2) = 8т(2 Х1/п) * 8т(2 х2/п), -5< хь х2 <5;
( (
81П
3)/(х) = 1 + 10ехр -100(х - 0,7)2
125
у х +1,5 у х + 0,1
,0 < х < 1;
4) I(Х1,Х2) = (1 + х12 + х21,5)2, Х1,Х2 е [1,5];
5) I(Х1,Х2,хз) = 1 + х0,5 + х-1 + х-1,5, Х1,Х2,хз е[1,5].
На основе тестовой функции формировалась таблица наблюдений, по которой строилась нечеткая система, аппроксимирующая данную функцию. Критерием качества аппроксимации была среднеквадратическая ошибка вывода. В процессе исследования изменялись следующие параметры алгоритма: число итераций, количество хромосом, параметр F.
Алгоритм ДЭ может «застревать» в локальных минимумах, по этой причине необходимо говорить о лучших и худших решениях при одних и тех же параметрах алгоритма. Разные решения получаются в силу случайности, присутствующей в самом алгоритме, однако не всегда этот случайный выбор способен вывести алгоритм из локального минимума.
Эксперимент показал, что точность решения зависит от числа итераций в определенных пределах. Особенно ярко это проявляется для первой функции и менее - для второй. Лучшие решения (малые ошибки) появляются при числе итераций, равном 900 для второй, 600 для третьей, 775 для четвертой и 575 для пятой функции; для первой функции алгоритм не сошелся к определенному значению на протяжении 1000 итераций, уменьшение ошибки происходит и после 1000 итераций.
На рис. 1 и 2 показана динамика изменения среднеквадратической ошибки (ЯМБЕ) в зависимости от числа итераций для четырех испытаний с одинаковыми параметрами алгоритма.
Число итераций
Рис. 1. Динамика изменения среднеквадратической ошибки (функция 1, 20 хромосом, F = 0,05)
На рис. 3 и 4 приведены распределения среднеквадратической ошибки от количества хромосом, здесь проводилось 10 независимых испытаний для одного фиксированного значения числа хромосом. Диапазон лучших значений количества хромосом для аппроксимации различных функций следующий: для второй - 15.. .20, для третьей - 15.. .20; для четвертой функции лучшие значения получаются при значении параметра, равного 7, для пятой - 10. Для первой функции диапазон оптимальных значений менее выражен.
На рис. 5 и 6 приведены распределения среднеквадратической ошибки от значения параметра F (число испытаний - 10). Лучшие значения параметра F для аппроксимации различных функций следующие: для первой - 0,05, для остальных - 0,7. Для первой функции ошибка растет пропорционально росту параметра F.
среднеквадратическои ошибки (функция 2, 20 хромосом, ^ = 0,7)
Число итерациИ
Рис. 3. Зависимость среднеквадратической ошибки от числа хромосом (функция 2,
^ = 0,3, 1000 итерациИ)
Рис. 4. Зависимость среднеквадратической ошибки от числа хромосом (функция 3, F = 0,3, 1000 итераций)
Рис. 5. Зависимость среднеквадратической ошибки от параметра F (функция 4, 10 хромосом,
1000 итераций)
Рис. 6. Зависимость среднеквадратической ошибки от параметра F (функция 5,
10 хромосом, 500 итераций)
На рис. 7 представлены значения параметров шести первых термов функций принадлежности и их общий вид при аппроксимации третьей тестовой функции до и после настройки, среднеквадратическая ошибка при этом уменьшилась в 15 раз.
ФП 1 2 3 А.
► .1 0 0 0,08080908
2 0 0,09090909 0,16191818
3 0,09090909 0,19161918 0,27272727
4 0,18181818 0,27272727 0,36363636
5 0,27272727 0,36363636 0,45454545
6 0,36363636 0,45454545 0,54545454
ФП 1 2 з -
► 1 0 0 0,05581216
2 0,00660119 0,04695010 0,11733330
3 0,05563010 0,13092591 0,18501056 ~
4 0,11462463 0,19696462 0,25828442
5 0,17439468 0,27194545 0,34836690
6 0,25716826 0,35147845 0,46133335
Изменить тип выделенных ФП
Изменить тип выделенных ФП
а б
Рис. 7. Функции принадлежности при аппроксимации тестовой функции 3: а - до настройки, б - после настройки
Компьютерный эксперимент позволил установить, что зависимость времени вывода от числа итераций и количества хромосом носит линейный характер. В таблице приведены некоторые регрессионные модели зависимости времени вывода от числа итераций и количества хромосом, в скобках указаны квадраты коэффициентов корреляции Я2 как мера точности полученных зависимостей.
Приведенные регрессионные уравнения увеличивают информативность экспериментальных результатов и позволяют установить тенденцию изменения времени в зависимости от числа итераций работы алгоритма и количества хромосом.
Зависимость времени вывода от числа итераций и числа хромосом в алгоритме ДЭ
Номер функ- ции Число входных переменных Число точек в таблице наблюдений Число термов, представляющих входную переменную Время от числа итераций Время от количества хромосом
1 2 81 5 0,5 + 0,0515*/'fer (R2=0,99972) 3,97617 + 1,26106* hrom (R2=0,98022)
4 2 121 5 -0,2 + 0,015*/'fer (R2=0,99119) 2,06757 + 2,42432*hrom (R2=0,99551)
5 3 216 3 -0,8 + 0,043*/'fer (R2=0,99946) 1,83587 + 2,50037* hrom (R2=0,99629)
Заключение
В настоящей работе для идентификации нечетких систем использован алгоритм дифференциальной эволюции. Имитационные эксперименты по аппроксимации пяти тестовых функций позволили выявить зависимость ошибок вывода нечетких систем, построенных на основе указанного алгоритма, от значений параметров алгоритма. Построены регрессионные модели зависимости времени вывода от числа итераций и количества хромосом.
Работа выполнена при финансовой поддержке РФФИ (проект № 09-07-99008).
Литература
1. Ходашинский И.А. Идентификация нечетких систем: методы и алгоритмы / И.А. Ходашин-ский // Проблемы управления. - 2009. - № 4. - С. 15-23.
2. Ходашинский И.А. Алгоритмы муравьиной и пчелиной колонии для обучения нечетких систем / И.А. Ходашинский, И.В. Горбунов, П. А. Дудин // Доклады ТУСУРа. - 2009. - № 2 (20). -С.157-161.
3. Stom R. Differential Evolution - A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces / R. Storn, K. Price // Journal of Global Optimization. - 1997. - Vol. 11. - P. 341-359.
Ходашинский Илья Александрович
Д-р техн. наук, профессор каф. автоматизации обработки информации ТУСУРа
Тел.: (382-2) 70-15-93
Эл. почта: hodashn@rambler.ru
Дудин Павел Анатольевич
Аспирант кафедры автоматизации обработки информации ТУСУРа Hodashinsky I.A., Dudin P. A.
The identification of fuzzy systems based on differential evolution method
In this article, the differential evolution algorithm for the identification of fuzzy systems is offered. On the basis of the offered algorithm five fuzzy systems are constructed, they approximate nonlinear functions from one, two, and three variables. The influence of algorithm parameters on an approximation error is investigated.
Keywords: fuzzy systems, metaheuristics, differential evolution.