Dive Into Linear Regression

翻开每一本机器学习的书,第一章都是线性回归,相信接触过机器学习或学过统计学的都对线性回归有所了解,无非就是在一个空间上有多个样本点,目标寻求一条直线尽可能拟合所有样本点,换句话说就是最小化样本点的拟合值与实际值之间的误差。
OK,那就从简单的解线性方程组开始吧!(可能会觉得过于简单,但后面一步步的推倒简直精彩!)

为了阅读起来清晰,先把问题留在开头:
1.怎么求解 A X = b AX = b AX=b(A是矩阵,X,b是向量)
2.何时X无解,且无解怎么办!
3.怎么应用到线性回归中
4.最小二乘法又是怎样?

{ x + 2 y + z = 2 3 x + 8 y + z = 12 4 y + z = 2 \begin{cases} x+2y+ z =2\\ 3x+8y+z= 12\\ 4y+z=2 \end{cases} x+2y+z=23x+8y+z=124y+z=2 对与这个方程组计算好的一眼就看出了答案,如果用矩阵表示即是

[ 1 2 1 3 8 1 0 4 1 ] \left[ \begin{array} {ccc} 1&2&1\\ 3&8&1\\ 0&4&1 \end{array} \right] 130284111 [ x y z ] \left[ \begin{array} {ccc} x\\ y\\ z \end{array} \right] xyz = [ 2 12 2 ] \left[ \begin{array} {ccc} 2\\ 12\\ 2 \end{array} \right] 2122 所以也就是 A X = b AX = b AX=b A A A也就是左边对应的矩阵,x,y,z就是我们要求的 X X X
那么问题是怎么求解?
A common method is do elimination!
具体如何消元就不详细说了,就是行之间的加减罢了(combination of rows)
[ 1 2 1 3 8 1 0 4 1 ] \left[ \begin{array} {ccc} 1&2&1\\ 3&8&1\\ 0&4&1 \end{array} \right] 130284111 -----------消元后--------> [ 1 2 1 0 2 − 2 0 0 5 ] \left[ \begin{array} {ccc} 1 &2&1\\ 0&2&-2\\ 0&0& 5 \end{array} \right] 100220125当然这不是一个最简结果(但对于我们这个问题已经足够了),消元后得到了一个上三角矩阵,记为U,所以原问题 A X = b AX = b AX=b可转换为 U X = b UX = b UX=b,很容易就可以解出 X X X
那么我们的第二个问题来了,对于所有的b,都能解出 X X X吗???

再来仔细研究一下 U U U,很明显从U中可以得知有3个主元(pivots),因此该矩阵的秩(rank)为3,(秩 = 主元数量)。进一步可以推理出 U U U是一个三维的空间(空间维度 = 秩),因此U其实表示了一整个三维的空间,注意在这里用的是空间(space),而不仅仅是 U U U中的三个列向量! X X X的作用仅仅是告诉我们对于 U U U表示的这个空间要如何线性组合, b b b是一个三维的向量,因此 b b b其实是位于三维空间内!所以只要对 U U U组合正确,结果必能得到 b b b,而 U U U是由 A A A变换而来,并不影响 A A A的性质,因此对A来说,也一定存在 X X X,要时刻记住 X X X只是表示如何组合向量,与向量本身存在的空间无关!能够使得 A X = b AX = b AX=b!
A A A的空间(列空间)怎么表示?,以知 A A A的每一列都是主列(pivots column),也就是含主元的列,所以A中的每一列都可以做为基(basis)来表示 A A A的空间:
C ( A ) = c 1 ∗ [ 1 3 0 ] + c 2 ∗ [ 2 8 4 ] + c 3 ∗ [ 1 1 1 ] C(A) =c1* \left[ \begin{array} {ccc} 1\\ 3\\ 0 \end{array} \right]+c2* \left[ \begin{array} {ccc} 2\\ 8\\ 4 \end{array} \right]+c3* \left[ \begin{array} {ccc} 1\\ 1\\ 1 \end{array} \right] C(A)=c1130+c2284+c3111
C ( A ) C(A) C(A)表示有矩阵A构成的列空间,也就是矩阵A中的向量存在的空间。
OK以上是有解的情况,那什么时候无解?
当A(A是3*3矩阵)是在二维空间上,意味这A中有一行是线性相关,通过消元后可以把一行都消零,因此实际就剩下了两个方程组三个变量,所以不是所有的b都有解。
比如以下这种情况:
A X = [ 1 2 1 3 8 1 2 4 2 ] [ x y z ] = [ b 1 b 2 b 3 ] AX =\left[ \begin{array} {ccc} 1&2&1\\ 3&8&1\\ 2&4&2 \end{array} \right]\left[ \begin{array} {ccc} x\\ y\\ z \end{array} \right] =\left[ \begin{array} {ccc} b1\\ b2\\ b3 \end{array} \right] AX=132284112xyz=b1b2b3
通过对A消元得到 U = [ 1 2 1 0 2 − 2 0 0 0 ] − > U X = x [ 1 0 0 ] + y [ 2 2 0 ] + z [ 1 − 2 0 ] U=\left[ \begin{array} {ccc} 1&2&1\\ 0&2&-2\\ 0&0&0 \end{array} \right]->UX=x\left[ \begin{array} {ccc} 1\\ 0\\ 0\end{array} \right]+y\left[ \begin{array} {ccc} 2\\ 2\\ 0 \end{array} \right]+z\left[ \begin{array} {ccc} 1\\ -2\\ 0 \end{array} \right] U=100220120>UX=x100+y220+z120,可以看到最后一行全为0,因此无论 X X X取什么什么值,当前仅当 b 3 = 0 是 才 有 解 ! b3=0是才有解! b3=0如果 b 3 b3 b3不为0,则不可能能解出 X X X(因为 b 3 = x ∗ 0 + y + 0 + z ∗ 0 b3=x*0+y+0+z*0 b3=x0+y+0+z0)
因此可以得到一个结论:对于一个 m ∗ n m*n mn的矩阵A
{ R a n k ( A ) m a x = n R a n k ( A ) m a x = n R a n k ( A ) m a x = m = n \begin{cases} Rank(A)_{max}=n \\ Rank(A)_{max}=n \\ Rank(A)_{max}=m=n \end{cases} Rank(A)max=nRank(A)max=nRank(A)max=m=n
那无解怎么办??
实际应用中,通常为了提高结果的可信度,通常方程组的个数会远大于变量的个数,因此X通常是无解的!
还记得以上将矩阵A表示的实际上是一个空间,习惯性以列为基(basis),因此也称作列空间(column space),假设已经直到对于b已经解不出来了,但一定要解出一个X,怎么办?
自然会想到找最接近真实值的X,那什么时候才能找到最优解X?
所以问题转换成找最优解X,以下记为 X ^ \hat{X} X^,前提条件是该最优解对应的 b ^ \hat{b} b^有解。
向量到一个空间最近的距离也就是将该向量投影到空间上!
假设向量 b b b在列空间 A A A上的投影为向量 p p p,向量 b b b到列空间A为向量 e e e,如图所示在这里插入图片描述
向量 e e e垂直于列空间 A A A,e垂直于矩阵A中的每一列向量,假设 A = [ ∣ ∣ a 1 a 2 ∣ ∣ ] A =\left[ \begin{array} {ccc} |&|&\\ a_1&a_2\\ |&| \end{array} \right] A=a1a2 X ^ = [ x 1 ^ x 2 ^ ] \hat{X} =\left[ \begin{array} {ccc} \hat{x_1}\\ \hat{x_2} \end{array} \right] X^=[x1^x2^],则有 p = x 1 ^ a 1 + x 2 ^ a 2 = A X ^ p =\hat{x_1}a_1+\hat{x_2}a_2=A\hat{X} p=x1^a1+x2^a2=AX^(因为 p p p是在A的空间上,可有A中向量线性组合得到). e = b − p = b − A X ^ e = b-p=b-A\hat{X} e=bp=bAX^,所以有:
{ a 1 T ( b − A X ^ ) = 0 a 2 T ( b − A X ^ ) = 0 \begin{cases} {a_1}^T(b-A\hat{X})=0\\ {a_2}^T(b-A\hat{X})=0 \end{cases} {a1T(bAX^)=0a2T(bAX^)=0
写成矩阵就是 A T ( b − A X ^ ) = 0 A^T(b-A\hat{X})=0 AT(bAX^)=0, 因此 A T A X ^ = A T b A^TA\hat{X} =A^Tb ATAX^=ATb,所以解出 X ^ = ( A T A ) − 1 A T b \hat{X}=(A^TA)^{-1}A^Tb X^=(ATA)1ATb(千万不能和数值运算一样直接除!)进一步解出 p = A X ^ = A ( A T A ) − 1 A T b p=A\hat{X}=A(A^TA)^{-1}A^Tb p=AX^=A(ATA)1ATb!

OK所有数学推倒就到此算是告一段落,记住这个 X ^ = ( A T A ) − 1 A T b \hat{X}=(A^TA)^{-1}A^Tb X^=(ATA)1ATb,下面会用另一种方法,也就是微分法(涉及最小二乘法)求解线性方程组AX = b,你会惊奇的发现结果…(反正我是高兴得站起来了哈哈)!

那怎么应用到线性回归中?
通常为了提高模型的可信度,训练样本通常要远大于特征数(体现在系数矩阵上就是行数远大于列数),方程数远大于未知量,因此不一定存在解,所以就出现了以上 A X = b AX=b AX=b无解的情况,这时以上的推倒就派上用场了!

接下来将另一种解法,也就是目前主流的最小二乘法,利用求微分的思想得到最优解:
OK接下来又是一堆的数学推倒了,在推倒之前为了方便计算定义了以下几个符号:
注: A B都是矩阵!
(1) t r A = ∑ i n A i i trA=\sum_{i}^{n}{A_{ii}} trA=inAii(对角线之和)
t r ( A B ) = t r ( B A ) tr(AB)=tr(BA) tr(AB)=tr(BA)
t r ( A B C ) = t r ( C A B ) = t r ( B C A ) tr(ABC)=tr(CAB)=tr(BCA) tr(ABC)=tr(CAB)=tr(BCA)

(2)假设f(A) = t r ( A B ) tr(AB) tr(AB)
∂ f ∂ A = ∂ t r ( A B ) ∂ A \frac{\partial{f}}{\partial{A}} =\frac{\partial{tr(AB)}}{\partial{A}} Af=Atr(AB)

(3) t r A T = t r A trA^T=trA trAT=trA
(4)if a∈R, tra = a
(5) ∂ t r ( A B A T C ) ∂ A = C A B + C T A B T \frac{\partial{tr(ABA^TC)}}{\partial{A}} =CAB+C^TAB^T Atr(ABATC)=CAB+CTABT
具体推倒就不推了,能推到天亮。。。。。
接下来就是线性回归的推倒:
假设 Θ = [ θ 1 , θ 2 , θ 3 , θ 4 , . . . . , θ m ] Θ=[θ_1,θ_2,\theta_3,\theta_4,....,\theta_m] Θ=[θ1,θ2,θ3,θ4,....,θm], X = [ x ( 1 ) T , x ( 2 ) T , x ( 3 ) T , … … , x ( n ) T ] X = [x^{(1)^T},x^{(2)^T},x^{(3)^T},……,x^{(n)^T}] X=[x(1)T,x(2)T,x(3)T,,x(n)T],其中 x ( i ) T x^{(i)^T} x(i)T代表第i组数据, x ( i ) T = [ x 1 ( i ) T , x 2 ( i ) T , x 3 ( i ) T , … … , x m ( i ) T ] ; x^{(i)^T}=[x^{(i)^T}_1,x^{(i)^T}_2,x^{(i)^T}_3,……,x^{(i)^T}_m]; x(i)T=[x1(i)T,x2(i)T,x3(i)T,,xm(i)T]; y = [ y ( 1 ) , y ( 2 ) , y ( 3 ) , … … , y ( n ) ] ; y=[y^{(1)},y^{(2)},y^{(3)},……,y^{(n)}]; y=[y(1),y(2),y(3),,y(n)]; y i y^i yi代表第i个数据的真实标签;
Θ X = [ θ 1 x 1 ( 1 ) + θ 2 x 2 ( 1 ) + … … + θ m x m ( 1 ) θ 1 x 1 ( 2 ) + θ 2 x 2 ( 2 ) + … … + θ m x m ( 2 ) θ 1 x 1 ( 3 ) + θ 2 x 2 ( 3 ) + … … + θ m x m ( 3 ) … … θ 1 x 1 ( n ) + θ 2 x 2 ( n ) + … … + θ m x m ( n ) ] = [ h θ ( x 1 ) h θ ( x 2 ) h θ ( x 3 ) … … h θ ( x n ) ] ΘX=\left[ \begin{array} {ccc} \theta_1x^{(1)}_1+\theta_2x^{(1)}_2+……+\theta_mx^{(1)}_m\\ \theta_1x^{(2)}_1+\theta_2x^{(2)}_2+……+\theta_mx^{(2)}_m\\ \theta_1x^{(3)}_1+\theta_2x^{(3)}_2+……+\theta_mx^{(3)}_m\\ ……\\ \theta_1x^{(n)}_1+\theta_2x^{(n)}_2+……+\theta_mx^{(n)}_m\\ \end{array} \right]=\left[ \begin{array} {ccc} h_θ(x^1)\\ h_θ(x^2)\\ h_θ(x^3)\\ ……\\ h_θ(x^n)\\ \end{array} \right] ΘX=θ1x1(1)+θ2x2(1)++θmxm(1)θ1x1(2)+θ2x2(2)++θmxm(2)θ1x1(3)+θ2x2(3)++θmxm(3)θ1x1(n)+θ2x2(n)++θmxm(n)=hθ(x1)hθ(x2)hθ(x3)hθ(xn)
Θ X − y = [ h θ ( x 1 ) − y ( 1 ) h θ ( x 2 ) − y ( 2 ) h θ ( x 3 ) − y ( 3 ) … … h θ ( x n ) − y ( n ) ] ΘX - y=\left[ \begin{array} {ccc} h_θ(x^1)-y^{(1)}\\ h_θ(x^2)-y^{(2)}\\ h_θ(x^3)-y^{(3)}\\ ……\\ h_θ(x^n)-y^{(n)}\\ \end{array} \right] ΘXy=hθ(x1)y(1)hθ(x2)y(2)hθ(x3)y(3)hθ(xn)y(n)
最小二乘法得到代价函数(具体看线性回归的概率解释) J ( Θ ) = 1 / 2 ∑ i n [ h θ ( x i ) − y i ] 2 J(Θ)=1/2\sum_i^n[{h_\theta(x^i)-y^i}]^2 J(Θ)=1/2in[hθ(xi)yi]2;
写成矩阵的形式就是: J ( Θ ) = 1 / 2 ( Θ X − y ) T ( Θ X − y ) J(Θ)=1/2(ΘX-y)^T(ΘX-y) J(Θ)=1/2(ΘXy)T(ΘXy)
目的求J(Θ)最小值,也就是使得误差最小, ∇ θ J ( Θ ) = 0 \nabla_{θ}J(Θ) = 0 θJ(Θ)=0
∇ θ J ( Θ ) = 1 / 2 ∗ ∇ θ 1 / 2 ( Θ X − y ) T ( Θ X − y ) \nabla_{θ}J(Θ)=1/2*\nabla_{θ}1/2(ΘX-y)^T(ΘX-y) θJ(Θ)=1/2θ1/2(ΘXy)T(ΘXy)
= 1 / 2 ∇ θ ( Θ T X T X Θ − Θ T X T y − y T X Θ + y T y ) =1/2\nabla_{θ}(Θ^TX^TXΘ-Θ^TX^Ty-y^TXΘ+y^Ty) =1/2θ(ΘTXTXΘΘTXTyyTXΘ+yTy)
真的要推这个公式吗,我有点犹豫了。。。
好吧推一下吧;
y T y y^Ty yTy于Θ无关,因此 ∇ θ y T y \nabla_{θ}y^Ty θyTy=0;
所以
∇ θ J ( Θ ) = 1 / 2 ∇ θ ( Θ T X T X Θ − Θ T X T y − y T X Θ ) \nabla_{θ}J(Θ)=1/2\nabla_{θ}(Θ^TX^TXΘ-Θ^TX^Ty-y^TXΘ) θJ(Θ)=1/2θ(ΘTXTXΘΘTXTyyTXΘ)
= 1 / 2 [ ∇ θ t r ( Θ Θ T X T X ) − ∇ θ t r ( Θ T X T y ) − ∇ θ t r ( y T X Θ ) ] =1/2[\nabla_{θ}tr(ΘΘ^TX^TX)-\nabla_{θ}tr(Θ^TX^Ty)-\nabla_{θ}tr(y^TXΘ)] =1/2[θtr(ΘΘTXTX)θtr(ΘTXTy)θtr(yTXΘ)]
又因为 t r A = t r A T trA = trA^T trA=trAT,所以
∇ θ J ( Θ ) = 1 / 2 [ ∇ θ t r ( Θ Θ T X T X ) − ∇ θ t r ( y T Θ X ) − ∇ θ t r ( y T X Θ ) ] \nabla_{θ}J(Θ)=1/2[\nabla_{θ}tr(ΘΘ^TX^TX)-\nabla_{θ}tr(y^TΘX)-\nabla_{θ}tr(y^TXΘ)] θJ(Θ)=1/2[θtr(ΘΘTXTX)θtr(yTΘX)θtr(yTXΘ)]

接下来有个小小的trick: ∇ Θ t r ( Θ Θ T X T X ) = ∇ Θ t r ( Θ e Θ T X T X ) \nabla_{Θ}tr(ΘΘ^TX^TX)=\nabla_{Θ}tr(ΘeΘ^TX^TX) Θtr(ΘΘTXTX)=Θtr(ΘeΘTXTX),
e是单位向量,这时候把 X T X 当 成 一 个 整 体 C X^TX当成一个整体C XTXC
满足了 ∇ θ t r ( Θ e Θ T X T X ) = X T X Θ e + X T X Θ e T \nabla_{θ}tr(ΘeΘ^TX^TX)=X^TXΘe+X^TXΘe^T θtr(ΘeΘTXTX)=XTXΘe+XTXΘeT
= X T X Θ + X T X Θ X^TXΘ+X^TXΘ XTXΘ+XTXΘ
∇ θ t r ( y T X Θ ) = X T y \nabla_{θ}tr(y^TXΘ)=X^Ty θtr(yTXΘ)=XTy,由 ∇ A t r ( A B ) = B T \nabla_{A}tr(AB)=B^T Atr(AB)=BT得到!

所以 ∇ θ J ( Θ ) \nabla_{θ}J(Θ) θJ(Θ)可以改写为 1 / 2 ( X T X Θ + X T X Θ − X T y − X T y ) 1/2(X^TXΘ+X^TXΘ-X^Ty-X^Ty) 1/2(XTXΘ+XTXΘXTyXTy)
∇ θ J ( Θ ) = 0 \nabla_{θ}J(Θ)=0 θJ(Θ)=0,则 X T X Θ = X T y X^TXΘ=X^Ty XTXΘ=XTy
解得 Θ = ( X T X ) − 1 X T y Θ=(X^TX)^{-1}X^Ty Θ=(XTX)1XTy
惊喜吗,意外吗,hhhhhhhhhhh
这和我们前面解得的结果一模一样;简直了!!!
这里有个小小的问题,为什么 ( X T X ) − 1 不 写 成 X − 1 ( X T ) − 1 (X^TX)^{-1}不写成X^{-1}(X^T)^{-1} (XTX)1X1(XT)1,那这样 Θ = ( X T X ) − 1 X T y = X − 1 y Θ=(X^TX)^{-1}X^Ty=X^{-1}y Θ=(XTX)1XTy=X1y?
( X T X ) − 1 = X − 1 ( X T ) − 1 (X^TX)^{-1}=X^{-1}(X^T)^{-1} (XTX)1=X1(XT)1仅当X是可逆方阵才成立,还记得 X X X代表什么吗, X X X是一个样本集,通常情况下样本数远大于特征数(也就是函数远大于列数),所以X不可能是方阵,因此上式也就不成立了!
其实这在第一个投影的证明中的最后一个式子也是这个原理,当A是可逆方阵时,说明b必定存在于X的空间上,因此对b的投影仍然在A的空间上!

小小的总结:
无论是投影还是求微元,实际上都是求一个近似解使得误差最小,但通过投影的方法其实能够更好的理解线性代数的精髓,不得不吹一下mit的线代,天哪太厉害了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值