В этом примере показано, как создать, обучайтесь и протестируйте Sugeno-тип нечеткие системы с помощью Neuro-Fuzzy Designer. Для получения дополнительной информации о:
Нейроадаптивные нечеткие системы, смотрите Нейроадаптивное Изучение и ANFIS.
Учебные нейроадаптивные нечеткие системы в командной строке, смотрите anfis
.
Системы обучения и проверки с помощью приложения 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 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 с заданными функциями принадлежности и правилами. Система, которую вы задаете, должна быть системой 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, можно просмотреть структуру модели. Для этого в Neuro-Fuzzy Designer, нажмите Structure.
Ветви в этом графике являются закодированным цветом. Расцветка ветвей характеризует правила и указывает, используется ли AND, НЕ, или OR в правилах. Вход представлен крайним левым узлом и выходом самым правым узлом. Узел представляет коэффициент нормализации для правил. Чтобы просмотреть информацию о структуре, нажмите на каждый узел.
Кроме того, чтобы просмотреть FIS:
Функции принадлежности, в Neuro-Fuzzy Designer, выбирают Edit> Membership Functions.
Правила, в Neuro-Fuzzy Designer, выбирают Edit> Rules.
После загрузки обучающих данных и генерации начальной структуры FIS, можно обучить FIS. Для этого в Neuro-Fuzzy Designer, в разделе Train FIS, задают следующие параметры:
Optim. Method — Метод оптимизации. В данном примере выберите hybrid
метод, который использует комбинацию обратной связи и регрессии наименьших квадратов, чтобы настроить параметры FIS.
Epochs — Номер учебных эпох. В данном примере задайте 40
эпохи.
Error Tolerance — Ошибочное условие остановки допуска. В данном примере задайте значение 0
, который указывает, что обучение остановится, когда номер учебных эпох будет достигнут.
Чтобы обучить FIS, нажмите Train Now.
Приложение обучает FIS и строит учебную ошибку (как звезды) и ошибку проверки (как точки) в течение каждой учебной эпохи.
Ошибочные уменьшения проверки до определенного момента в обучении, и затем это увеличивается. Это увеличение происходит в точке, где обучение начинает сверхсоответствовать обучающим данным. Приложение выбирает FIS, сопоставленный с этой сверхподходящей точкой как обученная модель ANFIS.
После того, как FIS обучен, подтвердите модель с помощью Testing или набора данных Checking, который отличается от обучающих данных. В данном примере используйте ранее загруженные данные о проверке.
Чтобы протестировать ваш FIS против данных о проверке, в разделе Test FIS, выбирают данные о Checking. Затем нажмите Test Now.
Приложение строит выходные значения набора данных тестирования (использующий синий + 's) и выход обученного FIS для соответствующих значений ввода данных тестирования (использующий красный *). Выходные значения FIS коррелируют хорошо с ожидаемым выходом.
Важно иметь данные о проверке, которые полностью представляют функции данных, FIS предназначается к модели. Если ваши данные о проверке будут существенно отличаться от ваших обучающих данных и не покроют те же функции данных к модели как обучающие данные, то учебные результаты будут плохи.
Например, загрузите новые данные об обучении и проверке в Neuro-Fuzzy Designer. Эти данные имеют существенно отличающееся обучение и проверяющие наборы.
В командной строке MATLAB загрузите данные об обучении и проверке.
load fuzex2trnData.dat load fuzex2chkData.dat
Очистите ранее загруженные данные об обучении и проверке. В разделе Load data выберите каждый тип данных, нажмите Clear Data.
Загрузите обучающие данные (fuzex2trnData
) и проверка данных (fuzex2chkData
), когда вы сделали ранее.
Сгенерируйте структуру FIS и обучите FIS, как вы сделали ранее, кроме теперь выбирают 60
учебные эпохи.
В этом случае ошибка проверки является большой с минимумом, происходящим в первую эпоху. Поскольку приложение выбирает обученные параметры FIS, сопоставленные с минимальной ошибкой проверки, обученный FIS не достаточно получает функции этого набора данных. Важно знать функции вашего набора данных хорошо, когда вы выбираете свои данные об обучении и проверке. Когда вы не знаете функции своих данных, можно анализировать диаграммы погрешностей проверки, чтобы видеть, выполнили ли данные о проверке достаточно хорошо с обученной моделью.
В этом примере ошибка проверки является достаточно большой, чтобы указать, что или необходимо выбрать больше данных для обучения или изменить выбор функции принадлежности (и количество функций принадлежности и тип). В противном случае, если вы думаете, что обучающие данные достаточно получают функции, которые вы пытаетесь представлять, система может быть переобучена без данных о проверке.
Чтобы проверить плохие учебные результаты, протестируйте обученную модель FIS против данных о проверке.
Как ожидалось существуют существенные различия между значениями вывода данных проверки и FIS выход.