梯度下降算法的定义
对于cost function J(θ0, θ1, ... θn),要想获取到其最小值,我们需要这么计算:
1. 从 θn 某个初始值开始,如 θ0 = 0, θ1 = 0,... θn = 0
2. 不断改变 θn 的值来减小 J(θ0, θ1, ... θn) 的值,直到我们获取到一个最小值
在不同的点沿着最快下山的路往低处走,会得到不同的最小值
梯度下降算法(以 2个参数为例)
注意,其中 θ0, θ1 是同时发生改变的
而不是像下面这样,先改变 θ0,再根据已改变的 θ0 来计算 θ1
梯度下降算法中的参数
α 为 learning rate (学习速率),控制我们以多大幅度更新 (θ0, θ1, ... θn),
如果 α 太小,只能一点点挪动,需要很多步才能达到最低点;
如果 α 太大,一步太大,梯度下降法可能会跳过最低点,导致无法收敛甚至发散
为导数项,在一个参数的线性回归问题中,可以理解为点的切线即斜率
对于固定的 α 值,梯度下降可以收敛到最小值,因为随着斜率越来越平滑,导数越来越小,
导致梯度下降的每一步越来越小,所以不需要一直减小 α 值
梯度下降举例 --- 线性回归中的梯度下降
将梯度下降算法代入到线性回归模型中,可以得到
线性回归模型:
线性回归只有一个全局最优解,没用其他局部最优解