📄 readme4.txt
字号:
《人工神经网络实验系统 v1.0 希塔版》
Hopfield霍普菲尔德网络
说明书
=====================================================================
零.说在前面的话
1986年美国物理学家J.J.Hopfield陆续发表几篇论文,提出了Hopfield
神经网络。他利用非线性动力学系统理论中的能量函数方法研究反馈人工神
经网络的稳定性,并利用此方法建立求解优化计算问题的系统方程式。基本
的Hopfield神经网络是一个由非线性元件构成的全连接型单层反馈系统。
网络中的每一个神经元都将自己的输出通过连接权传送给所有其它神经
元,同时又都接收所有其它神经元传递过来的信息。即:网络中的神经元t
时刻的输出状态实际上间接地与自己的t-1时刻的输出状态有关。
所以Hopfield神经网络是一个反馈型的网络。其状态变化可以用差分方
程来表征。反馈型网络的一个重要特点就是它具有稳定状态。当网络达到稳
定状态的时候,也就是它的能量函数达到最小的时候。这里的能量函数不是
物理意义上的能量函数,而是在表达形式上与物理意义上的能量概念一致,
表征网络状态的变化趋势,并可以依据Hopfield工作运行规则不断进行状态
变化,最终能够达到的某个极小值的目标函数。
网络收敛就是指能量函数达到极小值。如果把一个最优化问题的目标函
数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield
神经网络就能够用于解决优化组合问题。
下面来谈谈本实验系统。
本实验系统软件最多能模拟产生100个神经元,然后,通过离散[注1]
Hopfield网络的串行[注2]工作方式,使网络渐渐收敛,最后求出能量函数的
最小值。用户可以自由地设定神经连接上的权值,神经元上的权值,及各个
神经元上的阈值。
也就是说,通过对优化组合问题运算数据的抽象,化为Hopfield网络,
然后,可通过本系统可求出目标函数可能的最值。
另,听闻中科院已经研制出了Hopfield人工神经网络的计算机芯片。尽
管如此,笔者认为,Hopfield网络在普通计算机上软件实现与应用也是意义
重大的。
最后,希望本软件对您的科学研究工作都有所帮助!
沈琦
2001.7.20
- - - - - - - - -
[注1]
Hopfield网络模型有两种,一种为离散型,一种为连续时间的,它们的区别在
于时间上的连续或离散。
[注2]
Hopfield网络的工作方式也有两种,这种为串行,即某一时刻,只有一个神经
元在动态变化;另一种为并行,即某一时刻,所有的神经元在动态变化。
此系统使用的是串行工作方式。
=====================================================================
一.优化目标函数
- - - - - - - - -
1.Hopfield网络能量目标函数E用数学函数可表达为:
_n _n _n
E=-0.5* \ \ w[i][j]*x[i]*x[j]+ \ t[i]*x[i]
/_ /_ /_
i=1 j=1 i=1
其中: _
\ 为求和符号
/_
共有NUM个神经元
w[i][j]为NUM*NUM对称矩阵,主对角线元素为0,
它用神经元间的连接权值表示
x[n]为第n个神经元上的权值
t[n]为第n个神经元的阈值
- - - - - - - - -
2.上述Hopfield网络能量目标函数E用计算机C语言表达为:
E=0;
for (i=1;i<=NUM;i++)
for (j=1;j<=NUM;j++)
E=E+w[i][j]*x[i]*x[j];
E=E*(-0.5);
for (i=1;i<=NUM;i++)
E=E+t[i]*x[i];
求E最小值
其中:
共有NUM个神经元
w[i][j]为NUM*NUM对称矩阵,主对角线元素为0,
它用神经元间的连接权值表示
x[n]为第n个神经元上的权值
t[n]为第n个神经元的阈值
= = = = = = = = =
=================================================================
二.系统指令一览表
打help指令,将出现帮助信息。
如下表:
cls ---清除屏幕
create ---建立一个新的Hopfield网络
clearbn ---清除"大脑"中的Hopfield网络
run ---运行Hopfield网络直至目标函数收敛
list,stat ---显示Hopfield网络的参数状态
edit1 ---修改神经元的权值,即x[i]
edit2 ---修改两个神经元间的连接权值w[i][j]
edit3 ---修改第个神经元的阈值t[i]
savehop ---保存Hopfield网络至一文件(*.hop)
loadhop ---从文件中读取一个Hopfield网络
dir ---显示当前目录下所有Hopfield网络文件,*.hop
about ---显示作者信息
exit ---退出本系统
====================================================================
三.常用指令详解
1.create命令
建立一个新的Hopfield网络
+++++++++++++++++++++++++++++++++++++++++++++++
参考: _n _n _n
E=-0.5* \ \ w[i][j]*x[i]*x[j]+ \ t[i]*x[i]
/_ /_ /_
i=1 j=1 i=1
+++++++++++++++++++++++++++++++++++++++++++++++
create (回车)
Create Hopfield Network....
Input Cell Number:3 (输入神经元数)
Input Wealth of Cell No.1:
3 (输入第1个神经元的权值即 x[1])
Input Wealth of Cell No.2:
2 (输入第2个神经元的权值即 x[2])
Input Wealth of Cell No.3:
3 (输入第3个神经元的权值即 x[3])
Input Wealth Between Cell No.1 && No.2:
0.5 (输入神经元1与2的连接权值,即w[1][2])
Input Wealth Between Cell No.1 && No.3:
0.2 (输入神经元1与2的连接权值,即w[1][3])
Input Wealth Between Cell No.2 && No.3:
0.3 (输入神经元1与2的连接权值,即w[2][3])
Input the Threshold of Cell No.1:
0.8 (输入神经元1的阈值)
Input the Threshold of Cell No.2:
0.5 (输入神经元2的阈值)
Input the Threshold of Cell No.3:
0.7 (输入神经元3的阈值)
Hopfield NNs is initlized.
------------------------------------------------------------------
2.run命令
运行Hopfield网络直至目标函数收敛
run (回车)
Run Time 1. Energy: -0.569563 (运行了第1次,能量还剩-0.569563)
Run Time 2. Energy: -0.373958
Run Time 3. Energy: -0.362736
Run Time 4. Energy: -0.362418
Run Time 5. Energy: -0.362407
Run Time 6. Energy: -0.362406
Run Time 7. Energy: -0.362406
Run Time 8. Energy: -0.362406
Run Time 9. Energy: -0.362406
Run Time 10. Energy: -0.362406
Run Time 11. Energy: -0.362406 (运行了第11次,能量还剩-0.362406
-----------<Result Report>----------
Cell Wealth:
No.1: 0.6 No.2: 0.6 No.3: 0.6 (此时的x[1],x[2],x[3]的值)
(即此时神经元的权值)
Convergence Energy: -0.362406 能量函数的最终收敛值
-------------------------------------------------------------------
3.list命令或stat命令
显示Hopfield网络的参数状态
list(回车)
---Hopfield NNs status---
Cell Number: 3 神经元数量为3
Cell Wealth: 各个神经元的权值 x[i]
No.1: 0.60 No.2: 0.62 No.3: 0.58
Wealth between two Cells: 每两个神经元间的连接权值 w[i][j]
[1,1]: 0.00 [1,2]: 0.50 [1,3]: 0.20 [2,1]: 0.50 [2,2]: 0.00
[2,3]: 0.30 [3,1]: 0.20 [3,2]: 0.30 [3,3]: 0.00
Threshold of each cell: 各个神经元的阈值 t[i]
No.1: 0.00 No.2: 0.00 No.3: 0.00
-------------------------------------------------------------------
4.clearbn命令
清除"大脑"中的Hopfield网络,执行此命令后,run就无效了。
-------------------------------------------------------------------
5.savehop与loadhop命令
create好的神经网络可存成文件便于以后再次使用,用savehop存即可,
但一定要注意,文件的扩展名为.hop
=================================================================
四.应用总结
Hopfield网络可解决类似以下形式的方程
_n _n _n
E=-0.5* \ \ w[i][j]*x[i]*x[j]+ \ t[i]*x[i]
/_ /_ /_
i=1 j=1 i=1
用create命令建立Hopfield网络,
其中
共有n个神经元
w[i][j]为NUM*NUM对称矩阵,主对角线元素为0,
它用神经元间的连接权值表示
x[n]为第n个神经元上的权值
t[n]为第n个神经元的阈值
最后,使用run命令,求得E的收敛值,最所求的最值
=================================================================
五.后 记
如果把1985年霍普菲尔德(J. J. Hopfield)成功地用全互连式人工
神经网络求解推销员问题(traveling salesman problem,TSP),作为
再次掀起人工神经网络(artificial neural networks,ANN)研究高潮起
点的话,那么世界范围内的ANN热潮已经历了15年。
我现在所作的工作,一方面是学习当中实践需要,一方面也试图着将
人工神经网络的经典理论从书本化为成本,真实能看得到的东西。当然,
在此过程中,遇到的困难也是非常之巨大的。作为一名刚过大一的学生,
从事这项研究,不仅仅需要的是时间与毅力。
当然,我还要坚持下去的,第五个,第六个实验模型已经在计划中了,
敬请关注。“闻道有蚤莫,行道有难易,然能自强不息,则其至一也。”
最后,感谢您的支持!
沈琦
2001.7.20
与我的联系方式,欢迎有兴趣的朋友或对此有所研究的前辈不吝赐教
E-mail: shenqi@shenqisoft.com
我开设的<人工智能>主题的网站地址
http://www.shenqisoft.com/ai/
--------------------------------------------------------------
~~~~~~我思故我在~~~~~~我思故我在~~~~~~我思故我在~~~~~~我思故我在
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -