В этом примере показано, как создавать, обучать и тестировать нечеткие системы типа Sugeno с помощью приложения Neuro-Fuzzy Designer. Для получения дополнительной информации:
Нейро-адаптивные нечеткие системы см. Нейро-адаптивное обучение и ANFIS.
Обучение нейро-адаптивным нечетким системам в командной строке, см. anfis.
Обучение и проверка систем с помощью приложения Neuro-Fuzzy Designer требуют данных. Импорт данных обучения (fuzex1trnDataи данные проверки (fuzex1chkData) в рабочую область MATLAB ®.
load fuzex1trnData.dat load fuzex1chkData.dat
Откройте приложение Neuro-Fuzzy Designer.
neuroFuzzyDesigner

Загрузите набор учебных данных из рабочей области. В разделе Загрузить данные выберите Обучение и рабочий процесс.
Щелкните Загрузить данные (Load Data). В диалоговом окне «Загрузка из рабочего пространства» введите имя переменной fuzex1trnData.

Нажмите кнопку ОК. Нейро-нечеткий конструктор отображает обучающие данные на графике в виде набора кругов.

Загрузите данные проверки из рабочего пространства MATLAB в Neuro-Fuzzy Designer. В разделе «Загрузка данных» выберите «Проверка».
Загрузка данных проверки аналогично данным обучения с указанием имени переменной fuzex1chkData. Neuro-Fuzzy Designer отображает данные проверки с помощью знаков «плюс», наложенных на данные обучения.

Чтобы удалить определенный набор данных из приложения, в области Загрузить данные выберите Тип данных и нажмите Очистить данные.
Перед началом обучения FIS необходимо указать начальную структуру модели FIS. Чтобы указать структуру модели, выполните одну из следующих задач.
Загрузите ранее сохраненный объект FIS типа Sugeno с одним выходом из файла или рабочей области MATLAB.
Создайте начальную модель FIS с помощью секционирования сетки.
Создайте начальную модель FIS с помощью вычитаемой кластеризации.
Для этого примера создайте начальный FIS с помощью секционирования сетки. В Neuro-Fuzzy Designer в разделе Generate FIS выберите Grid partition.
Щелкните Генерировать FIS (Generate FIS).
В диалоговом окне «Добавить функции членства»:
В разделе Ввод в поле Количество MF укажите количество входных функций членства. Для этого примера используйте 4 функции членства для всех входных переменных.
В поле «Тип MF» выберите gbellmf в качестве типа входной функции членства.
В разделе «Вывод» в поле «Тип MF» выберите linear в качестве типа выходной членской функции.

Кроме того, можно в интерактивном режиме указать собственную структуру FIS с заданными функциями и правилами членства. Определяемая система должна быть системой Sugeno со следующими свойствами:
Одиночный выход
Средневзвешенная дефузификация
система первого или нулевого порядка; то есть все выходные функции членства должны быть одного типа, либо 'linear' или 'constant'.
Общий доступ к правилам отсутствует. Разные правила не могут использовать одну и ту же выходную функцию членства; то есть количество выходных функций членства должно равняться числу правил.
Вес единицы для каждого правила.
Нет пользовательских функций членства или методов дефуззификации.
Для определения:
Функции членства для каждой переменной в Neuro-Fuzzy Designer выберите Править > Функции членства. Затем в окне Редактор функций членства определите функции членства.
Правила в Neuro-Fuzzy Designer выберите Править > Правила. Затем в окне Редактор правил определите правила.
Эти инструменты аналогичны инструментам, используемым конструктором нечеткой логики. Дополнительные сведения см. в разделе Создание нечетких систем с помощью конструктора нечеткой логики.
После загрузки или создания FIS можно просмотреть структуру модели. Для этого в Neuro-Fuzzy Designer щелкните Структура (Structure).

Ветви на этом графике кодируются цветом. Цветовое кодирование ветвей характеризует правила и указывает, используются ли в правилах AND, NOT или OR. Вход представлен самым левым узлом, а выход - самым правым узлом. Узел представляет коэффициент нормализации для правил. Для просмотра информации о структуре щелкните по каждому узлу.
Кроме того, для просмотра FIS:
Функции членства в Neuro-Fuzzy Designer выберите Править > Функции членства.
Правила в Neuro-Fuzzy Designer выберите Править > Правила.
После загрузки данных обучения и создания начальной структуры FIS можно обучить FIS. Для этого в Neuro-Fuzzy Designer в разделе Train FIS укажите следующие параметры.
Оптим. Метод - метод оптимизации. В этом примере выберите hybrid способ, который использует комбинацию регрессии обратного распространения и регрессии наименьших квадратов для настройки параметров FIS.
Эпохи - Количество тренировочных эпох. В этом примере укажите 40 эпохи.
Допуск ошибки - условие остановки допуска ошибки. В этом примере укажите значение 0, что указывает на то, что обучение прекратится при достижении количества периодов обучения.
Для обучения FIS нажмите кнопку Train Now.

Приложение обучает FIS и строит график ошибки обучения (как звезды) и ошибки проверки (как точки) для каждой эпохи обучения.
Ошибка проверки уменьшается до определенного момента обучения, а затем увеличивается. Это увеличение происходит в момент, когда обучение начинает переоборудовать данные обучения. Приложение выбирает FIS, связанный с этой точкой переоснащения, в качестве обученной модели ANFIS.
После обучения FIS проверьте модель с помощью набора данных тестирования или проверки, который отличается от данных обучения. В этом примере используются ранее загруженные данные проверки.
Для проверки FIS по данным проверки в разделе Test FIS выберите Проверка данных. Затем щелкните Проверить сейчас.

Приложение строит график выходных значений набора тестовых данных (с использованием синих +) и выходных данных обученной FIS для соответствующих входных значений тестовых данных (с использованием красных *). Выходные значения FIS хорошо коррелируют с ожидаемым выходом.
Важно иметь проверочные данные, которые в полной мере отражают характеристики данных, моделируемых FIS. Если данные проверки существенно отличаются от данных обучения и не охватывают те же функции данных для моделирования, что и данные обучения, результаты обучения будут плохими.
Например, загрузите новое обучение и проверьте данные в Neuro-Fuzzy Designer. Эти данные имеют значительно отличающиеся наборы обучения и проверки.
В командной строке MATLAB загрузите данные обучения и проверки.
load fuzex2trnData.dat load fuzex2chkData.dat
Очистите ранее загруженные данные обучения и проверки. В разделе Загрузить данные выберите каждый тип данных и нажмите кнопку Очистить данные.
Загрузить учебные данные (fuzex2trnData) и проверка данных (fuzex2chkData), как и вы ранее.

Создание структуры FIS и обучение FIS, как это было ранее, за исключением выбора 60 тренировочные эпохи.

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

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