Gradient Descent学习笔记

今日网课初步学习了
Gradient Descent,特此把笔记记下,以后有空看看。
(同专业的发现不要抄我作业 TAT)

定义出损失函数loss function,若该函数可微分,则可以使用梯度下降法。设变量为X={Xa,Xb……},损失函数为L(X)。为了找到损失函数的最小值(即目标的最优解),通过任意取一个初始值{Xa0,Xb0,……},然后根据函数的性质迭代n次,找出较优的X解,迭代的方法如下:

在里插入图片描述

当迭代次数足够大,或者偏微分足够小可看作几乎为0时,结束迭代,此时得到最优解X。

因此,在此迭代过程中,learning rate大小的选择尤为重要。Learning rate在式子中相当于是一个与微分相乘的权值,因此可以理解为每次试探的步长,learning rate的选择可以下面例子说明。

在这里插入图片描述

如上图所示,这是目标的loss function。显然,要让损失最少就要到达最低点。


若learning rate过小,相当于在此过程中步长过小的蓝色情况,因此,若要到达最低点,则需要更多次数的迭代。极大地增加了计算量,而且若迭代次数满之后还未到达最低点,甚至会导致找不到较优解。


若learning rate适中,相当于在此过程中步长适中的红色情况,因此三次迭代后刚好到达最优解,结束迭代。然而这个值较为精确,很难找到。


若learning rate过大,相当于在此过程中步长过大的绿色情况,由于迭代时步长过时,直接跳过了最低点到达了高点,于是又折回走,来回振荡,找不到最优解。

所以,为了选出合适的learning rate,可以采用一些算法自动得到适合的Adaptive Learning rate

最普遍简单的方法:每次迭代都按一定的算法来减少learning rate,例如
在这里插入图片描述

为了更好地找到最低点,最好的方法是每个函数都设立一个learning rate。

Adagrad方法:

在迭代的减数中再除以过去微分的均方根,结合变化的learning rate,化简得到:

在这里插入图片描述

特点是下降速度会越来越慢,后期非常缓慢。

图中有一个疑点:

按照原理来说,应该偏微分大的时候跨大一点,但是在分母加上了偏微分的均方根,使此时的跨步反而小了,如何解释?

答:

直观的解释:可以看成是一种反差,当某次微分突然变得特别大/小,因此除以均方根可以看出反差。

正式的解释:当同时需要考虑多个参数时,不能单纯地认为微分越大步伐越大。由二次方程推导最好的步伐大小应是正比于一次微分,反比于二次微分。但计算二次微分的计算时间代价会成倍增加,于是可以用过去微分的均方根来表示二次微分的大小,可以达到相似的效果。

Stochastic Gradient Descent:

不等计算完所有的迭代x才更新参数,随机或顺序计算迭代完一个x就更新一次参数。使得迭代速度变快。

Feature Scaling:

让不同的变量(中的x1和x2)的scale相同。

通过使得scale一样,使得更新的w1和w2的量级一样,在各个方向上更加公平。

*Feature scaling的方法(归一化normalization):
在这里插入图片描述

例如上图中方法,有R个参数,每次输入的数据有R个,取这一次组成一个dimension,算出均值mi,和标准差,然后用上述式子把数据归一化到[0,1]。

数学基础:

泰勒展开:如果函数足够平滑,在已知函数某一点的各阶导数值都已知的情况下,可以用以下来估计领域中的值:
在这里插入图片描述
所以,当x接近x0的时候:

在这里插入图片描述
同理有多个变量时:

在这里插入图片描述

因为导数都是常量,可以简化写成:

在这里插入图片描述

又因为下次的位置是在以步长为半径,此时位置为圆心的圈内,即下图所示的红圈内,需满足以下条件:

在这里插入图片描述

在这里插入图片描述
把第一个加数看成在这里插入图片描述
第二个加数看成在这里插入图片描述

然后分析函数:

S是常数相加,可以忽略不分析。变成两个向量相乘

在这里插入图片描述

要使此时函数的值最小,必然是以下情况:

在这里插入图片描述

即可推出:
在这里插入图片描述

推出一开始的结论:

在这里插入图片描述

(这里只考虑了一次展开,如果考虑二次式的话运算量增大,一般把learning rate调大一点。

Gradient Descent的注意点

可能找到了极小值或微分很接近0的地方,而找不到最小值。

总结一般步骤:


确定参数数量


选择合适的loss function


选择learning rate的大小或变化策略


选择迭代的策略,如Adagrad


归一化处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值