Главная > Искусственные нейронные сети. Теория и практика
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

5.9. Пакет Fuzzy Logic Toolbox

5.9.1. Общая характеристика

Fuzzy Logic Toolbox используется в системе MATLAB и представляет собой пакет прикладных программ, относящихся к теории нечетких множеств и позволяющих конструировать так называемые нечеткие экспертные и/или управляющие системы.

Основные возможности пакета:

• построение систем нечеткого вывода (экспертных систем, нечетких регуляторов, аппроксиматоров зависимостей);

• построение адаптивных нечетких систем (нечетких нейронных сетей);

• интерактивное динамическое моделирование в Simulink.

Пакет позволяет работать в режиме графического интерфейса, в режиме командной строки, а также с использованием блоков и примеров пакета Simulink.

5.9.2. Состав графического интерфейса

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

• редактор Fuzzy Inference System Editor (FIS Editor или FIS-редактор) вместе со вспомогательными программами: редактором функций принадлежности (Membership Function Editor), редактором правил (Rule Editor), просмотрщиком правил (Rule Viewer) и про-смотрщиком поверхности отклика (Surface Viewer);

• редактор нечетких нейронных систем ANFIS Editor или AN FIS-редактор);

• программа нахождения центров кластеров (Clustering -кластеризация).

Набор этих программ предоставляет пользователю максимальные удобства для создания, редактирования и использования различных систем нечеткого вывода. Далее остановимся только на вопросах построения, обучения и использования нечетких нейронных сетей с помощью пакета Fuzzy Logic Toolbox.

5.9.3. Создание нечеткой нейронной сети

Графический интерфейс нечетких нейронных систем вызывается функцией anfisedit из режима командной строки. Исполнение функции приводит к появлению окна редактора нечетких нейронных систем (ANFIS Editor), вид которого приведен на рис. 5.87.

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

Рассмотрим пример создания нечеткой нейронной сети, отображающей зависимость между переменными х и у, заданную с помощью табл. 5.4.

Рис. 5.87. Окно редактора нечеткой нейронной сети

Таблица 5.4

Значения х и у

Создание структуры, настройка параметров и проверка осуществляются по обучающей (Training), проверочной (Checking) и тестирующей (Testing) выборкам, которые предварительно должны быть представлены в виде текстовых фалов (с расширением .dat и разделителями-табуляциями), первые колонки которых соответствуют входным переменным, а последняя - единственной выходной переменной; количество строк в таких файлах равно количеству образцов (примеров). Так, обучающая выборка, сформированная по табл. 5.4, представляется в следующем виде:

Строгих рекомендаций по объемам этих выборок не существует, поэтому следует исходить из принципа «чем больше, тем лучше». Обучающая и проверочная выборки непосредственно

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

Пункты меню File и View, идентичны пунктам FIS-редактора за тем исключением, что здесь работа может происходить только с алгоритмом нечеткого вывода Sugeno. Пункт меню Edit содержит единственный подпункт Undo (Отменить выполненное действие).

Набор опций Load data (Загрузить данные) в нижней левой части окна редактора включает:

• Туре - тип загружаемых данных (Training - для обучения, Testing - для тестирования, Checking - для проверки, Demo - демонстрационные);

• Disk (Диск) или Workspace (Рабочая область) - место, откуда должны загружаться данные.

К этим опциям относятся два действия: Load Data... (Загрузить данные) и Clear Data (Стереть введенные данные).

Следующая группа опций ANFIS-редактора объединена под именем Generate FIS (Создание нечеткой системы вывода). Данная группа включает в себя опции:

• Load from disk - загрузка структуры системы с диска;

• Load from worksp. - загрузка структуры системы из рабочей области MATLAB,

• Grid partition - разбиение областей определения входных переменных (аргументов) на подобласти независимо для каждого аргумента;

Subtract clustering или Sub. clustering - разбиение всей области определения входных переменных (аргументов) на подобласти в комплексе для всех аргументов;

• Generate FIS - создание нечеткой системы с точностью до ряда параметров.

