ML学习笔记——梯度下降

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27124771/article/details/81462706

引言:上一节的线性回归中,当得到了一个目标函数后,需要求解 θ ,但是 θ 并不一定可解,这时就引出了梯度下降的方法。

机器学习的套路是交给机器一堆数据,然后告诉它什么样的学习方式是正确的(目标函数),然后让它朝着这个方向去做。

目标函数定义为此公式,其中m代表样本个数,前面的系数不影响结果。

J ( θ 0 , θ 1 ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2

目标:梯度下降的目的是寻找山谷的最低点,也就是目标函数的终点(什么样的参数能使得目标函数达到极值点)。



下山共分为三步,不断迭代更新参数,最终达到目标函数的极值点。
- 找到当前最合适的方向(偏导)
- 沿着方向走一小步
- 按照方向与步伐更新参数

梯度下降根据选取样本数量的不同,分为批量梯度下降、随机梯度下降与小批量梯度下降。

1、批量梯度下降
Batch Gradient Descent(BGD),是梯度下降的最原始形式,在更新每一个参数使都是用所有的样本进行计算,也就是说上面公式中的m即为所有样本的个数。

扫描二维码关注公众号,回复: 3227658 查看本文章
J ( θ ) θ j = 1 m i = 1 m ( y i h θ ( x i ) ) x j i

θ j = θ j + 1 m i = 1 m ( y i h θ ( x i ) ) x i j

优点:容易得到最优解
缺点:当样本数目很多时,训练过程会很慢

2、随机梯度下降
Stochastic Gradient Descent(SGD),在更新每一个参数时都是用一个样本进行更新,也就是说m等于1。

θ j = θ j + ( y i h θ ( x i ) ) x i j

优点:迭代速度快
缺点:噪音多,不一定每次都朝着收敛的方向

3、小批量梯度下降
Mini-batch Gradient Descent(MBGD),更新每一参数时都是用一部分样本来进行更新,克服上面两种方法的缺点,同时又兼顾两种方法的缺点。

θ j = θ j α 1 10 k = i i + 9 ( h θ ( x ( k ) ) y ( k ) ) x i ( k )

若样本量较小,采用批量梯度下降算法;若样本量较大,或者在线算法,使用随机梯度下降算法;实际的一般情况,采用小批量梯度下降算法。

猜你喜欢

转载自blog.csdn.net/qq_27124771/article/details/81462706