深度学习案例教程 教案5.1梯度下降算法.docx
01梯度下降法
1
我们来学习第五章目标检测。
2
首先,我们先明确一下学习目标。
第一个学习目标是让大家理解图像分类、目标检测和实例分割的关系。
3
第二个目标是掌握传统方法在目标检测领域的应用。
4
第三个目标是了解深度学习中目标检测和实例分割的基本原理。
5
第四个目标是熟悉R-CNN、FastR-CNN、FasterR-CNN和MaskR-CNN模型的工作原理。
6
同时,通过这一章节的学习,希望能够培养大家的素质目标。
1提高大家自主学习的能力,通过阅读相关文献和实践操作来提高自己的专业素养
7
2增强大家的团队协作意识,与他人分享所学知识,共同进步。
8
3提高大家解决问题的能力,能够独立分析和解决实际问题。
9
本章有2个实践任务,第一个任务是使用Pytorch实现行人的目标检测。
第2个任务是使用Pytorch实现行人的实例分割。
为了完成我们的实践任务,我们需要先了解一些相关的理论知识。
10
接下来我们来学习第一节,梯度下降法。
梯度下降法它是基于梯度的优化,就是优化一个函数的最终取值。
假设θ是函数的输入参数,f(θ)是需要优化的函数,那么基于梯度的优化是指改变θ以得到最小或最大的f(θ)。
梯度下降算法是指沿着函数值下降变化最快的方向,改变θ而获得更小的f(θ)的技术。
11
梯度下降的过程类似于我们平时下山的过程,我们找到一个最陡峭的方向,从这个方向下山,当下到山腰的某一点,又开始新的搜索,寻找另一个更加陡峭的方向,从那个更加陡峭的地方下山,不断重复这个过程,直到成功抵达山脚下。
这就是梯度下降算法。
简而言之,梯度下降就是寻找最陡峭的方向,也就是负梯度方向下降。
12
常用的梯度下降法一共有三个。
第一个是批量梯度下降算法,第二个是随机度下降算法,第三个是批量梯度下降算法的一个改进。
我们来具体看看这三种梯度下降法。
13
首先我们先来看一下批量梯度下降算法。
批量梯度下降算法,简称BGD算法,就是把整个样本切分为若干份,然后在每一份样本上实施梯度下降算法进行参数更新。
假设有10万个样本,随机排序后,按照5000大小切分成20份,每一份称为一个批,在每一个批上计算梯度并优化,这样网络的训练效率会大大提高。
这就是批量梯度下降的理解
14
我们第二个是随机梯度下降算法,也称之为SGD算法。
是指每个批量只有一个样本,并且只在这一个样本上实施梯度下降算法进行参数更新。
采取SGD,虽然模型训练起来更灵活,但坏处是算法很难收敛,由于每次只处理一个样本,效率很低。
15
那么批量梯度下降与随机梯度下降算法他们之间的联系和区别有哪些呢?
联系就都是基于梯度下降算法的策略。
区别是执行一次计算所需的样本量不同。
16
第三个是批量梯度下降算法的一个改进。
无论是批量梯度下降,还是随机梯度下降,都无法避免在纵轴上的震荡问题。
一个理想的情形是纵轴的震荡减少,即学习变慢,而横轴的学习加快。
17
下面介绍3种方法用于改进批量梯度下降算法,
第1种是动量梯度下降算法,这个算法考虑了历史梯度的加权平均作为速率进行优化的方法。
18
第2种是均方根加速算法,他对历史梯度加权时,对当前梯度取了平方,并在参数更新时,让当前梯度对历史梯度开根号后的值做了除法运算。
19
那还有一个是自适应矩估计算法,这是一种将之前的动量梯度下降和均方根加速结合起来的优化算法。
这就是我们梯度下降法的三个类别以及相关描述。
对于本节梯度下降法我们就了解到这里