当前位置: 首页 > article >正文

基向量和投影矩阵

文章目录

  • 1. 投影向量
  • 2. 基向量,列向量秩1分解
  • 3. SVD,奇异向量秩1分解
  • 4. 小结:
  • 5. 图解分析

1. 投影向量

假设我们有一个向量b和一个向量q,求向量b在向量q上的投影向量p:
在这里插入图片描述

  • 求向量p的长度:
    q T b = ∣ q ∣ ⋅ ∣ b ∣ ⋅ cos ⁡ θ → ∣ p ∣ = ∣ b ∣ ⋅ cos ⁡ θ = q T b ∣ q ∣ \begin{equation} q^Tb=|q|\cdot |b|\cdot\cos\theta\to |p|=|b|\cdot\cos\theta=\frac{q^Tb}{|q|} \end{equation} qTb=qbcosθp=bcosθ=qqTb
  • 求向量p
    p = ∣ p ∣ ⋅ q ∣ q ∣ = q T b ∣ q ∣ ⋅ q ∣ q ∣ = q T b q q T q = q q T q T q b \begin{equation} p=|p|\cdot\frac{q}{|q|}=\frac{q^Tb}{|q|}\cdot\frac{q}{|q|}=\frac{q^Tbq}{q^Tq}=\frac{qq^T}{q^Tq}b \end{equation} p=pqq=qqTbqq=qTqqTbq=qTqqqTb
  • 投影矩阵P:
    P = q q T q T q , p = P b , r a n k ( P ) = 1 \begin{equation} P=\frac{qq^T}{q^Tq},p=Pb,\mathrm{rank(P)}=1 \end{equation} P=qTqqqT,p=Pb,rank(P)=1
  • 假定向量q为单位向量, q T q = 1 q^Tq=1 qTq=1,则投影向量P:
    P = q q T q T q = q q T , q T q = 1 , p = q q T b \begin{equation} P=\frac{qq^T}{q^Tq}=qq^T,q^Tq=1,p=qq^Tb \end{equation} P=qTqqqT=qqT,qTq=1,p=qqTb
  • 结论,当向量q为单位向量时,向量b在向量q上的投影p表示如下,并且我们可以看到投影平面P是由向量q组成的秩1平面,p为向量b在投影平面P= q q T qq^T qqT的投影向量
    p = q q T b \begin{equation} p=qq^Tb \end{equation} p=qqTb

2. 基向量,列向量秩1分解

假设我们向量b是由一组线性无关单位向量 x 1 , x 2 , ⋯   , x k x_1,x_2,\cdots,x_k x1,x2,,xk线性组合,可得如下:
b = x 1 q 1 + x 2 q 2 + ⋯ + x k q k , q i T q i = 1 , q i T q j = 0 , i ≠ j \begin{equation} b=x_1q_1+x_2q_2+\cdots+x_kq_k,q_i^Tq_i=1,q_i^Tq_j=0,i\neq j \end{equation} b=x1q1+x2q2++xkqk,qiTqi=1,qiTqj=0,i=j

  • 两边同时乘以 q 1 T q_1^T q1T可得:
    q 1 T b = x 1 q 1 T q 1 + x 2 q 1 T q 2 + ⋯ + x k q 1 T q k = x 1 \begin{equation} q_1^Tb=x_1q_1^Tq_1+x_2q_1^Tq_2+\cdots+x_kq_1^Tq_k=x_1 \end{equation} q1Tb=x1q1Tq1+x2q1Tq2++xkq1Tqk=x1
  • 可得: x k = q k T b x_k=q_k^Tb xk=qkTb,注为标量,位置随意放,代入原方程可得:
    b = q 1 q 1 T b + q 2 q 2 T b + ⋯ + q k q k T b \begin{equation} b=q_1q_1^Tb+q_2q_2^Tb+\cdots+q_kq_k^Tb \end{equation} b=q1q1Tb+q2q2Tb++qkqkTb
  • 重点,思路一:
    对于给定向量b来说,如果想用基向量表示 x 1 , x 2 , ⋯   , x k x_1,x_2,\cdots,x_k x1,x2,,xk,只需要将向量b分别投影到不同的平面上即可,这样就可以将向量b用基向量表示;这个就是我们的谱定理
  • 重点,思路二:
    可以把向量b比作一道自然光, x 1 , x 2 , ⋯   , x k x_1,x_2,\cdots,x_k x1,x2,,xk比作一个单色光,而谱分解就相当于一个多棱镜,我们只需要将光b投影到不同单色光的纸上,得到其成分即可。
    在这里插入图片描述

