吴恩达机器学习课程笔记:梯度下降法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.吴恩达机器学习课程笔记梯度下降法

吴恩达机器学习课程笔记梯度下降法

仅作为个人学习笔记若各位大佬发现错误请指正

上一篇中我们得到了代价函数那么我们该如何找到代价函数的最小值从而得到模型的最优参数本篇中提到的梯度下降法就为此提供了方法与途径

梯度下降法不仅仅用于线性回归定义的代价函数的最小化其实可被广泛用于机器学习的其他领域用它来最小化任意函数

以两个参数为例
代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)
我们的目标是最小化代价函数 m i n θ 0 , θ 1 J ( θ 0 , θ 1 ) \mathop{min}\limits_{\theta_0,\theta_1}J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)

步骤
1.设定两个参数的初始值
2.持续调整两个参数的值直到找到代价函数值最小时对应的一组参数值

在步骤1中若选定的参数初始值不同可能会得到不同的局部最优值而我们需要的是全局最优解我们要采取其他方法来防止局部最优这方面以后再来学习

观察下面动图右侧等高线图中每一个点代价函数值对应一组值两个参数的值在梯度下降过程中假设函数蓝色线对样本数据的拟合效果越来越好

关于梯度
笔者之前在学习高等数学时也写过相关笔记–方向导数和梯度向量

梯度的本意是一个向量矢量表示某一函数在该点处的方向导数沿着该方向取得最大值即函数在该点处沿着该方向此梯度的方向变化最快变化率最大为该梯度的模。–摘自梯度

类比现实中的例子高山流水水所流的方向就是梯度方向在梯度方向上能够最快速度到达山底最优解的地方

梯度下降算法描述
以含有两个参数的代价函数为例对此二元函数分别对两个参数求偏导得到梯度梯度告诉了我们该往哪里走学习率 α \alpha α告诉了我们一步走多大

注意两个参数需要同步迭代更新比如上图中右下角就不是同步更新因为它在更新完 θ 0 \theta_0 θ0后又去执行第三行这会导致第三行中的代价函数参数 θ 0 \theta_0 θ0发生变化此时第一行和第二行中的代价函数就不一致了也就不是同步更新了

为什么要保持同步更新呢
个人认为如果如上述右下角的不同步更新就意味着会先沿着某个参数的梯度方向往下走一步到了下一步后再沿着另一个参数的梯度方向往下走一步走出类似折线的路径这种方式并不是梯度下降法的真正含义会比真实梯度下降法慢

接下来我们来直观地看一下导数项
假设代价函数只含一个参数

当导数项大于0正斜率那 θ 1 − α ⋅ ( positive num ) \theta_1-\alpha\cdot(\text{positive}\ \text{num}) θ1α(positive num)得到一个小于 θ 1 \theta_1 θ1的值将此值赋给 θ 1 \theta_1 θ1向左移动至此完成对 θ 1 \theta_1 θ1的更新

学习率太大或太小会有什么影响
学习率太小则会导致梯度下降很慢

学习率太大则可能会出现发散
可能在快到最优值的地方由于步长太大一下子跨过最优值的地方了【步长由学习率×导数的结果决定】

即便学习率为固定值梯度下降法也最终会收敛到局部最优解因为随着不断的更新移动的幅度也在慢慢减小学习率×导数以下图来解释由于切线斜率慢慢减小所以导数也在慢慢减小导致学习率×导数也在慢慢减小所以移动的步长也在慢慢减小

我们来看看代价函数含有两个参数的情况



梯度下降法Gradient Descent也叫批量梯度下降Batch Gradient Descent即每一步梯度下降都会遍历所有训练集中的样本数据。
如果每一步梯度下降都只遍历训练集中样本数据的一个子集则这种方法叫小批量梯度下降Mini-Batch Gradient Descent
如果每一步梯度下降随机选取训练集中的一个样本数据进行梯度下降则这种方法叫做随机梯度下降Stochastic Gradient Descent

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习