梯度下降法

梯度下降法------求损失函数局部最小值是内部参数的方法

假设有两个参数
第一步,随机选取初始值,要求尽可能地简单。
第二步,计算梯度。
在这里插入图片描述
这样就可以在二维坐标中可视化模型了。
在这里插入图片描述
红色箭头是指在 ( θ 1 , θ 2 ) 这点的梯度,梯度方向即箭头方向(从低处指向高处),梯度大小即箭头长度(表示在 θ i 点处最陡的那条切线的导数大小,该方向也是梯度上升最快的方向)蓝色曲线代表实际情况下参数 θ 1和 θ 2 的更新过程图,每次更新沿着蓝色箭头方向loss会减小,蓝色箭头方向与红色箭头方向刚好相反,代表着梯度下降的方向。

因此,在整个gradient descent的过程中,梯度不一定是递减的(红色箭头的长度可以长短不一),但是沿着梯度下降的方向,函数值loss一定是递减的,且当gradient=0时,loss下降到了局部最小值,总结:梯度下降法指的是函数值loss随梯度下降的方向减小。

关于梯度,一在方向上是最大方向导数的方向,类似于爬山时,最陡方向的切线,那么沿着反方向走,就是该梯度的方向;二在大小上,就是最大方向导数求出的值 。

一些问题:

关于Learning rate 的调整:做gradient descent一个很重要的事情是,要把不同的learning rate下,loss随update次数的变化曲线给可视化出来,它可以提醒你该如何调整当前的learning rate的大小,直到出现稳定下降的曲线。

最基本、最简单的大原则是:learning rate通常是随着参数的update越来越小的,因为在起始点的时候,通常是离最低点是比较远的,这时候步伐就要跨大一点;而经过几次update以后,会比较靠近目标,这时候就应该减小learning rate,让它能够收敛在最低点的地方。
另一种问题与改善
举例:假设到了第t次update,此时 η t = η / 根号下(t+1)
这种方法使所有参数以同样的方式同样的learning rate进行update,而最好的状况是每个参数都给他不同的learning rate去update。这就是Adagrad().-------将不同参数分开learning rate 的一种方法。
在这里插入图片描述
分母是过去所有值的root mean square.
举个例子:在这里插入图片描述
提出了一个矛盾之处
同样是梯度,一个在分子,一个在分母,那这样的效果不是相互矛盾吗?
对这个问题的解释是分母的意义是形成反差。

gradient越大,离最低点越远这件事情在有多个参数的情况下是不一定成立的。当我们Update参数选择的时候跟微分值成正比,这个论述是没有考虑跨参数的条件下。视频中引进了二次函数的证明,即把二次微分引进去作为分母,这样就可以在不增加额外运算的前提下,可以估测二次微分的值了。这就是Adagrad的用法。

Stochastic Gradicent Descent

随机梯度下降
在这里插入图片描述
随机梯度就是对一个样本的所有特征值了。与传统的梯度下降法的区别就是传统的方法是针对所有样本点。

特征放缩法

特征缩放,当多个特征的分布范围很不一样时,最好将这些不同feature的范围缩放成一样的scale
目的:效率
之前我们做的demo已经表明了,对于这种长椭圆形的error surface,如果不使用Adagrad之类的方法,是很难搞定它的,因为在像w1和w2这样不同的参数方向上,会需要不同的learning rate,用相同的lr很难达到最低点

如果有scale的话,loss在参数w1、w2平面上的投影就是一个正圆形,update参数会比较容易

而且gradient descent的每次update并不都是向着最低点走的,每次update的方向是顺着等高线的方向(梯度gradient下降的方向),而不是径直走向最低点;但是当经过对input的scale使loss的投影是一个正圆的话,不管在这个区域的哪一个点,它都会向着圆心走。因此feature scaling对参数update的效率是有帮助的
如何做
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值