神经网络中BP算法的原理与用Python实现源码

本文详细介绍了神经网络中的反向传播(BP)算法,包括梯度下降和链式求导法则的基本概念。通过一个具体例子,展示了如何运用BP算法修正权重,使预测值逐渐逼近真实值。同时,提供了BP算法的Python实现代码,并讨论了BP神经网络的优缺点。

(1)什么是梯度下降和链式求导法则

1.梯度下降

假设我们有一个函数J(w),如下图所示。


现在,我们要求当w等于什么的时候,J(w)能够取到最小值。从图中我们知道最小值在初始位置的左边,也就意味着如果想要使J(w)最小,w的值需要减小。而初始位置的切线斜率a>0(也是该位置对应的导数大于0),w=w-eta*a(eta是学习率)就能让w的值减小,循环求导更新w直到J(w)取到最小值。如果函数J(w)包含多个变量,那么就要分别对不同的变量求偏导来更新不同变量的值。(这里的梯度下降没有详细解释,需要深入理解的同学自行查阅资料)

2.链式求导法则


举个例子:
我们经常用到的激活函数是sigmoid函数,那我们就拿这个函数来求导数。

(2)BP算法的详细介绍

参见《机器学习》周志华著,课本上的P101页-P104页,讲的很详细,仔细看看,公式推导一下,理解的很清楚。

(3)用一个例子全面理解BP算法

为了方便起见,这里定义了三层网络,输入层(第0层),隐藏层(第1层),输出层(第二层)。并且每个结点没有偏置(有偏置原理完全一样),激活函数为sigmod函数(不同的激活函数,求导不同),符号和网络结构说明如下:
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值