ML讲座1 线性回归-2 gradient descent

上一期地址 https://blog.csdn.net/Sanalar/article/details/88674021
本次视频地址:https://www.youtube.com/watch?v=yKKNr-QKz2Q
主要介绍gradient descent的几个tips
我们知道参数更新的幅度与两个因素有关,一个是人为这是的learning rate 一个是微分的值。我们都知道步伐太大或者太小都不好,下面来考虑这些因素。

tip1:turning learning rate

首先我们要能识别出来,当前的learning rate到底是大啊还是小啊,看下图就知道了,太小下降很慢像一条直线,太大可能很容易突然变大,如果相对比较大可能会跳过最小值,一直无法达到最低点。在这里插入图片描述

Adagrad:为每一个参数 设置属于自己的 lr

σt:过去所有微分值的root mean square均方根,对每个参数而言都不一样
乘上一个微分值gt,
为什么将学习率设置为时间的函数,因为一般情况下随着时间的增加,就会越接近最小值,接近最小值的时候,为了能够不错过最小值,调小学习率,使其慢慢接近最小值。因此这里选择的是除以时间。
为什么除以所有历史微分值的均方根(root mean square),我们所理解的“gradient的值越大,距离最低点的距离就越远”的观点是相对的,不是非常准确,真正的距离还和二次微分有关系,为了模拟二次微分,使用了之前历史微分的和来代替。(这是针对跨参数)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能够平衡一下反差
在这里插入图片描述
踏出去的步伐最好是跟微分成正比(只考虑一个参数的时候才成立)
Gradient的值越大,离最低点就越远
在这里插入图片描述
跨参数的时候,说gradient的值越大距离最低点就越远是不准确的
要考虑二次微分,在分母上
Adagrad就是做了一个模拟,能够不计算二次微分的情况下,也能构造出趋势
,而且,发现所有之前计算出来过的微分之和就能反映出来相对的大小
在这里插入图片描述

tip2:Stochastic gradient descent 随机梯度下降

不是对所有的加在一起计算lossfunction
而是随机取一个,其中的gradient也是其中一个的
在这里插入图片描述
左边是看完20个参数,加在一起,才更新一次参数
右边是,如果有20个参数,每计算好一个参数的grad就开始更新参数
也就是说,下面这个例子,左边更新一次的时候右边已经更新20次了
在这里插入图片描述

tip3:Feature scaling 缩放

为什么要进行缩放: 直接达到的效果是不同的feature的范围都是一样的
为什么要保持范围一致: 如果不一致的话,在有多个参数时,某一个参数的一点变化可能会导致结果变化非常大,但实际上,导致其他因素就像噪音一样几乎没有存在感,那么加入其他feature的目的就完全不起作用了。
在这里插入图片描述
在gradient上的解释: 计算gradient会有影响
如果两边影响一致,下降的方向可以直接指向中心,如果两者差很多,那么下降的时候就会一直沿着等高线的方向,会绕弯,效率比较高
在这里插入图片描述

关于gradient 有效性的数学依据

为什么gradient可以work,背后的数学原理是什么
泰勒展开式,在一个小的范围内,可以写成这样
在这里插入图片描述
这句的意思是在一个足够小的范围内,h(x)的值可以用一阶导数的值,乘上x与x0的差值来表示。
这样我们就可以实现,在一个小圆圈内,能够找到这个圈内的最小值。(视频末尾介绍更详细)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值