72 优化算法【动手学深度学习v2】

72 优化算法【动手学深度学习v2】

深度学习学习笔记
学习视频:https://www.bilibili.com/video/BV1bP4y1p7Gq/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=75dce036dc8244310435eaf03de4e330

  • 优化问题

优化问题一般是最小化f(x) 。C 是可以限制的,具体的优化里面有不同的版本,深度学习常用将C 不设限。
在这里插入图片描述

  • 局部最小vs全局最小

全局最小是说x* 比 C 中所有的 x还要小,局部最小x* 是指存在一个 s 使得 x* 与所有的 x 直接绝对值差小于等于 s。
一般迭代算法只能保证找到局部最小值。
在这里插入图片描述

  • 凸集

特例,凸集就是在区域中任选两个点相连,相连的那条线一定在区域里面。
在这里插入图片描述

  • 凸函数

在函数上任意取两点,函数值一定在两点连线值的下面。
在这里插入图片描述

  • 凸函数优化

如果一个代价函数,f 是个凸函数,限制集合也是凸的,那么就是凸优化问题,那么优化函数找到的最小值一定是全局的最小值。
严格凸优化问题有唯一的全局最小值。
在这里插入图片描述

  • 凸和非凸例子

机器学习中绝大多数是非凸的,只有两个是凸函数 线性回归和Softmax回归。

卷积本身是线性的,但加上激活函数后就不是了。
在这里插入图片描述

  • 梯度下降

梯度下降是最简单的迭代求解算法,每次选取一个开始点x0,然后对每个时间t在当前点求梯度,当前点减去 学习率乘以梯度。
在这里插入图片描述

  • 随机梯度下降

当你有n个样本时 f(x) 是所有样本上的损失的平均,那么样本很多的时候求梯度是很贵的,所有通常是用的随机梯度下降。
随机梯度下降是说在时间t的时候随机选一个样本ti,在ti上计算梯度来近似整个数据上的梯度,因为导数是线性可加的,随机取的和整体上的期望是差不多的。
在这里插入图片描述

  • 小批量随机梯度下降

真实用的是小批量随机梯度下降,是由于计算的原因。

随机梯度下降用单样本算梯度,单样本随机梯度下降很难完全利用硬件资源,因为CPU/GPU都是多线程,单样本的计算量不足以占据整个硬件的资源,所以用多个样本算梯度,这样并行度就提高了。

小批量随机梯度下降是说在时间t采样一个样本子集,样本子集大小是b(批量大小),对采样的b个样本都算梯度并取平均值 作为近似整个样本的梯度,期望没有变,好处是降低了方差(在方向上的抖动性变好了一点)。

随机梯度下降比梯度下降慢是因为每次算一个样本用不了硬件的并行度。
在这里插入图片描述

  • 冲量法

冲量法是说使用一个平滑过的梯度对权重进行更新,在真实数据中的loss函数是比较不平滑的,所以冲量法维护一个惯性(比较平滑的改变方向)。假设在样本上算的梯度是gt,vt是冲量,再更新权重时减去 学习率 乘以 vt。
展开vt的计算公式 实际上vt并不完全取决于上一个时刻的梯度,β 是小于 0的值,随着过去的gti 成指数级减小。
在这里插入图片描述

  • Adam

最多使用的优化算法。Adam 未必比SGD+冲量法好,好处是对学习率没那么敏感(它是一个非常平滑的SGD,它做了非常多的平滑)一旦很平滑对学习率那么敏感,如果你没有太多时间去调参的话,Adam是个很好的选择。

Adam 为记录一个vt,公式中β1是不需要调的,通常取0.9 (冲量法中β是需要调的)。
在这里插入图片描述
Adam 还要记录一个st,gt^2 是每个元素的平滑,β2通常等于0.999,计算后重新调整gt。

整理来讲Adam是比较稳定的。
在这里插入图片描述

QA:

  1. faster RCNN 或者Yolo是自己实现好,还是直接用开源的好?
    当然如果自己能够实现一遍就很好,但是会难一点。建议自己实现一个简单的版本,然后去看开源的实现的细节(因为开源的细节处理会好很多)。
  2. 大数据集用相对大的模型,小数据集用相对于小的模型。相对的对应效果会好一些。
  3. 写代码写不出来没关系,最重要的是能看懂,能用别人的代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《动手深度学习 v2》是一本介绍深度学习的教材,通过动手实践的方式帮助读者深入理解深度学习的理论和实践。这本书由李沐等人共同编写,内容包含了深度学习的基本概念、算法原理以及实际应用等方面。 这本书的优点之一是注重实践,通过大量的案例和代码实现,读者可以亲自动手搭建深度学习模型,并通过实际操作来理解算法的工作原理。此外,书还涵盖了一些最新的深度学习技术和应用,帮助读者跟上深度学习领域的最新发展。 《动手深度学习 v2》也具有一定的难度,对于初者来说需要一定的数和编程基础才能更好地理解和实践。但是,书的难点都有详细的解答和说明,读者可以在遇到困难时查看相关解析,提升习效果。 总的来说,《动手深度学习 v2》是一本非常实用的深度学习教材,适合有一定基础的读者习和实践。通过阅读这本书,读者可以系统地深度学习的基本概念和算法,掌握如何应用深度学习解决实际问题,进而在深度学习领域有更深入的理解和应用。 ### 回答2: 《动手深度学习 v2》pdf是一本深度学习入门的教程,适合初深度学习的理论和实践。这本教程由作者李沐、阿斯顿·张剑锋等人合作撰写,涵盖了深度学习的基本概念、神经网络的构建、常见深度学习模型、计算机视觉、自然语言处理等领域的应用。 这本教程的特点是注重实践,每个章节都提供了大量的代码示例和实验指导,让读者可以动手实践,巩固所知识。同时,教程还配有相应的代码库和数据集,读者可以下载使用。 教程通过讲解深度学习的基本概念和原理,帮助读者建立起对深度学习的整体认识。然后,通过实例演示和实践,教会读者如何使用深度学习框架搭建神经网络,并进行训练和优化。 另外,这本教程也介绍了一些常见的应用领域,如计算机视觉和自然语言处理。读者可以习到如何使用深度学习来解决图像分类、目标检测、文本生成等问题。 最后,这本教程还提供了一些深度学习的进阶内容,如深度生成模型和强化习等,供读者深入习和拓展。 总的来说,《动手深度学习 v2》pdf是一本很好的深度学习入门教程,通过动手实践和实例演示,帮助读者快速入门和掌握深度学习的基本知识和应用技巧。对于想要深度学习的初者来说,是一本非常有价值的教材。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值