CMAC网络在机器人手眼系统位置控制中的应用
发布时间:2007/4/23 0:00:00 访问次数:514
1.1 CMAC的基本结构和原理
CMAC神经网络的模型结构原理图如图1所示。它本质上可看作是一种用于表示复杂非线性函数的查表结构。
图1中,S为n维输入矢量空间;A为联想记忆空间;Y是输出响应矢量。输入空间S中的每一矢量S(…,Si,…,Sj,…)被量化后送人存锗区A,每个输入变量Si激活存储区A中C个连续存储单元。网络输出yi为这C个对应单元中值(即权wi)的累加结果,对某一输入样本,总可通过调整权值达到期望输出值。由图1可以看出,每一输入样本对应于存储区A中的C个单元,当各样本分散存储在A中时,在S中比较靠近的那些样本就会在A中出现交叠现象,其输出值也比较相近,即这C个单元遵循"输入相邻,输出相近"的原则,这种现象被称为CMAC神经网络的局部泛化特性,C为泛化参数:C越大,对样本的映射关系影响越大,泛化能力越好。
CMAC网络的学习采用误差纠正算法,计算量少敛速度快。其权值修正公式及输出可表示如下:
式中,η为学习步长,yd为期望输出,mi为输入变量S激活存储单元的首地址。修正方法可以采用每个样本修正一次的增量学习方法,也可以采用所有样本都输入一轮后再修正的批量学习方法。
1.2 多维CMAC网络的计算方法
由上述CMAC模型的算法可知,应用传统的多维CMAC概念映射算法会因输入维数的增大而使存储空间剧烈增大,从而使网络计算量增大,收敛速度变慢。这里采用一种新的多维CMAC网络的处理方法--叠加处理法。即把输入空间为n维的多维CMAC网络看作是由n个一维CMAC网络叠加而成,其输出为n个一维子网络的输出的叠加。\par
当输入空间的维数n=1时,对于每一个输入变量,都激活C个连续存储单元,即有C个对应单元的权值输出非零。它的激励情况如表l所示。
表1 激活单元地址分布sia1a2a3a4a5a6a7a8a9a1001111000000101111000002001111000030001111000400001111005000001111060000001111
经归纳,输入变量Si激活存储单元的首地址mi的计算方法如下:
mi=Si(C-Δ)+1 (4)
其中,Si为输入量的量化值;C为泛化参数;△为相邻输入激活存储单元的重叠单元数大小。若输入矢量有q个量化级,则存储区A需要q(C-△)+C个存储单元。.
当输入空间的维数n>1时;设输入空间为n维矢量Si=(Si1,Si2,…,Sin),对于每个分量Sij,都可以看作图1所示结构模型的一维输入量。由式(3)可得其对应的输出为:
其中,mj为Sij所激活存储单元的首地址。整个CMAC网络可看作由n个如图1所示的子网络组成,S对应的输出yi可看作n个子网络输出yij(j=1,2,…,n)的叠加。
若每个输入分量有q个量化级,每个子网络中两相邻样本有△个单元重叠,采用上述叠加方法共需存储单元n×[q(C-△)+C]。而对于传统的多维概念映射算法来说,n维输入空间中可能的输入状态为qn个。对于一些实际系统,qn往往远远大于n×[q(C-△)+C]。例如8维输入,量化级为200个等级,泛化参数C取为40,相邻输入激活存储单元的重叠单元数大小△为35,则用叠加处理法需要11200个存储单元,而用传统的概念映射算法需要2008个存储单元。对于传统的概念映射算法所带来的要求存储空间过大的问题,最常用的方法是把A当作一个虚拟存储区,通过散射编码映射到一个小得多的物理空间单元Ap中,从而减少存储空间。但是这种地址压缩技术随机性很强,会带来冲撞问题且不可避免。然而,对多维CMAC网络采用叠加处理法,不但可以大大减少占用的存储单元数,而且还可以避免地址压缩带来的冲撞现
1.1 CMAC的基本结构和原理
CMAC神经网络的模型结构原理图如图1所示。它本质上可看作是一种用于表示复杂非线性函数的查表结构。
图1中,S为n维输入矢量空间;A为联想记忆空间;Y是输出响应矢量。输入空间S中的每一矢量S(…,Si,…,Sj,…)被量化后送人存锗区A,每个输入变量Si激活存储区A中C个连续存储单元。网络输出yi为这C个对应单元中值(即权wi)的累加结果,对某一输入样本,总可通过调整权值达到期望输出值。由图1可以看出,每一输入样本对应于存储区A中的C个单元,当各样本分散存储在A中时,在S中比较靠近的那些样本就会在A中出现交叠现象,其输出值也比较相近,即这C个单元遵循"输入相邻,输出相近"的原则,这种现象被称为CMAC神经网络的局部泛化特性,C为泛化参数:C越大,对样本的映射关系影响越大,泛化能力越好。
CMAC网络的学习采用误差纠正算法,计算量少敛速度快。其权值修正公式及输出可表示如下:
式中,η为学习步长,yd为期望输出,mi为输入变量S激活存储单元的首地址。修正方法可以采用每个样本修正一次的增量学习方法,也可以采用所有样本都输入一轮后再修正的批量学习方法。
1.2 多维CMAC网络的计算方法
由上述CMAC模型的算法可知,应用传统的多维CMAC概念映射算法会因输入维数的增大而使存储空间剧烈增大,从而使网络计算量增大,收敛速度变慢。这里采用一种新的多维CMAC网络的处理方法--叠加处理法。即把输入空间为n维的多维CMAC网络看作是由n个一维CMAC网络叠加而成,其输出为n个一维子网络的输出的叠加。\par
当输入空间的维数n=1时,对于每一个输入变量,都激活C个连续存储单元,即有C个对应单元的权值输出非零。它的激励情况如表l所示。
表1 激活单元地址分布sia1a2a3a4a5a6a7a8a9a1001111000000101111000002001111000030001111000400001111005000001111060000001111
经归纳,输入变量Si激活存储单元的首地址mi的计算方法如下:
mi=Si(C-Δ)+1 (4)
其中,Si为输入量的量化值;C为泛化参数;△为相邻输入激活存储单元的重叠单元数大小。若输入矢量有q个量化级,则存储区A需要q(C-△)+C个存储单元。.
当输入空间的维数n>1时;设输入空间为n维矢量Si=(Si1,Si2,…,Sin),对于每个分量Sij,都可以看作图1所示结构模型的一维输入量。由式(3)可得其对应的输出为:
其中,mj为Sij所激活存储单元的首地址。整个CMAC网络可看作由n个如图1所示的子网络组成,S对应的输出yi可看作n个子网络输出yij(j=1,2,…,n)的叠加。
若每个输入分量有q个量化级,每个子网络中两相邻样本有△个单元重叠,采用上述叠加方法共需存储单元n×[q(C-△)+C]。而对于传统的多维概念映射算法来说,n维输入空间中可能的输入状态为qn个。对于一些实际系统,qn往往远远大于n×[q(C-△)+C]。例如8维输入,量化级为200个等级,泛化参数C取为40,相邻输入激活存储单元的重叠单元数大小△为35,则用叠加处理法需要11200个存储单元,而用传统的概念映射算法需要2008个存储单元。对于传统的概念映射算法所带来的要求存储空间过大的问题,最常用的方法是把A当作一个虚拟存储区,通过散射编码映射到一个小得多的物理空间单元Ap中,从而减少存储空间。但是这种地址压缩技术随机性很强,会带来冲撞问题且不可避免。然而,对多维CMAC网络采用叠加处理法,不但可以大大减少占用的存储单元数,而且还可以避免地址压缩带来的冲撞现