梯度下降算法
梯度下降算法可以将代价函数J最小化,它不仅被用在线性回归上,实际上被广泛的应用于机器学习领域中的众多领域,在后面课程中,为了解决其他线性回归问题,我们也将使用梯度下降法最小化其他函数。
梯度下降公式
此公式中j为0和1;参数α为学习速率,控制每一步的大小;α后面式子表示对成本函数求导,切线的斜率是这一点的导数,它会给我们一个方向,我们沿着最陡下降的方向逐步降低成本函数。
重复计算θ0和θ1,直到收敛。
选择不同的起点,可能会得到不同的局部最优解,如图:
每次迭代j,应该同时更新θ0和θ1,如图:
参数α的设置
如果α设置过小,则梯度下降太慢;如果α设置过大,则可能导致不收敛甚至发散。
迭代梯度下降,斜率逐渐变小,所以即时固定参数α,梯度下降算法也会自动使用越来越小的步长下降,直到收敛。
将线性回归损失函数代入梯度下降公式,求解微分项,得出一元线性回归的梯度下降公式。不要求会求解微分项,记住最终公式即可。
线性回归模型使用梯度下降算法,只有一个全局最优解,没有局部最优解。