Обучите адаптивные нейронечеткие системы вывода

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

Загрузите обучающие данные

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

load fuzex1trnData.dat
load fuzex1chkData.dat

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

neuroFuzzyDesigner

Загрузите обучающий набор данных из рабочей области. В разделе Load data выберите Training и worksp.

Нажмите Load Data. В Загрузке из диалогового окна рабочей области введите имя переменной fuzex1trnData.

Нажать ОК. Neuro-Fuzzy Designer отображает обучающие данные в графике как набор кругов.

Загрузите данные о проверке из рабочего пространства MATLAB в Neuro-Fuzzy Designer. В разделе Load data выберите Checking.

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

Чтобы очистить определенный набор данных от приложения, в области Load data, выбирают данные Type и нажимают Clear Data.

Сгенерируйте или загрузите структуру FIS

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

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

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

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

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

Нажмите Generate FIS.

В диалоговом окне Add Membership Functions:

  • В разделе Input, в Number of MFs, задают количество входных функций принадлежности. В данном примере используйте 4 функции принадлежности для всех входных переменных.

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

  • В разделе Output, в MF Type, выбирают linear как выходной тип функции принадлежности.

В интерактивном режиме задайте структуру FIS

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

  • Один выход

  • Взвешенное среднее defuzzification

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

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

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

  • Никакие пользовательские функции принадлежности или defuzzification методы.

Задавать:

  • Функции принадлежности для каждой переменной, в Neuro-Fuzzy Designer, выбирают Edit> Membership Functions. Затем в окне Membership Function Editor задайте функции принадлежности.

  • Правила, в Neuro-Fuzzy Designer, выбирают Edit> Rules. Затем в окне Rule Editor задайте правила.

Эти инструменты совпадают с используемыми приложением Fuzzy Logic Designer. Для получения дополнительной информации смотрите Сборку Нечеткие Системы Используя Fuzzy Logic Designer.

Просмотрите структуру FIS

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

Ветви в этом графике являются закодированным цветом. Расцветка ветвей характеризует правила и указывает, используется ли AND, НЕ, или OR в правилах. Вход представлен крайним левым узлом и выходом самым правым узлом. Узел представляет коэффициент нормализации для правил. Чтобы просмотреть информацию о структуре, нажмите на каждый узел.

Кроме того, чтобы просмотреть FIS:

  • Функции принадлежности, в Neuro-Fuzzy Designer, выбирают Edit> Membership Functions.

  • Правила, в Neuro-Fuzzy Designer, выбирают Edit> Rules.

Обучите FIS

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

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

  • Epochs — Номер учебных эпох. В данном примере задайте 40 эпохи.

  • Error Tolerance — Ошибочное условие остановки допуска. В данном примере задайте значение 0, который указывает, что обучение остановится, когда номер учебных эпох будет достигнут.

Чтобы обучить FIS, нажмите Train Now.

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

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

Подтвердите обученный FIS

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

Чтобы протестировать ваш FIS против данных о проверке, в разделе Test FIS, выбирают данные о Checking. Затем нажмите Test Now.

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

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

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

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

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

    load fuzex2trnData.dat
    load fuzex2chkData.dat

  2. Очистите ранее загруженные данные об обучении и проверке. В разделе Load data выберите каждый тип данных, нажмите Clear Data.

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

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

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

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

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

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

Смотрите также

Похожие темы