反向传播算法(另梯度下降算法)笔记

定义

反向传播算法的定义(转自维基百科):
反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。
该方法对网络中所有权重计算损失函数的梯度。 这个梯度会反馈给最优化方法,用来更新权值以最小化损失函(误差的反向传播)

算法推导

“正向传播”求损失,“反向传播”回传误差
神经网络每层的每个神经元都可以根据误差信号修正每层的权重

一个具体的前向传播和反向传播算法的例子

BP算法,也叫δ \deltaδ算法,下面以3层的感知机为例
在这里插入图片描述
上图的前向传播(网络输出计算)过程如下:
在这里插入图片描述

(此处为网络的整个误差的计算,误差E计算方法为mse)
在这里插入图片描述

mse (均方误差)

反映估计量与被估计量之间差异程度的一种度量。
设t是根据子样确定的总体参数θ的一个估计量,(θ-t)^2的数学期望,称为估计量t的均方误差。它等于 σ ^ 2+b ^ 2,其中 σ ^2与b分别是t的方差与偏倚
在这里插入图片描述

另两个问题

1.误差E有了,怎么调整权重让误差不断减小?
2.E是权重w的函数,何如找到使得函数值最小的w?

上面问题的方法是梯度下降算法
在这里插入图片描述

梯度下降算法

梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。

对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快

梯度

梯度实际上就是多变量微分的一般化
分别对每个变量进行微分,然后用逗号分割开,梯度是用<>包括起来,说明梯度其实一个向量

  • 在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  • 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向

数学解释

给出数学公式:
在这里插入图片描述

α在梯度下降算法中被称作为学习率或者步长
α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点

梯度要乘以一个负号

梯度前加一个负号,就意味着朝着梯度相反的方向前进。梯度的方向实际就是函数在此点上升最快的方向,而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号;那么如果时上坡,也就是梯度上升算法,就不需要添加负号了

单变量函数的梯度下降

在这里插入图片描述
在这里插入图片描述
经过四次的运算,基本就抵达了函数的最低点

多变量函数的梯度下降

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

反向传播具体例子

前向(前馈)运算(激活函数为sigmoid):

singmoid

Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
反向传播(求网络误差对各个权重参数的梯度):

求最简单的,求误差E对w5的导数。首先明确这是一个“链式求导”过程,要求误差E对w5的导数,需要先求误差E对out o1的导数,再求out o1对net o1的导数,最后再求net o1对w5的导数,经过这个链式法则,我们就可以求出误差E对w5的导数(偏导)
在这里插入图片描述
导数(梯度)已经计算出来后就是反向传播与参数更新过程:
在这里插入图片描述
参考博客
https://blog.csdn.net/ft_sunshine/article/details/90221691?utm_source=app&app_version=4.5.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值