机器学习实战 梯度上升 数学推导_梯度下降法及反向传播小结

本文深入探讨了神经网络中常用的优化算法,包括梯度下降法及其变体(最速下降法、批量梯度下降、随机梯度下降)和牛顿法。详细介绍了每种方法的迭代公式、特点以及在实际应用中的优缺点。在神经网络中,权重和偏置的更新公式以及反向传播过程中的梯度计算也被阐述。此外,还提到了训练过程中的超参数如batch_size、epoch和iteration的含义以及迭代终止条件。
摘要由CSDN通过智能技术生成

d2dc044f55346a48ebb280ad4ea2936a.png

摘要

总结一些神经网络常用的基础的知识,本文先从梯度下降法开始。会从浅入深,从纯数学推导到神经网络中的梯度下降,供参考。

一、手动推导梯度下降法迭代公式:

我们先从纯数学公式中,手动推导一下梯度下降法的迭代公式。

(一)梯度下降法:

每一次是沿着梯度方向(垂直方向)接近最优点——锯齿现象

1c3b2bcc7bd5c1267f2b12e9b69f3d6f.png

(由

得到
,这里
是函数
在点
处的一阶导数,由于高维涉及到矩阵运算,默认都是列向量,所以要加上转置变成行向量方便矩阵相乘。)

1、这也就得到了

在点
处的一阶泰勒展开公式:

2、那么现在要做的就是从点

开始,通过对自变量
不断的迭代,找到使得
达到最小的
并且下降速度最快。现在
是初始条件给的已知值,已经固定,要减小
则使得
最小即可。

3、由两个向量的内积

得,当
夹角为180°时,两个向量的内积最小值
,此时
(
是一个大于0的系数)。所以,当
时,
最小,此时下降最快。

由此,我们得到了梯度下降法的迭代公式

,也可以写成

补充:

1、要区分梯度下降法和最速下降法的:

梯度下降法是沿着梯度方向,以一定的步长

迭代下降,进而达到最小值;

而最速下降法是在梯度下降法的基础上,根据已知的

形式和点
,在进行求导,得到每一步的最优步长
,从而使得在梯度方向上下降的基础上,下降的步长最优、下降的更快。这里看一道最速下降法的例题(手写了哈- -、):

b3e144ca741495e51d73d53380a46f38.png

2、迭代终止条件:

用过计算步长

求出
,当一阶导为零(驻点)且二阶导正定(严格局部最小值),即
正定,则严格的最小值。

(二)牛顿法:

直接从起始点指向最优点,下图红色为牛顿法;绿色为梯度下降法。

1f65ee219cc67acea060dbaf23e33fa3.png

根据梯度下降法的推导过程,牛顿法的推导与上面的类似。

1、

点的二阶泰勒展开式:

其中,

是起始点,所以
(一阶导数)、
(二阶导数)都是常数。(并且,
是正定的,则
的正定二次函数。)

2、令

点的二阶泰勒展开式对
求导,并令导数为0:

,这样就解出了函数
的极小点:

其中,记

,就得到了
牛顿法的迭代公式:
(牛顿法的步长为1)。那么
就作为函数
的极小点的新的近似点。

二、神经网络中的梯度下降法:

(一)权重w,偏置b的梯度下降法迭代公式:

如果将神经网络的输出写成

、我们的期望值或者说标签记做
,并且损失函数才用误差平方和的均值形式。

那么损失函数为:

w和b的梯度下降法的迭代公式为:

.

(二)梯度下降、随机梯度下降、批量梯度下降:

这三种方法的w和b的迭代公式都是

,区别在于上面的
不同。

1、梯度下降法:

(1)计算方法:

梯度下降法是计算整个数据集的损失函数J对于w和b的梯度,并去更新参数w、b。

(2)特点:

这种方法也就是最普通的梯度下降法。

①优点:利用全部的训练样本,将得到的是一个全局最优解,更精确。

②缺点:利用了所有的训练数据来计算损失函数的梯度。由于我们每进行一次参数更新需要计算整体训练数据的梯度,梯度下降会变得很慢并且十分占内存。

2、随机梯度下降法:

(1)计算方法:

随机梯度下降每次只计算一个样本损失函数J对w和b的梯度,并去更新参数w、b。

(2)特点:

①优点:随机梯度下降是通过每个样本来迭代更新一次,收敛速度快很多。

举个例子:

