[发明专利]基于贝叶斯正则化的深度学习网络图像识别方法有效
申请号: | 201410266127.8 | 申请日: | 2014-06-15 |
公开(公告)号: | CN104077595B | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 乔俊飞;潘广源;韩红桂;柴伟 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06N3/08 |
代理公司: | 北京思海天达知识产权代理有限公司11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 贝叶斯 正则 深度 学习 网络 图像 识别 方法 | ||
1.基于贝叶斯正则化的深度学习网络图像识别方法,其特征在于:
1)确定网络结构:采用含有两个隐含层的DBN网络,输入层神经元数量为一张图像含有的像素点数,设置隐含层神经元数,大于100;
改进DBN网络训练目标函数;该DBN由多个叠加的受限玻尔兹曼机,以下简称RBM,和一个输出层组成;DBN的训练过程分为两步:首先,使用无监督学习方法训练每一层受限玻尔兹曼机,且每个RBM的输入为上一个RBM的输出,即每一层RBM都要单独训练;第二,使用最后一层网络接收最后一个RBM的输出,用有监督的方式反向训练整个网络,对其进行微调;具体步骤如下:
2).首先,初始化网络权值及阈值为[0,1]区间的随机值,当信号从可视层传入隐含层,公式(1)为由已知的可视层节点得到的隐含层节点的值:
第二,将信号从隐含层反传回可视层;由于RBM是对称网络,因此可以得到由隐含层节点得到可视层节点的值,见公式(2):
式(1)为由已知的可视层节点得到的隐含层节点的值,(2)为由隐含层节点得到可视层节点的值;vi和ci分别对应每一个RBM网络中可视层第i个节点的取值和阈值,hj和bj分别对应网络中隐含层第j个节点的取值和阈值,wij为可视节点i和隐藏节点j之间的权值,表示两个神经元之间连接信号的强弱,上述值在训练之前需初始化,均取[0,1]之间的随机值,p(hj=1)表示隐含层节点hj取值为1的概率,p(vi=1)表示可视层节点vi取值为1的概率;
公式(3)为可视层的特征向量v和隐含层的特征向量h的联合概率分布,在训练过程中计算其极小值,为改进算法之前的目标函数:
式中p(v,h)为函数运算目标,表示可视层和隐含层的联合概率分布,W是可视层和隐含层之间的权值矩阵,v和h分别为网络可视层和隐含层神经元的取值向量,c和b分别为网络可视层和隐含层神经元的阈值向量,T表示转置,E(v,h)是特征向量v和h的数学期望值,其绝对值的大小代表h能够保存的v的信息的多少,∝表示正相关;
基于贝叶斯正则化的网络训练方法见公式(4)、(5)、(6),其中目标函数为:
Fw=αP+βEW(4)
式中,P为函数(3),EW为贝叶斯正则项,α和β是性能参数,α+β=1且α>β,分别用于控制训练过程中训练误差的变化和权值的变化;公式(4)中的P和EW分别见(5)和(6),
式(6)中,m为单个样本的像素数量,n为隐含层节点数量;
利用马尔科夫链蒙特卡洛方法,以下简称MCMC,使RBM的可视层和隐含层互为条件进行交替求解,当其共同趋于平稳状态时,P(v,h)达到最大,然后求得P(v,h)与初始状态的联合概率分布的斜率使用公式(7)更新权值及阈值:
式(7)为权值更新公式,其中,θ=(W,b,c),表示训练过程中的权值和阈值矩阵,τ为迭代次数,η为学习速度;
用表示第i个可视层单元在t时刻的特征向量,v0是t=0时刻的可视层特征向量即RBM的输入,h0是由v0根据公式(1)得到的隐含层特征向量,v1是在t=1时刻由h0根据公式(2)得到的可视层特征向量,以此类推,v∞和 h∞分别是t=∞即稳定状态的可视层和隐含层的特征向量,公式(7)中的斜率由公式(8)计算得出:
式中,<h0v0>为输入特征向量与其对应的隐含层特征向量的点乘的平均值,<h∞v∞>为马尔可夫链末端可视层特征向量与其对应的隐含层特征向量的乘积的平均值,已知<h∞v∞>是收敛的;由公式(8)可知,联合概率分布的斜率与中间状态无关,只与网络的初始状态和最终状态有关;于是权值及阈值更新公式为:
式中参数意义同公式(7);
根据CD快速运算准则,再运行一次公式(1),将信号重新传给隐含层,得到新的p(hj=1),利用(9)更新权值,至此第一层RBM训练完毕;将数据输出给第二个隐含层,重复上述步骤,训练第二层RBM,直至所有隐含层训练完毕;
3).有监督训练步骤:
根据已知的误差反向传播进行实现,首先,将输入向量沿输入端传至输出端;然后使用反向传播,计算网络的输出结果与带有标签的正确结果的误差,将误差从输出端反向传播至输入端,以修改DBN的参数;具体实现步骤如下;
①初始化BP网络的参数,设定步长A;
②前向传播,对于第l层的j单元节点,有
式中,首先判断神经元属于某一输出层;a为当前迭代步数,表示第l层第j个神经元的实际输出值,令dj(a)为理想输出值即正确信息,则误差
③计算权值调整大小δ,然后使用反向传播调整参数;
对于输出神经元有:
对于非输出层神经元有:
式(11)、(12)中,ej(a)为第a步中第j个神经元的误差,表示第l层第j个神经元的实际输出值,表示第a步第l+1层第j个神经元和第l层第i个神经元的权值,表示第a步第l层第j个神经元的权值调整值, 表示第a步第l+1层第i个神经元的权值调整值,∑为加和符号;
④权值调整:
η为学习速率,为第a+1迭代步数的权值,即调整后的权值, 表示第a步第l层第j个神经元和第l-1层第i个神经元的权值,表示第l层第j个神经元的权值调整值,表示第a步第l-1层第i个神经元的实际输出值;
⑤如果a=A,则训练结束,反之,a=a+1,返回步骤②。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410266127.8/1.html,转载请声明来源钻瓜专利网。