线性代数|机器学习-P32循环矩阵的特征向量-傅里叶矩阵

文章目录

  • 1. 大纲
  • 2. 循环矩阵
    • 2.1 移位矩阵P
    • 2.2 P的特征值和特征向量
    • 2.3 循环卷积矩阵
    • 2.4 循环卷积计算
  • 3. 傅里叶矩阵

1. 大纲

  • 循环矩阵在机器学习,图像处理中的应用
  • 循环卷积矩阵的特征值,特征向量,卷积规则
  • 循环卷积矩阵多项式表达: C = c 0 I + c 1 P + c 2 P 2 + ⋯ + c n − 1 P n − 1 C=c_0 I+c_1P+c_2P^2+\cdots+c_{n-1}P^{n-1} C=c0I+c1P+c2P2++cn1Pn1
  • 离散傅里叶DFT介绍

2. 循环矩阵

2.1 移位矩阵P

我们定义一个移位矩阵P 表示如下:
P = [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] ; P x = [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] [ x 1 x 2 x 3 x 4 ] = [ x 2 x 3 x 4 x 1 ] ; \begin{equation} P=\begin{bmatrix} 0&1&0&0\\\\ 0&0&1&0\\\\ 0&0&0&1\\\\ 1&0&0&0 \end{bmatrix};Px=\begin{bmatrix} 0&1&0&0\\\\ 0&0&1&0\\\\ 0&0&0&1\\\\ 1&0&0&0 \end{bmatrix}\begin{bmatrix} x_1\\\\ x_2\\\\ x_3\\\\ x_4 \end{bmatrix}=\begin{bmatrix} x_2\\\\ x_3\\\\ x_4\\\\ x_1\end{bmatrix}; \end{equation} P= 0001100001000010 ;Px= 0001100001000010 x1x2x3x4 = x2x3x4x1 ;

  • 那么我们可以将一个循环卷积矩阵C 分解为移位矩阵P的多项式之和:
    在这里插入图片描述

2.2 P的特征值和特征向量

我们根据P来定义其特征值和特征向量可得:
P x = λ x → x 2 = λ x 1 ; x 3 = λ x 2 ; x 4 = λ x 3 ; x 1 = λ x 4 ; \begin{equation} Px=\lambda x\to x_2=\lambda x_1; x_3=\lambda x_2; x_4=\lambda x_3; x_1=\lambda x_4; \end{equation} Px=λxx2=λx1;x3=λx2;x4=λx3;x1=λx4;

  • 整理可得:
    x 1 = λ 4 x 1 → ( 1 − λ 4 ) x 1 = 0 → λ 0 = 1 , λ 1 = i , λ 2 = − 1 , λ 3 = − i \begin{equation} x_1=\lambda ^4x_1\to (1-\lambda^4)x_1=0\to \lambda_0=1,\lambda_1=i,\lambda_2=-1,\lambda_3=-i \end{equation} x1=λ4x1(1λ4)x1=0λ0=1,λ1=i,λ2=1,λ3=i
  • 也就是说P的根为 Z N = 1 Z^N=1 ZN=1的根,这里是N=4,所以有4个根;
    在这里插入图片描述

2.3 循环卷积矩阵

我们有一个循环卷积矩阵C,n行n列,因为矩阵C的特殊性,其斜线上的元素相等,所以可得:
C = [ c 0 c 1 c 2 ⋯ c n − 1 c n − 1 c 0 c 1 ⋯ c n − 2 ⋮ ⋱ ⋱ ⋱ ⋮ c 1 c 2 c 3 ⋯ c 0 ] ; \begin{equation} C=\begin{bmatrix} c_0&c_1&c_2&\cdots&c_{n-1}\\\\ c_{n-1}&c_0&c_1&\cdots&c_{n-2}\\\\ \vdots&\ddots&\ddots&\ddots&\vdots\\\\ c_{1}&c_2&c_3&\cdots&c_{0} \end{bmatrix}; \end{equation} C= c0cn1c1c1c0c2c2c1c3cn1cn2c0 ;

  • 那么可以将上述循环矩阵C用移位矩阵P进行展开可得如下:
    C = c 0 I + c 1 P + c 2 P 2 + ⋯ + c n − 1 P n − 1 \begin{equation}C=c_0 I+c_1P+c_2P^2+\cdots+c_{n-1}P^{n-1}\end{equation} C=c0I+c1P+c2P2++cn1Pn1

