| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习第二门课week2&week3 -> 正文阅读 |
|
[人工智能]深度学习第二门课week2&week3 |
1、mini-batch 梯度下降法使用 batch 梯度下降法时,每次迭代你都需要历遍整个训练集,可以预期每次迭代成本都会下降,所以如果成本函数𝐽是迭代次数的一个函数,它应该会随着每次迭代而减少,如果𝐽在某次迭代中增加了,那肯定出了问题,也许学习率太大。 使用 mini-batch 梯度下降法,如果你作出成本函数在整个过程中的图,则并不是每次迭 代都是下降的 如果 mini-batch 的大小等于𝑚,其实就是 batch 梯度下降法 另一个极端情况假设 mini-batch 大小为 1,就有了新的算法,叫做随机梯度下降法 2、指数加权平均数(Exponentially weighted averages)如果𝛽是 0.9,这是十天的平均值。 ? ?(这是微积分的知识) 这里的epsilon=1-θ 1/e ≈0.34? ?因此结合起来我们知道当日子超过了1/epsilon,那这个权重只占了1/3 很少很少了。 所以说 ?3、指数加权平均的偏差修正? 偏差修正就是在初期让平均值除以一个小值让初期变大,接近实际值。 4、动量梯度下降法(Momentum)原本是W=W-αdW b=b-αdb? ? 其中α是学习率 这样的梯度下降每一步都是独立的 不会跟之前累积的微分d相关 因此我们使用 同理b= 这样就可以减缓梯度下降的幅度。因为每次梯度下降的v都是跟之前累积的相关的,类似动量的累积,或者说惯性。 动量梯度下降有两个超参数,学习率𝑎以及参数𝛽,𝛽控制着指数加权平均数。𝛽最常用的值是 0.9,我们之前平均了过去十天的温度,所以现在平均了前十次迭代的梯度。 加快梯度下降的原理: 当v累积了之前的变化时候,在上下方向的变化就会正负抵消近乎于0,但是横轴变化不会抵消,因此,将紫色的变化曲线变成蓝色的变化曲线,即上下变化缓慢,更快到达最优解,来加快梯度下降。动量梯度下降的β越大,上下变化越缓慢。 ?5、RMSprop这里的S相当于上述的V 这样可以让数值的更新更加稳定,太快的减缓,太慢的加速。 6、Adam优化算法Adam 优化算法基本上就是将 Momentum 和 RMSprop 结合在一起。(以下描述中 V一般关于Momentum,S关于RMSprop) (1)初始化 ?(2) ? β1是Momentum?的超参数,β2是RMS的超参数 (3)使用Adam一般需要偏差修正? V和S都需要 (4)更新权重的时候由于加入了RMSprop,所以需要除一个Sdw的平方根 加上ε是因为防止除的太小导致这个分数无穷大 ?其中有一些超参数:学习率α、β1(通常0.9)、β2(通常0.999)、ε(10^-8,当然ε也可以忽略) 7、学习率衰减?一开始学习率较大,梯度下降的幅度大,到学习末期为了能够收敛到最优解附近的一个局部小范围,我们需要把学习率调低(自动地),因此需要根据迭代周期(epoch)来减小学习率α,有许多公式比如 每遍历一次数据集? 学习率就降低 8、超参数的取值首先,超参数取值不能均匀取,必须随机取点 其次,推荐用对数刻度轴,比如0.0001~1的范围 不用均匀刻度,否则0.0001-0.1这个范围只占了10%的概率,应该用log 对数坐标(类似bode图) 9、归一化激活函数归一化输入特征可以加快学习过程。 对于任何一个隐藏层,我们也可以归一化它的a,以此来更快训练w和b,因为这一层的a是下一层的输入,会影响下一层的w和b的训练。这就是Batch 归一化。 我们通过上式来归一化得到Z_norm 并且如果我们加入了γ和β这俩个新的参数,根据公式 我们可以对?进行任意设置平均数和方差,这里的β不同于momentum里的β 回顾一下? z1=w1x+b1,a1=g(z1),z2=w2a2+b2。这里的g是激活函数 10、Batch归一化的原理Batch使之前层更新的参数不管怎么变化,至少他们的均值和方差也会是均值 0,方差 1。也就是说,其减弱了前层参数的作用与后层参数的作用之间的联系,它使得网络每层都可以自己学习,稍稍独立于其它层,这有 助于加速整个网络的学习。 Batch 归一化还有一个作用,它有轻微的正则化效果。因为每一个mini-batch的均值和方差都不一样,导致会产生噪声,因此类似dropout,Batch归一化可以细微的正则化,因为会给隐藏单元添加小噪声,这迫使后部单元不过分依赖任何一个隐藏单元。 11、Softmax回归除以ti的求和是为了归一化让概率处以0-1之间,用指数形式的z是为了让z的负数部分也转成正数(负数的概率没有意义) Softmax激活函数比logistics激活函数的优点就在于softmax更适合于多分类问题,而logistics一般适合二分类问题? 在 Softmax 分类中,我们一般用到的损失函数是 ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:55:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |