zoukankan      html  css  js  c++  java
  • 五.反馈(Hopfield)神经网络

      前馈网络一般指前馈神经网络或前馈型神经网络。它是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,数据正想流动,输出仅由当前的输入和网络权值决定,各层间没有反馈。包括:单层感知器,线性神经网络,BP神经网络、RBF神经网络等。

      递归神经网络(RNN)是两种人工神经网络的总称。一种是时间递归神经网络(recurrent neural network),又名循环神经网络,包括RNN、LSTM、GRU等;另一种是结构递归神经网络(recursive neural network)。

      反馈网络(Recurrent Network),又称自联想记忆网络,输出不仅与当前输入和网络权值有关,还和网络之前输入有关。其目的是为了设计一个网络,储存一组平衡点,使得当给网络一组初始值时,网络通过自行运行而最终收敛到这个设计的平衡点上。包括Hopfield,Elman,CG,BSB,CHNN、DHNN等。

    反馈网络具有很强的联想记忆和优化计算能力,最重要研究是反馈网络的稳定性(即其吸引子)

    离散Hopfield神经网络

    Hopfield神经网络是一种单层反馈,循环的从输入到输出有反馈的联想记忆网络。离散型为DHNN(Discrete Hopfield Neural Network)和连续型CHNN(Continues Hopfield Neural Network)。 

    Hopfield最早提出的网络是二值神经网络,各神经元的激励函数为阶跃函数或双极值函数,神经元的输入、输出只取{0,1}或者{ -1,1},所以也称为离散型Hopfield神经网络DHNN(Discrete Hopfiled Neural Network)。在DHNN中,所采用的神经元是二值神经元;因此,所输出的离散值1和0或者1和-1分别表示神经元处于激活状态和抑制状态。

    离散Hopfield神经网络DHNN是一个单层网络,有n个神经元节点,每个神经元的输出均接到其它神经元的输入。各节点没有自反馈。每个节点都可处于一种可能的状态(1或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。

    对于中间层,任意两个神经元链接权值为Wij,Wij=Wji,神经元的连接是对称的,。如果Wii等于0,即神经元自生无连接,则称为无自反馈的Hopfield网络,如果不为0,则为有自反馈的Hopfield网络,但是出于稳定性考虑,应避免使用具有自反馈的网络,在这里,第一层Xi仅仅作为输入,没有实际功能。第三层为输出神经元,其功能是使用阈值函数对计算结果进行二值化。

    仅考虑中间神经元节点发现,每个神经元输出将成为其他神经元输入,每个神经元输入又都来自其他神经元。神经元输出数据经过其他神经元之后又反馈给自己。

     

    Hopfield网络的稳定性

    Hopfield网络按照神经动力学方式运行,对于给定的初始状态按照能量减小的方式演化,最终达到稳定状态。

    • DHNN网实质上是一个离散的非线性动力学系统。网络从初态X(0)开始,若能经有限次递归后,其状态不再发生变化,即X(t+1)=X(t),则称该网络是稳定的。

    • 如果网络是稳定的,它可以从任一初态收敛到一个稳态:

    • 若网络是不稳定的,由于DHNN网每个节点的状态只有1和-1两种情况,网络不可能出现无限发散的情况,而只可能出现限幅的自持振荡,这种网络称为有限环网络。
    • 在有限环网络中,系统在确定的几个状态之间循环往复,系统也可能不稳定收敛于一个确定的状态,而是在无限多个状态之间变化,但是轨迹并不发散到无穷远,这种现象叫做混沌。

     

    网络的状态 :

    DHNN网中的每个神经元都有相同的功能,其输出称为状态,用 xj 表示。所有神经元状态的集合就构成反馈网络的状态
    反馈网络的输入就是网络的状态初始值,表示为 X(0)=[x1(0),x2(0),…,xn(0)]T
    反馈网络在外界输入激发下,从初始状态进入动态演变过程,变化规律为
    xj=f(net(j))
    DHNN网的转移函数常采用符号函数 :

    净输入为:

    网络计算的过程就是初始输入向量经过逐次迭代向吸引子演化的过程,演化的规则是向能量函数减小的方向演化,指导最终达到稳定状态。能量函数的定义为(为什么这样定义呢):

     

    吸引子,吸引域与能量函数

    吸引子:网络达到稳定时的状态X,称为网络的 吸引子。

    吸引域:能够最终演化为该吸引子的初始状态集合称为该吸引子的吸引域。

    若网络的状态X 满足 
    X=f(WX-T) 
    则称X为网络的吸引子。

    对于DHNN 网,已被证明:

    若按异步方式调整网络状态,且连接权矩阵W 为对称阵,则对于任意初态,网络都最终收敛到一个吸引子。
    若按照同步方式调整网络,且链接权矩阵为非负定对称矩阵,则对于任意状态,网络最终都收敛到一个吸引子。

    DHNN有两种向吸引子演化的工作方式:

    1)串行(异步)方式:在时刻t时,只有某一个神经元j的状态发生变化(即一次只修改这一个神经元),而其他n-1个神经元的状态不变,称为串行工作方式。

     

     若按照同步方式调整网络,且链接权矩阵为非负定对称矩阵,则对于任意状态,网络最终都收敛到一个吸引子的证明:

    2)并行(同步)方式:在任一时刻t,所有的神经元的状态都产生了变化,称为并行工作方式。

     

     设计离散Hopfield网络

    Hopfield网络可以用于联想记忆,因此又称为联想记忆网络,与人脑类似,该网络实现联想记忆需要两个阶段:

    1. 记忆阶段:外界输入数据,使得系统自动调整网络的权值,最终用合适的权值使得系统有若干个稳定状态(即吸引子)。其吸引域半径定义为吸引子所能吸引的状态的最大距离,吸引域越半径越大,说明联想能力越强,联想记忆网络的记忆容量为吸引子的数量。
    2. 联想阶段:对于给定的输入模式,系统经过一定的演化,最终稳定收敛于某个吸引子。

    假设待识别的数据为向量U=[u1,u2,.....uN],则系统将其设为初始状态,即Y=U。

    网络中神经元个数与输入向量长度相同,初始化完成后,根据上面的式子反复迭代,直到神经元的状态不改变为止,此时输出的西营子就是 对应于输入Y的联想返回结果。

    完成联想记忆的关键在于用恰当的学习算法得到网络权值。常见以下学习算法:

    • 外积法
    • 投影学习法
    • 伪逆法
    • 特征结构法

     K:需要记忆的K个吸引子

    N:输入向量的维度,神经元的个数,吸引子的维度。

    另外离散Hopfield网络中存在伪吸引子,伪吸引子也是稳定的状态,但它不是设计者所需要的,减小伪状态是改进离散Hopfield网络的一个方向。

    由于网络中各节点的状态只能取1 或 –1 ,能量函数E(t)
    作为网络状态的函数是有下界的,因此网络能量函数最终将收敛于一个常数,此时ΔE(t)=0
    综上所述,当网络工作方式和权矩阵均满足条件时,网络最终将收敛到一个吸引子。

    以上分析表明,在网络从初态向稳态演变的过程中,网络的能量始终向减小的方向演变,当能量最终稳定于一个常数时,该常数对应于网络能量的极小状态,称该极小状态为网络的能量井,能量井对应于网络的吸引子。

    实例:


    网络的权值设计

    ⑴为保证异步方式工作时网络收敛,W应为对称阵;

    ⑵为保证同步方式工作时网络收敛,W应为非负定对称阵;

    ⑶保证给定样本是网络的吸引子,并且要有一定的吸引域。

  • 相关阅读:
    重构的信号
    枚举类返回Map键值对,绑定到下拉框
    js onclick函数中传字符串参数的问题
    python opencv3 矩形 圆形边框
    python opencv3 轮廓检测
    python opencv3 滤波器 卷积核
    python opencv3 窗口显示摄像头的帧
    python opencv3 显示一张图片
    python opencv3 获取摄像头视频
    python opencv3 视频文件的读写
  • 原文地址:https://www.cnblogs.com/pythonlearing/p/9966467.html
Copyright © 2011-2022 走看看