神经网络——Python实现BP神经网络算法(理论+例子+程序)

Python82

采用BP算法的多层感知器是至今为止应用最广泛的神经网络,在多层感知器的应用中,以图3-15所示的单隐层网络的应用最为普遍。一般习惯将单隐层前馈网称为三层感知器,所谓三层包括了输入层、隐层和输出层。

算法最终结果采用梯度下降法,具体详细过程此处就省略了!

标准BP算法在调整权值时,只按t时刻误差的梯度降方向调整,而没有考虑t时刻以前的梯度方向,从而常使训练过程发生振荡,收敛缓慢。为了提高网络的训练速度,可以在权值调整公式中增加一动量项。若用W代表某层权矩阵,X代表某层输入向量,则含有动量项的权值调整向量表达式为

可以看出,增加动量项即从前一次权值调整量中取出一部分迭加到本次权值调整量中,α称为动量系数,一般有a∈ (0,1)。动量项反映了以前积累的调整经验,对于t时刻的调整起阻尼作用。当误差曲面出现骤然起伏时,可减小振荡趋势,提高训练速度。目前,BP算法中都增加了动量项,以致于有动量项的BP算法成为一种新的标准算法。

这里,为了使用该算法,给出了一个简单的例子(一个不需要标准化或标准化的例子)。

[En]

Here, in order to use the algorithm, a brief example is given (an example that does not require normalization or standardization).

输入 X=-1:0.1:1;
输出 D=.....(具体查看代码里面的数据)

为了便于查看结果我们输出把结果绘制为图形,如下:

其中黄线和蓝线代表着训练完成后的输出与输入

```python

-- coding: utf-8 --

import math

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Python

Python爬虫基础-使用代理

为什么需要代理? 我们爬取数据的时候,开始可以正常爬取,但是过了一段时间,网站可能就会提示"您的IP访问频率过高",然后就无法正常访问网站。 这是因为网站采取了反爬策略,某个ip访问频率超过一个阈值后...
Python

Python实现协程的四种方式

协程 协程不是计算机提供的,是人为创造的上下文切换技术,也可以被称为 微线程。简而言之 其实就是在一个线程中实现代码块 相互切换执行。 我们知道正常代码是从上到下依次执行,一个方法或函数操作完毕后才会...
Python

如何让你的Python程序,定时定点地去执行任务?

我们项目中总是避免不了要使用一些定时任务,比如说最近的项目,用户点击报名考试以后需要在考试日期临近的时候推送小程序消息提醒到客户微信上,翻了翻 fastapi 中的实现,虽然方法和包也不少,但是要不就...
Python

tomcat的搭建和介绍

第19章 tomcat的搭建 19.1 tomcat 学习之前的预备知识 19.1.1 什么是 JVM 和 JDK,JRE JVM java虚拟机,实现一份代码可以在不同的平台执行,具有可移植性,jv...
Python

Spring Cloud08: Hystrix 容错机制与数据监控

一、概述 容错机制是指的是在一个分布式系统中,每个微服务之间是相互调用的,并且他们之间相互依赖,而实际的运行情况中,可能会因为各种原因导致某个微服务不可用,那么依赖于这个微服务的其他微服务就可能出现响...
Python

matplotlib绘制二项分布

matplotlib绘制二项分布 原创 googlingman2022-07-20 16:51:59博主文章分类:大数据、人工智能、图数据库 ©著作权 文章标签 python matplotlib p...
Python

Python 实现校园网自动登录

背景 我在的学校校园网登录是web式的,即随便打开一个网页就会自动跳转到登录页面,然后输入用户名密码,点登录,便可以上网了。 但这种登录方式有个缺点:登录状态不会一直保持下去。即过一段时间就会掉线,然...
Python

celery学习笔记

目录​ ​​ celery实现异步任务: 1​​ ​ ​​ celery定时任务: 2​​ ​ ​​ celery组件: 5​​ ​ ​​ 实例化celery: 5​​ ​ ​​ 发送1个celery...