2.4 循环卷积计算

假设我们有一个序列 x 1 ( n ) = { 1 , 2 , 3 } , x 2 ( n ) = { 5 , 0 , 4 } x_1(n)=\{1,2,3\},x_2(n)=\{5,0,4\} x1(n)={1,2,3},x2(n)={5,0,4},需要对其进行循环卷积计算,根据数字信号分析中可得:
x 1 ( n ) L ◯ x 2 ( n ) = [ ∑ m = 0 L − 1 x 1 ( m ) x 2 ( ( n − m ) ) L ] R L ( n ) \begin{equation} x_1(n)\textcircled{L} x_2(n)=[\sum_{m=0}^{L-1}x_1(m)x_2((n-m))_L]R_L(n) \end{equation} x1(n)Lx2(n)=[m=0L1x1(m)x2((nm))L]RL(n)

  • 转换成循环卷积如下:
    [ 5 4 0 0 5 4 4 0 5 ] [ 1 2 3 ] = [ 13 22 19 ] ; \begin{equation} \begin{bmatrix} 5&4&0\\\\ 0&5&4\\\\ 4&0&5 \end{bmatrix}\begin{bmatrix} 1\\\\ 2\\\\ 3 \end{bmatrix}=\begin{bmatrix} 13\\\\ 22\\\\ 19\end{bmatrix}; \end{equation} 504450045 123 = 132219 ;
  • 综上所述可得:两个序列的循环卷积运算可以转换为一个序列的循环卷积矩阵与另外一个序列的乘积。

3. 傅里叶矩阵

我们知道移位矩阵P的特征值为 z N = 1 z^N=1 zN=1的复数根,其特征向量如下:
q k = [ 1 , λ k , λ k 2 , ⋯ , λ k N − 1 ] ; λ k = e 2 π i N \begin{equation} q_k=\begin{bmatrix} 1,\lambda_k,\lambda_k^2,\cdots,\lambda_k^{N-1} \end{bmatrix};\lambda_k=\mathrm{e}^{\frac{2\pi i}{N}} \end{equation} qk=[1,λk,λk2,,λkN1];λk=eN2πi

  • 我们之前推导过对于任意的循环卷积矩阵C来说可以表示如下:
    C = c 0 I + c 1 P + c 2 P 2 + ⋯ + c n − 1 P n − 1 \begin{equation}C=c_0 I+c_1P+c_2P^2+\cdots+c_{n-1}P^{n-1}\end{equation} C=c0I+c1P+c2P2++cn1Pn1
  • 我们可得矩阵C的特征值和特征向量与P的特征值特征向量相同。我们两边同时乘以 q k q_k qk,且定义如下
    C q k = λ k ( C ) q k , P q k = λ k q k Cq_k=\lambda_k(C) q_k,Pq_k=\lambda_kq_k Cqk=λk(C)qk,Pqk=λkqk
    C q k = c 0 q k + c 1 P q k + c 2 P 2 q k + ⋯ + c n − 1 P n − 1 q k \begin{equation}Cq_k=c_0q_k+c_1Pq_k+c_2P^2q_k+\cdots+c_{n-1}P^{n-1}q_k\end{equation} Cqk=c0qk+c1Pqk+c2P2qk++cn1Pn1qk
  • 代入特征方程可得:
    λ k ( C ) q k = c 0 q k + c 1 P q k + c 2 P 2 q k + ⋯ + c n − 1 P n − 1 q k \begin{equation}\lambda_k(C)q_k=c_0q_k+c_1Pq_k+c_2P^2q_k+\cdots+c_{n-1}P^{n-1}q_k\end{equation} λk(C)qk=c0qk+c1Pqk+c2P2qk++cn1Pn1qk
  • 整理可得:
    λ k ( C ) q k = c 0 q k + c 1 λ k q k + c 2 λ k 2 q k + ⋯ + c n − 1 λ k n − 1 q k \begin{equation}\lambda_k(C)q_k=c_0q_k+c_1\lambda_kq_k+c_2\lambda_k^2q_k+\cdots+c_{n-1}\lambda_k^{n-1}q_k\end{equation} λk(C)qk=c0qk+c1λkqk+c2λk2qk++cn1λkn1qk
  • 整理可得:
    λ k ( C ) = c 0 + c 1 λ k + c 2 λ k 2 + ⋯ + c n − 1 λ k n − 1 \begin{equation}\lambda_k(C)=c_0+c_1\lambda_k+c_2\lambda_k^2+\cdots+c_{n-1}\lambda_k^{n-1}\end{equation} λk(C)=c0+c1λk+c2λk2++cn1λkn1
  • 我们知道: λ k = e 2 π k N = w k , w = e 2 π N \lambda_k=\mathrm{e}^{\frac{2\pi k}{N}}=w^k,w=\mathrm{e}^{\frac{2\pi }{N}} λk=eN2πk=wk,w=eN2π
  • 那么可得:
    在这里插入图片描述
  • 小结1:这么做的主要用于:[后续补充,要补充的逻辑思路太多了]
    两个序列的循环卷积为离散傅里叶 D F T 变换下的序列相乘 两个序列的循环卷积为离散傅里叶DFT变换下的序列相乘 两个序列的循环卷积为离散傅里叶DFT变换下的序列相乘
  • 小结2: 所有的循环卷积矩阵都可以分解为离散傅里叶矩阵F和系数序列c相乘,它们的特征向量一致。
    后续更新逻辑思维图 后续更新逻辑思维图 后续更新逻辑思维图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414482.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小琳Python课堂:Python优先级队列深入解析:`PriorityQueue`类的使用与原理

