梯度
梯度下降法
是一种优化代价函数J(θ0,θ1)的算法。通过不断迭代来改变参数θ0、θ1的值,直到代价函数J(θ)到达局部极小值或全局最小值。
如下图,为θ0、θ1先设置一个初始值,得到代价函数,对应到三维图中的点,求在该点处的梯度(代价函数J(θ)对两个参数求偏导),朝梯度下降方向走一步,不断重复迭代该步骤,直到走到全局最小值,此点对应的两个参数就是最终确定下来的θ0、θ1。
初始值的选取可能会影响最终结果,因此最终所得可能是全局最小值,也可能是局部极小值。
参数θ0、θ1的更新由以下公式计算
:=表示将右侧的值赋给左侧。
α学习率:需要提前设置,相当于设定了每次梯度下降的步长,学习率过小会使计算量过大,计算效率降低;过大会跳过最小值,使结果失准。因此要多次尝试调节,常以经验为准(如0.1、0.05、0.01……)
参数的更新方式有两种,应选择同步更新的方法,每次调整时同时计算θ0、θ1,同步进行更新。
用梯度下降法求解线性回归
在右侧一栏中将假设函数h(θ)带入到代价函数J(θ)中,并分别对θ0、θ1求偏导后,带入左侧一栏中,整理后可以得到两个参数θ0、θ1的更新公式:
线性回归的代价函数是凸函数(上凹下凸),只有一个全局最小值。三维凸函数图像如下所示。若对非凸函数使用梯度下降法,可能会走到局部极小值,结果可能不太理想。
多元线性回归
在多元线性回归的梯度下降法中,代价函数的定义与一元回归时相同,。
在多元线性回归的梯度下降法中,代价函数的定义、参数的更新、求导过程、学习率设定时的注意问题均与一元函数时相同。