zoukankan      html  css  js  c++  java
  • 神秘值分解(Singular Value Decomposition)

    - 线性变化的几何表现

    • 首先看下简单的矩阵,这是一个对角矩阵
      M=(3001)

      我们先用这个对角矩阵乘以一个点来看看它的几何变化。
      (3001)(xy)=(3xy)

      在几何上就相当于把原来的向量x轴方向拉伸成了原来的3倍
      这里写图片描写叙述–》这里写图片描写叙述
    • 再来看下对称矩阵

      M=(2112)

      利用对称矩阵乘以一个点来看看它的几何变化

      这里写图片描写叙述-》这里写图片描写叙述
      这并不能清晰的显示出发生了如何的几何变换。我们能够把整个坐标轴逆时针旋转45度来更好的发现规律。
      这里写图片描写叙述-》这里写图片描写叙述
      从上图能够看出原来的红色部分。沿着一个方向被拉伸了3倍。

    - 神秘值分解

    这是神秘值分解的几何实质:对于随意的二维方阵(M),我们都能够找到相互正交的向量 (v1,v2),使得经过M变换后得到的两个向量(Mv1,Mv2)还是正交的。
    这里写图片描写叙述-》这里写图片描写叙述

     v1v2 u1u2Mv1Mv2σ1σ2v1v2MMv1=σ1u1Mv2=σ2u2

    对于随意的二维向量x
    x=(v1.x)v1+(v2.x)v2Mx=(v1.x)Mv1+(v2.x)Mv2Mx=(v1.x)σ1u1+(v2.x)σ2u2v.x=vTxMx=u1σ1vT1x+u2σ2vT2xM=u1σ1vT1+u2σ2vT2M=UΣVTU=(u1u2)Σ=(σ100σ2)V=(v1v2)

    -那么我们怎么发现神秘值呢

    我们能够对不论什么矩阵进行神秘值分解,首先我们先看下最先的样例,我们在原来的红色正方形上加上一个单位圆
    这里写图片描写叙述-》这里写图片描写叙述
    变化后的图形是个椭圆。我们我们能够在椭圆的最长和最短的方向上发现正交基
    这里写图片描写叙述-》这里写图片描写叙述

    vivjMTMMTMvTivj=0,σi=|Mvi|uiMviuiujσiσjMvi=σiuiMvj=σjuj.(Mvi)TMvj=vTiMTMvj=vTiλvj=λvTivj=0.(Mvi)TMvj=(σiui)Tσjuj=0uTiuj=0uiujviMuiuiuj

    - 另外一个样例

    M=(1212)

    利用M对v1 v2进行变换
    这里写图片描写叙述-》这里写图片描写叙述

    在这个样例中第二个神秘值为0,

    M=u1σ1vT1

    M的秩是等于非0的神秘值的数目的。

    - 数据压缩

    神秘值分解能够有效地应用在数据表示中,如果我们来表示一个25*15的黑白像素
    这里写图片描写叙述
    由于在整个图像中仅仅有3种列向量。所以我们能够来表示图像更加地高效
    这里写图片描写叙述这里写图片描写叙述这里写图片描写叙述
    我们用一个25*15的矩阵来表示这个图像,1表示白色,0表示黑色
    这里写图片描写叙述
    我们对M进行神秘值分解。仅仅发现了3个非0的神秘值

    σ1=14.72σ2=5.22σ3=3.31M=u1σ1vT1+u2σ2vT2+u3σ3vT3ui25vi15非常M

    -噪音处理

    如果我们利用了一个扫描器来扫描图像。可是在扫描的过程中引入了噪声
    这里写图片描写叙述
    我们对这个25*15的矩阵进行神秘值分解

    σ1=14.15σ2=4.67σ3=3.00σ4=0.21σ5=0.19...σ15=0.05MM=u1σ1vT1+u2σ2vT2+u3σ3vT3

    有噪声的图像没有噪声的图像

  • 相关阅读:
    VituralBox 虚拟机网路设置 主机无线
    布局
    Git 安装
    剑指offer——33分行从上到下打印二叉树
    剑指offer——32从上到下打印二叉树
    剑指offer——31序列化二叉树
    剑指offer——30栈的压入、弹出序列
    剑指offer——30包含min函数的栈
    剑指offer——29顺时针打印矩阵
    剑指offer——28对称的二叉树
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8277067.html
Copyright © 2011-2022 走看看