文章目录
- 1. Ax矩阵的形式
- 2. A=CR 矩阵分解
- 2.1 rank=1 矩阵分解
- 2.2 rank=2 矩阵分解
- 2.3 A=CMR,求M
- 3. Ax 向量
1. Ax矩阵的形式
假设我们有如下矩阵A:
A x = [ 2 1 3 3 1 4 5 7 12 ] [ x 1 x 2 x 3 ] \begin{equation} Ax=\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix} \end{equation} Ax= 2351173412 x1x2x3
- 从行角度计算如下:
A x = [ 2 1 3 ] [ x 1 x 2 x 3 ] + [ 3 1 4 ] [ x 1 x 2 x 3 ] + [ 5 7 12 ] [ x 1 x 2 x 3 ] \begin{equation} Ax=\begin{bmatrix} 2&1&3 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix}+\begin{bmatrix} 3&1&4 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix}+\begin{bmatrix} 5&7&12 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix} \end{equation} Ax=[213] x1x2x3 +[314] x1x2x3 +[5712] x1x2x3
这是我们常规的思路,但是有一个问题,现在是 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3三个变量,可以用三维空间想象画图等,但是当我们有 x 1 , x 2 , x 3 , x 4 , x 5 x_1,x_2,x_3,x_4,x_5 x1,x2,x3,x4,x5的时候,我们就无法想到5维度空间,所以我们在矩阵相乘的过程中用到行向量空间的角度思考是低端的思维思路。所以我们提出了列向量的角度 - 从列角度计算如下:
A x = x 1 [ 2 3 5 ] + x 2 [ 1 1 7 ] + x 3 [ 3 4 12 ] \begin{equation} Ax=x_1\begin{bmatrix} 2\\\\ 3\\\\ 5 \end{bmatrix}+x_2\begin{bmatrix} 1\\\\ 1\\\\ 7 \end{bmatrix}+x_3\begin{bmatrix} 3\\\\ 4\\\\ 12 \end{bmatrix} \end{equation} Ax=x1 235 +x2 117 +x3 3412
v 1 = x 1 [ 2 3 5 ] , v 2 = x 2 [ 1 1 7 ] ; v 3 = x 3 [ 3 4 12 ] ; A x = v 1 + v 2 + v 3 \begin{equation} v_1=x_1\begin{bmatrix} 2\\\\ 3\\\\ 5 \end{bmatrix},v_2=x_2\begin{bmatrix} 1\\\\ 1\\\\ 7 \end{bmatrix};v_3=x_3\begin{bmatrix} 3\\\\ 4\\\\ 12 \end{bmatrix};Ax=v_1+v_2+v_3 \end{equation} v1=x1 235 ,v2=x2 117 ;v3=x3 3412 ;Ax=v1+v2+v3
这样可以看出,对于Ax=b来说,矩阵b就是A的列向量的线性组合,这样及时再加几个列向量,我们可以用向量的形式表示,我们处理起来也非常的方便。通过列乘以行的方式是一种更高级的矩阵理解方式。
- 小结:
所以对于矩阵A和向量x相乘得到的结果Ax可以看做是对于矩阵A的列向量的线性组合后得到的向量,那么这个向量也一定在A的列空间中。假设我们x是随机的,那么我们可以得到矩阵A的整个列空间。
2. A=CR 矩阵分解
2.1 rank=1 矩阵分解
假设我们有矩阵A表示如下,我们希望将矩阵分解成为列向量和行向量的组合。
A = [ 1 3 8 1 3 8 1 3 8 ] \begin{equation} A=\begin{bmatrix} 1&3&8\\\\ 1&3&8\\\\ 1&3&8 \end{bmatrix} \end{equation} A= 111333888
- 将矩阵A的第一列拿出来。 v 1 = [ 1 1 1 ] v_1=\begin{bmatrix}1\\\\1\\\\1\end{bmatrix} v1= 111
- 将矩阵A的第二列拿出来,发现与第二列,第三列线性相关,所以停止拿出来,说以只有一列
,最终得到如下分解矩阵
A = [ 1 1 1 ] [ 1 3 8 ] \begin{equation} A=\begin{bmatrix} 1\\\\1\\\\1 \end{bmatrix}\begin{bmatrix} 1&3&8 \end{bmatrix} \end{equation} A= 111 [138]
2.2 rank=2 矩阵分解
我们有如下矩阵A,将矩阵A进行分解,得到A=CR:
A = [ 2 1 3 3 1 4 5 7 12 ] \begin{equation} A=\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix} \end{equation} A= 2351173412
- 第一步,我们先取矩阵A的第一列, v 1 = [ 2 , 3 , 5 ] T v_1=[2,3,5]^T v1=[2,3,5]T非零,那么就把 v 1 v_1 v1放到列空间中
- 第二步,我们再取矩阵A的第二列,发现 v 1 T v 2 ≠ 0 v_1^Tv_2\neq0 v1Tv2=0,那么就把 v 2 v_2 v2放到列空间中
- 第三步,我们再取矩阵A的第三列,发现 v 1 + v 2 = v 3 v_1+v_2=v_3 v1+v2=v3,那么 v 3 v_3 v3就抛弃,这样就形成了列满秩的矩阵C
C = [ 2 1 3 1 5 7 ] \begin{equation} C=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix} \end{equation} C= 235117 - 第四步,我们通过矩阵的大小可得矩阵R为2行3列,那么可以发现,矩阵A的第一列为C的第一列,那么可以得到矩阵C的第一列为 c 1 = [ 1 , 0 ] T c_1=[1, 0]^T c1=[1,0]T
- 第五步,同理可得矩阵A的第二列为矩阵C的第二列,那么 c 2 = [ 0 , 1 ] T c_2=[0, 1]^T c2=[0,1]T
- 第六步,我们知道矩阵A的第三列为矩阵C的第一列和第二列之和,那么可得 c 3 = [ 1 , 1 ] T c_3=[1, 1]^T c3=[1,1]T
- 第七步,综上可得方程
A=CR
表示如下:
A = C R ⇒ [ 2 1 3 3 1 4 5 7 12 ] = [ 2 1 3 1 5 7 ] [ 1 0 1 0 1 1 ] \begin{equation} A=CR\Rightarrow\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix}\begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix} \end{equation} A=CR⇒ 2351173412 = 235117 100111 - 我们再行分解,可得
[ 2 1 3 ] = 2 [ 1 0 1 ] + 1 [ 0 1 1 ] \begin{equation} \begin{bmatrix}2&1&3\end{bmatrix}=2\begin{bmatrix}1&0&1\end{bmatrix}+1\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [213]=2[101]+1[011]
[ 3 1 4 ] = 3 [ 1 0 1 ] + 1 [ 0 1 1 ] \begin{equation} \begin{bmatrix}3&1&4\end{bmatrix}=3\begin{bmatrix}1&0&1\end{bmatrix}+1\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [314]=3[101]+1[011]
[ 5 7 12 ] = 5 [ 1 0 1 ] + 7 [ 0 1 1 ] \begin{equation} \begin{bmatrix}5&7&12\end{bmatrix}=5\begin{bmatrix}1&0&1\end{bmatrix}+7\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [5712]=5[101]+7[011] - 那么可以得到如下:
[ 2 1 3 3 1 4 ] = [ 2 1 3 1 ] [ 1 0 1 0 1 1 ] ⇒ [ 1 0 1 0 1 1 ] = [ − 1 1 3 − 2 ] [ 2 1 3 3 1 4 ] \begin{equation} \begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1 \end{bmatrix}\begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix}\Rightarrow \begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix}=\begin{bmatrix} -1&1\\\\ 3&-2 \end{bmatrix}\begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix} \end{equation} 231134 = 2311 100111 ⇒ 100111 = −131−2 231134 - 那么A=CR公式可以整理为
A=CMR
公式
A = C M R ⇒ [ 2 1 3 3 1 4 5 7 12 ] = [ 2 1 3 1 5 7 ] [ − 1 1 3 − 2 ] [ 2 1 3 3 1 4 ] \begin{equation} A=CMR\Rightarrow\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix}\begin{bmatrix} -1&1\\\\ 3&-2 \end{bmatrix}\begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix} \end{equation} A=CMR⇒ 2351173412 = 235117 −131−2 231134 - 小结: 这样做的好处是C,M,R均是满秩矩阵,这样我们可以对矩阵A进行进一步分解,真是神奇的思路,解决了SVD奇异值分解中 Σ \Sigma Σ矩阵无法满秩的情况,而且CR均是来自原始矩阵A的列向量
(列满秩)
和行向量(行满秩)
。真是太神奇了。
2.3 A=CMR,求M
当我们知道 A=CMR, 那么如何求快速的求得M呢?
A = C M R → C T A R T = ( C T C ) M ( R R T ) → M = ( C T C ) − 1 ( C T A R T ) ( R R T ) − 1 \begin{equation} A=CMR\rightarrow C^TAR^T=(C^TC)M(RR^T)\rightarrow M=(C^TC)^{-1}(C^TAR^T)(RR^T)^{-1} \end{equation} A=CMR→CTART=(CTC)M(RRT)→M=(CTC)−1(CTART)(RRT)−1
3. Ax 向量
假设x是一个随机的列向量,如果我们给了100个随机的x,那么我们可以通过Ax来得到一系列的列向量空间,这个列向量空间也会随着x的增多而和A的列空间相似,这个就是随机采样的思路。