Cost function(代价函数)&Gradient descent(梯度下降)
1.Cost function
1.1 How to choose parameters?
接上节内容,我们希望通过选择更合适的参数让假设函数h(x),更好的拟合数据点。
平方误差代价函数是解决回归问题最常用的手段,而我们也需根据问题不同选择合适的代价函数。
1.2 Examples of simplified cost function(one parameter)
最后,通过选择不同的θ,得到不同的假设函数值;计算平方误差和后,得到一条关于θ的曲线,求其最小值便得到拟合最好结果。
1.3 Two parameters
而这个三维的代价函数图像亦可用等高线图(contour plots)来表示:
可以看到不同的θ取值可能得到相同的J(θ)函数值,那么将这些相同函数值的点用同色表示,来代表等高。
那么如何来找到这组参数下的代价函数的最小值,需要用到梯度下降算法。
2.Gradient descent
2.1 outline
梯度下降算法可应用于除线性回归问题以外的更广范围,可以是更多参数的问题。
其思路大概是:设定两个参数的初值(通常为0),通过不断小幅调整两个参数,来使得J(θ)函数值更小,直到找对最小值或局部最小值。
其特点是:根据初始位置的不同,梯度下降算法可能会引至不同的局部最优解(local optimum)
需注意的是,我们应实现同步更新的过程(上图左下),而不是每次计算分别代入更新后的θ值(上图右下)。
而上方的迭代公式中,":="代表赋值符号而不是判定符号,"α"是学习率,也即每次迭代的下降步长。
2.2 Summary of gradient descent
(1)理解这个公式的含义:α是学习率也即步长控制,用以控制并调节梯度下降中每一步的参数自变量变化程度(增加或减少),而右侧偏导式控制梯度下降的方向,也即参数自变量递加或递减的方向。
在线性函数中,这个式子的偏导部分为一阶导,也即斜率,这样可以直观地明白梯度下降算法公式中的组成部分的含义。最终当导数为0时,也即下降到了最小值点,参数自变量便不再更新了。
需要注意的是α的选择,太小会使下降速率太慢,太大则有可能越过最优解,甚至导致全局发散无法收敛到目标最优解的情况。
梯度下降算法会自动调节步长(随着向局部最优解附近靠近,导数值是不断减小趋于0的),所以不必每次调整α的数值来控制步长的缩减。
2.3 Gradient descent for linear regression
将上图右侧的代价函数J代入左侧梯度下降算法公式 有:
得到了下图的应用于线性回归的梯度下降公式:
线性回归问题是一个全局凸函数,也就是说,不存在局部最优结果,梯度下降的最终结果会收敛到全局最优解。
下面用一组图例,显示这个收敛过程:
可以看出,梯度下降算法使得函数与实际数据的拟合程度越来越好。
这个梯度下降算法被称为Batch Gradient descent,原因是每一次梯度下降都对整个数据集样本进行遍历,计算偏导数时也计算的是数据集的总和。