主要内容

训练自适应神经模糊推理系统

此示例显示如何使用该示例创建,列车和测试Sugeno型模糊系统神经模糊设计师如欲了解更多信息,请浏览:

负载培训数据

培训和验证系统使用神经模糊设计师应用需要数据。导入培训数据(fuzex1trnData)和验证数据(fuzex1chkData)到Matlab®工作区。

负载fuzex1trnData.dat负载fuzex1chkdata.dat.

打开神经模糊设计师应用程序。

neurofozydesigner

默认的neurofuzzy Designer应用程序对话框,在左下角有一个空的图和一个加载数据部分。

从工作空间加载训练数据集。在加载数据部分中,选择训练worksp

点击加载数据.在“从工作区”对话框的“加载”中,输入变量名称fuzex1trnData

使用Fuzex1TRDDATA从工作区对话框中加载作为输入变量名称

点击好的神经模糊设计师将图中的培训数据显示为一组圆圈。

神经模糊设计师应用程序显示导入培训数据的情节

将检查数据从MATLAB工作空间加载到神经模糊设计师.在加载数据部分中,选择检查

以与培训数据相同的方式加载检查数据,指定变量名fuzex1chkData神经模糊设计师使用叠加在训练数据上的加号显示检查数据。

神经模糊设计师应用程序显示与导入的检查数据一起与培训数据的剧情

要清除应用程序中的特定数据集,请在加载数据区域,选择数据类型,然后单击明确的数据

生成或加载FIS结构

在开始FIS培训之前,必须指定初始FIS模型结构。要指定模型结构,您需要执行以下任务之一:

  • 从文件或MATLAB工作区加载先前保存的单输出Sugeno型FIS对象。

  • 使用网格分区生成初始FIS模型。

  • 使用减法聚类生成初始FIS模型。

对于本例,使用网格分区生成初始FIS。在神经模糊设计师, 在里面生成FIS部分中,选择网格分区

点击生成FIS

在“添加成员功能”对话框中:

  • 输入部分,在MFs的数量,指定输入成员函数的数目。对于本例,使用4所有输入变量的成员资格函数。

  • MF类型中,选择gbellmf作为输入成员函数类型。

  • 输出部分,在MF类型中,选择线性作为输出成员关系函数类型。

添加成员资格函数对话框显示输入成员资格函数的选择数量和类型以及选择输出成员资格函数类型。

交互式指定FIS结构

或者,您可以使用指定的成员函数和规则交互式地指定自己的FIS结构。你定义的系统必须是具有以下属性的Sugeno系统:

  • 单输出

  • 加权平均排放

  • 一阶或零阶系统;也就是说,所有的输出成员函数都必须是相同的类型“线性”或者“不变”

  • 没有共享的规则。不同的规则不能使用相同的输出成员函数;也就是说,输出成员函数的数量必须等于规则的数量。

  • 每个规则的单位权重。

  • 没有自定义成员关系函数或去模糊化方法。

定义:

  • 每个变量的成员函数神经模糊设计师中,选择编辑>隶属度函数.然后,在“成员身份函数编辑器”窗口中,定义“成员”函数。

  • 规则,in.神经模糊设计师中,选择编辑>规则.然后,在规则编辑器窗口中定义规则。

这些工具是相同的那些由模糊逻辑设计师应用程序。有关更多信息,请参阅使用模糊逻辑设计器构建模糊系统

查看FIS结构

加载或生成FIS后,您可以查看模型结构。这样做,在神经模糊设计师, 点击结构

显示ANFIS模型结构的对话框

该图中的分支是颜色编码的。分支的颜色编码表征规则,并指示是否在规则中使用。输入由左侧节点和最右侧节点的输出表示。该节点表示规则的归一化因子。要查看有关结构的信息,请单击每个节点。

此外,要查看“金融服务监督系统”:

  • 会员职能,在神经模糊设计师中,选择编辑>隶属度函数

  • 规则,in.神经模糊设计师中,选择编辑>规则

火车FIS

加载培训数据并生成初始FIS结构后,您可以培训您的FIS。这样做,在神经模糊设计师, 在里面火车FIS节,指定以下参数。

  • Optim。方法——优化方法。对于本例,选择杂交种方法,它使用BackProjagation和最小二乘回归的组合来调谐FIS参数。

  • 时代- 培训时期的数量。对于此示例,请指定40时代的发展。

  • 错误宽容- 误差容差停止条件。对于此示例,请指定值0,表示当达到训练期数时,训练停止。

训练FIS,点击现在火车

神经模糊设计应用程序显示了整个训练过程中的训练错误和测试错误。

该应用程序训练FIS,并绘制训练误差(星号)和检查误差(点)为每个训练历元。

检查错误达到训练中的某个点,然后增加。这种增加发生在训练开始过度拟合训练数据的那一点发生。该应用程序选择与训练有素的ANFIS模型相关联的FIS。

验证培训FIS

培训FIS后,使用a验证模型测试或者检查与训练数据不同的数据集。对于本例,使用先前加载的检查数据。

在检查数据中测试您的FIS测试FIS部分中,选择检查数据.然后,单击现在测试

神经模糊设计应用程序显示检查输出数据和输出由ANFIS系统产生的检查输入数据

该应用程序绘制测试数据集的输出值(使用蓝色+)和培训的FIS的输出,用于相应的测试数据输入值(使用RED *)。FIS输出值与预期输出相互关联。

检查数据的重要性

重要的是要有完全代表FIS要建模的数据特征的检查数据。如果您的检查数据与训练数据有显著的不同,并且没有覆盖与训练数据相同的数据特征,那么训练结果将会很差。

例如,加载新培训并检查数据神经模糊设计师.此数据具有显着不同的培训和检查集。

  1. 在MATLAB命令行,加载培训和检查数据。

    负载fuzex2trnData.dat负载fuzex2chkData.dat

  2. 清除先前加载的训练和检查数据。在加载数据节,选择每个数据类型,单击明确的数据

  3. 加载培训数据(fuzex2trndata.)和检查数据(fuzex2chkData),正如你之前所做的那样。

神经模糊设计师应用程序显示训练和检查数据,不是很相关

除了现在选择之外,可以生成FIS结构并培训FIS60训练时期。

显示大检查错误的神经模糊设计器应用程序

在这种情况下,检查错误很大,最小在第一时代发生。由于应用程序选择与最小检查错误相关的训练的FIS参数,因此培训的FIS不充分捕获此数据集的功能。当您选择培训和检查数据时,了解数据集的功能非常重要。当您不知道数据的功能时,您可以分析检查错误图,以查看是否与训练模型充分地执行的检查数据。

在此示例中,检查错误足够大以指示您需要选择更多的培训数据或修改隶属函数选项(隶属函数和类型的数量)。否则,如果您认为培训数据充分捕获您尝试代表的功能,则可以在没有检查数据的情况下再培训系统。

要验证培训结果不佳,请根据检查数据测试培训的FIS模型。

神经模糊设计器应用程序显示检查数据的模糊系统的输出与预期输出不符。

正如预期的那样,检查数据输出值和FIS输出之间存在显着差异。

另请参阅

相关话题