3. SVD,奇异向量秩1分解

特征值分解和奇异值分解的不同在于,特征值分解通常需要矩阵A为方阵,而奇异值分解可以对在矩阵为任意大小矩阵即可。
A = U Σ V T \begin{equation} A=U\Sigma V^T \end{equation} A=UΣVT

  • 假设矩阵A的秩为r,可以分解如下:
    在这里插入图片描述
    在这里插入图片描述
  • 那么矩阵A可以按照奇异值分解如下:
    A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ r u r v r T \begin{equation} A=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ru_rv_r^T \end{equation} A=σ1u1v1T+σ2u2v2T++σrurvrT
  • 我们来看 u 1 v 1 T u_1v_1^T u1v1T,这个本质上还是秩1矩阵,并且 u 1 u_1 u1在矩阵A的列空间中, v 1 v_1 v1在矩阵A的行空间中,且每一个 u 1 v 1 T u_1v_1^T u1v1T的大小为 m × n m\times n m×n,跟矩阵A的大小一样
  • 在等式左右同时乘以x,大小为 n × 1 n\times 1 n×1可得:
    A x = σ 1 u 1 v 1 T x + σ 2 u 2 v 2 T x + ⋯ + σ r u r v r T x \begin{equation} Ax=\sigma_1u_1v_1^Tx+\sigma_2u_2v_2^Tx+\cdots+\sigma_ru_rv_r^Tx \end{equation} Ax=σ1u1v1Tx+σ2u2v2Tx++σrurvrTx
  • 那么Ax可以理解为向量x在r个有 u i v i T u_iv^T_i uiviT组成的平面上的投影和。

4. 小结:

  • 特征向量分解
    将矩阵A按照特征向量进行分解为秩为1的平面秩1矩阵,且平面矩阵秩1矩阵是由列向量组成的。
    列向量是来自列空间,可以在机器学习中以样本的形式表示。列空间的基向量是可以看做一个想本的配方。
    – Ax可以看做是向量x在样本空间上的投影和
  • 奇异值分解
    将矩阵A按照奇异值向量分解为秩为1的平面秩1矩阵,而平面矩阵秩1矩阵是由列向量+行向量组成的。而u列向量来自列空间,v行向量来自行空间。
    – Ax可以看做是向量x在样本空间+特征空间的投影和
  • 那么从投影的角度来看,奇异向量组成的平面秩1矩阵得到的信息更加丰富。

5. 图解分析

在这里插入图片描述


http://www.kler.cn/a/317253.html

相关文章:

  • 如何查看电脑关机时间
  • RAFT: Recurrent All-Pairs Field Transforms for Optical Flow用于光流估计的循环全对场变换
  • ubuntu20.04安装anaconda与基本使用
  • 三种单例实现
  • 51c视觉~合集6
  • go语言中的log 包详解
  • 鸿蒙OpenHarmony【轻量系统内核通信机制(互斥锁)】子系统开发
  • 面试金典题9
  • SRS流媒体服务器在宝塔面板下的安装
  • 预计2030年全球GO电工钢市场规模将达到120.6亿美元
  • centos7安装docker DokcerCompose
  • <<编码>> 第 17 章 自动操作(2)--自动加法器 示例电路
  • 筛子排序(SieveSort) - 4
  • docker如何升级MySQL为最新版本
  • 在windows上使用vs code调试Rust程序
  • 安全审计与监控的核心作用!确保网络安全等级保护的有效性
  • 设计模式--外观模式
  • 软件测试实验室如何利用GB/T25000标准建立测试技术体系
  • SiteServer 学习笔记 Day09 STL语言
  • 知识库管理系统的未来趋势:从单一平台到生态系统
  • 全栈开发(二):springBoot3连接mysql数据库
  • 双指针算法专题(2)
  • python数学运算符
  • 【设计模式】Builder设计模式详解
  • 小柴冲刺软考中级嵌入式系统设计师系列一、计算机系统基础知识(6)可靠性与系统性能评测基础
  • 【Python报错已解决】AttributeError: ‘DataFrame‘ object has no attribute ‘append‘