梯度下降数学原理

梯度下降的重要作用

在机器学习、深度学习中,为了求得最小的损失值与最优化参数,常通过迭代使用梯度下降来逐步逼近最小损失函数、最优模型参数。

什么是梯度下降

梯度下降法经典图示如下:

如我们在一座山的顶部,需要下山,但不熟悉下山的路,在下山过程中,每走到一个位置,都会求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置的梯度,向这一步所在的位置最陡峭最容易下山的方向走一步。不断循环求梯度,就这样一步步走下去,一直走到我们觉得已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某个局部的山势低处。

梯度下降不一定能够找到全局最优解,有可能是一个局部最优解,当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。如上图所示。

要进行梯度下降计算,先要获得一个损失函数,如果已有模型,还要初始化预训练模型参数,然后在这个基础上进行梯度下降计算。

梯度下降的数学原理

梯度下降的算法步骤如下:

1 确定优化模型的假设函数及损失函数

对于线性回归,假设函数为:

其中,θi,xi(i=0,1,2,…,n)分别为模型参数、每个样本的特征值

对于假设函数,损失函数为:

2 相关参数初始化

主要初始化θi、算法迭代步长a、终止距离ζ。初始化时可以根据经验,将θ初始化为0,步长a初始化为1。当前步长为φi。当然也可随机初始化。

3 迭代计算

计算当前位置损失函数的梯度,对于θi,其梯度表示为:

计算当前位置下降的距离:

判断是否终止。

确定是否所有θi的梯度下降距离φi都小于终止距离ζ,如果都小于ζ,则算法终止,此时θi的值为最终的结果,否则进入下一步。

更新所有θi,更新后的表达式为:

更新完毕后转入步骤1

实际使用梯度下降法时,各项参数指标不能一步就达到理想状态,对梯度下降的调优主要体现在以下几个方面。

1算法迭代步长a的选择:如果取值无效,说明要增大步长,但步长太大,有时会导致迭代速度过快,错过最优解,步长太小,迭代速度慢,算法运行时间长。

2 参数的初始值选择

3 标准化处理

梯度下降类型

随机梯度下降(Stochastic GD, SGD)求解思路

随机梯度下降法中损失函数对应的是训练集中每个样本的粒度。

损失函数可以写成如下形式:

对每个参数θ按梯度方向更新θj:

随机梯度下降法通过每个样本来迭代更新一次。

随机梯度下降法伴随的一个问题是噪声较批量梯度下降法要多,使得随机梯度下降法并不是每次迭代都向着整体最优化方向。

批量梯度下降法(Batch GD , BGD))的求解思路

首先得到每个对应的梯度:

由于是求最小化风险函数,所以接下来按每个参数θ的梯度负方向更新θi:

从上式可以看到,它得到的虽然是一个最优解,但每迭代一步,都要用到训练集所有的数据,如果样本数据很大,这种方法迭代速度就很慢。

相比而言,随机梯度下降法可避免这种问题。

小批量(Mini-Batch)梯度下降法的求解思路

对于总数为m的样本数据,选取其中的n(1<n<m)个子样本来迭代。其参数θ按梯度方向更新θi:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值