联系方式:860122112@qq.com
小脑神经网络
小脑神经网络(CMAC-Cerebellar Model Articulation Controller)是由Albus最初于1975年基于神经生理学提出的,它是一种基于局部逼近、简单快速的神经网络,能够学习任意多维非线性拟合。相比于BP网络等全局逼近方法,CMAC具有以下优点
-局部学习,每次修改权值少,学习速度快,适合在线学习
-具有一定的泛化能力,即相近输入产生相近输出,不同输入给出不同输出
-具有连续(模拟)输入输出能力
-采用寻址编程方式,在利用串行计算机仿真时,它将使响应速度加快
-对学习数据出现的次序不敏感
CMAC最初主要用来求解机械手的关节运动,后来被进一步应用于机械人控制、模式识别、信号处理以及自适应控制等领域
CMAC结构
CMAC最大特点是局部逼近,因此它具有特殊的结构。
如上图,假设输入是二维,即
X=(x1,x2)
,
x1,x2∈[0,5]
(即使不是也可以先标准化,
[0,5]
不是固定的,可以是其他,本文只是为了好理解而使用这个范围)。
(1)每一维的输入
xi
都具有层
m
和块
(2)输入的维度之间,相同的层所激活的块联合起来对应一个权值地址空间。如上图,当前
X=(3.5,3.3)
,
x1
在不同层激活的块是B、D、F、G,
x2
是b、d、f、g,此时所对应的权值索引是Bb、Dd、Ff、Gg,把这4个权值加起来就是输出。由此可以看出,有多少层就激活多少个权值。同时,不存在同维度块联合、不同维度不同层块联合的情况,也就是说不存在AB、AC、Ad等情况。由此算来,可能使用到的权值个数为
m⋅nbn
,
n
为输入的维度。
(4)一般CMAC网络的整体构架如下图,第一层是输入层;第二层是虚拟联想空间,即对应上图的Aa、Ab、Ba、Bb……;第三层是物理存储空间,即根据第二层给出的索引找到对应的权值;第四层即输出层。
(5)如果输入维度很大,根据
(6)权值更新公式为
wt+1=wt+α/m⋅e
α
为学习率,
m
是层的个数,
模糊小脑神经网络(FCMAC)结构
FCMAC实际上就是在每个块里面加入了一个模糊隶属度函数,例如如果使用的是高斯模糊,则是在块里加入高斯函数,如下图:
高斯函数的均值
CMAC和FCMAC相关代码
https://github.com/DajunZhou/Gauss_CMAC