MATLAB神经网络编程(十)——Hopfield网络结构与应用

本文是《MATLAB神经网络编程》读书笔记,重点介绍了Hopfield网络的结构、Hebb学习规则、联想记忆功能及在模式识别中的应用。通过多个示例展示了Hopfield网络如何在不同场景下收敛到稳定状态。
摘要由CSDN通过智能技术生成

《MATLAB神经网络编程》 化学工业出版社 读书笔记
第六章反馈型神经网络 6.1 Hopfield网络

本文是《MATLAB神经网络编程》书籍的阅读笔记,其中涉及的源码、公式、原理都来自此书,若有不理解之处请参阅原书



6.1.4 Hopfield网络结构

在MATLAB神经网络工具箱中,Hopfield网络为单层网络模型,其结构如下图:

19

输入p是Hopfield网络的初始条件,其隐层神经元为饱和线性传递函数satlins,如下图:
20

6.1.5 Hopfield网络模型学习过程

网络的学习过程实际上就是权值调整过程,Hopfield网络的学习目的就是调整连接权值,以使得网络的稳定平衡状态就是所要求的状态。
Hopfield网络常常采用的学习算法是Hebb学习规则,即权值调整规则为:若第i和第j个神经元同时处于兴奋状态,那么他们之间的连接应该增强,权值应该增大。如下所示:

22

newhop函数是设计Hopfield网络的一种方法。给出一系列平衡期望值矩阵T,newhop函数的输出是反馈网络的权值和阈值,之前需要保证网络对应期望值向量具有稳定的平衡点,但是通常会存在一些伪平衡点,设计方法是使伪平衡点数量越少越好。

newhop( )
功能 生成一个Hopfield回归网络。
格式 net = newhop(T)
说明 net为生成的神经网络,具有在T中的向量上稳定的点;T是具有Q个目标向量的R*Q矩阵(元素必须为-1或1)。Hopfield神经网络经常被应用于模式的联想记忆中。Hopfield神经网络仅有一层,其激活函数用satlins( )函数,层中的神经元有来自它自身的连接权和阈值。
注意:T是R*Q矩阵,表明生成的Hopfield网络有Q个稳定点,即T的列向量表示的点就是稳定点。关于这一点的具体含义可以参下面的例子。

6.1.6 几个重要的结论

1,联想记忆功能:由于网络可以收敛于稳定状态,因此可以用于联想记忆。若将稳态视为一个记忆,则由初始状态向稳态收敛的过程就是寻找记忆的过程,初始状态可认为是给定的部分信息,收敛过程可以认为是从部分信息找到了全部信息,则实现了联想记忆功能。(联想记忆是Hopfield及其重要的特征)
2,优化计算:若将稳态视为某一优化问题目标函数的极小点,则由初始状态向稳态收敛的过程就是优化计算过程。
3,网络渐进稳定的前提是Wij=Wji
4,网络的应用:Hopfield网络多用于在控制系统的设计中求解约束优化问题,另外在系统辨识中也有应用。

6.1.7 Hopfield网络的应用

【例6-2】设计一个三维空间中有两个稳定平衡点的网络,期望值向量为T。
分析:两个平衡点,说明矩阵T有两列,三维空间,表明每一个点需要三个分量表示,所以T的每一列有三个分量;故T是3*2的矩阵。

源码:

%T是网络的稳定点,由于没有输入,所以T也是Hopfield网络的输入
T=[-1 -1 1;1 -1 1]'
%构建一个Hopfield网络
net=newhop(T);

Ai=T;
[Y,Pf,Af]=sim(net,2,[],Ai);
Y

执行结果:
23
可见网络设计确实能够做到设计点稳定。

关于sim函数的参数含义:
doc里面查找到的帮助
sim simulates neural networks.
[Y,Pf,Af,E,perf] = sim(net,P,Pi,Ai,T) takes
net
Network
P
Network inputs
Pi
Initial input delay conditions (default = zeros)
Ai
Initial layer delay conditions (default = zeros)
T
Network targets (default = zeros)
and returns
Y
Network outputs
Pf
Final input delay conditions
Af
Final layer delay conditions
E
Network errors
perf
Network performance

Each matrix argument is found by storing the elements of
the corresponding cell array argument into a single matrix:
P - (sum of Ri)xQ matrix
Pi - (sum of Ri)x(ID*Q) matrix.
Ai - (sum of Si)x(LD*Q) matrix.
T - (sum of Vi)xQ matrix
Y - (sum of Ui)xQ matrix.
Xf - (sum of Ri)x(ID*Q) matrix.
Af - (sum of Si)x(LD*Q) matrix.
E - (sum of Vi)xQ matrix

[Y,Pf,Af] = SIM(net,{Q TS},Pi,Ai) is used for networks
which do not have an input, such as Hopfield networks
when cell array notation is used.

下面输入不同于设计点的其他初始值再来检验一下:

%下面输入不同于设计点的其他初始值再来检验一下
Ai={[-0.9;-0.8;0.7]};
[Y,Pf,Af]=sim(net,{
   
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值