用于线性回归的梯度下降
加2的原因就是让求导之后的式子更加简洁
这就是线性回归的梯度下降算法,重复执行这些步骤,更新w和b,直到收敛
f(x)是个线性回归模型,f(x)=wx+b,两个式子的后半部分分别是代价函数对w的导数和对b的导数,希望在每一步同时更新w和b
梯度下降可以导向局部最小值,而不是全局最小值,上图的代价函数J具有多个局部最小值,通过初始化不同参数的w和b,可以得到不同的局部最小值,
但是在线性回归中使用误差平方代价函数时,由于它是碗状的,所以代价函数不会有多个局部最小值,只有一个全局最小值,该代价函数是个凸函数,当对凸函数进行梯度下降时,只要学习率选择合适,最后总是收敛于全局最小值,
运行梯度下降
左上角是模型和数据图,右上角是代价函数的等高线,底部是代价函数的曲面图
通常w和b都被初始化为0,这个演示让w=-0.1,b=900
随着梯度算法不断拟合,右上角点越来越靠近J=0的点,左上角的线越来越拟合,直到达到全局最小
准确的说,这是批量梯度下降,批量梯度下降指的是每一步的梯度下降,都会考虑所有的训练样本,而不仅仅是训练数据的一个子集,考虑的时所有样本差平方总和最小,也有其他的梯度下降算法,在每个更新步骤中查看小一点的训练数据子集。