代数形式
最小二乘法在中学时讲过。有一些散点有线性的趋势,用一个一次函数去拟合,使得差距最小化。

假设数据点为 (x1,y1),(x2,y2),…,(xm,ym) ,使用如下一次函数去拟合:
y=w1x+w0
对于 xi ,采用上述函数计算出的结果记为 yi^ ,即:
yi^=w1xi+w0
定义差距为:
i=1∑m(yi−yi^)2
现需要最小化这个差距。显然,上式为关于 w_0 和 w_1 的函数(损失函数)。为了方便,将 ∑_i=1m 简记为 ∑ ,记:
f(w0,w1)=∑(yi−yi^)2=∑(yi−(w1xi+w0))2=∑(yi2−2yixiw1−2yiw0+xi2w12+w02+2xiw0w1)
分别对 w0,w1 求偏导:
∂w0∂f∂w1∂f=∑(−2yi+2w0+2xiw1)=−2∑yi+2mw0+2w1∑xi=∑(−2xiyi+2xi2w1+2w0xi)=−2∑xiyi+2w1∑xi2+2w0∑xi
令:
∂w0∂f∂w1∂f=0=0
得:
mw0+w1∑xiw1∑xi2+w0∑xi=∑yi=∑xiyi
联立上面两式可得:
w0w1=(∑xi)2−m∑xi2∑xi∑xiyi−∑yi∑xi2=(∑xi)2−m∑xi2∑xi∑yi−m∑xiyi
注意, ∑xi2=(∑xi)2 ,计算时要细心。
矩阵形式
记 X 为 m×n 的矩阵,表示有 m 个样本点,特征维数为 n 维; y 为 m 维列向量,表示这 m 个样本点的实际值; y^ 为 m 维列向量,表示这 m 个样本点的估计值; w 为 n 维列向量,且:
y^=Xw
则:
y−y^=y−Xw
上式的结果是一个列向量,而我们需要的是其平方和。根据矩阵乘法的定义,损失函数为:
f(w)=(y−Xw)T(y−Xw)
现要求 ∂w∂f ,可 w 是个向量呀,这个该怎么求呢?
预备知识
【实数值函数对向量求导】
∂x∂f=[x1∂fx2∂f…xn∂f]
其中, x=[x1,x2,…,xn]T 为 n 维列向量, f 是 x 上 ℜn→ℜ 的函数(也就是, f 的输入是 n 维列向量,输出是实数)
【向量值函数对向量求导】
∂x∂y=∂x1∂y1∂x1∂y2⋮∂x1∂ym∂x2∂y1∂x2∂y2⋮∂x2∂ym……⋱…∂xn∂y1∂xn∂y2⋮∂xn∂ym
即:
(∂x∂y)ij=∂xj