小脑模型神经网络CMAC

一、简介

(1) 在对人类神经学的研究中,得知它由一些神经元覆盖组成。在这项研究的基础上,Albus J.S.于1975年根据神经生理学小脑皮层结构特点提出了一种小脑模型关联控制器,经过多年的完善和发展,形成了成熟的小脑模型神经网络理论(Cerebellar Model Articulation Controller—CMAC)。
(2) CMAC是一种查表型自适应神经网络,它可以准确地描述出非线性函数的特征,同时,具有学习功能,可依据学习结果改变表格内容,对信息可区分存储。顾名思义,它具有人类小脑一般学习的功能,在多维度空间中进行映射,解决了输入端到输出端非线性的问题。
(3) CMAC是一种局部逼近神经网络,它具有一种联想记忆的功能,它的每一个神经元的输入输出是一种线性关系,但总体上是一种表达非线性映射的表格系统。

二、结构与原理

1.结构模型

CMAC把控制器的每个输入状态作为一个状态向量,组成一个输入空间。把网络训练的权值存入存储器,并根据期望输出与实际输出地误差来调整这些权值。它实际上是一种复杂的查表系统,主要用于表达非线性的映射。结构模型如下图所示:
小脑模型神经网络CMAC_第1张图片
AC:虚拟联想空间 AP:物理存储空间

2.工作原理

(1)概念映射(U→AC)
概念映射是一种输入空间U内的映射,映射至虚拟的存储器AC。假定输入的数值向量为u,维度为n,则有:
在这里插入图片描述
对输入量进行量化,表示成[up],每一个量化后的输入状态点激活存储器AC中对应的c个单元,c可以称为CMAC网络的感知器个数。映射后的输出向量表示为:
在这里插入图片描述
输入空间中的临近两点通过映射作用激励存储器AC中部分重合的单元,这两点的距离越近,重合的部分越多,相距较远的点在AC中不会产生重合,这样就实现了网络的局域泛化。

(2)实际映射(AC→AP)
实际映射是指利用哈希编码技术,表示概念存储器AC的c个存储地址与实际存储器AP相应的c个存储地址的映射关系,在c个存储地址中存储网络训练的权值,网络输出是实际存储器AP中存储的对应c个值的累加结果。

若只考虑单输出的情况,则:
在这里插入图片描述
在上式中,有:
在这里插入图片描述
将上式代入合并得:
在这里插入图片描述
经过两次映射:相近的输入,产生相近的输出;不同的输入,产生不同的输出。

扩展:哈希编码也称为哈希存储,是一种常见的计算机存储算法,利用哈希表存储数据,实现数据的压缩存储。在CMAC神经网络中,当输入矢量维数为n,并且每个矢量的量化为q个离散点,若n,q较大,存储器AC
需要的空间将会很大。实际应用时, 网络训练只需要局部的调整网络输出层的权值,即在存储器AC中被激
励的单元非零单元是相对稀少的 ,利用哈希存储方法,可以将AC空间进行压缩,压缩后数据存储到存储器
AP中。

三、CMAC学习算法

考虑单输出系统,给定输入/输出样本对,采用有导师的学习算法,取导师信号为ud/dp,p=1,2,…,L。根据δ学习规则修正网络权值:
小脑模型神经网络CMAC_第2张图片
其中,
小脑模型神经网络CMAC_第3张图片
综上可得:
小脑模型神经网络CMAC_第4张图片
为了在CMAC中产生一个非线性映射函数,步骤为:
1)若要求CMAC产生的目标非线性函数为f*,那么对输入矢量u,y*=f*(u)就是输出矢量的期望值。
2)在输入矢量中取一点u,计算该点的函数值y=f(u)。
3)对应y*=(y1*,y2*,…,yn*)和y=(y1,y2,…,yn)中每两点,如果丨yi*-yi丨符合误差允许的要求,就停止训练,函数的各参数存储至存储器中;如果丨yi*-yi丨 4)重复以上步骤,直至各输入矢量计算的误差都小于允许的范围。

四、CMAC泛化能力

泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。 学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出。
CMAC网络中,若两个输入向量相近,则他们所触发的神经元有重叠,距离越近,重叠越多;若两个输入向量相距较远,则它们触发的神经元没有重叠。因此CMAC网络具有局部泛化能力,它的泛化能力源自于它的网络结构本身。

影响CMAC泛化精度的主要因素有:训练精度、泛化常数和样本点选择。对于一个神经网络来说,泛化能力越强,意味着经过样本点训练后,对于样本集附近的非样本点的输入,网络输出与期望输出间的误差越小。

五、CMAC优势

1)CMAC是局部逼近神经网络,只对输入空间的小部分范围进行训练,只有相应小部分的几个权值调节神经网络的输出,因此对于每次的输入输出数据需要调整的权值很少,学习速度比全局神经网络快,更能符合实时控制的要求。
2)CMAC具有较强的输入和输出的映射能力,并且可以根据不同的精度要求来逼近任意类型函数。
3)CMAC具有局部泛化能力,对具有同一规律的学习集以外的数据,经过训练,网络也能给出合适的输出。
4)CMAC采用查表寻址方式,易于计算机编程实现,网络形式简单,在线计算速度快。

你可能感兴趣的:(神经网络,CMAC,神经网络)