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

背景

第五期,Datawhale开源项目孵化的《深度学习详解》新书发布之际,通过《深度学习详解》和 李宏毅老师 21年的机器学习课程视频,学习/复习一下 深度学习 的理论。

《深度学习详解》主要内容源于《机器学习》(2021年春),选取了《机器学习》(2017年春)
的部分内容,在这些基础上进行了一定的原创,补充了不少除这门公开课之外的深度学习相关知识。

为了尽可能地降低阅读门槛,笔者对这门公开课的精华内容进行选取并优化,对所涉及的公式都给出详细的推导过程,对较难理解的知识点进行了重点讲解和强化,以方便读者较为轻松地入门。

在理论严谨的基础上,本书保留了公开课中大量生动有趣的例子,帮助读者从生活化的角度理解深度学习的概念、建模过程和核心算法细节,包括——

  • 卷积神经网络、Transformer、生成模型、自监督学习(包括 BERT 和 GPT)等深度学习常见算法,
  • 对抗攻击、领域自适应、强化学习、元学习、终身学习、网络压缩等深度学习相关进阶算法。

Task 1

  1. 开营直播:AI学习路线
  2. 学习 深度学习基础:局部极小值与鞍点(文字 + 视频)
  3. 学习 深度学习基础:批量和动量(文字 + 视频)

Task 1.1 学习 深度学习基础:局部极小值与鞍点

局部极小值与鞍点

局部极小值(local minimum)

局部极小值直观的看,其所在区域呈凹陷口袋形状,局部极小值周围的点都比其要大,做深度学习时使用梯度下降收敛在局部极小值,梯度为零,这时候假如往四周走,loss都会升高。

鞍点(saddle point)

鞍点顾名思义,这个点所在的区域呈马鞍形状,从上图可以看出,鞍点在一个方向上为区域最小值,无法继续优化;但在另一个方向上却是区域最大值,仍存在优化空间。虽然鞍点的梯度也为零,但它不是局部极小值。

应用

梯度为零的点统称为临界点(critical point)。训练优化走到临界点的时候,首先要判读这个临界点到底是局部极小值还是鞍点,如果损失收敛在局部极小值,所在的位置已经是损失最低的点了,往四周走损失都会比较高,就没有路可以走了;但如果是鞍点,旁边还是有路可以让损失更低的,只要逃离鞍点,就有可能让损失更低。

Task 1.2 学习 深度学习基础:批量和动量

批量(batch)

在计算梯度的时候,并不是对所有数据的损失计算梯度,而是把所有的数据分成一个一个的批量(batch),会去取出 B 笔数据用来计算出损失和梯度更新参数,遍历所有批量的过程称为一个回合(epoch)。

如果批量大小为训练数据的大小,这种使用全批量(fullbatch)的数据来更新参数的方法即批量梯度下降法(Batch Gradient Descent,BGD)。此时模型要一次性看完所有训练数据,才能计算损失和梯度,更新参数1次。

批量大小小于训练数据的大小(如大小为1),此时使用的方法即随机梯度下降法(Stochastic Gradient Descent,SGD),也称为增量梯度下降法。此时只要取出一笔数据即可计算损失、更新一次参数,用一笔数据算出来的损失相对带有更多噪声,因此其更新的方向通常是曲曲折折的。

大的批量更新比较稳定,小的批量的梯度的方向是比较有噪声的(noisy)。但实际上有噪声的梯度反而可以帮助训练,小批量梯度下降法(mini-batch gradient descent)每次是挑一个批量计算损失,所以每一次更新参数的时候所使用的损失函数是有差异的。

大的批量与小的批量各有优缺点,如下图所示,批量大小是需要去调整的超参数。
小批量梯度下降与批量梯度下降比较

动量(momentum)

动量的概念来源于物理:一个球如果从高处滚下来,就算滚到鞍点或鞍点,因为惯性的关系它还是会继续往前走。如果球的动量足够大,其甚至翻过小坡继续往前走。

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

  • 一个角度是动量是梯度的负反方向加上前一次移动的方向。
  • 另外一个角度是当加上动量的时候,更新的方向不是只考虑现在的梯度,而是考虑过去所有梯度的总和。

如下图示例,一般梯度下降到一个局部最小值或者鞍点时,就被困住了。但有动量还是有办法继续走下去,因为动量不是只看梯度,还看前一步的方向。即使梯度方向往左走,但如果前一步的影响力比梯度要大,球还是有可能继续往右走,甚至翻过一个小丘,也许可以走到更好的局部最小值。
动量例子

Task 2

  1. 学习 深度学习基础:线性模型自适应学习率(文字+视频)
  2. 学习 深度学习基础:分类(文字 + 视频)
  3. 《深度学习详解》第三章 串讲&QA答疑 直播
  4. 跑通 实践任务CNN代码

Task 3

  1. 学习 批量归一化(文字+视频)
  2. 学习 卷积神经网络(文字+视频)
  3. 《深度学习详解》第四章 串讲&QA答疑
  4. 尝试进行 实践任务CNN进阶
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值