小琳Python课堂开讲啦!今天我们来深入解析Python中的PriorityQueue类,这个类在 多任务处理和数据优先级管理 中非常有用哦!🌟 在Python中,PriorityQueue类是queue模块的一部分,用于实现一个优先级队列。优先…

详解JavaScript

目录 JavaScript 引入样式 基础语法 变量 数据类型 运算符 JavaScript对象 数组 数组定义 数组操作 函数 语法格式 关于参数个数 函数表达式 对象 JQuery 语法 选择器 事件 常见的事件 操作元素 获取/设置元素内容 获取/设置元素属性 获取/设置CSS属性 …

【Spring Boot 3】【Web】返回图片

【Spring Boot 3】【Web】返回图片 背景介绍开发环境开发步骤及源码工程目录结构 背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中&a…

线性查找表的应用:用户登录注册程序

线性查找表是很简单的数据结构和算法。网站的用户登录注册时是基本的功能。本文首先给出线性查找表的基本实现,然后给出在用户登录注册的程序流程图,并将线性查找表应用到用户查询这一具体任务,并基于 Python 语言在控制台实现用户注册、登录…

【简单】 猿人学web第一届 第15题 备周则意怠,常见则不疑

数据接口分析 数据接口 https://match.yuanrenxue.cn/api/match/15 请求时需要携带 page 页码,m为加密参数 cookie中没有加密信息,携带 SessionId请求即可 加密参数还原 查看数据接口对应的 requests 栈 m参数 是通过 window.m() 方法执行后得到的 打上…

什么是 AWS CloudWatch?

AWS CloudWatch 是 AWS 提供的一项全面的监控和可观测性服务,使用户能够收集和可视化指标、日志和事件;设置警报;并根据预定义的条件自动执行操作。CloudWatch 提供对 AWS 资源和应用程序的运行状况、性能和运行状态的深入了解,使…

Linux查看jar包错误日志及持久化运行jar包

一、查看jar包运行信息命令:ps -ef | grep java 如图,给出了所部署jar包的环境变量,服务名称,服务端口信息。 这样便能得到部署的jar包是否在服务器成功运行及基本信息。 二、查看日志 启动信息无误,查看日志是否有报错…

GitLab 是什么?GitLab使用常见问题解答

GitLab 是什么 GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具开源项目,且具有wiki和issue跟踪功能,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 ​GitLab 是由 GitLab Inc.开发&#xff0c…

Python和JAX及MATLAB小波分析导图

🎯要点 离散小波变换和逆离散小波变换时间序列谱分析计算比例图和频谱图显示数据莫莱小波时频数据表征海表温度异常的区域平均值捕捉市场波动时间频率关联信息信号和图像分解压缩重建降维分析金融波动连续小波卷积网络和离散小波信号分类图像处理、提取地震图速度和…

