MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Проектирование систем управления\Fuzzy Logic Toolbox

С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику"

В оглавление книги \ К следующему разделу \ К предыдущему разделу

4. Прикладные нечеткие системы

4.3. FALEFC пакет быстрой настройки весов правил нечеткого классификатора

В разделе предлагается пакет программ для быстрой настройки весов правил нечеткого классификатора FALEFC (FAst LEarning the Fuzzy Classifier). Материал раздела организован следующим образом: вначале излагаются теоретические основы нечеткого классификатора, затем описывается состав и функции пакета FALEFC, и в конце приводятся примеры проектирования нечетких классификаторов в системе MATLAB. Пакет FALEFC можно скачать здесь.

1. Нечеткий классификатор

Будем рассматривать классификатор с n входами и одним выходом y (рис. 1), что соответствует отображению вида:

,

где  - классы (типы решений).

Рис. 1. Классификатор

Классификация на основе нечеткого логического вывода осуществляется по следующей базе знаний [1, 2]:

ЕСЛИ с весом ,

ИЛИ с весом ,

ИЛИ с весом ,

ТО , , (1)

где  - нечеткий терм, которым оценивается переменная в строчке с номером (), т. е. ;

 - количество строчек-конъюнкций, в которых выход y оценивается значением ;

 - весовой коэффициент правила с номером .

Степени принадлежности объекта классам рассчитываются так [1, 2]:

,

(2)

где  - степень принадлежности входа нечеткому терму ;

 - s-норма (t-норма), которой в задачах классификации обычно соответствует максимум (минимум).

В качестве решения выбирают класс с максимальной степенью принадлежности:

.

(3)

Пример 1. Известна нечеткая база знаний:

Если = низкий И = низкий, то y= класс 1;

Если = средний И = высокий, то y= класс 2;

Если = высокий И = высокий, то y= класс 3;

Если = высокий И = низкий, то y= класс 2.

На рис. 2 приведены результаты классификации 600 объектов при реализации t-нормы операцией минимума и s-нормы операцией максимума. Области, соответствующие первому, второму, третьему и четвертому правилам базы знаний обозначены на рисунке символами #1, #2, #3 и #4.

Рис. 2. Классификации по нечеткой базе знаний из примера 1

Будем предполагать, что существует обучающая выборка из M пар экспериментальных данных, связывающих входы с выходом y исследуемой зависимости:

,

(4)

где  - входной вектор в r-ой паре и  - соответствующий выход.

Настройка представляет собой нахождение таких параметров функций принадлежностей термов входных переменных и весовых коэффициентов правил, которые минимизируют отклонение между желаемым и действительным поведением нечеткого классификатора на обучающей выборке. Критерий близости можно определить различными способами.

Первый способ заключается в выборе в качестве критерия настройки процента ошибок классификации на обучающей выборке. Введем следующие обозначения:

P - вектор параметров функций принадлежности термов входных и выходной переменных;

W - вектор весовых коэффициентов правил базы знаний;

 - результат вывода по нечеткой базе (1) с параметрами при значении входов . Нечеткий логический вывод осуществляется по формулам (2) - (3).

Тогда настройка нечеткого классификатора сводится к следующей задаче оптимизации: найти такой вектор , чтобы:

,

(5)

где - ошибка классификации объекта :

 .

Преимущества критерия настройки (5) заключаются в его простоте и ясной содержательной интерпретации. Процент ошибок широко используется как критерий обучения различных систем распознавания образом. Целевая функция задачи оптимизации (5) принимает дискретные значения. Это затрудняет использование градиентных методов оптимизации, т.к. на протяженных плато целевой функции алгоритмы оптимизации "застревают". Особенно трудно подобрать подходящие параметры градиентных алгоритмов (например, приращения аргументов для расчета частных производных) при настройке нечеткого классификатора на небольшой выборке данных.

Второй способ использует в качестве критерия настройки расстояние между результатом вывода в виде нечеткого множества и значением выходной переменной в обучающей выборке. Для этого выходную переменную y в обучающей выборке (4) фаззифицируют следующим образом [1, 2]:

.

(6)

В этом случае настройка нечеткого классификатора сводится к следующей задачи оптимизации [1, 2]: найти такой вектор , чтобы:

,

(7)

где  - степень принадлежности значения выходной переменной y в r-ой паре обучающей выборке к решению в соответствии с (6);

 - степень принадлежности выхода нечеткой модели с параметрами к решению , определяемая по формуле (2) при значениях входов из r-ой пары обучающей выборке ().

