触控感测
RBF (Radial Basis Function)可以看作是一个高维空间中的曲面拟合(逼近)问题,学习是为了在多维空间中寻找一个能够最佳匹配训练数据的曲面,然后来一批新的数据,用刚才训练的那个曲面来处理(比如分类、回归)。RBF的本质思想是反向传播学习算法应用递归技术,这种技术在统计学中被称为随机逼近。
RBF里的basis function(径向基函数里的基函数)就是在神经网络的隐单元里提供了提供了一个函数集,该函数集在输入模式(向量)扩展至隐空间时,为其构建了一个任意的“基”。这个函数集中的函数就被称为径向基函数。
非rbf与非线性回归的区别在于:rbf是不知道数学模型的,而非线性回归则是知道数学模型的,比如知道数据服从某种函数分布,只是系数不知道而已。
基于人脸图像分块和奇异值压缩,进行RBF 神经网络和贝叶斯分类器融合的设计。将人脸图像本身的灰度分布描述为矩阵,其奇异值特征具有转置不变性、旋转不变性、位移不变性、镜像不变性等诸多重要的性质,进行各种代数和矩阵变换后提取的代数特征是人脸的表征。由于整体图像的奇异值向量反映的是图像整体的统计特征,对细节的描述还不够深入,本文模拟人类识别人脸的模式,在图像分块和加权的基础上,突出待识别人脸的骨骼特征,近似于人类在识别人脸时自动剔除同一人脸的变化部位的差异能力
径向基函数(RBF)网络是一种性能良好的前馈型三层神经网络,具有全局逼近性质和最佳逼近性能,训练方法快速易行,RBF 函数还具有局部响应的生物合理性。RBF神经网络隐含层结点使用了非线性传输函数,比单层感知器网络具有更强的分类能力。在隐含层中心确定的情况下,RBF神经网络只需对隐含层至输出层的单层权值学习修正,比多层感知器具有更快的收敛速度,这也是本文选择RBF神经网络作为分类器的原因。
在 RBF 神经网络构建和初始化采取有监督的聚类算法,在网络参数的最终调整和训练方面采取 Hybrid学习(HLA)算法。在隐层参数固定的条件下,由线性最小二乘法计算隐层和输出层之间的连接权值,由梯度下降法调整隐层神经元的中心和宽度。这种混合学习算法,能使RBF网络逼近Moody准则下的最优结构,即:在没有其它先验知识的情况下,与给定样本一致的规模最小的网络就是最好的选择。从而保证该网络具有较好的泛化能力。
贝叶斯网络是一个带有概率注释的有向无环图,图中的每一个结点均表示一个随机变量,图中两结点间若存在着一条弧,则表示这两结点相对应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的。网络中任意一个结点X 均有一个相应的条件概率表(CONditional Probability Table,CPT),用以表示结点X 在其父结点取各可能值时的条件概率。若结点X 无父结点,则X 的CPT 为其先验概率分布。贝叶斯网络的结构及各结点的CPT 定义了网络中各变量的概率分布。
奇异值分解SVD
奇异值分解非常有用,对于矩阵A(m*n),存在U(m*m),V(n*n),S(m*n),满足A = U*S*V’。U和V中分别是A的奇异向量,而S是A的奇异值。AA‘的正交单位特征向量组成U,特征值组成S’S,A‘A的正交单位特征向量组成V,特征值(与AA’相同)组成SS‘。因此,奇异值分解和特征值问题紧密联系。
奇异值分解提供了一些关于A的信息,例如非零奇异值的数目(S的阶数)和A的秩相同,一旦秩r确定,那么U的前r列构成了A的列向量空间的正交基。
对于任何一个矩阵A∈Rm×n,利用奇异值分解将其转化为对角矩阵。
设A∈Rm×n(不失一般性,设m≥n),且rank(A)=k,则存在两个酉矩阵Um×m和Un×n及广义对角阵Dm×m使下式成立:
,因此,一幅人脸图像对应于唯一的奇异值特征向量。
(1)从人脸数据库选择人脸作为识别训练集;
(2)将被选入训练集的人脸图像几何归一化处理;将被选入训练集的人脸图像灰度归一处理;
(3)将预处理过的人脸图像划分成大小为的子块;
(4)将每一幅图像变为一个列向量(先分别将每一个子块所有向量排成一列,再将所有子块按顺序排成一列);然后以子块为单位进行;
基于面部骨骼特征、眼睛的分布、鼻子的形状等结构特征,是鉴别人脸的主要依据。将每一幅人脸图像所形成的矩阵划分成…等个二维矩阵分别降维为一维列向量。求训练集中所有对应子块的平均值,
。
基于特征分块贝叶斯分类器设计
每个基于特征分块的贝叶斯分类器,利用了所对应的图像块包含的判别信息,为得到性能更好的分类器,需要将这些分类器融合给出最终的判别结果。可以有多种办法实现分类器融合,如加权求和、相乘等。本文采取加权求和的方法:
是由第b个贝叶斯分类器计算出的类条件概率密度。是第b个贝叶斯分类器对应的权值。
不同的特征块对应的贝叶斯分类器对最终判别结果贡献是不相同的,本文采取的是基于子分类器分类准确率分配权值的方法:将各子分类器重新放回其训练集,计算其在训练集上的识别率,利用这些识别率,采用下式计算第b个子分类器的权值:
图2 RBF神经网络的工作原理
RBF神经网络设计
直接利用matlab工具箱进行,这是一种较简单的设计方法,工具箱中提供了好几个函数可以利用,newrb、newrbe,newpnn,newgrnn,早一些的版本还有solverb等。这几个函数的使用以及参数说明请大家看相关资料。其中,为了看到每一步网络的性能函数变化,建议设置DF参数时设为1。这样每一步的图都可以显示出来,就对生成的网络的过程有一个清楚的认识。要查看设计好的网络的参数,中心采用net.IW{1},输出层权值采用net.LW{2},隐含层的偏置利用bet.b{1},输出层的偏置采用net.b{2}进行察看。当然,修改的时候:例如要修改输出层的偏置,那么,就是net.b{2}=??,就可以了。这种方法网络的初始中心是随机从输入的训练样本中选取的,中心的个数也是由少到多逐步增加的。建议在确定spread参数时不要设计得太小,太小可能影响对测试样本的识别。我自己做的是模式分类,但是对于曲线拟合应该也是一样的。
利用聚类算法确定中心,可以利用的聚类算法较多,最普通的就是K—均值聚类算法,还有最近邻、模糊聚类、支撑向量基等方法,这些方法都是先确定中心,然后输出层权值以及输出层的偏置再采用lms、rls算法等进行确定。在设计时,偏置可以根据自己的需要来设计,可以有也可以没有。
假定∈(1≤j≤r)为输入层神经元,为隐层第 i个神经元的中心,则第j个神经元在第i个隐层节点的输出为: , i =1,2,…,u,式中||||表示欧氏范数。当RBF选用高斯核函数时,其输出为:
式中为隐层第 i 个神经元的宽度。输出层第 k 个节点的输出值 为: ,式中为隐层节点 k 到第 j 个输出节点的连接权值。
RBF神经网络的构建和初始化
RBF神经网络隐层聚类的初始化过程如下[10]:
(1)隐层节点数u=s。假设每个类收敛于一个聚类中心,再根据情况具体调整。
(2)隐层第 k 个神经元的中心为 k 类特征矢量的均值。,k=1,2,…,u,
(3)计算从均值 到属于类k 的最远点的欧氏距离
(4)计算各个j聚类中心到k聚类中心的距离,j=1,2,…,s, j≠k
(5) 包含规则:若且,则类k包含于类中,类应被
RBF神经网络的算法
网络学习就是通过调整连接权 、隐层中心和宽度,以减小输出误差。
1、连接权值的调整
定义误差函数为:
,m为迭代次数。
实验结果及分析
利用Yale人脸库中的人脸图像数据进行实验人脸识别实验研究,将人脸图像分块加权重构的奇异值向量X1,X2,…,Xl(其l中为训练样本的数目)矩阵依次输入RBF神经网络训练,当满足误差容限或训练次数,停止训练。在测试过程中,依据竞争选择的办法做出识别判断。
本文重点研究人脸图像的32子块权值选取情况如下:
实验结果表明,基于人脸面部骨骼特征、以及眼睛分布、鼻子形状等结构特征,是鉴别人脸的主要依据。通过子块权值的合理分布,突出人脸骨骼特征,而对嘴部和皮肤折皱等表情变化部分特征给予弱化或剔除,这与人类识别人脸时的模式相近,识别效果较好。但是,子块不宜过多,否则增加RBF神经网络计算负担,识别率也会有所下降。
结论
本文提出了基于图像分块奇异值压缩,融合RBF神经网络和贝叶斯分类器的人脸识别方法,模拟人类识别人脸时剔除同一人脸变化部位的差异能力,采用不同子块单独进行人脸识别,根据RBF神经网络识别效果进行权值分配,通过实验证明,本文方法在降维和识别率方面均取得良好的效果,在正面人脸部位(尤其是下颚部)变化较大时,具有良好的识别精度和识别速度。
全部0条评论
快来发表一下你的评论吧 !