神经网络学习之----Hopfield神经网络(代码实现)
思路:
定义三个训练测试图片0 1 2(16*8),即三个吸引子。然后创建一个Hopfield神经网络,把训练数据输入。然后在用测试数据输入测试结果。
import numpy as np import neurolab as nl import matplotlib.pyplot as plt# 0 1 2-----------16*8 target = np.array([[0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0]])#画图函数 def visualized (data, title): fig, ax = plt.subplots()ax.imshow(data, cmap=plt.cm.gray, interpolation='nearest')ax.set_title(title)plt.show()#显示012 for i in range(len(target)):visualized(np.reshape(target[i], (16,8)), i)# In[2]:#hopfield网络的值是1和-1 target[target == 0] = -1#创建一个hopfield神经网络,吸引子为target(012) net = nl.net.newhop(target)#定义3个测试数据 test_data1 =np.asfarray([0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0])test_data2 =np.asfarray([0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0])test_data3 =np.asfarray([0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0])#显示测试数据 visualized(np.reshape(test_data1, (16,8)), "test_data1") visualized(np.reshape(test_data2, (16,8)), "test_data2") visualized(np.reshape(test_data3, (16,8)), "test_data3")# In[3]: test_data1[test_data1==0] = -1 #把测试数据输入hopfield网络,得到输出 out1 = net.sim([test_data1]) #判断测试数据的数字是多少 for i in range(len(target)):if((out1 == target[i]).all()):print("test_data is :",i) #显示输出 visualized(np.reshape(out1, (16,8)), "output1") test_data2[test_data2==0] = -1 #把测试数据输入hopfield网络,得到输出 out2 = net.sim([test_data2]) #判断测试数据的数字是多少 for i in range(len(target)):if((out2 == target[i]).all()):print("test_data is :",i) #显示输出 visualized(np.reshape(out2, (16,8)), "output2") test_data3[test_data3==0] = -1 #把测试数据输入hopfield网络,得到输出 out3 = net.sim([test_data3]) #判断测试数据的数字是多少 for i in range(len(target)):if((out3 == target[i]).all()):print("test_data is :",i) #显示输出 visualized(np.reshape(out3, (16,8)), "output3")
转载于:https://www.cnblogs.com/mengqimoli/p/11103733.html
神经网络学习之----Hopfield神经网络(代码实现)相关推荐
- 学习使用hopfield神经网络解决TSP问题(毕业设计Day01)
学习使用hopfield神经网络解决TSP问题(毕业设计Day01) 本篇文章主要是学习 <Hopfield神经网络在TSP问题中的应用_兰兆青>这篇文章,如有侵权,请联系删除. (这系列 ...
- 卷积神经网络学习三:神经网络之深度学习与tinny_cnn中的层
卷积神经网络学习三:神经网络之深度学习 一.神经网络 神经网络是具有适应性的简单单元组成的广泛并行的网络,它的组织能够模拟生物神经系统对真实世界物体作出的交互反应.在机器学习中,神经网络指" ...
- Hebb学习规则与Hopfield神经网络
前言 本文简单介绍了一下Hebb学习规则和Hopfield神经网络,并讨论了二者的特性和意义,以及它们之间的联系.最后代码实现了一个简单Hopfield网络,能够记忆并联想回忆出一张图片. Hebb学 ...
- 机器学习入门(14)— 神经网络学习整体流程、误差反向传播代码实现、误差反向传播梯度确认、误差反向传播使用示例
1. 神经网络学习整体流程 神经网络学习的步骤如下所示. 前提 神经网络中有合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为学习.神经网络的学习分为下面 4 个步骤. 步骤1(mini-ba ...
- 系统学习机器学习之神经网络(十二) --人工神经网络总结
本来这篇还缺个RBM,但RBM在DBN中使用,暂时放在深度学习那里.这里看到一篇非常好的总结,保存下来. 转自:http://blog.csdn.net/fengbingchun/article/de ...
- 人工智能之Hopfield神经网络(HNN)
感觉这位大佬说的不错,搬了过来,后面附上原文链接 神经网络在1980年代复兴归功于物理学家约翰·霍普菲尔德(Hopfield).1982年,霍普菲尔德提出了一种新的神经网络,可以解决一大类模式识别问题 ...
- 神经网络(BP神经网络、RBF网络、模拟退火算法、HOPFIELD神经网络、Botzmann机)
神经网络 学习.笔记 神经网络发展 多层前馈神经网络 RBF径向基函数网络 ART自适应谐振理论网络 SOM 自组织映射网络 级联相关网络 Elman网络循环神经网络 Botzmann机(引入较多其他 ...
- TSP问题——Hopfield神经网络
TSP问题--Hopfield神经网络 clear;clc; % hopfield神经网络 % 问题拟定为在网格上随机选取N个点作为城市,然后计算出TSP问题的最优解 %(1)初始化Hopfield神 ...
- Hopfield神经网络及其改进
离散型Hopfield神经网络 J. J. Hopfield 离散Hopfield神经网络模型 网络结构: 离散Hopfield神经网络模型输入输出关系: 网络的稳定性 稳定性定义: 若从某一时刻开始 ...
最新文章
- 【web安全】Xss Exploits and Defense翻译4
- asp建站系统源码_【服务器安全】windows系统安全注意事项
- 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)
- HTML5的设计目的是为了在移动设备上支持多媒体
- Java与Web前端发展前景及薪资对比
- Navicat 教程:排序、查找或替换记录
- GM8284DD(GM8284DR)LVDS转TTL芯片功能汇总及设计注意事项
- ajax和jquery教程pdf,ajax和jquery教程pdf
- SAXReader解析xml
- 学海无涯!java全栈工程师面试题
- 【SSDT】SSDT hook技术
- C语言求某天是一年里的第几天(详细)
- onlyoffice协同编辑(多人共享编辑)、在线文档编辑,支持word、excel
- 程序员为程序员推荐:我觉得这本书不错,分享给你
- PHP fscanf
- 经验模态分解与Python调用实例
- http://39.98.219.132 题库标准答案(题库序号:1378)之沙盘游戏
- 计算机生成全息投影代码,常见的投影控制代码 汇总 1
- 玩转json——json-->txt
- Uedit32比较2个文件的内容
热门文章
- Application ProvidedAar 完结篇
- Android Full-Disk Encryption
- Pocket Hacking: NetHunter实战指南
- Java中Json和List转换
- 手把手教你发行自己的以太坊ERC20 Token 并进行转账
- 点击左边tab右侧跟着变化_通过代码判断阿里巴巴国际站右侧P4P产品的位置
- 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
- php调用css类,php – 使用xpath选择css类
- cmd imp导入dmp文件_PLSQL Developer导入导出表数据结构
- lnmp环境搭建 php7,lnmp环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)