Целевая функция в задаче (7) не имеет протяженных плато, поэтому она пригодна к оптимизации градиентными методами. Однако, результаты оптимизации не всегда удовлетворительные: нечеткая база знаний, обеспечивающая минимум критерия (7), не всегда обеспечивает также и минимум ошибок классификации. Это объясняется тем, что точки, близкие к границам раздела классов, вносят почти одинаковый вклад в критерий настройки, как при правильной, так и при ошибочной классификации.

Третий способ наследует достоинства предыдущих способов. Идея заключается в том, чтобы вклад ошибочно классифицированных объектов в критерий настройки увеличивать, посредством умножением расстояния на штрафной коэффициент. В результате задача оптимизации принимает следующий вид:

,

(8)

где  - штрафной коэффициент.

Задачи (5), (7) и (8) могут быть решены различными технологиями оптимизации, среди которых часто применяется метод наискорейшего спуска, квазиньютоновские методы и генетические алгоритмы. На управляемые переменные обычно накладывают ограничения, обеспечивающие линейную упорядоченность элементов терм-множеств. Такие ограничения не позволяют алгоритмам оптимизации сделать, например, нечеткое множество "Низкий" больше "Высокого". Кроме того, ядра нечетких множеств не должны выходить за пределы диапазонов изменения соответствующих переменных. Это обеспечивает прозрачность, т.е. содержательную интерпретабельность нечеткой базы знаний после настройки. Что касается вектора , то его координаты должны находиться в диапазоне [0, 1]. Если к уровню интерпретабельности базы знаний предъявляются высокие требования, то веса правил не настраивают, оставляя их равными 1. Возможен и промежуточный вариант, когда весовые коэффициенты принимают значения 0 или 1. В этом случае нулевое значения весового коэффициента эквивалентно исключению правила из нечеткой базы знаний.

Параметры функций принадлежности и веса правил можно настраивать одновременно или по отдельности. При настройке только весов правил объем вычислений можно значительно сократить, т.к. степени принадлежности , входящие в (2), не зависят от . Для этого в начале оптимизации надо рассчитать степени выполнения правил при единичных весовых коэффициентах () для каждого объекта из обучающей выборки:

.

Для новых весовых коэффициентов степени принадлежности объекта классам рассчитываются так:

.

(9)

2. Состав и назначение пакета FALEFC

Fuzzy Logic Toolbox обеспечивает проектирование систем нечеткого логического вывода для объектов с непрерывным выходом, т.е. для случая, когда выходная переменная y может принимать значения из диапазона . В настоящем разделе показывается, как расширить Fuzzy Logic Toolbox для проектирования нечетких классификаторов.

В качестве нечеткого классификатора предлагается использовать систему нечеткого логического вывода типа Сугено. Классам решений ставятся в соответствие термы выходной переменной; наименование класса решений задается как элемент терм-множества выходной переменной. Параметры заключений правил (параметры "функций принадлежности" выходной переменной) могут быть произвольными, т.к. они не влияют на результат классификации.

Настройка нечеткого классификатора сводится к задачам оптимизации (5), (7) или (8). Для решения этих задач в системе MATLAB можно воспользоваться пакетом Optimization Toolbox. Для быстрой настройки весов правил нечеткого классификатора на основе соотношения (9) написан пакет FALEFC (FAst LEarning the Fuzzy Classifier). Время настройки весов правил с помощью пакета FALEFC на порядок меньше, чем при настройке функций принадлежности. Пакет FALEFC использует функции Fuzzy Logic Toolbox и Optimization Toolbox. Пакет включает такие программы:

fuzzy_classifier

-

выполнение нечеткого вывода для задач классификации;

fast_w_learning

-

сценарий быстрой настройки весов правил нечеткого классификатора;

dp_for_fuzzy_cl_learning

-

считывание выборки данных и преобразование ее к формату, требуемого программами настройки нечеткого классификатора;

rmg_fuzzy_cl

-

расчет RMG - матрицы степеней выполнения правил при единичных весовых коэффициентах, необходимой для быстрой классификации;

fuzzy_classifier_rmg

-

быстрая классификация на основе нечеткого вывода при новых значениях весов правил с использованием RMG;

ob_fun_fast_w

-

целевая функция для быстрой настройки весов нечетких правил, использующая RMG;

fast_cl_testing_with_rmg

-

быстрое тестирование нечеткого классификатора при новых весах правил с использованием RMG;

rule_order_fuzzy_cl

-

определение количества правил в базе знаний для каждого класса (типа решения).

В оглавление книги \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика