找工作准备!

HR:请说一下批量梯度下降法的原理?

 参考回答:

     梯度下降法是一种常见的函数最优解算法,用来求解函数的最大值或者最小值,对于机器学习任务中,一般求解凸函数中的最小值。  

     这里的梯度是函数的求导值,如果以一个人在山顶的某个位置要下山,沿着梯度相反的方向下降是最快的途径。

      以线性回归为例,这里有十个点

结合批量梯度下降法和随机梯度下降法_#算法

,我们想通过一条直线来拟合这十个点。这里可以列出回归的误差目标函数

结合批量梯度下降法和随机梯度下降法_#算法_02

.

                                                         
运用梯度下降法进行求出最优

结合批量梯度下降法和随机梯度下降法_梯度下降_03

.分别对

结合批量梯度下降法和随机梯度下降法_梯度下降_03

求偏导,

                                                     

                                        

结合批量梯度下降法和随机梯度下降法_结合批量梯度下降法和随机梯度下降法_05

                                        

结合批量梯度下降法和随机梯度下降法_梯度下降_06

      以假设此十个点分别为函数为例,

结合批量梯度下降法和随机梯度下降法_随机梯度下降_07

,目的是通过梯度下降法求出拟合十个点的最优

结合批量梯度下降法和随机梯度下降法_梯度下降_03

,

这里需设定w和b的初试值,代表从该位置出发寻找目标函数最低点。

梯度下降法是一个迭代过程,最低点是通过若干次的下降得到,而不是一蹴而就,每次迭代会对参数

结合批量梯度下降法和随机梯度下降法_梯度下降_03

进行更新,

                                                          

结合批量梯度下降法和随机梯度下降法_随机梯度下降_10

这里的

结合批量梯度下降法和随机梯度下降法_梯度下降_11

是学习率,通过调节学习率来改变梯度下降的快慢。

          我们发现,这里的每一次迭代过程都要计算一次

结合批量梯度下降法和随机梯度下降法_结合批量梯度下降法和随机梯度下降法_12

,而每一次

结合批量梯度下降法和随机梯度下降法_结合批量梯度下降法和随机梯度下降法_12

都需要将m个样本进行计算,如果样本有数万个,那每一次前向传播就需要将数万个样本参与计算,显然是梯度下降速度是非常慢的。看到有个博主把目标函数优化比作找饭店吃饭,把停下来问路人比作根据样本计算梯度值,我觉得挺有意思的,给个

传送门

。所以才会有后续的最小批次梯度下降和随机梯度下降。

HR :说一下随机梯度下降和最小批量梯度下降的原理? 

 来回顾一下批量梯度下降法中的梯度求导公式

    

结合批量梯度下降法和随机梯度下降法_结合批量梯度下降法和随机梯度下降法_05

这里的

结合批量梯度下降法和随机梯度下降法_梯度下降法_15

 代表着将所有样本都参与到求导式中,而随机梯度下降只采用一组数据,其求导公式变为

                            

结合批量梯度下降法和随机梯度下降法_梯度下降法_16

随机的选取第i组数据求导,可以大大减少计算量。梯度迭代的公式与上述批量梯度下降法是一样的,但随机梯度下降也有缺点,那就是容易产生误差,会'南辕北辙'     

结合批量梯度下降法和随机梯度下降法_梯度下降法_17

(a)批量梯度下降法的收敛线、

结合批量梯度下降法和随机梯度下降法_随机梯度下降_18

(b)随机梯度下降法的收敛线

        于是又有一种折中的方法,最小 批量下降法,最小批量下降法就是选择一个批次的样本数计算梯度,计算量相比于批量下降法小,但也比随机梯度更加准确,选择一个批次样本数量为batch_size=n,梯度求导公式,

                                                   

结合批量梯度下降法和随机梯度下降法_#算法_19

                                                   

结合批量梯度下降法和随机梯度下降法_随机梯度下降_10

这里的

结合批量梯度下降法和随机梯度下降法_梯度下降法_21

梯度下降会遇到的问题?

梯度下降的最终点并非是全局最小点,也可能是局部最小点。

梯度消失和梯度爆炸,后续再讨论。