机器学习学习笔记(三)

把一个参数的情形推广到两个参数,每个\(\theta_0\)都对应一组J与\(\theta_1\),表现在坐标图上呈现出一个碗状图形

upload successful * * *

用了等高线的概念来理解这个图,可以做出它的“等高图”(轮廓图,contour figure)

upload successful

横坐标与纵坐标便代表了两个参数,不同的圆弧代表了不同的代价函数值。

发现通过不断地降低J的值,可以得到更好的预测函数的拟合。

upload successful
upload successful

upload successful * * *

梯度下降

为了让J尽可能的小,因此要同时考虑\(\theta_1\)\(\theta_0\)的值。如果\(\theta_1\)保持不动,\(\theta_0\)就要往得到更小J的方向取值,反之亦然。可以理解成人站在山坡上,一步一步地向地势低的地方走,最终会到达“局部最低点”(local minimum)。

upload successful

于是可以看到,影响这个过程的有几个因素:起始的位置,每步的步长和每个点的某方向上的斜率。

upload successful

发现不同的起始位置可能会到达不同的局部最小值。因为这种“下山”的方式不是全面的,没有测算两个参数的所有情况。


回到只有一个参数的情况上看。

\(\theta_1:=\theta_1-\alpha\frac{d}{d\theta_1}J(\theta_1)\)( := 符号代表赋值)

\(\theta_1\)连续不断地减去当时的斜率与步长(合适的步长)的乘积,会向局部最小值滑动(可用高数证明),越接近局部最小值斜率就越小,值移动的就越慢,最后无限趋近到达导数为0的点。

upload successful

当步长的取值过大时,\(\theta_1\)有可能直接滑过局部最小值而到了极值点的另一侧,此时导数符号反转,与上面的趋近最小值的过程刚好相反,\(\theta_1\)越来越远离这个点。

upload successful

但是当步长取值过小时,找到局部最小值的过程会变得太过漫长,效率低下 by the way,如果起始点一开始就在一个极小值点上时,其导数为0,它不再会发生变化

为了得到收敛值,可列出如下算式。

upload successful

带入原式得

upload successful

这就是梯度下降算法。


梯度下降算法能得到一个局部最优解,而对于线性回归问题来说,它的坐标图形是碗状的,只有一个最低点,因此用梯度下降法得到的点就是线性回归问题的全局最低值,使J最小,即全局最优解。

梯度下降算法一定是两个参数同时下降才能达到效果