Datawhale X 李宏毅苹果书 AI夏令营 向李宏毅学深度学习(进阶)Task1笔记

目录

一. 局部极小值与鞍点

1.1 临界点及其种类

1.2 判断临界值种类的方法

二. 批量和动量

2.1 基础概念

2.2 批量法

2.3 动量法


一. 局部极小值与鞍点

1.1 临界点及其种类

  • 概念:把梯度为零的点统称为临界点(critical point)
  • 种类:局部最小值,局部最大值,鞍点

b4f4d75225b64402a3d2957aced7b510.png

1.2 判断临界值种类的方法

        网络本身很复杂,用复杂网络算出来的损失函数显然也很复杂。虽然无法完整知道整个损失函数的样子,但是如果给定某一组参数,比如 θ′,在 θ′ 附近的损失函数是有办法写出来的——虽然 L(θ) 完整的样子写不出来。θ′ 附近的 L(θ) 可近似为:

dc40598e2e3c42998e4edea930fdee74.png

        这个公式是泰勒级数近似(Tayler series appoximation)。其中,第一项 L(θ)′ 告诉我们,当 θ 跟 θ′ 很近的时候,L(θ) 应该跟 L(θ′) 还蛮靠近的;第二项 eq?%28%25u03B8%25u2212%25u03B8%20%25u2032%20%29%20Tg 中,g 代表梯度,它是一个向量,可以弥补 L(θ′) 跟 L(θ) 之间的差距。有时候梯度 g 会写成 ∇L(θ′)。gi 是向量 g 的第 i 个元素,就是 L 关于 θ 的第 i 个元素的微分,即9c879404a1e14275a656883531853404.png。H 里面放的是 L 的二次微分,它第 i 行,第 j 列的值 HiHij 就是把 θ 的第 i 个元素对 Lθ′作微分,再把 θ 的第 j 个元素对 ∂L(θ′)∂θi 作微分后的结果,即e14f7a7b8c574ca8bb7ce54f9ceb207d.png

        在临界点,梯度 g 为零,因此eq?%28%25u03B8%25u2212%25u03B8%20%25u2032%20%29%20Tg 为零。所以在临界点的附近,损失函数可被近似为 

06a8b3b3548f4b3985acd768504eaf3c.png

        可以根据 3322bb151fd349db9e0d3046b03b594e.png来判断在 θ′ 附近的误差表面(error surface)到底长什么样子。知道误差表面的“地貌”,我们就可以判断 L(θ′) 是局部极小值、局部极大值,还是鞍点。为了符号简洁,我们用向量 v 来表示( θ − θ′),eq?%28%25u03B8%25u2212%25u03B8%20%25u2032%20%29%20T H(θ − θ′)可改写为eq?v%20T%20Hv,有如下三种情况。

  1.  如果对所有 v,eq?v%20T%20Hv> 0. 这意味着对任意 θ,L(θ) > L(θ′). 只要 θ 在 θ′ 附近,L(θ) 都大于 L(θ′). 这代表 L(θ′) 是附近的一个最低点,所以它是局部极小值。
  2. 如果对所有 v,eq?v%20T%20Hv< 0. 这意味着对任意 θ,L(θ) < L(θ′),θ′ 是附近最高的一个点,L(θ′) 是局部极大值。
  3. 如果对于 v,eq?v%20T%20Hv有时候大于零,有时候小于零。这意味着在 θ′ 附近,有时候L(θ) > L(θ′),有时候 L(θ) < L(θ′). 因此在 θ′ 附近,L(θ′) 既不是局部极大值,也不是局部极小值,而是鞍点。

        此方法判断临界点是局部极小值还是鞍点还是局部极大值,需要代入所有的 θ. 但我们不可能把所有的 v 都拿来试试看,所以有一个更简便的方法来判断 eq?v%20T%20Hv的正负。算出一个海森矩阵后,不需要把它跟所有的 v 都乘乘看,只要看 H的特征值。若 H 的所有特征值都是正的,H 为正定矩阵,则 eq?v%20T%20Hv> 0,临界点是局部极小值。若 H 的所有特征值都是负的,H 为负定矩阵,则 eq?v%20T%20Hv< 0,临界点是局部极大值。若 H 的特征值有正有负,临界点是鞍点。

        当遇到鞍点时,可以沿着H的负的特征值的特征向量的方向移动,可以使得损失减小。

二. 批量和动量

2.1 基础概念

        在计算梯度的时候,并不是对所有数据的损失 L 计算梯度,而是把所有的数据分成一个一个的批量(batch)。

        假设每个批量的大小是 B ,即带有 B 笔数据。每次在更新参数的时候,会去取出 B 笔数据用来计算出损失和梯度更新参数。遍历所有批量的过程称为一个回合(epoch)。事实上,在把数据分为批量的时候,我们还会进行随机打乱(shuffle)。随机打乱有很多不同的做法,一个常见的做法是在每一个回合开始之前重新划分批量,也就是说,每个回合的批量的数据都不一样。

9a97ca65f42045979cb07192acf8d71b.png

2.2 批量法

        批量梯度下降法:使用全批量的数据来更新参数

        随机梯度下降法:使用批量大小等于1的数据来更新参数

        随机梯度下降的梯度上引入了随机噪声,因此在非凸优化问题中,其相比批量梯度下 降更容易逃离局部最小值。

比较:

2.3 动量法

        一般的梯度下降(vanilla gradient descent)初始参数为 θ0,计算一下梯 度,计算完梯度后,往梯度的反方向去更新参数 θ1 = θ0 − ηg0。有了新的参数 θ1 后,再计算一次梯度,再往梯度的反方向,再更新一次参数,到了新的位置以后再计算一次梯度,再往 梯度的反方向去更新参数。

        引入动量后,每次在移动参数的时候,不是只往梯度的反方向来移动参数,而是根据梯度 的反方向加上前一步移动的方向决定移动方向。 

        每一步的移动都用 m 来表示。m 其实可以写成之前所有计算的梯度的加权和。其中 η 是学习率,λ 是前一个方向的权重参数,也是需要调的。

运动过程例子如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值