exponenta event banner

Адаптивные нейро-нечеткие системы вывода

В этом примере показано, как создавать, обучать и тестировать нечеткие системы типа Sugeno с помощью приложения Neuro-Fuzzy Designer. Для получения дополнительной информации:

Загрузка данных обучения

Обучение и проверка систем с помощью приложения Neuro-Fuzzy Designer требуют данных. Импорт данных обучения (fuzex1trnDataи данные проверки (fuzex1chkData) в рабочую область MATLAB ®.

load fuzex1trnData.dat
load fuzex1chkData.dat

Откройте приложение Neuro-Fuzzy Designer.

neuroFuzzyDesigner

Default Neuro-Fuzzy Designer app dialog with an empty plot and a load data section in the bottom left corner.

Загрузите набор учебных данных из рабочей области. В разделе Загрузить данные выберите Обучение и рабочий процесс.

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

Load from workspace dialog box with fuzex1trdData entered as the input variable name

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

Neuro-Fuzzy Designer app showing a plot of the imported training data

Загрузите данные проверки из рабочего пространства MATLAB в Neuro-Fuzzy Designer. В разделе «Загрузка данных» выберите «Проверка».

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

Neuro-Fuzzy Designer app showing a plot with the imported checking data together with the training data

Чтобы удалить определенный набор данных из приложения, в области Загрузить данные выберите Тип данных и нажмите Очистить данные.

Создание или загрузка структуры FIS

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

  • Загрузите ранее сохраненный объект FIS типа Sugeno с одним выходом из файла или рабочей области MATLAB.

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

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

Для этого примера создайте начальный FIS с помощью секционирования сетки. В Neuro-Fuzzy Designer в разделе Generate FIS выберите Grid partition.

Щелкните Генерировать FIS (Generate FIS).

В диалоговом окне «Добавить функции членства»:

  • В разделе Ввод в поле Количество MF укажите количество входных функций членства. Для этого примера используйте 4 функции членства для всех входных переменных.

  • В поле «Тип MF» выберите gbellmf в качестве типа входной функции членства.

  • В разделе «Вывод» в поле «Тип MF» выберите linear в качестве типа выходной членской функции.

Add membership functions dialog box showing the selected number and type of input membership functions and the selected output membership function type.

Интерактивное определение структуры FIS

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

  • Одиночный выход

  • Средневзвешенная дефузификация

  • система первого или нулевого порядка; то есть все выходные функции членства должны быть одного типа, либо 'linear' или 'constant'.

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

  • Вес единицы для каждого правила.

  • Нет пользовательских функций членства или методов дефуззификации.

Для определения:

  • Функции членства для каждой переменной в Neuro-Fuzzy Designer выберите Править > Функции членства. Затем в окне Редактор функций членства определите функции членства.

  • Правила в Neuro-Fuzzy Designer выберите Править > Правила. Затем в окне Редактор правил определите правила.

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

Просмотр структуры FIS

После загрузки или создания FIS можно просмотреть структуру модели. Для этого в Neuro-Fuzzy Designer щелкните Структура (Structure).

Dialog box showing the structure of the ANFIS model

Ветви на этом графике кодируются цветом. Цветовое кодирование ветвей характеризует правила и указывает, используются ли в правилах AND, NOT или OR. Вход представлен самым левым узлом, а выход - самым правым узлом. Узел представляет коэффициент нормализации для правил. Для просмотра информации о структуре щелкните по каждому узлу.

Кроме того, для просмотра FIS:

  • Функции членства в Neuro-Fuzzy Designer выберите Править > Функции членства.

  • Правила в Neuro-Fuzzy Designer выберите Править > Правила.

Поезд FIS

После загрузки данных обучения и создания начальной структуры FIS можно обучить FIS. Для этого в Neuro-Fuzzy Designer в разделе Train FIS укажите следующие параметры.

  • Оптим. Метод - метод оптимизации. В этом примере выберите hybrid способ, который использует комбинацию регрессии обратного распространения и регрессии наименьших квадратов для настройки параметров FIS.

  • Эпохи - Количество тренировочных эпох. В этом примере укажите 40 эпохи.

  • Допуск ошибки - условие остановки допуска ошибки. В этом примере укажите значение 0, что указывает на то, что обучение прекратится при достижении количества периодов обучения.

Для обучения FIS нажмите кнопку Train Now.

Neuro-Fuzzy Designer app showing a plot of the training error and testing error for the entire training session.

Приложение обучает FIS и строит график ошибки обучения (как звезды) и ошибки проверки (как точки) для каждой эпохи обучения.

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

Проверка обученных FIS

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

Для проверки FIS по данным проверки в разделе Test FIS выберите Проверка данных. Затем щелкните Проверить сейчас.

Neuro-Fuzzy Designer app showing the checking output data together with the output generated by the ANFIS system for the checking input data

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

Важность проверки данных

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

Например, загрузите новое обучение и проверьте данные в Neuro-Fuzzy Designer. Эти данные имеют значительно отличающиеся наборы обучения и проверки.

  1. В командной строке MATLAB загрузите данные обучения и проверки.

    load fuzex2trnData.dat
    load fuzex2chkData.dat

  2. Очистите ранее загруженные данные обучения и проверки. В разделе Загрузить данные выберите каждый тип данных и нажмите кнопку Очистить данные.

  3. Загрузить учебные данные (fuzex2trnData) и проверка данных (fuzex2chkData), как и вы ранее.

Neuro-Fuzzy Designer app showing training and checking data that is not well-correlated

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

Neuro-Fuzzy Designer app showing large checking error

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

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

Для проверки плохих результатов обучения протестируйте обученную модель FIS на основе данных проверки.

Neuro-Fuzzy Designer app showing that the output of the fuzzy system for the checking data does not match the expected output.

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

См. также

Связанные темы