Java面试自我介绍

持续更新中 模块序号目录链接前言介绍1前言地址2介绍地址基础知识3计算机网络地址4操作系统地址5Java基础地址6Java并发地址7Java虚拟机地址中间件8Mysql地址9Redis地址10Elasticsearch地址11RabbitMQ地址12RocketMQ地址框架13分布式系统地址14MyBatis地址15Dubbo地址16Spring地…

uniapp组件用法

一. 什么是组件,有什么好处? 在uni-app中,组件是构成应用的基本单位,它们是用来定义用户界面的一部分,并且通常包含了视图和逻辑。组件的设计使得开发者能够以声明式的方式构建应用界面,并且通过组件化的开发方式来提高代码的复…

预训练语言模型的前世今生 - 从Word Embedding到BERT

目录 一、预训练 1.1 图像领域的预训练1.2 预训练的思想二、语言模型 2.1 统计语言模型2.2 神经网络语言模型三、词向量 3.1 独热(Onehot)编码3.2 Word Embedding四、Word2Vec 模型五、自然语言处理的预训练模型六、RNN 和 LSTM 6.1 RNN6.2 RNN 的梯度消…

GAMES104:10+11游戏引擎中物理系统的基础理论算法和高级应用-学习笔记

文章目录 概览一,物理对象与形状1.1 对象 Actor1.2 对象形状Actor Shape 二,力与运动2.1 牛顿定律2.2 欧拉法2.2.1 显式欧拉法Explicit (Forward) Euler’s Method2.2.2 隐式欧拉法 Implicit (Backward) Euler’s Method2.2.3 半隐式欧拉法 Semi-implici…

C语言典型例题58

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.10 求100~200中的全部素数。 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.10 求100~200中的全部素数。#include <stdio.h> #include <math.h>int m…

大力出奇迹背景下的Scaling Law能否带领我们走向AGI

Scaling Law&#xff08;尺度定律&#xff09; 在人工智能领域&#xff0c;尤其是在大模型的发展中扮演着至关重要的角色。它描述了模型性能如何随着模型规模&#xff08;如参数数量&#xff09;、数据量和计算资源的增加而提升。这一定律对于理解大模型的能力扩展和优化训练策…

Spring框架;Spring中IOC简介及搭建;Spring中AOP简介;

一&#xff0c;Spring介绍 Spring 的全称&#xff1a; Spring Framework Spring是一个优秀的开源的轻量级的企业应用开发框架&#xff0c;是为了解决企业应用程序开发复杂性而创建的。它大大简化了java企业级开发的复杂性&#xff0c;提供了强大&#xff0c;稳定的功能&#xf…

asp.net core在win上的发布和部署

一、asp.net core两种发布方式 1、两个发布方式——【框架依赖发布】和【独立发布】 2、两种发布方式的差别 二、发布的详细过程 1、【生成】->【发布】 2、框架依赖发布 设置发布参数&#xff0c;然后进行发布 发布好的文件&#xff0c;把它们放到一个新的目录文件夹里 …

Yolov5 AI学习笔记

Yolov5 AI学习笔记 环境准备 需要Python的开发环境&#xff0c;安装Anaconda。 Anaconda的一些命令&#xff1a; # 创建虚拟环境 conda create -n yolo_cpu python3.9 # 查看虚拟环境 conda env list # 激活虚拟环境 conda activate <env_name>Yolov5上手 下载源码 …

六、Selenium操作指南(三)

文章目录 七、模拟鼠标操作&#xff08;一&#xff09;左键 click()&#xff08;二&#xff09;右键 context_click()&#xff08;三&#xff09;双击 double_click()&#xff08;四&#xff09;拖拽 drag_and_drop(source,target)&#xff08;五&#xff09;悬停 move_to_elem…

【动图效果概览】自动化建链后,Exata调用STK更新卫星位置

如下图所示&#xff0c;动画遵循 时间前进方向&#xff0c;划分截取为5段 &#xff08;因为每张照片限制大小5MB&#xff0c;不够应该够看清个大概意思了&#xff09;&#xff1a;