|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "Проектирование систем управления\Fuzzy Logic Toolbox"
С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику" В оглавление книги \ К следующему разделу \ К предыдущему разделу 11. Настройка моделей классификации на основе нечеткого логического вывода в MATLAB Задача классификации состоит в выполнении отображения вида:
Классификация на основе нечеткого логического вывода происходит по базе знаний вида:
Степени принадлежности объекта
где В качестве решения выбирают класс с максимальной степенью принадлежности:
Будем предполагать, что существует выборка экспериментальные данных, связывающая входы
где
Выход нечеткой модели зависит от ее структуры - базы знаний, и параметров - функций принадлежностей и весов правил. Будем предполагать, что правила нечеткой базы знаний при настройке не меняются. В этом случае, настройка представляет собой нахождение параметров, минимизирующих расстояние между желаемым и действительным поведением нечеткой модели на обучающей выборке. Это расстояние можно определить по-разному. Первый способ заключается в выборе в качестве расстояния количества ошибок классификации на обучающей выборке. Это простой способ с ясной содержательной интерпретацией. Целевая функция задачи оптимизации, т.е. зависимость количества ошибок от параметров нечеткой модели, принимает дискретные значения 0, 1, 2,… Такой скачкообразный характер целевой функции затрудняет использование градиентных методов оптимизации. Особенно трудно настраивать нечеткую модель на небольших обучающих выборках, так как при этом возникают протяженные плато целевой функции, на которых "застревает" алгоритм оптимизации. Второй способ, предложенный профессором Ротштейном А.П. в [1, 2], основывается на фаззификации выходной переменной
Расстояние рассчитывается между векторами степеней принадлежности (1) и (2). Обозначим через
где
Целевая функция (3) не имеет протяженных плато, поэтому она пригодна к оптимизации градиентными методами. Однако, результаты оптимизации не всегда удовлетворительные. Полученная после оптимизации нечеткая модель обеспечивает минимальное значение функции (3), но не всегда обеспечивает минимум ошибок классификации. Это объясняется тем, что точки, близкие к границам разделения классов, вносят почти одинаковый вклад в значение целевой функции (3) как при правильной, так и при ошибочной классификации. Третий способ, который в этой работе предлагается впервые, наследует достоинства предыдущих способов. Идея заключается в том, чтобы расстояние по (3) увеличивать для ошибочно классифицированных объектов. Для этих объектов расстояние умножается на штрафной коэффициент. В результате целевая функция принимает вид:
где
Для настройки нечетких моделей с дискретным выходом предлагается воспользоваться функциями нелинейной оптимизации из матлабовского пакета Optimization Toolbox. Применение пакетов Fuzzy Logic Toolbox и Optimization Toolbox для настройки нечеткой модели классификации проиллюстрируем на следующем примере. Рассматривается объект с двумя входами x1,x2
Исходными данными для построения нечеткого классификатора является выборка данных, содержащая 80 пар "входы - выход". Обучающая выборка записана в файле tr_set_class.dat. Графическое изображения данных из выборки, а также разделяющие кривые показаны на рис. 1а.
Рисунок 1 - Классификация на основе нечеткого логического вывода а) обучающая выборка и разделяющие кривые; б) результаты нечеткой классификации до настройки. Входы нечеткой модели будем рассматривать как лингвистические переменные, значения которых определяются из следующих терм-множеств: {"Низкий", "Средний", "Высокий"} для
где
Коэффициенты концентраций для всех функций принадлежности выбирались равными 2. Координаты максимумов выбирались так, чтобы разбить интервал [0, 10] на три (для Таблица 1 - Нечеткая база знаний для классификации
Для настройки нечеткой модели будем использовать программу, приведенную в файле train_class.m . Это m-сценарий, вызывающий функцию нелинейной оптимизации constr и m-функцию ob_fun_class.m, вычисляющую значение целевой функции (4) на обучающей выборке. Значение штрафного коэффициента принято равным 10. Настраивается 16 параметров нечеткой модели:
После настройки получена новая нечеткая модель, записанная в файле class_trained.fis . Оптимальные функции принадлежности термов и веса правил показаны на рис. 2 и в табл.1, соответственно. Динамика настройки нечеткой модели в виде зависимости значения критерия обучения (4) от количества итераций алгоритма оптимизации показана на рис. 3. На этом же рисунке приведены результаты тестирования нечетких моделей во время обучения. Тестирование проводилось на выборке из 5000 точек. Ошибка обучения по критерию (4) и ошибка классификации убывают на протяжении настройки нечеткой модели, что свидетельствует об отсутствии эффекта переобучения. На рис. 4 показаны результаты классификации для нечеткой модели после 200 и 900 итераций алгоритма оптимизации. Видно, что после настройки нечеткая модель с шестью лингвистическими правилами хорошо описывает сложные, нелинейные правила классификации.
Рисунок 2 - Оптимальные функции принадлежности
Рисунок 3 - Динамика настройки нечеткой модели
Рисунок 4 - Классификация по настроенной нечеткой модели а) нечеткая модель после 200 итераций алгоритма настройки; б) нечеткая модель после 900 итераций алгоритма настройки. Литература
В оглавление книги \ К следующему разделу \ К предыдущему разделу |
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|