本文介绍了反馈神经网络,包括Hopfield网络,离散Hopfield网络(DHNN),连续Hopfield网络(CHNN),双向联想记忆网络(BAM),玻尔兹曼机(BM),受限玻尔兹曼机(RBM)。其中对于BAM、BM、RBM只是对其进行了简单的介绍,并没有详细地推导算法。本文的目的旨在了解这些算法,先知道这些网络的改进和应用场景,当有业务需求的时候,再详细研究。
前馈神经网络(FeedForwardNN):是一种最简单的神经网络,采用单向多层结构各神经元分层排列,每个神经元只与前一层的神经元相连。接收前一层的输出并输出给下一层各层间没有反馈。
前馈网络包括三类节点·
反馈神经网络(FeedBackNN):又称递归网络、回归网络,是一种将输出经过一步时移再接入到输入层的神经网络系统。这类网络中,神经元可以互连,有些神经元的输出会被反馈至同层甚至前层的神经元。常见的有Hopfield神经网络、Elman神经网络、Boltzmann机等。
前馈神经网络和反馈神经网络的主要区别:
【 HopfieId网】是一种单层对称全反馈网络,1982年由加州理工学院的物理学家上J. J.HopfieId 提出,因此被称作HopfieId网。他在该反馈网络中引入了“能量函数”,即认为该网络为一种基于能量的的模型(Energy Based Model,EBM)。能量函数的提出意义重大,它保证了向局部极小的收敛,使神经网络运行稳定性的判断有了明确的可靠的依据。Hopfield网提供了模拟人类记忆的模型。1985年的时候还和D.W.Tank一块模拟电子线路实现了Hopfield网络,并用此解决了旅行商TSP问题。
网络系统具有若干个稳定状态,当网络从某一初始状态开始运动,网络系统总可以收敛于一个稳定状态。
系统稳定的平衡状态可以通过设计网络的权值而被存储到网络中。简单的来讲就是,Hopfield网络的主要功能是联想记忆。既然如此,首先应该让网络实现“记忆”,我们需要一些数据,然后训练网络,训完练完成之后,可以的得到一组可用的权值信息,形成网络的“记忆”功能。,当输入数据不完整时,根据训练得到的权重去运算,得到一个稳定的输出状态,这就是联想功能。
DHHN反馈网络实质上能存储若干个预先设置的稳定状态的网络,运行时外界提供一个输入作为初始网络状态,网络将该输入对应的输出反馈回来作为下次的输入,经过多次循环迭代后,在某些条件下,网络会最终稳定在某一个预先设定好的定点。稳态使得DHHN具有联想记忆功能。
网络稳定性:网络从初态 X ( 0 ) X(0) X(0) 开始,经过有限次递归后,其状态不再发生变化,即 X ( t + 1 ) = X ( t ) X(t+1)=X(t) X(t+1)=X(t),则称该网络是稳定的。
能量函数用来表征系统的稳定性,在满足一定的条件下,某种“能量函数”的能量在网络运行过程中不断减小,当能量最终定于一个常数时,网络趋于最终的稳定态。
E ( t ) = − 1 2 X T ( t ) W X ( t ) + X T ( t ) T E(t) = - \frac{1}{2} X^T(t)WX(t) + X^T(t)T E(t)=−21XT(t)WX(t)+XT(t)T
利用网络的能量数可实现优化求解功能。网络的能量函数在网络状态按一定规则变化时,能自动趋向能量的极小点。如果把一个待求解问题的目标函数以网络能量函数的形式表达出来,当能量函数趋于最小时,对应的网络状态就是问题的最优解。网络的初态可视为问题的初始解,而网络从初态向稳态的收敛过程便是优化计算的过程,这种寻优搜索是在网络演变过程中自动完成的。
网络达到稳定时的状态 X X X称为网络的吸引子。若把需记忆的样本信息存储于网络的不同吸引子,当输入含有部分记忆信息的样本时网络的演变过程就是便是从部分信息寻找全部信息即联想回忆的过程。
三节点的DHNN网络,其阈值、权重值都已经确定,即该网络能够存储的记忆值均以确定。按照异步工作模式,计算网络的演变过程。
经过以上分析,有3个节点的输入状态,共有八种( 2 3 2^3 23)初始状态的可能情况。
DHNN网络容量:简单理解为DHNN网络可以准确记住的模式个数。当其规模为 n n n,且权重阵的对角线元素为0,那么该网络的容量的上界为ne实际上由于多种原因,很难达到上界。
让网络准确记住一个模式比较容易,但在记忆模式个数增加时,会出现以下两种情况:
联立方程组法:通过预先设定的吸引子,列出联立方程组,求解方程组,确定每个权值和阈值的取值范围,找任一组符合上述范围要求的值即可。
得到约束方程组:
求解思路:
经过以上推导可知,满足吸引子,所以是满足条件的解。但是当节点数量增多时则不适用(指数级上升, 2 N , N 为 节 点 数 2^N,N为节点数 2N,N为节点数),因此提出了外积法。
外积法:通过Hebb规则,确定网络的权重(包括阈值)。该方法更通用,并且可以处理节点比较多的情况。
实例:
通过DHNN联想记忆功能,预先建立DHNN网络模型,将需要识别的字符(信息),通过网络的权重和阈值保存到网络中。应用于识别有噪声的字符。
以上识别效果不好,进行改进:
思路:增加像素数目,即将原来5×3的像素块,变为9×9的像素块,这样,网络“记忆”的信息就多了,识别也更准确。
CHNN&DHNN的主要区别:
应用CHNN解决实际问题,通畅由以下步骤组成:
当有3个城市:有 1 1 1 种方法
当有5个城市:有 12 12 12 种方法
当有7个城市:有 360 360 360 种方法
当有10个城市:有 181440 181440 181440 种方法
当有15个城市:有生 4.36 × 1 0 10 4.36\times10^{10} 4.36×1010 种方法
当有20个城市有: 2.43 × 1 0 19 2.43 \times 10^{19} 2.43×1019 种方法
当有31个城市有: 1.27 × 1 0 35 1.27×10^{35} 1.27×1035 种方法
1.网络设计比较简单
2.大规模并行处理,可以处理较大的数据量
3.实时性和容错性较好
4.无需对输入向量进行预处理,可直接输入,不需要编码和解码
玻尔兹曼机〈Bolt zmann Machine):也称Stochastic Hopfield Network with Hidden Units,是一种随机递归神经网络,可以看做是一种随机生成的HopfieId网络。1983年-1986年,由Hinton和Sejnowski提出,该神经网络只有0和1两种状态,其取值根据规律统计法则决定,其形式与注明的统计力学家
BoItzmann提出的分布相似,因此被称为BoItzmann机。
【模拟退火算法(SimulatedAnneal)】:所谓退火是指物体温度逐渐降低的现象,随着温度降低,物体的能量状态会低,在结晶状态时能量最低。模拟退火算法也是模拟退火的过程,但是它在搜索过程中加入了随机因素:即在达到最优值(可能是局部最优值)后会以一定的概率跳出来。如右图,当搜索到局部最优值B后,会按照某个概率继续向右移动,使得搜索有可能跳出局部最优值,而去获得下一个最优值(可能是局部最优也可能是全局最优)。
自联想的输出节点和输出节点相同,即可见节点既是输入节点又是输出节点;异联想的输出节点
和输入节点不同,即部分可见节点为输入节点,其余可见节点为输出节点。
通过有导师学习,BM可以对训练集中各模式的概率分布进行模拟,从而实现联想记忆。学习的
目的是通过调整网络权值使训练集中的模式在网络状态中以相同的概率再现。
到第一阶段:正向学习
向网络输入一对输入一输出模式,将网络的输入一输出节点限制到期望的状态,即固定住输入输出的状态,而去自由调整隐藏层,以完成输入输出之间的映射。
第二阶段:反向学习
对于异联想学习,用输入模式固定输入节点,而让输出和隐藏节点自由活动;对于自联想学习让可见节点和隐藏节点都自由活动,以体现输入一输出对应规律的模拟情况。输入一输出的对应规律表现为网络达到热平衡时,相连节点状态同时为1的概率。期望对应规律与模拟对应规律之间的差别就表现为两个学习阶段所对应的平均概率的差值,基于该值去调节权重。
受限玻尔兹曼机(Restricted Boltzmann Machine,RBM),是一种简化的特殊的玻尔兹曼机,1986年由Paul Smolensky提出。和BM比,其隐藏层中的节点之间没有互相连接,其可见节点间也没有连接,因此其计算相对更简单。RBM可以应用于降维、分类、协同过滤、特征学习和主题建模等领域,根据任务的不同,可以选择监督学习或者非监督学习等方式进行神经网络模型训练。
课程链接:https://edu.aliyun.com/course/1923