При использовании Neuro-Fuzzy Designer можно экспортировать исходную структуру FIS в MATLAB® Рабочая область и затем сгенерируйте значения ошибок обучения ANFIS. Поскольку экспорт профилей ошибок обучения и валидации из приложения Neuro-Fuzzy Designer не поддерживается, используйте этот метод, чтобы сгенерировать такие графики ошибок.
В следующем примере показано, как сохранить ошибку обучения, сгенерированную во время обучения ANFIS, в рабочем пространстве MATLAB.
Загрузите свои обучающие данные (fuzex1trnData
) и данные валидации (fuzex1chkData
) в рабочее пространство MATLAB.
load fuzex1trnData.dat load fuzex1chkData.dat
Откройте приложение Neuro-Fuzzy Designer.
neuroFuzzyDesigner
Загрузите обучающие данные из рабочего пространства MATLAB в Neuro-Fuzzy Designer.
В Load data разделе выберите Training.
Выберите worksp.
Нажмите Load Data. В диалоговом окне Загрузка из рабочей области введите имя переменной fuzex1trnData
.
Нажмите OK. Neuro-Fuzzy Designer отображает обучающие данные на графике как набор кругов.
Загрузите данные проверки из рабочего пространства MATLAB в Neuro-Fuzzy Designer. В Load data разделе выберите Checking.
Загрузите проверочные данные так же, как и обучающие данные, задав имя переменной fuzex1chkData
. Neuro-Fuzzy Designer отображает данные проверки с помощью знаков плюс, наложенных на обучающие данные.
Сгенерируйте начальный FIS.
В Generate FIS разделе выберите Grid partition.
Нажмите Generate FIS.
В диалоговом окне «Добавление функций принадлежности» выполните следующие действия.
В Input разделе, в Number of MFs, укажите количество входных функций принадлежности. В данном примере используйте 4
для всех входных переменных.
В MF Type выберите gbellmf
как тип функции входа принадлежности.
В Output разделе, в MF Type, выберите linear
как тип функции выхода принадлежности.
Нажмите OK.
Экспорт исходной FIS в рабочее пространство MATLAB.
В Neuro-Fuzzy Designer выберите File > Export > To Workspace.
Это действие открывает диалоговое окно, в котором вы задаете имя переменного MATLAB.
В диалоговом окне «Экспорт в рабочую область» в поле Workspace variable введите initfis
как имя переменной.
Нажмите OK. Приложение экспортирует объект FIS в рабочее пространство MATLAB.
Обучите FIS для 40
эпох. Вместо использования одного вызова на anfis
function, вызовите функцию внутри цикла, используя 2
эпох для каждого вызова. Этот метод обучения наследует процесс обучения, используемый приложением Neuro-Fuzzy Designer.
В каждую эпоху обучения сохраните ошибки обучения и валидации.
fis = initfis; opt = anfisOptions('EpochNumber',2,'ValidationData',fuzex1chkData); trainError = zeros(1,40); checkError = zeros(1,40); for ct = 1:40 opt.InitialFIS = fis; [fis,error,~,~,chkError] = anfis(fuzex1trnData,opt); trainError(ct) = error(1); checkError(ct) = chkError(1); end
Постройте график ошибок обучения и валидации в процессе обучения. Эти значения ошибки являются корневыми средними квадратичными невязками в каждую эпоху обучения.
epochNum = 1:40; plot(epochNum,trainError,'b*',epochNum,checkError,'ro') xlabel('Epoch Number') ylabel('Error') legend('Training Error','Validation Error')
Эти профили ошибок аналогичны профилям ошибок, когда та же самая исходная структура FIS обучается в приложении Neuro-Fuzzy Designer.