假设您要将模糊推理应用于您已经拥有要用于建模,模型跟踪或类似场景的输入/输出数据集合的系统。此外,假设您不必基于系统中变量的特征具有预定的模型结构。在某些建模情况下,通过查看数据来辨别成员函数参数可能是困难的或不可能的。在这些情况下,而不是任意选择与给定隶属函数相关联的参数,您可以将成员函数参数定制到输入/输出数据。使用模糊逻辑工具箱™软件,可以使用与用于培训神经网络的神经自适应学习技术相似的神经自适应学习技术来调整Sugeno模糊推理系统。
模糊逻辑工具箱软件提供了一个命令行函数(ANFIS.
)和一个互动应用程序(去噪的设计师),用以训练自适应神经模糊推理系统(ANFIS)。
使用ANFIS培训方法,您可以使用以下属性培训Sugeno系统:
单输出
加权平均去模糊化
一阶或零阶系统;也就是说,所有的输出成员函数都必须是相同的类型“线性”
或'不变'
.
没有共享的规则。不同的规则不能使用相同的输出成员函数;也就是说,输出成员函数的数量必须等于规则的数量。
每个规则的单位权重。
没有自定义成员关系函数或去模糊化方法。
在MATLAB中创建这样一个模糊系统®工作区,您可以:
当培训您的系统使用ANFIS.
函数,通过创建初始结构来指定初始结构anfisOptions
选项设置和设置初始方法
财产。如果您未指定此属性,则ANFIS.
函数使用网格划分派生FIS结构。
使用时去噪的设计师,在生成FIS.节,你可以通过以下方法创建你的FIS:
从文件加载(选择从文件加载)
从MATLAB工作区加载(选择从worksp加载)
使用网格分区(选择网格分区)
使用减法聚类(选择Sub.集群)
要使用神经自适应方法训练模糊系统,您必须使用想要建模的系统的实验或仿真来收集输入/输出训练数据。一般来说,如果训练数据能够完全代表训练后的FIS要建模的数据的特征,那么ANFIS训练就可以很好地进行。
要指定您的培训数据,您可以:
在MATLAB工作空间中创建一个数组。每一行包含一个数据点,最后一列包含输出值,其余列包含输入值。然后,可以将此数据传递给TrainingData.
输入论点ANFIS.
函数或将其加载到去噪的设计师应用程序。
从.DAT.
文件。文件的每一行包含一个数据点,值之间用空格隔开。每一行上的最终值是输出,其余值是输入。
使用时ANFIS.
函数,创建或加载输入数据并将其传递给TrainingData.
输入参数。
使用时去噪的设计师,在加载数据部分中,选择训练, 然后:
要从文件中加载数据,请选择文件.
要从MATLAB工作空间加载数据,请选择worksp.
这两个ANFIS.
和去噪的设计师允许您调整优化方法,培训时期的数量,以及训练错误目标。然而,ANFIS.
提供额外的训练选项来控制训练步长。
选项 | anfisOptions 财产 |
去噪的设计师设置 |
---|---|---|
优化方法 | OptimizationMethod |
在火车FIS.部分,指定Optim。方法. |
训练时代的数量 | EpochNumber |
在火车FIS.部分,指定时代. |
训练误差的目标 | ErrorGoal |
在火车FIS.部分,指定容忍误差. |
初始步长 | initalstepsize. |
不可用 |
步长减小率 | STAPEIDIONECREASERE. |
|
步长增加率 | STAPHIEIZIOIZINCRASEADE. |
为了使用ANFI训练模糊系统,模糊逻辑工具箱软件使用反向传播算法单独或与最小二乘算法组合使用。此培训过程调整FIS的成员函数参数,以使系统模拟输入/输出数据。
下表显示了两种方法ANFIS.
和去噪的设计师用于更新成员函数参数。
优化方法 | anfisOptions 设置 |
去噪的设计师设置 |
---|---|---|
所有参数的BackPropagation(最陡峭的方法) | OprimizationMethod =“反向传播” |
在火车FIS.节,在Optim。方法中,选择backpropa . |
由输入隶属函数相关参数的反向传播和输出隶属函数相关参数的最小二乘估计组成的混合方法 | OprimizationMethod ='Hybrid' |
在火车FIS.节,在Optim。方法中,选择混合动力 . |
训练使用ANFIS.
功能,可以调整训练步长选项。在训练过程中,软件按照以下规则更新步长:
如果误差连续减少了四次,则将步长乘以一个常数(STAPHIEIZIOIZINCRASEADE.
)大于1。
如果误差经历了一次增加和一次减少的连续两次组合,则通过将其乘以一个常数(STAPEIDIONECREASERE.
)少于一个。
理想情况下,步长在训练开始时增加,达到最大值,然后在余下的训练中减少。要实现这个步长配置文件,请调整初始步长(initalstepsize.
),逐步提高速率和阶梯大小的降低率。
训练使用ANFIS.
函数,你可以指定什么训练进度信息显示在MATLAB命令窗口。使用一个anfisOptions
选项设置,您可以设置以下显示选项。
DisplayANFISInformation
-在训练开始时显示ANFIS信息
DisplayErrorValues
- 显示每个时代的训练错误
DisplayStepSize
-显示步长每次变化。
displayfinalresults.
- 显示最终的训练错误和验证错误
去噪的设计师不提供用户指定的显示选项。相反,它以情节的形式显示训练进度。
验证数据允许您检查经过训练的模糊推理系统的泛化能力。验证数据应该充分代表FIS拟建模的数据的特征,同时也要与训练数据充分不同,以测试训练泛化。软件使用这些数据集来交叉验证模糊推理模型,方法是将验证数据应用到模型中,并查看模型对这些数据的响应情况。
模型验证在以下情况下很有用:
噪声数据——在某些情况下,数据是通过噪声测量收集的,训练数据不能代表FIS想要建模的数据的所有特征。
过拟合——由于用于ANFIS的模型结构是固定的,具有大量的参数,因此模型有过拟合它所训练的数据的趋势,特别是在使用大量的训练时点时。如果发生过拟合,经过训练的FIS可能不能很好地推广到其他独立数据集。
使用检查数据集进行模型验证背后的思想是,在训练过程的某个点之后,模型开始过拟合训练数据集。原则上,检验数据集的模型误差减小到过拟合开始的点。在此之后,检查数据的模型错误增加。过度拟合是通过对训练好的FIS进行检验,如果检验误差表明模型过拟合,则选择与检验误差最小相关的隶属函数参数来解释。
通常,训练和检查数据集是根据对目标系统的观察收集的,然后存储在单独的文件中。要指定验证数据,请使用:
ANFIS.
功能,创建一个anfisOptions
对象,并设置ValidationData
选择。
去噪的设计师,在加载数据部分中,选择检查.
检查数据的阵列和文件格式与培训数据的阵列和文件格式相同。
当您使用模糊系统使用时ANFIS.
函数,可以得到以下训练后的模糊系统:
的金融中间人
输出参数为训练误差最小的模糊系统。这个系统总是由ANFIS.
函数,对应于去噪的设计师当不指定检查数据时。
的Chkfis.
输出参数为验证误差最小的模糊系统。仅当您指定验证数据使用时返回此系统anfisOptions
所返回的FIS去噪的设计师指定检查数据时。如果检查数据用于交叉验证,则此FIS对象是您应该用于进一步计算的对象。
你可以得到与每一个训练过的模糊系统相关的误差。在每种情况下,返回的误差是均方根误差(RMSE),并作为一个向量返回。向量的每个元素是每个训练历元的RMSE误差值。
训练误差 - 训练数据输出值与模糊推理系统的输出之间的差异,用于相应的训练数据输入值。
验证错误-检查数据输出值与相应检查数据输入值的模糊推理系统输出值之间的差异。仅当您使用指定验证数据时返回此错误anfisOptions
.
在培训期间,去噪的设计师App绘制每个训练时期的训练和检查错误。不支持从应用程序导出培训和检查错误。金宝app要获得培训错误,您必须从命令行对系统进行重新培训。例如,请参见将培训错误数据保存到MATLAB工作区.
为了进一步测试您训练过的模糊系统,您可以使用一组没有用于训练或验证的额外测试数据。这样做:
在命令行中培训系统时,使用evalfis
函数。
使用时去噪的设计师,在加载数据部分中,选择测试,然后单击加载数据.来评估任何加载数据集的训练系统测试FIS.节,选择一个数据集,然后单击现在测试.
的去噪的设计师应用程序管理以不同的方式管理训练时期ANFIS.
函数。这种差异导致了训练结果的变化。
训练一个系统Nepoch在命令行时,调用ANFIS.
函数一次,将epoch的数目指定为N.然而,去噪的设计师App致电ANFIS.
函数NTimes,指定epoch的数量为2
每一次。
属性的命令行示例去噪的设计师训练算法,看到将培训错误数据保存到MATLAB工作区.
[1] Jang,J.-S.R.,“使用广义神经网络和卡尔曼滤波算法模糊建模”,第九届全国人工智能大会论文集(AAAI-91), 762-767页,1991年7月。
[2] Jang,J.-S.R.,“ANFIS:基于自适应网络的模糊推理系统”,IEEE系统、人与控制论汇刊,卷。23,3,第3页,1993年5月665-685。
[3] Jang,J.-S.R.和N. Gulely。'基于增益安排的模糊控制器设计'。在nafips / ifis / nasa '94。北美模糊信息加工社会双向会议第一次国际联合会议的诉讼程序。工业模糊控制和智能系统会议,以及美国宇航局联合技术WO101 - 5。圣安东尼奥,德克萨斯州,美国:IEEE, 1994。
[4]张建勋,孙全仔。神经模糊建模与控制。IEEE的诉讼程序83年,没有。3(1995年3月):378-406。
[5]张志成,Roger Jyh-Shing, Sun chun - tsai,和Eiji Mizutani。神经模糊和软计算:学习和机器智能的计算方法.MATLAB课程系列。上马鞍河,新泽西州:普伦蒂斯霍尔,1997。
[6]王,李新。自适应模糊系统与控制:设计与稳定性分析.恩格尔伍德悬崖,新泽西:PTR Prentice Hall, 1994。
[7] Widrow,B.和D. Stearns,自适应信号处理,Prentice Hall,1985年。