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. 人工智能 人工神经网络,人工神经网络应用实例

    人工智能应用在哪些方面呢?能举几个典型的例子吗? 人工智能应用的领域非常广泛,随着人工智能的不断发展,这些都会一一实现.1.智能制造领域. 标准化工业制造中信息感知,自主控制,系统协调,个性化定制,检 ...

  2. 神经网络 深度神经网络,深度神经网络应用实例

    深度学习在现实生活中到底有什么作用?会给生活带来什么变化? 其实咱们的实际生活中已经有很多应用深度学习技术的案例了. 比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品, ...

  3. 人工神经网络应用实例,人工神经网络算法实例

    神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能.构作专家系统.制成机器人.复杂系统控制等等. 纵观当代新兴科学技 ...

  4. 一文搞定bp神经网络,bp神经网络的实现

    1.自学bp神经网络要有什么基础?? 简介:BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网 ...

  5. 人工神经网络与bp神经网络,BP神经网络算法原理

    BP神经网络原理 人工神经网络有很多模型,但是日前应用最广.基本思想最直观.最容易被理解的是多层前馈神经网络及误差逆传播学习算法(ErrorBack-Prooaeation),简称为BP网络. 在19 ...

  6. bp神经网络应用实例_人工智能BP神经网络学习神器——AISPACE

    未经许可请勿转载 更多数据分析内容参看这里 今天我们来介绍一套小工具--AISPACE,它有助于你学习BP神经网络运作的过程及原理.AISPACE涉及的一系列工具用于学习和探索人工智能的概念,它们是在 ...

  7. bp神经网络应用实例_预测方法合集——BP神经网络

    首先来说说神经网络,生物的大脑神经元,细胞,触点等组成了网络,用于产生生物的意识,帮助生物进行思考和行动,可以干很多很多事情的,虽然说现在科技迅猛进步,但是目前来讲人脑依旧是最发达的,有的这些科学家啊 ...

  8. bp神经网络应用实例_自监督图神经网络

    近年来,深度学习在视觉以及自然语言处理等领域取得了革命性的进步,但是诸如图像与自然语言之类的数据往往是高度结构与顺序化的.然而实际中大多数数据并无此特性,例如人际关系.社交网络.蛋白质分子结构等等,这 ...

  9. 人工神经网络原理及应用,深度神经网络应用实例

    神经网络请教! <人工神经网络原理及仿真实例>高隽编著,机械工程出版社. 我感觉挺好的. 关键看你用什么来实现神经网络,是matlab.vc还是vhdl. 现任安徽省第九届政协委员, 安徽 ...

  10. 模糊控制和神经网络控制,模糊神经网络应用实例

    自组织神经网络与模糊控制有什么优点 (2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用. (3)基于模型的控制算 ...

最新文章

  1. AI应用落地哪家强?CSDN AI Top 30+案例评选等你来秀!
  2. 部署vs 2008 Report View
  3. [转]RedHat Enterprise Linux 7关闭防火墙方法
  4. ASP.NET Core 中间件(Middleware)详解
  5. windows 自动copy远程服务器文件
  6. 前端学习(1521):vue-cli工具介绍
  7. Jmeter使用笔记之断言
  8. Elasticsearch--入门-_put post方式添加数据---全文检索引擎ElasticSearch工作笔记005
  9. C++ 字符串复制函数substr
  10. HDU2594 Simpsons’ Hidden Talents 前缀与后缀转化成用s1去匹配s2
  11. Visual Studio 2012下载资源 百度云
  12. html禁止查看图片,强看被屏蔽微信朋友圈
  13. 推荐 干掉垃圾流氓插件得批处理文件和注册表文件
  14. 第21章,DNS服务
  15. Android实现 刮刮乐效果
  16. 学习Oracle数据库入门到精通教程资料合集
  17. 多元函数第二:线性空间(2)子空间与生成空间
  18. 三级公立医院绩效考核操作手册
  19. VB.NET语法基础学习
  20. 2009年国际电力行业十大新闻

热门文章

  1. JVM 知识体系总结
  2. 采样频率和带宽的关系_等效时间采样示波器和实时示波器的差别?
  3. 内网端口映射工具之80端口映射和全端口映射及辅助发布网站应用
  4. 详解Xvid编码格式
  5. 2019年入职体检那些事
  6. 计算机网络系统是由计算机系统,计算机网络由哪几部分组成?
  7. 软件测试常考面试题-软件测试面试宝典(一篇足矣)
  8. 智能安防及视频监控系统
  9. DOS命令学习(从入门到精通)
  10. seo外链工具是什么?外链工具有用吗?