欢迎光临散文网 会员登陆 & 注册

最小二乘法详解 (可能)

2019-12-12 11:34 作者:nyasyamorina  | 我要投稿


在实际的测量中,测量的数据总会与真实数据存在一定误差,所以一定要多次测量。但是测量出来的数据应该怎么处理才能得到比较真实的数据呢。这就需要用到最小二乘法了。

什么是最小二乘

现在测出来了一堆数值  W0, W1, …, Wi, …,总共数据有n个,那么假设这堆数值对应的真实值为W_bar,那么W_bar应该与每个数据足够接近,这时候可以使用均方误差作为真实数据好坏的评分,均方误差表达为以下形式   (误差,平均平方


可以看出,为了使得W_bar为真实值,Loss必须为最小值。而因为是平方,可以知道Loss为最小值时,对W_bar的导数也为0,即:


这时可解得真实值W_bar,恰好为观测值Wi的平均值。值得一提的是,在多维数据也是平均值

这种使用均方误差作为损失,并求得损失最小值的方法就叫做最小二乘法

线性模型

相信很多人遇到最小二乘法是在高中数学必修三里,那么这里就来讨论一下这种情况

我们现在有一吨控制量x_i,并且有一吨相应的观察量y_i,并且y与x直接看上去存在某种像是直线的关系

假设控制量不存在误差,那么设目标模型为 y ~ kx+b 那么可以确定均方误差为:

然后Loss分别对k和b求导,有:

使两个导数都为0可以得到两个二元一次方程,可以解出k和b的值,结果就是在数学书上的结果

线性回归

上述求简单模型时十分直观并且也不算复杂,但是在较复杂模型的情况,这种办法就会变得非常繁琐

这时候就引入了线性回归到办法    *** 高维空间警告 ***

使用上面的例子,模型 y ~ kx+b 可以写为 y ~ x*k+1*b ,这时候可以把k, be 看作一个向量,而x,1看作变换矩阵,则y也对应一个向量,那么对于一吨数据xy,线性模型可以变为以下形式

可以看到这是一个低维向量[k,b]投影到高维空间中得到[y0,y1…yi…]的过程,但是左边的矩阵不能求逆,所以这是不可能求解的 (其实Loss就是上式左边的向量减右边的向量,得到新向量的模的平方)

为了求出k,b的最佳拟合值,需要把高维向量重新投影到低维空间中,而新的投影矩阵为上面矩阵的转置,得到等式:

虽然很难让人信服,但是这个等式确实可以求解的,并且求得结果也与课本上的一致。

我们就是用空间的变换去跳过了求损失Loss的步骤,但是说得那么复杂有什么用呢

通用线性回归

同样,有一吨控制值xi和一吨观察值yi,并且通过观察假定y与x之间存在以下关系:y ~ a0*f0(x) + a1*f1(x) +…+ ai*fi(x) +…, 其中f是已知的函数簇,那么为了求得最佳拟合系数a,有:

构建矩阵M:

并构建向量A,Y:

那么线性回归模型为:MA~Y

为了求解A,两端同时乘M的转置:M^T  M  A  =  M^T  Y

那么A为:


注意:手动求解A是几乎不可能的(除非你闲得没事做而且有很多钱买草稿纸),所以实际上用电脑求解才是最实际的,可以使用numpy或者matlab等工具快速求解大型矩阵

非常非常重要的注意:线性回归本质上是,利用模型把低维向量投影到高维空间,并且投影后与观察值存在误差,为了求解低维向量需要把高维空间向低维投影   也就是说,数据数量{xj, yj}必须比求解的参数{ai}多,通常来说是远远多于


第一次用手机摸专栏,所以我摸了


最小二乘法详解 (可能)的评论 (共 条)

分享到微博请遵守国家法律