如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经迭代到最优解了,对于这种情况随机梯度下降法比较适合。

对比上面普通的梯度下降,迭代一次需要用到几十万训练样本,并且一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。

②缺点:

·仅计算一个样本的梯度,带来的问题是会有较多的噪声,使得每次迭代并不都向着整体梯度下降的方向前进,相比于真实梯度而言十分不准确,使得收敛过程曲折并容易陷入局部最优解。

·难以进行并行计算(就是常见到的batch_size)。

3、批量梯度下降法:

(1)计算方法:

一种折中的计算方法,批量梯度下降每次计算m个训练样本的损失函数J对w和b的梯度。我们将这些随机的训练输入样本称为一个批量数据(batch_size)。期望m个样本的损失函数总和的平均值大致相等于所有样本损失函数总和的平均值 :

那么损失函数的计算方式为:

(2)特点:相比较于随机梯度下降计算的梯度更为准确,相比于普通梯度下降计算速度更快。

(三)batch_size、epoch、iteration、迭代终止条件以及常见的超参数

1、batch_size、epoch、iteration:

概念:

①batch_size(批大小):即每次训练在训练集中取batch_size个样本训练,并行计算;

②iteration(迭代):1个iteration等于使用batchsize个样本训练一次;

③epoch(周期):1个epoch等于使用训练集中的全部样本训练一次;

举个例子:

训练集共有1000个样本,batch_size=10。

那么训练一次1000个样本需要:1次epoch,100次iteration。

(在训练过程中,我们经常设置的是iteration迭代次数)

2、迭代终止条件:

(1)达到迭代次数

(2)early_stop:

①在训练的过程中,记录最佳的accuracy,当连续10次epoch(或者很多其它次,可依据实际情况取10、20、30….)没达到最佳accuracy或不再提升时,就认为“不再提高”,此时使用early_stop停止训练,可以防止过拟合。

(实际中可能经过某个epoch后,accuracy减少了,可是随后的epoch又让accuracy升上去了。所以并非accuracy一降下来,它就不再提高,不能依据accuracy一两次的连续减少就推断不再提高。)

②过拟合发生的时候:在模型训练过程中动态的监测每次迭代(Epoch)后训练集和验证集的识别精度,一旦出现训练集识别率继续上升而验证集识别率不再提高,就说明过拟合发生了。

【实战经验:一般用accuracy或者recall之类的指标比较好。而用loss不再下降作为early_stop可能不那么准确:因为有些时候训练大型网络时,loss不再下降了,但是accuracy却在上升,这是因为网络还在微调w权重等参数使得效果变好,即acc上升;但是对loss没有影响,即loss不再下降。】

(这种方法还会带来一个额外的收获:确定作为超参数之一的迭代数(Epoch Number)的量级。更进一步,甚至可以不设置固定的迭代次数,以过拟合为信号,一旦发生就提前停止(early_stop)训练,避免后续无效的迭代。)

3、常见的超参数:

周期Epoch、批量数据大小batch_size、学习率(步长)

学习衰减率、神经网络层数、隐藏层神经元个数、Adam及Momentmn梯度下降法的优化算法中的参数(后续会介绍)。

三、BP神经网络中梯度下降法的反向传播推导:

公式略多了,敲起来费劲,也不容易写备注,先附上图片,在做步骤总结。

d526b8dbeebdc37503bdbbc23cb60653.png

步骤总结:

1、计算输出层的残差:

2、利用上面推导得到的残差迭代公式,计算隐藏层残差:

(1)全连接层:

(2)卷积层:

,(其中,filter是指卷积核中的元素个数)

3、更新w和b:

(1)不考虑正则化:

(2)考虑正则化:

,(其中,
是正则化系数)

最后总结一下反向传播:

就是将函数分成不同的模块,这样计算局部梯度相对容易。

不需要把完整的求导公式推导出来,实际上并不用关于输入量的梯度数学公式。只需要将表达式分成不同的可以求导的模块(模块化、链式法则),然后在反向传播中一步步计算梯度即可。(前面的推导是为了找规律,就是用残差δ和激活值a的迭代。)

参考:

1、《最优化方法》张薇 薛嘉庆 东北大学出版社

2、《Neural Networks and Deep Learning》

3、https://blog.csdn.net/sinat_30071459/article/details/50721565

4、https://www.cnblogs.com/yjbjingcha/p/7094816.html

5、机器学习与深度学习讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值