找工作准备!
HR:请说一下批量梯度下降法的原理?
参考回答:
梯度下降法是一种常见的函数最优解算法,用来求解函数的最大值或者最小值,对于机器学习任务中,一般求解凸函数中的最小值。
这里的梯度是函数的求导值,如果以一个人在山顶的某个位置要下山,沿着梯度相反的方向下降是最快的途径。
以线性回归为例,这里有十个点
,我们想通过一条直线来拟合这十个点。这里可以列出回归的误差目标函数
.
运用梯度下降法进行求出最优
.分别对
求偏导,
以假设此十个点分别为函数为例,
,目的是通过梯度下降法求出拟合十个点的最优
,
这里需设定w和b的初试值,代表从该位置出发寻找目标函数最低点。
梯度下降法是一个迭代过程,最低点是通过若干次的下降得到,而不是一蹴而就,每次迭代会对参数
进行更新,
这里的
是学习率,通过调节学习率来改变梯度下降的快慢。
我们发现,这里的每一次迭代过程都要计算一次
,而每一次
都需要将m个样本进行计算,如果样本有数万个,那每一次前向传播就需要将数万个样本参与计算,显然是梯度下降速度是非常慢的。看到有个博主把目标函数优化比作找饭店吃饭,把停下来问路人比作根据样本计算梯度值,我觉得挺有意思的,给个传送门。所以才会有后续的最小批次梯度下降和随机梯度下降。
HR :说一下随机梯度下降和最小批量梯度下降的原理?
来回顾一下批量梯度下降法中的梯度求导公式
这里的
代表着将所有样本都参与到求导式中,而随机梯度下降只采用一组数据,其求导公式变为
随机的选取第i组数据求导,可以大大减少计算量。梯度迭代的公式与上述批量梯度下降法是一样的,但随机梯度下降也有缺点,那就是容易产生误差,会'南辕北辙'
![]()
(a)批量梯度下降法的收敛线、 ![]()
(b)随机梯度下降法的收敛线 于是又有一种折中的方法,最小 批量下降法,最小批量下降法就是选择一个批次的样本数计算梯度,计算量相比于批量下降法小,但也比随机梯度更加准确,选择一个批次样本数量为batch_size=n,梯度求导公式,
这里的
。
梯度下降会遇到的问题?
梯度下降的最终点并非是全局最小点,也可能是局部最小点。
梯度消失和梯度爆炸,后续再讨论。