训练方法之标准方程法

1,189 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

标准方程法是与梯度下降法功能相似的算法,旨在获取使代价函数值最小的参数θ。其原理为:在一个标准方程中求其最小值 ,对其求偏导数 令偏导值为0, 就可以得到θ

image.png

构建方程

设数据为X,X的每一行为一个数据样本,w为方程中需求解的权值,y为真实值

image.png

则Loss Function可写为:

其中(yXw)T(yXw)(y-Xw)^T(y-Xw)等于每一个样本Loss的平方值。

image.png

求偏导,令偏导为零

参考矩阵求导规则,其中对于分子布局(Numerator-layout: 分子为列向量或者分母为行向量)和分母布局(Denominator-layout: 分子为行向量或者分母为列向量)有不同的求导结果。

求偏导得:

image.png

参考矩阵求导规则展开求偏导得: image.png

令偏导为零,求得w:

image.png

存在矩阵不可逆的情况

如果矩阵不可逆,就无法求得w,主要有一下两种情况会出现矩阵不可逆的情况:

1.线性相关的特征(多重共线性)。

2.特征数据太多(样本数m≤特征数量n)

梯度下降算法VS标准方程法

当训练集百万级时,考虑使用梯度下降算法;训练集在万级别时,考虑使用标准方程法。在万到百万级区间时,看情况使用,主要还是使用梯度下降算法。

对比梯度下降法标准方程法
缺点需要选择合适的学习率,需要迭代很多个周期,只能得到最优解的近似值需要计算(XTX)(X^TX)的逆矩阵 时间复杂度大约是O(n3)O(n^3) 运算量大,当训练集很大时速度非常慢。 n是特征数量
优点当特征值非常多的时候也,可以很好的工作不需要学习率,不需要迭代,不需要特征缩放,直接解出结果,可以得到全局最优解