机器学习—线性回归之梯度下降法

什么是梯度下降法

顺着梯度下滑,找到最陡的方向,迈一小步,然后再找当前位,置最陡的下山方向,再迈一小步…


机器学习—线性回归之梯度下降法_第1张图片
机器学习—线性回归之梯度下降法_第2张图片

通过比较以上两个图,可以会发现,由于初始值的不同,会得到两个不同的极小值,所以权重初始值的设定也是十分重要的,通常的把W全部设置为0很容易掉到局部最优解,一般可以按照高斯分布的方式分配初始值。
其实梯度下降非常容易理解,如果将损失函数的分布简化理解成一张凹凸不平的曲面,那么梯度下降的过程就有点像我们郊游爬到山顶后下山的过程,如果我想要最快地到达山脚,那么我就要尽量地选择路面更陡的路线;梯度下降也相似,如果损失函数要尽快地找到一个最小值(暂且先不管是局部最小还是全局最小),那么参数就要沿着损失函数梯度的方向变化,每一步的变化都是沿着当前位置的梯度方向。循环迭代,如果当损失函数变化很小并趋近于收敛,那么我们可以把当前位置近似看作是一个最小值位置,最终得到的参数向量就是我们线性回归模型的最终参数。

梯度下降法是按下面的流程进行的:
1)首先对赋值,这个值可以是随机的,也可以让是一个全零的向量。
2)改变的值,使得按梯度下降的方向进行减少。

机器学习—线性回归之梯度下降法_第3张图片

对于只有两维属性的样本,J()即J(0, 1)的等高线图

机器学习—线性回归之梯度下降法_第4张图片

机器学习—线性回归之梯度下降法_第5张图片

利用梯度下降法,逐步最小化损失函数,找准梯度下降方向,即偏导数的反方向,每次前进一小步,直到收敛。


迭代更新的方式有多种

  • 批量梯度下降(batch gradient descent),也就是是梯度下降法最原始的形式,对全部的训练数据求得误差后再对进行更新,优点是每步都趋向全局最优解;缺点是对于大量数据,由于每步要计算整体数据,训练过程慢;
  • 随机梯度下降(stochastic gradient descent),每一步随机选择一个样本对进行更新,优点是训练速度快;缺点是每次的前进方向不好确定,容易陷入局部最优;
  • 微型批量梯度下降(mini-batch gradient descent),每步选择一小批数据进行批量梯度下降更新,属于批量梯度下降和随机梯度下降的一种折中,非常适合并行处理。

你可能感兴趣的:(机器学习—线性回归之梯度下降法)