梯度下降小结

来源:互联网 发布:日本动画制作软件 编辑:程序博客网 时间:2024/06/05 19:06

梯度与最优化

数学上的梯度是描述一个曲线或曲面沿着某一方向的变化的情况。计算方法就是求导数。
在机器学习领域为什么要使用梯度呢?
首先这个问题要追溯到最优化的问题上面,我们在求解一个拟合函数或者求解一个类别判别函数的过程中,会面临损失函数,以及如何让这个损失函数的问题。所以梯度下降就是让损失函数最小的过程最短。可以把损失函数看成是一个超平面,沿着各个方面的梯度下降就是考察的各个特征的变化。还有一点需要说明的是:整个过程是为了求解参数的最优解。

批量梯度下降

批量梯度下降也叫作标准梯度下降,我们在求拟合函数的过程中会用到梯度下降,下面我们以求解最有拟合函数为例来讲批量梯度下降。
假设拟合函数为:
这里写图片描述

公式中theta为参数,j代表参数的个数。这个式子表示拟合函数是一个线性的,比如说f(x)=x1+x2+x3.在我们的训练数据中应该有很多的X和很多的y,其中X是一个多维度的矩阵,X={x1,x2,x3} x1即特征。这里不懂的同学可以提前学习机器学习的基本知识。我们按照一定的准则求解拟合函数,一般情况下可以采用最小二乘法损失函数来衡量函数的好坏。简单来说就是误差的一种表现形式。如下所示:

这里写图片描述

上面的式子中,m代表数据的记录数。

批量梯度下降需要运用所有的数据对每个参数求梯度。

这里写图片描述
然后我们可以定义一个学习率,来更新参数,学习率的作用就是可以加快收敛速度。

这里写图片描述

这里我们可以感受下批量梯度下降的性能,每个参数的更新都如上面的式子,当然开始时候需要给定一个初始值。直观的看可以得出,更新每个参数的过程中都需要用到所有的数据这里写图片描述代表第j个参数所对应的特征的第i个记录的值,而这里写图片描述代表第i个记录的所有的特征的值,也就是一条训练数据,表现形式是一个矩阵(也可以说向量),这里写图片描述的意义很明确,就是第i条记录对应的值。
也就是说,用到了所有的记录的所有的特征值,更新一次尚且如此,要是多更新几次,训练数据几亿条。速度可想而知了。

批量梯度下降什么时候停止呢?
这个可以设定变化阈值,比如说我们设定每个参数的变化都小于某个阈值的时候就不再更新了。

随机梯度下降

随机梯度下降就是对批量梯度下降进行数据的随机选取操作,具体来说就是在更新参数的时候,不需要所有记录的所有特征值,只需要随机的选择一个记录即可。这样就大大减少了计算量。

更新函数如下所示:
这里写图片描述

但是因为是随机选择的,致使求得的最优解可能不是全局最优解。不过即使不是全局最优解也会离全局最优解很接近。此外如果损失函数是一个凸函数的话,那么局部最优就是全局最优啦~~

批量梯度和随机梯度下降的区别

1、随机梯度计算量小,批量梯度计算大。
2、由于使用真正的梯度,批量梯度下降对于每一次权值更新经常使用比随机梯度下降大的步长。
3、如果标准误差曲面有多个局部极小值,随机梯度下降有时可能避免陷入这些局部极小值中
4、标批量梯度下降是在权值更新前对所有样例汇总误差,而随机梯度下降的权值是通过考查某个训练样例来更新的。
5、可以通过一些方法改进随机梯度下降,使得其尽可能接近全局最优解。
6、可以通过并行批量梯度下降,加快计算速度。

0 0
原创粉丝点击