模糊树
随着模糊系统输入数量的增加,规则的数量呈指数级增长。这种庞大的规则库降低了模糊系统的计算效率。这也使模糊系统的运行更加难以理解,使规则和隶属函数参数的调优更加困难。由于许多应用程序的训练数据量有限,大型规则库降低了调优模糊系统的泛化性。
为了克服这个问题,可以将模糊推理系统(FIS)实现为较小的互连FIS对象的树,而不是单一的整体FIS对象。这些模糊树也被称为层次模糊系统因为模糊系统是按层次树形结构排列的。在树结构中,低级模糊系统的输出被用作高级模糊系统的输入。与具有相同输入数量的单一FIS相比,模糊树具有更高的计算效率和更容易理解。
层次结构的类型
您可以在应用程序中使用几种模糊树结构。下图显示了常用的模糊树结构:增量结构、聚合结构或级联结构。
增量式结构
在增量结构中,输入值被合并到多个阶段,以细化多个级别的输出值。例如,上图显示了具有模糊推理系统的三级增量模糊树 ,在那里我表中FIS的索引n水平。在增量模糊树中,我= 1,表示每一层只有一个模糊推理系统。在前面的图中,j的Th输入我第FIS在nTh级显示为输入 ,而k的输出我第FIS在nTh级显示为输入 .在图中,n= 3,j= 1或2,和k= 1。如果每个输入都有米隶属函数(mf),每个FIS都有完整的一套米2规则。因此,规则的总数为纳米2= 3 × 32= 27.
下图显示了一个整体(n= 1)四输入FIS (j= 1,2,3,4)和三个mf (米= 3)。
在该图的FIS中,规则总数为纳米4= 1 × 34= 81.因此,增量模糊树中的规则总数与输入对的数量成线性关系。
增量模糊树中不同级别的输入选择使用基于输入对最终输出值的贡献的输入排名。贡献最大的输入值通常用于最低级别,而影响最小的输入值用于最高级别。换句话说,低秩输入值依赖于高秩输入值。
在增量模糊树中,每个输入值通常都对推理过程有一定的贡献,与其他输入值之间没有显著的相关性。例如,一个模糊系统通过四个输入来预测购买汽车的可能性:颜色、车门数量、马力和自动驾驶仪。输入的是四种不同的汽车特征,它们可以独立地影响买家的决定。因此,可以利用现有数据对输入进行排序,构建模糊树,如下图所示。
举例说明如何在MATLAB中创建增量模糊树®的“创建增量FIS树”示例fistree
参考页面。
聚合结构
在聚合结构中,输入值在最低级别被合并为组,其中每个输入组被馈送到FIS中。低级模糊系统的输出使用高级模糊系统进行组合(聚合)。例如,下面展示了具有模糊推理系统的两级聚合模糊树 ,在那里我n表中FIS的索引n水平。
在这个聚集的模糊树中,我1= 1,2和我2= 1。因此,每一层包含不同数量的FIS。的j的Th输入我n图中显示FIS作为输入 ,以及k的输出我nth FIS显示为输出 .在图中,j= 1,2和k= 1。换句话说,每个FIS有两个输入和一个输出。如果每个输入都有米mf,那么每个FIS都有一套完整的米2规则。因此,三个模糊系统的规则总数为3米2= 3 × 32 = 27,这与类似配置的增量FIS相同。
在聚合模糊树中,输入值自然地组合在一起,用于特定的决策。例如,自主机器人导航任务结合了避障和目标到达子任务,实现了无碰撞导航。为了实现导航任务,模糊树可以使用四个输入:到最近障碍物的距离、最近障碍物的角度、到目标的距离和目标的角度。距离和角度是相对于机器人当前位置和前进方向测量的。在这种情况下,在最低级别,输入自然分组如下图所示:障碍物距离和障碍物角度(组1)和目标距离和目标角度(组2)。两个模糊系统分别处理单独的组输入,然后另一个模糊系统将它们的输出结合起来,为机器人产生一个无碰撞的航向。
有关演示在MATLAB中创建聚合模糊树的示例,请参阅上的示例创建聚合FIS树fistree
参考页面。
聚集结构的变化
在一种变异的聚合结构中称为平行结构[1],将最低级模糊系统的输出直接求和,得到最终的输出值。下图显示了并行模糊树的示例,其中的输出fis1
而且fis2
求和得到最终的输出。
的fistree
对象不提供求和节点Σ。因此,必须添加自定义聚合方法来评估并行模糊树。上的“创建和计算并行FIS树”示例fistree
参考页面。
级联或组合结构
级联结构,也称为组合结构,将增量结构和聚合结构结合起来构造模糊树。这种结构适用于同时包含相关和不相关输入的系统。该树将相关输入分组到聚合结构中,并将不相关输入添加到增量结构中。下图显示了级联树结构的示例,其中前四个输入在聚合结构中成对分组,第五个输入在增量结构中添加。
例如,考虑中讨论的机器人导航任务聚合结构.假设该任务包括另一个输入,即机器人之前的标题,考虑到防止机器人标题发生较大变化。您可以使用下图的增量结构添加此输入。
有关演示在MATLAB中创建聚合模糊树的示例,请参阅上的“创建级联FIS树”示例fistree
参考页面。
添加或删除FIS树输出
当你计算一个fistree
对象,它只返回开放输出的结果,这些输出不连接到模糊树中的任何FIS输入。您可以选择访问树中的其他输出。例如,在下面的聚合模糊树图中,您可能希望在对树求值时获得fis2的输出。
可以将这样的输出添加到fistree
对象。您还可以删除输出,前提是模糊树总是至少有一个输出。方法上的“更新FIS树输出”示例fistree
参考页面。
对FIS树的多个输入使用相同的值
一个fistree
对象允许对多个输入使用相同的值。例如,在下图中,input2
的fis1
而且input1
的fis2
在计算时使用相同的值。
有关如何以这种方式构造FIS树的示例,请参阅上的“对FIS树的多个输入使用相同值”示例fistree
参考页面。
更新FIS树中的模糊推理系统
对象中添加或删除单个FIS元素fistree
对象。当你这样做,软件自动更新连接
,输入
,输出
的属性fistree
对象。有关示例,请参阅上的“更新FIS树中的模糊推理系统”示例fistree
参考页面。
调整模糊的树
在模糊树中配置了内部连接之后,下一步是调优树的参数。有关示例,请参见调整燃油里程预测的FIS树.
参考文献
Siddique, Nazmul, Hojjat Adeli。计算智能:模糊逻辑,神经网络和进化计算的协同作用.牛津,英国:John Wiley & Sons Ltd, 2013。https://doi.org/10.1002/9781118534823.