斯坦福公开课——机器学习课程(二)

引言

继上一篇文章。上一篇文章是第一周的内容。后面还有一些矩阵基础知识我没记录。这一篇是第二周的内容。


更有效的线性回归模型

当你的模型参数不止两个的时候,就需要更有效地模型表示方法了。用上标表示第几个训练实例,用下标表示第几个模型参数。对于每一个实例都有(x0=1):

对应的梯度下降算法的更有效的写法为(x0=1):


梯度下降中的特殊技巧

保证不同的特征值在相同的范围之内

如果你有多个特征值,将这些特征值缩放至同一范围之内,会有效的增加收敛的速度和几率。

个人理解,根据下面这个图来看:


如果两个模型参数的值不在一个范围内,而学习率又是一定的,就会导致更新的时候,在不同的方向上的更新步长分量,在各自的方向上就会显得偏大或者偏小,导致震荡或者慢收敛。

进行缩放之后这个圈就会更圆一点。


缩放的一种技巧是把一个特征值都除以这个特征值的最大值,就会将这个特征值都缩小至[0,1]的区间范围内。一般而言是缩放到[-1,1]区间左右。不能大太多,也不能小太多。总而言之就是不要差太多。

当然上面这个缩放方法,在出现极端离群值的时候,就会出现问题。数据不均匀的时候,也会略微有点问题。

均值归一化

让模型参数的均值处在0左右。公式类似于这样:


其实这两个做法的目的都是,将变量,也就是模型参量转换到相近的取值范围之内,而且这样并不会影响模型的收敛和准确行。

学习率

学习率和算法收敛:画出代价函数和迭代次数的关系图,如果一直在下降,最后基本保持不变,就证明是收敛的。

有的问题可能需要少的步数就可以收敛,而有的却需要很多。

如果学习率太大会导致不收敛,太小会导致收敛太慢。

学习率的选择,可以先从0.001,0.01,0.1,1之间选选看,可以得到一个大致的区间,然后再选中间的0.003,0.03,0.3这样,乘以三来选。

特征值选择

关于特征值,你完全可以选择一个符合特征值。就是从已有的特征值里面选取几个进行组合,形成一个新的特征值。

拿房价为例,你有房子的宽,房子的长,你完全可以用长乘以宽变成面积这样一个特征值,而不是拆成长和宽两个。

多项式回归

通过将多项式中的不同次方看成不同的特征值,就可以将多项式回归转换成线性回归,于是就可以解了。


这样做的时候,归一化会显得更加重要!


正规方程法

相比较于梯度下降法求解最好的模型参量,还有一种正规的数学方法来求解。毕竟这是一组数学方程式,肯定可以用数学的方法来求解解析解,这就是正规方程法。

具体的数学推导就略过了,求解的方法就是:


后记

加油加油~~~~