线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录

  • [1. 距离矩阵](#1. 距离矩阵)
  • [2. 正交普鲁克问题](#2. 正交普鲁克问题)
  • [3. 实例说明](#3. 实例说明)

1. 距离矩阵

假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3,三个点距离如下:
∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x_1-x_2||^2=1,||x_2-x_3||^2=1,||x_1-x_3||^2=6 \end{equation} ∣∣x1−x2∣∣2=1,∣∣x2−x3∣∣2=1,∣∣x1−x3∣∣2=6

  • 根据上面的公式发现不满足三角不等式定理,两边之和大于第三边 1 + 1 ≤ 6 1+1\le6 1+1≤6
  • 根据三个点组成的距离矩阵Distance Matrix如下:
    D = [ 0 1 6 1 0 1 6 1 0 ] \begin{equation} D=\begin{bmatrix} 0&1&6\\\\ 1&0&1\\\\ 6&1&0 \end{bmatrix} \end{equation} D= 016101610
  • 假设我们有两个点 x 1 , x 2 x_1,x^2 x1,x2,那么 d i j d_{ij} dij的定义:
    D i j = ∣ ∣ x i − x j ∣ ∣ 2 = ( x i − x j ) T ( x i − x j ) = x i T x i − x i T x j − x j T x i + x j T x j \begin{equation} D_{ij}=||x_i-x_j||^2=(x_i-x_j)^T(x_i-x_j)=x_i^Tx_i-x_i^Tx_j-x_j^Tx_i+x_j^Tx_j \end{equation} Dij=∣∣xi−xj∣∣2=(xi−xj)T(xi−xj)=xiTxi−xiTxj−xjTxi+xjTxj
  • 由于对称性可得: x i T x j = x j T x i x_i^Tx_j=x_j^Tx_i xiTxj=xjTxi,故化简可得:
    D i j = x i T x i − 2 x i T x j + x j T x j \begin{equation} D_{ij}=x_i^Tx_i-2x_i^Tx_j+x_j^Tx_j \end{equation} Dij=xiTxi−2xiTxj+xjTxj
  • 为了方便计算,我们定义一个矩阵G表示如下:
    X = [ x i x j ] ; X T = [ x i T x j T ] → G = X T X = [ x i T x i x i T x j x j T x i x j T x j ] \begin{equation} X=\begin{bmatrix}x_i&x_j\end{bmatrix};X^T=\begin{bmatrix}x_i^T\\\\x_j^T\end{bmatrix}\to G=X^TX=\begin{bmatrix}x_i^Tx_i&x_i^Tx_j\\\\x_j^Tx_i&x_j^Tx_j\end{bmatrix} \end{equation} X=[xixj];XT= xiTxjT →G=XTX= xiTxixjTxixiTxjxjTxj
  • 由此我们可以用G来表示D如下:
    D i j = G i i − 2 G i j + G j j \begin{equation} D_{ij}=G_{ii}-2G_{ij}+G_{jj} \end{equation} Dij=Gii−2Gij+Gjj
  • 优势:为什么我们要这么费力的做?原因在于,我们求D矩阵的时候,我们需要不断的进行多重循环,效率非常低,如果我们这种方法,第一步通过点乘求得矩阵G,第二步只需要简单的抽取矩阵G中的元素,第三步就通过简单的加减乘除即可得到同样结果的距离矩阵D,结果是一样,但是此种算法大大减少了计算量,真是太神奇了!!!
  • 参考链接:
    斯坦福CS231N课程笔记(三)-距离矩阵的计算方法

2. 正交普鲁克问题

假设有两个矩阵A,B ,我们希望找到一个正交矩阵Q,使得 ∣ ∣ A Q − B ∣ ∣ F ||AQ-B||_F ∣∣AQ−B∣∣F最小?
min ⁡ ∣ ∣ A Q − B ∣ ∣ F ; s t : Q T Q = I \begin{equation} \min||AQ-B||_F;st:Q^TQ=I \end{equation} min∣∣AQ−B∣∣F;st:QTQ=I

  • 其中 A , B ∈ R m × n A,B\in R^{m\times n} A,B∈Rm×n,待求 Q ∈ R n × n Q\in R^{n\times n} Q∈Rn×n为正交矩阵

3. 实例说明

  • 假设我们有一个矩阵A,B表示如下,希望找到一个正交矩阵Q使得 ∣ ∣ A Q − B ∣ ∣ F ||AQ-B||_F ∣∣AQ−B∣∣F尽可能的小?
    A = [ 1 0 0 1 1 1 ] ; B = [ 0 − 1 1 0 1 − 1 ] ; \begin{equation} A=\begin{bmatrix} 1&0\\\\ 0&1\\\\ 1&1\end{bmatrix};B=\begin{bmatrix} 0&-1\\\\ 1&0\\\\ 1&-1\end{bmatrix}; \end{equation} A= 101011 ;B= 011−10−1 ;
  • 第一步: 求矩阵C
    C = A T B = [ 1 0 1 0 1 1 ] [ 0 − 1 1 0 1 − 1 ] = [ 1 − 2 2 − 1 ] ; \begin{equation} C=A^TB=\begin{bmatrix} 1&0&1\\\\ 0&1&1\end{bmatrix}\begin{bmatrix} 0&-1\\\\ 1&0\\\\ 1&-1\end{bmatrix}=\begin{bmatrix} 1&-2\\\\ 2&-1\end{bmatrix}; \end{equation} C=ATB= 100111 011−10−1 = 12−2−1 ;
  • 第二步:将矩阵C进行奇异值分解SVD:
    C = U Σ V T ; U = [ − 1 2 − 1 2 − 1 2 1 2 ] Σ = [ 3 0 0 1 ] ; V T = [ − 1 2 1 2 1 2 1 2 ] \begin{equation} C=U\Sigma V^T;U=\begin{bmatrix} -\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\\\\ -\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix} \Sigma=\begin{bmatrix} 3&0\\\\ 0&1\end{bmatrix};V^T=\begin{bmatrix} -\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix} \end{equation} C=UΣVT;U= −2 1−2 1−2 12 1 Σ= 3001 ;VT= −2 12 12 12 1
  • 第三步: 求出正交矩阵Q
    Q = U V T = [ − 1 2 − 1 2 − 1 2 1 2 ] [ − 1 2 1 2 1 2 1 2 ] = [ 0 − 1 1 0 ] \begin{equation} Q=UV^T=\begin{bmatrix} -\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}\\\\ -\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix} \begin{bmatrix} -\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\\\\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}= \begin{bmatrix} 0&-1\\\\ 1&0\end{bmatrix} \end{equation} Q=UVT= −2 1−2 1−2 12 1 −2 12 12 12 1 = 01−10
  • 第四步,验证 ∣ ∣ A Q − B ∣ ∣ ||AQ-B|| ∣∣AQ−B∣∣:
    ∣ ∣ A Q − B ∣ ∣ F = 0 \begin{equation} ||AQ-B||_F=0 \end{equation} ∣∣AQ−B∣∣F=0
  • 小结:这种方法还真能够找到正交矩阵Q.
相关推荐
IT古董7 分钟前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
睡觉狂魔er24 分钟前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7241 小时前
LILAC采样算法
人工智能·算法·机器学习
菌菌的快乐生活1 小时前
理解支持向量机
算法·机器学习·支持向量机
爱喝热水的呀哈喽1 小时前
《机器学习》支持向量机
人工智能·决策树·机器学习
大山同学1 小时前
第三章线性判别函数(二)
线性代数·算法·机器学习
苏言の狗2 小时前
Pytorch中关于Tensor的操作
人工智能·pytorch·python·深度学习·机器学习
云云3212 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3212 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
ThreeYear_s2 小时前
基于FPGA 的4位密码锁 矩阵键盘 数码管显示 报警仿真
fpga开发·矩阵·计算机外设