Hopfield神经网络综述Word格式.docx
- 文档编号:17912928
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:23
- 大小:272.96KB
Hopfield神经网络综述Word格式.docx
《Hopfield神经网络综述Word格式.docx》由会员分享,可在线阅读,更多相关《Hopfield神经网络综述Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
二、特性分析
1。
离散Hopfield网络(DHNN)的结构和工作方式
离散Hopfield网络是一个单层网络,有n个神经元节点,每个神经元的输出均接到其它神经元的输入.各节点没有自反馈,每个节点都附有一个阀值.每个节点都可处于一种可能的状态(1或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。
一个DHNN的网络状态是输出神经元信息的集合。
对于一个输出层是n个神经元的网络,其t时刻的状态为一个n维向量:
因为yi(t)可以取值为1或0,故n维向量Y(t)有2n种状态,即网络有2n种状态。
如图所示:
如果Hopfield网络是一个稳定网络,有3个神经元,则有8种状态。
右图可直观看出:
若在网络的输入端上加入一个输入向量,则网络的状态会产生变化,即从超立方体的一个顶点转向另一个顶点,并且最终稳定于一个特定的顶角[6]。
3神经元8种状态的立方体模型
假设一个DHNN,其状态为Y(t):
如果对于任何△t,当神经网络从t=0开始,有初始状态Y(0).经过有限时刻t,有:
Y(t+△t)=Y(t)则称网络是稳定的。
Hopfield网络稳定的充分条件:
权系数矩阵W是对称矩阵,并且对角线元素为0.无自反馈的权系数对称Hopfield网络是稳定的。
稳定的Hopfield网络
离散Hopfield网络的一个功能是可用于联想记忆,也即是联想存储器.这是人类的智能特点之一.人类的所谓“触景生情"
就是见到一些类同过去接触的景物,容易产生对过去情景的回昧和思忆。
对于Hopfield网络,用它作联想记忆时,首先通过一个学习训练过程确定网络中的权系数,使所记忆的信息在网络的n维超立方体的某一个顶角的能量最小。
当网络的权系数确定之后,只要向网络给出输入向量,这个向量可能是局部数据.即不完全或部分不正确的数据,但是网络仍然产生所记忆的信息的完整输出。
1)应用举例(数字识别)
问题
设计一个Hopfield网络,使其具有联想记忆功能,能正确识别阿拉伯数字,当数字被噪声污染后仍可以正确地识别[6]。
设计思路
假设网络由0-9共10个稳态构成,每个稳态由10*10的矩阵构成,该矩阵用于模拟阿拉伯数字点阵。
即将每个数字划分成10*10方阵,有数字的部分用1表示,空白处用-1表示。
数字表示示意图
设计步骤
(1)设计数字点阵(0—9)
(2)创建Hopfield网络
(3)设计受到噪声污染的数字点阵
(4)数字识别
(5)结果分析
(代码和仿真结果在第三仿真部分给出)
2.连续Hopfield网络(CHNN)的结构和工作方式
连续型Hopfield网络(CHNN)是由一些简单的电子线路连接起来实现的。
每个神经元均具有连续时间变化的输出值.采用具有饱和非线性的运算放大器来模拟神经元的S型单调输入-—输出关系,即
电子线路连接的连续Hopfield网络
(1)
电子线路连接的连续Hopfield网络
(2)
对于一个N节点的CHNN模型来说,其神经元状态变量的动态变化可用下述非线性微分方程组来描述
能量函数定义为
CHNN的能量函数不是物理意义上的能量函数,而是在表达形式上与物理意义的能量函数一致,表征网络状态的变化趋势。
定理:
若作用函数
是单调递增且连续的,则能量函数E是单调递减且有界的.
CHNN用非线性微分方程描述,网络的稳定性通过构造其能量函数(又称李雅谱诺夫函数),并用李雅谱诺夫第二稳定性定理进行判断。
说明[7]:
(1)李雅谱诺夫函数并不唯一;
(2)若找不到网络的李雅谱诺夫函数,不能证明网络不稳定;
(3)目前没有统一的找李雅谱诺夫函数的方法;
(4)用能量函数的方法研究网络的稳定性,在数学上欠严谨。
如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield神经网络就能够用于解决优化组合问题.
应用Hopfield神经网络来解决优化计算问题的一般步骤为:
(1)分析问题:
网络输出与问题的解相对应;
(2)构造网络能量函数:
使其最小值对应问题最佳解;
(3)设计网络结构:
由能量函数和网络稳定条件设计网络参数,得到动力学方程;
(4)硬件实现或软件模拟.
1)应用举例(TSP:
TravelingSalesmanProblem)
它假定有n个城市A,B,C,……,它们之间的相互距离分别为
。
要求寻找一条闭合路径,此路径历经每个城市且经过一次,返回起始城市,要求此路径最短。
不考虑方向性和周期性,在给定n的条件下,可能存在的闭合路径数目为1/2(n-1)!
随着n的增大,计算量急剧增大,会发生所谓的“组合爆炸”问题[7]。
城市数
路径数
3
1
12
9958×
107
4
13
2.3950×
108
5
14
3。
1135×
109
6
60
15
4.3589×
1010
7
360
16
6.5384×
1011
8
2520
17
0461×
1013
9
20160
18
1.7784×
1014
10
181440
19
2012×
1015
11
1814400
20
6。
0823×
1016
置换矩阵
A,B,C,D,E(对应各行)表示城市名称;
1,2,3,4,5(对应各列)表示路径顺序;
矩阵中“1”表示该城市在路径全程中所居顺序,其余元素均为“0”。
此处路径顺序为C→A→E→B→D→C。
特点:
(1)每行只有一个“1”,其余元素均为“0"
;
(2)每列只有一个“1”,其余元素均为“0”;
(3)全部元素中“1"
的总和为n。
2
A
B
C
D
E
思路
利用n×
n个神经元组成Hopfield神经网络,网络达到稳定状态时各个神经元之状态对应置换矩阵的各个元素值,各城市间的距离作为一组约束信息决定神经元之间的连接强度
期望网络演变的最终结果给出最优解,也即以置换矩阵表明最短距离条件下路径之顺序。
能量函数
式中,A,B,C,D是权值,
表示城市x到城市y之间的距离。
前三项是问题的约束项,最后一项是优化目标项。
改进
动态方程
具体算法步骤
(1)置初值和权值,t=0,A=1。
5,D=1.0,
(2)读入N个城市之间的距离
;
(3)神经网络输入
的初始化
;
其中,
,N为城市个数,
为(—1,+1)区间的随机值;
(4)利用动态方程计算
(5)根据一阶欧拉法计算
(6)采用sigmoid函数计算
(7)计算能量函数E;
(8)检查路径合法性,判断迭代是否结束,若未结束返回到第(4)步;
(9)输出迭代次数、最优路径、能量函数、路径长度及能量变化.
仿真中所采用的关键命令:
*sumsqr(X):
求矩阵X中各元素的平方值之和;
*sum(X)或sum(X,1)为矩阵X中各行相加,sum(X,2)为矩阵X中各列相加;
*repmat:
用于矩阵复制;
*dist(x,y):
计算两点间的距离.
(代码和仿真结果在第三仿真部分给出)
三、仿真
1.数字识别问题
数字1编码:
array_one
被噪声污染的数字1编码:
noisy_array_one
数字2编码:
array_two
被噪声污染的数字2编码:
noisy_array_two
分别将这些编码建立成matlab里面的m文件并以data0和data0_noisy,data1和data1_noisy进行命名。
以下是程序代码:
%%Hopfield神经网络的联想记忆——数字识别
%%清空环境变量
clearall
clc
%%数据导入
loaddata1array_one
loaddata2array_two
%%训练样本(目标向量)
T=[array_one;
array_two]'
%%创建网络
net=newhop(T);
%%数字1和2的带噪声数字点阵(固定法(人为添加噪声))
loaddata1_noisynoisy_array_one
loaddata2_noisynoisy_array_two
%%数字1和2的带噪声数字点阵(随机法)[4]
%noisy_array_one=array_one;
%noisy_array_two=array_two;
%fori=1:
100
%a=rand;
%ifa〈0.3加入30%的噪声
%noisy_array_one(i)=—array_one(i);
%noisy_array_two(i)=—array_two(i);
%end
%end
%%数字识别
%单步仿真——TS=1(矩阵形式)[4]
%identify_one=sim(net,10,[],noisy_array_one’);
%多步仿真——元胞数组形式
noisy_one={(noisy_array_one)'
};
identify_one=sim(net,{10,10},{},noisy_one);
identify_one{10}'
noisy_two={(noisy_array_two)'
};
identify_two=sim(net,{10,10},{},noisy_two);
identify_two{10}'
%%结果显示
Array_one=imresize(array_one,20);
subplot(3,2,1)
imshow(Array_one)
title('
标准(数字1)’)
Array_two=imresize(array_two,20);
subplot(3,2,2)
imshow(Array_two)
标准(数字2)'
)
subplot(3,2,3)
Noisy_array_one=imresize(noisy_array_one,20);
imshow(Noisy_array_one)
title(’噪声(数字1)’)
subplot(3,2,4)
Noisy_array_two=imresize(noisy_array_two,20);
imshow(Noisy_array_two)
title(’噪声(数字2)'
subplot(3,2,5)
imshow(imresize(identify_one{10}'
,20))
识别(数字1)’)
subplot(3,2,6)
imshow(imresize(identify_two{10}’,20))
title(’识别(数字2)'
%%
仿真结果:
仿真结果显示离散的Hopfield网络识别数字效果较好。
2.旅行商问题(TSP:
这里用matlab模拟仿真了10城市,先对城市坐标进行定位:
(city_location.m)
%%连续Hopfield神经网络的优化—旅行商问题优化计算
%
%%清空环境变量、定义全局变量
globalAD
%%导入城市位置
loadcity_location
%%计算相互城市间距离
distance=dist(citys,citys’);
%%初始化网络
N=size(citys,1);
A=200;
D=100;
U0=0.1;
step=0。
0001;
delta=2*rand(N,N)—1;
U=U0*log(N—1)+delta;
V=(1+tansig(U/U0))/2;
iter_num=10000;
E=zeros(1,iter_num);
%%寻优迭代[5]
fork=1:
iter_num
%动态方程计算
dU=diff_u(V,distance);
%输入神经元状态更新
U=U+dU*step;
%输出神经元状态更新
V=(1+tansig(U/U0))/2;
%能量函数计算
e=energy(V,distance);
E(k)=e;
end
%%判断路径有效性[5]
[rows,cols]=size(V);
V1=zeros(rows,cols);
[V_max,V_ind]=max(V);
forj=1:
cols
V1(V_ind(j),j)=1;
C=sum(V1,1);
R=sum(V1,2);
flag=isequal(C,ones(1,N))&isequal(R’,ones(1,N));
%%结果显示
ifflag==1
%计算初始路径长度
sort_rand=randperm(N);
citys_rand=citys(sort_rand,:
);
Length_init=dist(citys_rand(1,:
),citys_rand(end,:
)’);
fori=2:
size(citys_rand,1)
Length_init=Length_init+dist(citys_rand(i-1,:
),citys_rand(i,:
)'
end
%绘制初始路径
figure
(1)
plot([citys_rand(:
1);
citys_rand(1,1)],[citys_rand(:
,2);
citys_rand(1,2)],'
o-'
fori=1:
length(citys)
text(citys(i,1),citys(i,2),['
'
num2str(i)])
text(citys_rand(1,1),citys_rand(1,2),[’起点’])
text(citys_rand(end,1),citys_rand(end,2),[’终点’])
title([’优化前路径(长度:
’num2str(Length_init)’)’])
axis([0101])
gridon
xlabel('
城市位置横坐标’)
ylabel('
城市位置纵坐标’)
%计算最优路径长度
[V1_max,V1_ind]=max(V1);
citys_end=citys(V1_ind,:
);
Length_end=dist(citys_end(1,:
),citys_end(end,:
fori=2:
size(citys_end,1)
Length_end=Length_end+dist(citys_end(i-1,:
),citys_end(i,:
disp(’最优路径矩阵'
V1
%绘制最优路径
figure
(2)
plot([citys_end(:
citys_end(1,1)],。
..
[citys_end(:
citys_end(1,2)],'
o—’)
fori=1:
text(citys(i,1),citys(i,2),[’’num2str(i)])
text(citys_end(1,1),citys_end(1,2),['
起点'
])
text(citys_end(end,1),citys_end(end,2),[’终点’])
title(['
优化后路径(长度:
’num2str(Length_end)’)'
])
axis([0101])
城市位置横坐标'
ylabel(’城市位置纵坐标’)
%绘制能量函数变化曲线[5]
figure(3)
plot(1:
iter_num,E);
ylim([02000])
title([’能量函数变化曲线(最优能量:
'
num2str(E(end))'
)’]);
xlabel(’迭代次数'
ylabel(’能量函数’);
else
disp('
寻优路径无效'
%%
%%%%%计算能量函数
functionE=energy(V,d)
n=size(V,1);
sum_x=sumsqr(sum(V,2)—1);
sum_i=sumsqr(sum(V,1)—1);
V_temp=V(:
,2:
n);
V_temp=[V_tempV(:
1)];
sum_d=d*V_temp;
sum_d=sum(sum(V。
*sum_d));
E=0.5*(A*sum_x+A*sum_i+D*sum_d);
%%%%计算du
functiondu=diff_u(V,d)
n=size(V,1);
sum_x=repmat(sum(V,2)—1,1,n);
sum_i=repmat(sum(V,1)-1,n,1);
2:
n);
V_temp=[V_tempV(:
1)];
sum_d=d*V_temp;
du=—A*sum_x—A*sum_i-D*sum_d;
仿真结果:
仿真结果显示连续Hopfield网络在处理优化问题上具有灵活性,有很好的可移植性,而且处理效果良好。
四、Hopfield网络当前的研究成果
1.随机竞争的Hopfield(SCH)神经网络应用与解决频率分配问题(FAP)[1]
在卫星通信系统中的FAP的目的是通过重新安排的频率分配,以减少卫星通信系统之间的共信道干扰,使他们能够适应日益增长的需求。
这种混合算法涉及到一个随机的竞争Hopfield神经网络(SCHNN)负责管理问题的制约,当用最少的成本高质量的解决方案遗传算法搜索。
这种混合算法,反映了一种特殊的算法混合的思想,拥有良好的适应性不仅可以处理FAP,还应对其他问题,包括聚类,分类,最大团问题,等等。
该解决方案对神经网络和进化算法之间的混合很有帮助.
2.Hopfield神经网络的弱引力透镜测量的去卷积方法[2]
弱引力透镜具有对暗能量的状态方程严格的限制的潜力。
然而,这将只有在剪切测量方法可达到的精度所要求的水平的时候才能成为可能。
通过将总的点扩散函数(PSF)利用数据的直接去卷积,采用表示PSF作为特普利茨矩阵的线性代数形式主义,使得我们可以通过应用Hopfield神经网络迭代方案来解决卷积方程.星系在去卷积图像中的椭圆率使用图像的自相关函数的二阶矩就能够得到测量。
3.Hopfield神经网络应用于水质评价[3]
利用好Hopfield神经网络的特性,可以有效的运用与我们日常生活中的水质评价上,并且与其他方法相比更是有它的独到和优势的地方。
在简化模型中,连接权重通过奇异设计
值分解,以提高运行速度。
而且通过删除不重要的权重得到了更为简单的Hopfield网络结构。
事实证明了该简化模型用于水质评价中的效率和可行性。
五、总结
本文先对人工神经网络进行了简要的介绍,然后再引入所要综述的主题--Hopfield神经网络.对Hopfiled神经网络,先介绍了其离散结构再介绍其连续结构,各自分别讲述了相关的原
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hopfield 神经网络 综述