机器学习笔记(2)---监督学习之正规方程

  • 前言
  • 正规方程
    • 公式推导

前言

本机器学习笔记是跟着原斯坦福大学吴恩达老师cs229课程学习后做的课后笔记。每次课程都会涉及到很多数学知识,我在记录课程核心内容的同时,会把数学基础知识在其它博文中单独记下,并在《机器学习笔记》系列博文中用到时给出链接。
笔记都是按照本人的理解去写的,给出的数学基础知识也只是本人薄弱的地方,并不适合所有人。如有问题欢迎给我留言。
数学公式使用Letex编辑,原文博客http://blog.csdn.net/rosetta

正规方程

上一节梯度下降法可以计算出能使 j j 最小化的 θ θ 值。另外还有一种能计算出使 j j 最小化的 θ θ 值的方法叫正规方程(Normal Equations),这种算法会更精确,并且不需要像梯度下降法一样需要迭代。
本节课需要用到大量的数学知识,主要是矩阵矩阵求导向量梯度等数学概念,由于毕业后都数学都忘完了,为了搞清楚这些东西,花了好长一段时间,后续我会整理相关基础,下面先开始使用正规方程推导 θ θ 的过程。
先定义设计矩阵design matrix X X mn m ∗ n 大小的矩阵,它表示训练样本,

X=x(1)Tx(2)T x(m)T X = ⟮ − x ( 1 ) T − − x ( 2 ) T − ⋮   − x ( m ) T − ⟯

定义 y⃗  y → m m 维向量,它包含所有训练集中的目标结果值
y⃗ =y(1)y(2)y(m) y → = ⟮ y ( 1 ) y ( 2 ) ⋮ y ( m ) ⟯

Xθ=x(1)Tθx(2)Tθx(m)Tθ=hθ(x(1))hθ(x(2))hθ(x(m)) X θ = ⟮ x ( 1 ) T θ x ( 2 ) T θ ⋮ x ( m ) T θ ⟯ = ⟮ h θ ( x ( 1 ) ) h θ ( x ( 2 ) ) ⋮ h θ ( x ( m ) ) ⟯

所以
Xθy⃗ =hθ(x(1))y(1)hθ(x(2))y(2)hθ(x(m))y(m) X θ − y → = ⟮ h θ ( x ( 1 ) ) − y ( 1 ) h θ ( x ( 2 ) ) − y ( 2 ) ⋮ h θ ( x ( m ) ) − y ( m ) ⟯

对于向量 z z ,有公式 zTz=iz2i z T z = ∑ i z i 2 ,所以:
12(Xθy⃗ )T(Xθy⃗ )=12i=1m(hθ(xi)y(i))2=J(θ) 1 2 ( X θ − y → ) T ( X θ − y → ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y ( i ) ) 2 = J ( θ )

为了求出最小的 θ θ ,需使 θJ(θ)=0⃗  ▽ θ J ( θ ) = 0 → ,则:
θJ(θ)=========θ12(Xθy⃗ )T(Xθy⃗ )12θ[(θTXTy⃗ T)(Xθy⃗ )]12θ(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )12θtr(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )12θtr(θTXTXθy⃗ TXθy⃗ TXθ+y⃗ Ty⃗ )12θtr(θθTXTXy⃗ TXθy⃗ TXθ+y⃗ Ty⃗ )12θ[tr(θθTXTX)2tr(y⃗ TXθ)]12(XTXθ+XTXθ2XTy⃗ )XTXθXTy⃗ (1)(2)(3)(4)(5)(6)(7)(8)(9) (1) ▽ θ J ( θ ) = ▽ θ 1 2 ( X θ − y → ) T ( X θ − y → ) (2) = 1 2 ▽ θ [ ( θ T X T − y → T ) ( X θ − y → ) ] (3) = 1 2 ▽ θ ( θ T X T X θ − θ T X T y → − y → T X θ + y → T y → ) (4) = 1 2 ▽ θ t r ( θ T X T X θ − θ T X T y → − y → T X θ + y → T y → ) (5) = 1 2 ▽ θ t r ( θ T X T X θ − y → T X θ − y → T X θ + y → T y → ) (6) = 1 2 ▽ θ t r ( θ θ T X T X − y → T X θ − y → T X θ + y → T y → ) (7) = 1 2 ▽ θ [ t r ( θ θ T X T X ) − 2 t r ( y → T X θ ) ] (8) = 1 2 ( X T X θ + X T X θ − 2 X T y → ) (9) = X T X θ − X T y →

式子9就叫做正规方程,则 XTXθXTy⃗ =0⃗ ,XTXθ=XTy⃗ , X T X θ − X T y → = 0 → , X T X θ = X T y → , 最终计算出 θ θ

θ=(XTX)1XTy⃗ (10) (10) θ = ( X T X ) − 1 X T y →

所以从上述推导过程来看,求 θ θ 不需要进行迭代,但需要求 XTX X T X 逆矩阵。

公式推导

下面详细解释上述公式的每一步推导过程:
1. 1到2式,做转置,使用公式 (AB)T=BTAT ( A B ) T = B T A T
2. 2到3式直接展开
3. 3到4式,实数的迹还是它本身,所以加入迹符号 tr t r 后值不变
4. 4到5式,因为 θTXTy⃗  θ T X T y → 是个实数,实数的转置还是它本身,所以 θTXTy⃗ =(θTXTy⃗ )T=y⃗ Xθ θ T X T y → = ( θ T X T y → ) T = y → X θ 。这里 θTXTy⃗  θ T X T y → 为什么是实数?
5. 5到6式,使用公式 trABC=trCAB=trBCA t r A B C = t r C A B = t r B C A ,所以 θTXTXθ=θθTXTX θ T X T X θ = θ θ T X T X
6. 6到7式,由于 y⃗ Ty⃗  y → T y → θ θ 无关,所以对它求导为0,把这去掉,然后对式子做一个整理。
7. 7到8式,使用了两个公式,蓝色部分使用:

AtrABATC=CAB+CTABT ▽ A t r A B A T C = C A B + C T A B T
所以
θtr(θAIBθTATXTXC)=XTXCθAIB+XTXCTθAITBT=XTXθ+XTXθ ▽ θ t r ( θ ⏟ A I ⏟ B θ T ⏟ A T X T X ⏟ C ) = X T X ⏟ C θ ⏟ A I ⏟ B + X T X ⏟ C T θ ⏟ A I T ⏟ B T = X T X θ + X T X θ
樱红色使用公式:
AtrAB=BT ▽ A t r A B = B T
所以
θtr(y⃗ TXBθA)=XTy⃗ BT ▽ θ t r ( y → T X ⏟ B θ ⏟ A ) = X T y → ⏟ B T

如有疑问之处欢迎加我微信交流,请备注“CSDN博客”
机器学习笔记(2)---监督学习之正规方程_第1张图片

你可能感兴趣的:(机器学习,机器学习入门)