zoukankan      html  css  js  c++  java
  • Hopfield神经网络

    预备知识

    先来说说前馈型神经网络与反馈型神经网络的区别:

    前馈型神经网络不考虑输入和输出在时间上的滞后性,只考虑输入到输出的映射关系,反馈型神经网络则考虑了输入到输出之间的延迟

    再来说说hebb学习规则:

    两个神经元同时兴奋或抑制,那么它们的连接权值将增大,如果两神经元不是同时兴奋或抑制,那么它们的连接权值将减小

    数学表达式为:

                      Wnew=Wold+ηpTt

    如果初始权值为零矩阵,那么

                     W=ηpTt

    开始结束hopfield神经网络,主要讲离散hopfield神经网络:

    hopfield神经网络系统的稳定性主要通过能量函数进行分析,在满足一定条件下,某个特定的能量函数在网络的运行过程中不断减小,直到达到平衡状态

    hopfield神经网络的能量函数定义为:

                          E=-1/2X(t)TWX(t)+X(t)TT

    下面来证明网络的稳定性:

                        ΔE=E(t+1)-E(t)-------1

                        ΔX=X(t+1)-X(t)-----2

    将能量函数和2带入1式得:

                       ΔE=E(t+1)-E(t)

                          =-1/2X(t+1)TWX(t+1)+X(t+1)TT+1/2X(t)TWX(t)-X(t)TT

                          =-1/2(X(t)+ΔX)TW(X(t)+ΔX)+(X(t)+ΔX)TT+1/2X(t)TWX(t)-X(t)TT

                          =-ΔXT(t)[WX(t)-T]-1/2ΔXT(t)WΔX(t)

    hopfield神经网络有两种运行方式,同步运行方式和异步运行方式:

    异步运行方式:只有一个神经元的状态改变,其他神经元的状态不变

                       xi(t+1)=sgn(Uj(t)) if i=j

    同步运行方式:所有的神经元的状态都改变

                     X(t+1)=sgn(U(t)

    下面先讨论异步方式运行:

               ΔX(t)=[0,0,0,0,...,Δxi(t),0,0,0]

    所以

               ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij

    由于wij=0

               ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]

                   ==-Δxj(t) Uj(t)

    情况 a xi(t)=0 xi(t+1)=1 Δx(t)=1 所以Uj(t)>0  ΔE<0

    情况 b xi(t)=1 xi(t+1)=0 Δx(t)=-1 所以Uj(t)<0  ΔE<0

    情况 c xi(t)=xi(t+1) Δx(t)=0 所以Uj(t)=0  ΔE=0

    所以 ΔE<=0

    在异步运行情况下,网络总能收敛到平衡的状态

    同步情况下:

                   ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij

                      =-∑i=1 to nΔxi(t)Uj(t)-1/2Δxi(t)2wij

    上式前部分已经证明小于等于0,后部分只要W满足非负定矩阵,也小于等于0

    所以在同步情况下,只要矩阵满足是非负定矩阵,网络也能收敛到一个平衡状态

    Hopfield是反馈型神经网络,上一时段的输出反馈给下一时段的输入,各个神经元的输出都收其他神经元的影响,下图是它的拓扑结构:

    第j个神经元的加权和:

                              Uj(t)=∑i=1 to nWijxi(t)-θj

    故该神经元下一时刻的输出状态:

                             xj(t+1)=sgn(Uj(t))

    hopfield神经网络的权值学习采用hebb学习规则,下面开始hopfield算法的学习,步骤如下:

    1 输入需要记忆的样本P(n维正交向量)将其初始化为网络的初始状态X=P,设置迭代步数,并计算网络的权值W

               W=∑i=1 to n[PTP-I] 因为wij=0 所以减去单位矩阵

    2 进行迭代计算

                 xi(t+1)=sign((Uj(t))

    3 当达到迭代步数或网络的状态不在改变时,网络运行结束,否则继续迭代

  • 相关阅读:
    paraview将csv格式显示为云图
    Valgrind安装与使用
    vscode+WSL+Debug+Cmake+OpenGL
    MFiX中DEM颗粒信息随时间变化
    origin添加两个Y轴
    conda回滚
    onedrive同步其他任意文件夹
    MFiX-DEM中的并行碰撞搜索
    MFiX-DEM中的串行碰撞搜索
    【Go】四舍五入在go语言中为何如此困难
  • 原文地址:https://www.cnblogs.com/semen/p/6832801.html
Copyright © 2011-2022 走看看