bp算法

1.Bp算法:
原名是backpropogation,分为正向传递数据,反向进行数据的更新,主要是去进行一些数据传递。一般分为3种层次,有输入层(input layer),隐藏层(hidden layer),输出层(output layer)。其中输入层,输出层一般只有1层,而隐藏层取决于具体实例的学习进程,可以设置多层次。
在这里插入图片描述

附录:
1.1 layer1:输入层,有3个输入
1.2 layer2:隐藏层,进行数据的传递
1.3 layer3:输出层,进行数据的输出
w:为传递数据时的权重
b:为传递数据时的偏值
f:为激活函数(因为最后的输出是通过一个非线性的函数进行输出的),我们一般使用的是两种函数,一种是sigmoid函数,还有tanh函数
sigmoid函数:
在这里插入图片描述
在这里插入图片描述

同时我们也可以了解一下sigmoid函数求导之后的值为:
F‘(X)=F(X)+(1-F(X))(对后面误差反向传播有帮助)

2.Bp算法的正向数据传播:
1.1传播的方式:
与线性代数上的矩阵类似,通过矩阵的乘法来进行每一轮的数据传播,前一层的输出做为下一层的输入来依次传播
在这里插入图片描述

其中由w组成的是一个矩阵,它是由权重与前一层的输出的乘积(举证相乘)再加上他们的偏值,得出Z,然后通过非线性函数的转化f(这里为sigmoid函数作为激活函数),才能得到下一层的输出a(同时组成a的也是一个矩阵)
在这里插入图片描述

(像上面这样)
向上面这些w,b会在python中的numpy库中通过random函数随机生成,为此正向传播就完成了
3.Bp算法的核心:反向传播数据:
所谓反向传播其实可以理解为机器在学习的过程,通过不断的权值,偏值的更新对算法进行训练,使得他们的数据更为精确,从而达到可以预测的效果。同时这样一个点也是机器学习最为基础的算法。
在反向传递数据之前,我想提的是如何进行偏导,以及张量求导和链式求导法则,现在我简单说一下:
A.偏导的求解:
所谓偏导,其实可以和原函数求导相关联的,只不过求导的对象可能会发生改变,以往我们的对象为一元一次的函数求导,现在可能是微积分求导或者对矩阵求导等等。抓住核心对谁求偏导谁才是真正的变量。
B.张量求导:
https://blog.csdn.net/pku_zzy/article/details/88058838
(这是博客上的一文,有参考价值,但是核心还是的抓住“YX拉伸术”对张量求导可谓是通用的法则)
C.链式求导:
所谓的链式求导其实就是复合函数求导一样的性质,可以结合微分来考虑,其原理是依据导数具有商的性质。对一些较难转化的量变为通过依靠某些中间变量来进行求解。
接下来进行反向传播数据,从输出层开始,首先算出输出层的误差代价。

在这里插入图片描述
在这里插入图片描述

对于从输出层展开到隐藏层:
在这里插入图片描述

注意:
1.其实我们可以从输出层出发来测算出他们之间的相互联系,误差的反向传播其实是一个不断累计求和的过程,他是所有的误差返回值求和再平均取值的一个关系。
2.通过运用链式求导来解决一些张量求导是很有帮助的,就像再E对w求导时不方便计算,我们可以借助a,Z等数据进行求导的化简,最后在进行一个规律的寻找,找出对于返回指向同一个数据的E值时所具有的一些特性,从而方便后面的隐层求导找出规律来
3.所有的计算可以把矩阵类比成一个数的计算,从而更方便我们去理解Bp的原理

对于隐藏层的更新权重:
在这里插入图片描述
在这里插入图片描述

在到最后的输出层和隐藏层偏值的更新:

在这里插入图片描述

以下是自己的详细推导过程:
在这里插入图片描述
在这里插入图片描述

(字迹有点丑,别介意)

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BP算法,即反向传播算法(Back Propagation),是一种常用的神经网络训练算法。它是一种通过不断地调整权重来逐步改善网络性能的算法BP算法的基本思想是利用误差反向传播的方式来更新神经网络的权重。具体来说,首先将样本输入到神经网络中,通过前向传播计算得到神经网络的输出结果。然后,计算预测值与真实值之间的误差,并根据误差大小来调整网络权重。最后,将误差从输出层反向传播到隐藏层和输入层,再次通过反向传播来调整权重。通过不断迭代这个过程,可以逐步提高网络的性能。 BP算法的核心在于误差的反向传播,即通过偏导数链式法则来计算每个权重的误差贡献,并根据误差贡献的大小来调整权重。具体来说,对于每个权重,通过计算输出层误差对该权重的偏导数,再乘以相应的学习率,即可得到该权重的调整量。然后经过一定的学习率更新权重,并进入下一轮迭代。 BP算法的优点是可以训练多层的神经网络,具有较好的泛化能力。同时,BP算法在计算上相对高效,能够通过梯度下降迭代法来优化权重的更新。然而,BP算法也存在一些缺点。由于误差反向传播的过程中可能产生梯度消失或梯度爆炸的问题,导致网络训练困难或不稳定。另外,BP算法不保证能找到全局最优解,可能会陷入局部最优解。 总结来说,BP算法是一种通过不断地调整神经网络权重来提高网络性能的算法。它利用误差反向传播的方式来计算每个权重的调整量,并通过梯度下降迭代法来更新权重。尽管BP算法存在一些缺点,但它仍然是目前应用最广泛的神经网络训练算法之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值