正规方程的推倒

对于多元线性回归:

当样本由d个属性描述时,此时试图学得: f(xi)=wTxi+b
使得 f(xi)yi

类似的也可以利用最小二乘法来对w和b进行估计,为了便于讨论,把w和b吸入向量形式 a^=(w;b) ,相应的,把数据集D表示为一个 m×(d+1) 大小的矩阵X,其中每行对应于一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为1,即

X=x11x21xm1x12x22xm2x1dx2dxmd111=XT1XT2XTm111

再把标记也写成向量形式 y=(y1;y2;;ym)

此时需要衡量 f(x) y 之间的差别,均方误差是回归任务中最常用的性能度量,因此可让均方误差最小化,即最小二乘法

(w,b)=argmini=1m(f(xi)yi)2

现在可以得到:

w^=argminw^(yXw^)T(yXw^)

Ew^=(yXw^)T(yXw^) , 对 w^ 求导得到:

Ew^w^=2XT(Xw^y)

XTX 为满秩矩阵或正定矩阵时,令上式为0时,得到:

w^=(XTX)1XTy

矩阵求导

得到参数后就得到正规方程了。

什么时候选择正规方程

梯度下降特点:

选择合适的学习速率α,通过不断的迭代,找到W, 使得代价函数值最小

正规方程特点:

不需要选择学习速率α,不需要n轮迭代,只需要一个公式计算即可
但是并不是所有的线性回归都适合用正规方程,我们知道求解一个矩阵的逆复杂度为 O(n3) ,因此当特征维度n非常大的时候 (XTX)1 需要O(n^3)时间,此时选择正规方程效率将会特别低

当n < 1000时候选择正规方程比较合适,但是当n > 1000的时候使用梯度下降算法会是更佳的方案

参考:《机器学习》-周志华

你可能感兴趣的:(数学基础)