python3_实现BP神经网络 + BP神经网络应用实例
0.目录
1.BP神经网络简介
2.前期理论准备
2.算法数学原理
(一)符号说明
(二)公式推导
3.python实现(python3编程实现)
(一)sigmoid函数
(二)BP主函数实现
4.数据格式
1.BP神经网络简介
BP神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。
目录
0.目录
1.BP神经网络简介
2.前期理论准备
2.算法数学原理
(一)符号说明
(二)公式推导
3.python实现(python3编程实现)
(一)sigmoid函数
(二)BP主函数实现
4.数据格式
优点:
- 1.具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或问题的问题(参考博客:https://www.jianshu.com/p/a25788130897 或 https://www.cnblogs.com/xym4869/p/11282469.html)
- 2.从结构上讲,BP神经网络具有输入层、隐含层和输出层
- 3.从本质上讲,BP算法就是以网络误差平方目标函数、采用梯度下降法来计算目标函数的最小值。基本BP算法包括信号的前向传播和误差的反向传播两个过程。
缺点:
- 1.学习速度慢,即使是一个简单的过程,也需要几百次甚至上千次的学习才能收敛。
- 2.容易陷入局部极小值
- 3.网络层数、神经元个数的选择没有相应的理论指导
- 4.网络推广能力有限。
应用:
- 1.函数逼近
- 2.模式识别
- 3.分类
- 4.数据压缩
2.前期理论准备
网络训练的目标:找到合适的权值和阈值,使得误差E最小。
sigmoid函数:在信息科学当中,由于其单增以及其反函数单增等性质,sigmoid函数常被用作神经网络的阈值函数,将变量映射当0和1之间。(该函数的对x的求导也应该理解)
2.算法数学原理
(一)符号说明
Xi: 输入信号。
Xd: 隐层的阈值(是从求和函数中-θ中分离出的-1)。
Vih: 第h个隐层神经元所对应输入信号Xi的权值。
αh: 第h个隐层神经元的输入。
-γh=--1*γh:隐层神经元的阈值。
bh: 第h个隐层神经元的输入。
ωhj: 第j个输出层神经元所对应的隐层神经元输出bh的权值。
-θj=-1*θj: 输出层神经元的阈值(bq)
:第j个输出层神经元的输出(预测输出值,yj为真实值)
(二)公式推导
通过公式变换可得输出层权值与阈值的变化量:
同理可得隐层权值和阈值的变化量:
3.python实现(python3编程实现)
(一)sigmoid函数
def sigmoid(x):"""隐含层和输出层对应的函数法则"""return 1/(1+np.exp(-x))
(二)BP主函数实现
def BP(data_tr, data_te, maxiter=600):# --pandas是基于numpy设计的,效率略低# 为提高处理效率,转换为数组data_tr, data_te = np.array(data_tr), np.array(data_te)# --隐层输入# -1: 代表的是隐层的阈值net_in = np.array([0.0, 0, -1])w_mid = np.random.rand(3, 4) # 隐层权值阈值(-1x其中一个值:阈值)# 输出层输入# -1:代表输出层阈值out_in = np.array([0.0, 0, 0, 0, -1])w_out = np.random.rand(5) # 输出层权值阈值(-1x其中一个值:阈值)delta_w_out = np.zeros([5]) # 存放输出层权值阈值的逆向计算误差delta_w_mid = np.zeros([3, 4]) # 存放因此能权值阈值的逆向计算误差yita = 1.75 # η: 学习速率Err = np.zeros([maxiter]) # 记录总体样本每迭代一次的错误率# 1.样本总体训练的次数for it in range(maxiter):# 衡量每一个样本的误差err = np.zeros([len(data_tr)])# 2.训练集训练一遍for j in range(len(data_tr)):net_in[:2] = data_tr[j, :2] # 存储当前对象前两个属性值real = data_tr[j, 2]# 3.当前对象进行训练for i in range(4):out_in[i] = sigmoid(sum(net_in*w_mid[:, i])) # 计算输出层输入res = sigmoid(sum(out_in * w_out)) # 获得训练结果err[j] = abs(real - res)# --先调节输出层的权值与阈值delta_w_out = yita*res*(1-res)*(real-res)*out_in # 权值调整delta_w_out[4] = -yita*res*(1-res)*(real-res) # 阈值调整w_out = w_out + delta_w_out# --隐层权值和阈值的调节for i in range(4):# 权值调整delta_w_mid[:, i] = yita * out_in[i] * (1 - out_in[i]) * w_out[i] * res * (1 - res) * (real - res) * net_in# 阈值调整delta_w_mid[2, i] = -yita * out_in[i] * (1 - out_in[i]) * w_out[i] * res * (1 - res) * (real - res)w_mid = w_mid + delta_w_midErr[it] = err.mean()plt.plot(Err)plt.show()# 存储预测误差err_te = np.zeros([100])# 预测样本100个for j in range(100):net_in[:2] = data_te[j, :2] # 存储数据real = data_te[j, 2] # 真实结果# net_in和w_mid的相乘过程for i in range(4):# 输入层到隐层的传输过程out_in[i] = sigmoid(sum(net_in*w_mid[:, i]))res = sigmoid(sum(out_in*w_out)) # 网络预测结果输出err_te[j] = abs(real-res) # 预测误差print('res:', res, ' real:', real)plt.plot(err_te)plt.show()if "__main__" == __name__:# 1.读取样本data_tr = pd.read_csv("5.2 data_tr.txt")data_te = pd.read_csv("5.2 data_te.txt")BP(data_tr, data_te, maxiter=600)
4.数据格式
训练集、测试集下载链接见置顶评论:
https://download.csdn.net/download/admin_maxin/19844122
python3_实现BP神经网络 + BP神经网络应用实例相关推荐
- 人工智能 人工神经网络,人工神经网络应用实例
人工智能应用在哪些方面呢?能举几个典型的例子吗? 人工智能应用的领域非常广泛,随着人工智能的不断发展,这些都会一一实现.1.智能制造领域. 标准化工业制造中信息感知,自主控制,系统协调,个性化定制,检 ...
- 神经网络 深度神经网络,深度神经网络应用实例
深度学习在现实生活中到底有什么作用?会给生活带来什么变化? 其实咱们的实际生活中已经有很多应用深度学习技术的案例了. 比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品, ...
- 人工神经网络应用实例,人工神经网络算法实例
神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能.构作专家系统.制成机器人.复杂系统控制等等. 纵观当代新兴科学技 ...
- 一文搞定bp神经网络,bp神经网络的实现
1.自学bp神经网络要有什么基础?? 简介:BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网 ...
- 人工神经网络与bp神经网络,BP神经网络算法原理
BP神经网络原理 人工神经网络有很多模型,但是日前应用最广.基本思想最直观.最容易被理解的是多层前馈神经网络及误差逆传播学习算法(ErrorBack-Prooaeation),简称为BP网络. 在19 ...
- bp神经网络应用实例_人工智能BP神经网络学习神器——AISPACE
未经许可请勿转载 更多数据分析内容参看这里 今天我们来介绍一套小工具--AISPACE,它有助于你学习BP神经网络运作的过程及原理.AISPACE涉及的一系列工具用于学习和探索人工智能的概念,它们是在 ...
- bp神经网络应用实例_预测方法合集——BP神经网络
首先来说说神经网络,生物的大脑神经元,细胞,触点等组成了网络,用于产生生物的意识,帮助生物进行思考和行动,可以干很多很多事情的,虽然说现在科技迅猛进步,但是目前来讲人脑依旧是最发达的,有的这些科学家啊 ...
- bp神经网络应用实例_自监督图神经网络
近年来,深度学习在视觉以及自然语言处理等领域取得了革命性的进步,但是诸如图像与自然语言之类的数据往往是高度结构与顺序化的.然而实际中大多数数据并无此特性,例如人际关系.社交网络.蛋白质分子结构等等,这 ...
- 人工神经网络原理及应用,深度神经网络应用实例
神经网络请教! <人工神经网络原理及仿真实例>高隽编著,机械工程出版社. 我感觉挺好的. 关键看你用什么来实现神经网络,是matlab.vc还是vhdl. 现任安徽省第九届政协委员, 安徽 ...
- 模糊控制和神经网络控制,模糊神经网络应用实例
自组织神经网络与模糊控制有什么优点 (2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用. (3)基于模型的控制算 ...
最新文章
- AI应用落地哪家强?CSDN AI Top 30+案例评选等你来秀!
- 部署vs 2008 Report View
- [转]RedHat Enterprise Linux 7关闭防火墙方法
- ASP.NET Core 中间件(Middleware)详解
- windows 自动copy远程服务器文件
- 前端学习(1521):vue-cli工具介绍
- Jmeter使用笔记之断言
- Elasticsearch--入门-_put post方式添加数据---全文检索引擎ElasticSearch工作笔记005
- C++ 字符串复制函数substr
- HDU2594 Simpsons’ Hidden Talents 前缀与后缀转化成用s1去匹配s2
- Visual Studio 2012下载资源 百度云
- html禁止查看图片,强看被屏蔽微信朋友圈
- 推荐 干掉垃圾流氓插件得批处理文件和注册表文件
- 第21章,DNS服务
- Android实现 刮刮乐效果
- 学习Oracle数据库入门到精通教程资料合集
- 多元函数第二:线性空间(2)子空间与生成空间
- 三级公立医院绩效考核操作手册
- VB.NET语法基础学习
- 2009年国际电力行业十大新闻