机器学习:向量空间中的投影
今天介绍向量空间中的投影,以及投影矩阵。假设空间中有两个向量 a,b\mathbf{a}, \mathbf{b}a,b,b\mathbf{b}b 在 a\mathbf{a}a 上的投影为 p\mathbf{p}p,我们要计算出 p\mathbf{p}p 到底是多少,如下图所示:为了计算 p\mathbf{p}p,我们可以先假设 p=xa\mathbf{p} = x \mathbf{a}p=x...
今天介绍向量空间中的投影,以及投影矩阵。
假设空间中有两个向量
a
,
b
\mathbf{a}, \mathbf{b}
a,b,
b
\mathbf{b}
b 在
a
\mathbf{a}
a 上的投影为
p
\mathbf{p}
p,我们要计算出
p
\mathbf{p}
p 到底是多少,如下图所示:
为了计算 p \mathbf{p} p,我们可以先假设 p = x a \mathbf{p} = x \mathbf{a} p=xa,因为 p \mathbf{p} p 是在 a \mathbf{a} a 上,所以两者只差系数的关系,如上图所示,我们可以找到 b \mathbf{b} b 和 p \mathbf{p} p 的差: e = b − p = b − x a \mathbf{e} = \mathbf{b} - \mathbf{p} = \mathbf{b} - x\mathbf{a} e=b−p=b−xa,而我们又可以看出, e \mathbf{e} e 是和 a \mathbf{a} a 垂直的,所以 e ⋅ a = a T e = 0 \mathbf{e} \cdot \mathbf{a} = \mathbf{a}^{T} \mathbf{e} = 0 e⋅a=aTe=0,我们可以进一步得到,
a
T
(
b
−
x
a
)
=
0
\mathbf{a}^{T}(\mathbf{b} - x\mathbf{a})=0
aT(b−xa)=0
所以:
a
T
b
−
x
a
T
a
=
0
\mathbf{a}^{T}\mathbf{b} -x\mathbf{a}^{T}\mathbf{a} =0
aTb−xaTa=0
进而:
x
=
a
T
b
a
T
a
x = \frac{\mathbf{a}^{T}\mathbf{b}}{\mathbf{a}^{T}\mathbf{a}}
x=aTaaTb
所以:
p = x a = a a T a T a b \mathbf{p} = x \mathbf{a} = \frac{\mathbf{a}\mathbf{a}^{T}}{\mathbf{a}^{T}\mathbf{a}}\mathbf{b} p=xa=aTaaaTb
所以投影矩阵
P
=
a
a
T
a
T
a
\mathbf{P} = \frac{\mathbf{a}\mathbf{a}^{T}}{\mathbf{a}^{T}\mathbf{a}}
P=aTaaaT
这是到直线的投影,如果是到矩阵的投影,我们也可以用类似的方法求得, 只是将上面的向量 a \mathbf{a} a 换成矩阵 A \mathbf{A} A ,假设向量 b \mathbf{b} b 在矩阵 A \mathbf{A} A 上的投影为 A x \mathbf{A}\mathbf{x} Ax,相当于向量 b \mathbf{b} b 投影到了矩阵 A \mathbf{A} A 的列空间上,而矩阵 A \mathbf{A} A 的列空间与其 left-null 空间是互相垂直的,所以:
A
T
(
b
−
A
x
)
=
0
\mathbf{A}^{T}(\mathbf{b} - \mathbf{A}\mathbf{x})=0
AT(b−Ax)=0
所以:
A
T
b
−
A
T
A
x
=
0
\mathbf{A}^{T}\mathbf{b} -\mathbf{A}^{T}\mathbf{A}\mathbf{x} =0
ATb−ATAx=0
进而:
x
=
(
A
T
A
)
−
1
A
T
b
\mathbf{x} = (\mathbf{A}^{T}\mathbf{A})^{-1} \mathbf{A}^{T}\mathbf{b}
x=(ATA)−1ATb
所以:
p = A x = A ( A T A ) − 1 A T b \mathbf{p} = \mathbf{A} \mathbf{x}= \mathbf{A} (\mathbf{A}^{T}\mathbf{A})^{-1} \mathbf{A}^{T}\mathbf{b} p=Ax=A(ATA)−1ATb
所以投影矩阵
P
=
A
(
A
T
A
)
−
1
A
T
\mathbf{P} = \mathbf{A} (\mathbf{A}^{T}\mathbf{A})^{-1} \mathbf{A}^{T}
P=A(ATA)−1AT
关于投影,最后多说几句,讲讲点到直线的距离,这个与机器学习中的 SVM 的最初的优化函数有关:
这个图是那本经典的机器学习教材 《Pattern Recognition and Machine Learning》里的,这个是想说明向量空间中,一个点到直线的距离。假设直线的表达式为 f ( x ) = w T x + w 0 f(\mathbf{x})=\mathbf{w}^{T}\mathbf{x}+w_0 f(x)=wTx+w0,如果我们要求一个点 x \mathbf{x} x 到该直线的距离,我们可以用上面说的投影来求这个距离, 假设点 x \mathbf{x} x 到直线上的投影为 x ⊥ \mathbf{x}_{\perp} x⊥,如上图的 x ⊥ \mathbf{x}_{\perp} x⊥,而 x ⊥ \mathbf{x}_{\perp} x⊥ 到 x ⊥ \mathbf{x}_{\perp} x⊥ 的这个向量与 w \mathbf{w} w 是平行的,所以我们可以得到如下的表达式:
x = x ⊥ + r w ∣ ∣ w ∣ ∣ \mathbf{x} = \mathbf{x}_{\perp} + r \frac{\mathbf{w}}{||\mathbf{w}||} x=x⊥+r∣∣w∣∣w
两边同时乘以 w \mathbf{w} w 并且加上 w 0 w_0 w0, 可以得到:
w T x + w 0 = w T x ⊥ + w 0 + r w T w ∣ ∣ w ∣ ∣ \mathbf{w}^{T}\mathbf{x} + w_0 = \mathbf{w}^{T}\mathbf{x}_{\perp} + w_0 + r \frac{\mathbf{w}^{T}\mathbf{w}}{||\mathbf{w}||} wTx+w0=wTx⊥+w0+r∣∣w∣∣wTw
因为 x ⊥ \mathbf{x}_{\perp} x⊥ 在直线上,所以 w T x ⊥ + w 0 = 0 \mathbf{w}^{T}\mathbf{x}_{\perp} + w_0 = 0 wTx⊥+w0=0,进而,我们可以得到:
f ( x ) = r ∣ ∣ w ∣ ∣ ⇒ r = f ( x ) ∣ ∣ w ∣ ∣ f(\mathbf{x}) = r ||\mathbf{w}|| \Rightarrow r = \frac{f(\mathbf{x})}{||\mathbf{w}||} f(x)=r∣∣w∣∣⇒r=∣∣w∣∣f(x)
因为 w ∣ ∣ w ∣ ∣ \frac{\mathbf{w}}{||\mathbf{w}||} ∣∣w∣∣w 是单位向量,所以这个向量的幅值就是 r r r,所以点 x \mathbf{x} x 到该直线的距离就是 r r r。这个距离的表达式,就是机器学习里 SVM 的基础,SVM 要优化的就是寻找这样一个 w \mathbf{w} w 使得所有离该直线最近的点的距离最远,听起来好像有点绕哈~
更多推荐
所有评论(0)