Следующая группа опций Train FIS (Обучение нечеткой системы вывода) позволяет определить метод обучения (Optim. Method) нечеткой нейронной сети: гибридный (Hybrid) или обратного распространения ошибки (Backpropagation); установить уровень текущей суммарной, по всем образцам, ошибки обучения (Error Tolerance), при достижении которого процесс обучения заканчивается; количество циклов обучения (Epochs). Процесс обучения заканчивается либо при достижении уровня ошибки, либо при проведении заданного количество циклов.

Опция Train Now позволяет начать процесс обучения нечеткой нейронной сети

В окне AN FIS-редактора выдаются данные (ANFIS Info ) о системе количество входов, выходов, функций принадлежности входов, нажатие кнопки Structure (Структура) позволяет увидеть структуру сети в виде, аналогичном представленному на рис. 3.18 Кнопка Clear (Очистить) позволяет стереть все результаты

Опции Test FIS позволяют провести проверку и тестирование созданной и обученной системы с выводом результатов в виде графиков (для обучающей выборки - Training data, тестирующей выборки - Testing data и проверочной выборки - Checking data) Кнопка Test Now позволяет запустить указанные процессы

Работу с редактором рассмотрим на примере восстановления зависимости по данным табл 5.4 Предположим, что эти данные сохранены в файле Proba dat Создание и проверку нечеткой нейронной сети проведем по этапам

1) В окне ANFIS-редактора выберем тип загружаемых данных Training и нажмем кнопку Load data В окне диалога укажем местоположение и имя файла Его открытие приводит к появлению в графической части окна редактора набора точек, соответствующих введенным данным (рис. 5.88)

Рис. 5.88 Окно ANFIS-редактора после загрузки обучающей выборки

2) В группе опций Generate FIS по умолчанию активизирована опция Grid partition Не будем ее изменять и нажмем кнопку Generate FIS, после чего появится диалоговое окно (рис. 5.89) для задания числа и типов функций принадлежности Сохраним все установки по умолчанию, нажав ОК Произойдет возврат в основное окно ANFIS-редактора Теперь структура нечеткой нейронной сети создана, и ее графический вид можно просмотреть с помощью кнопки Structure (рис. 5.90)

Рис. 5.89 Окно задания функций принадлежности

3) Перейдем к опциям Train FIS Не будем менять задаваемые по умолчанию метод настройки параметров (Hybrid) и уровень ошибки (0), но количество циклов обучения изменим на 40, после чего нажмем кнопку начала процесса обучения (Train Now) Получившийся результат в виде графика ошибки сети в зависимости от числа циклов обучения, из которого следует, что обучение фактически закончилось после пятого цикла, представлен на рис. 5.91

4) Теперь нажатием кнопки Test Now можно начать процесс тестирования обученной сети, но, поскольку использовалась только обучающая выборка, ничего особенно интересного ожидать не приходится Действительно, выходы обученной сети практически совпадают со значениями обучающей выборки

(кликните для просмотра скана)

5) Сохраним разработанную нечеткую нейронную сеть с именем Probalfis и, для исследования разработанной системы средствами FIS-редактора, из командной строки MATLAB выполним команду Fuzzy, а затем через пункты меню File/Open FIS from disk... откроем созданный файл. С созданной сетью можно теперь выполнять все приемы редактирования и исследования.

5.9.4. Впечатления от работы с пакетом

Что можно сказать про эффективность использования нечетких нейронных сетей и AN FIS-редактора? В данном случае используется только один алгоритм нечеткого вывода - Sugeno (нулевого или первого порядков), может быть задана только одна выходная переменная, всем правилам приписывается один и тот же единичный вес. Кроме того, возникают значительные проблемы при количестве входных переменных большим, чем 5-6.

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

Рекомендуемые области применения: построение аппроксиматоров зависимостей по экспериментальным данным, систем классификации, извлечение знаний.

5.10. Совсем все просто

Хотелось бы, чтобы после прочтения данной главы у читателя сложилось бы совершенно правильное впечатление об относительной легкости работы с программами-нейроимитаторами. Если такую задачу авторам удалось решить, значит, их труд не пропал даром.

<< Предыдущий параграф Следующий параграф >>
Оглавление