【白话机器学习系列】白话特征向量

白话特征向量

在这里插入图片描述

一个方阵 A A A 与列向量 v v v 的乘积会生成一个新的列向量。这个新向量通常与原向量有着不同的方向,矩阵在这里代表一个线性变换。然而,某些向量会保持其原始方向。我们称这种向量为矩阵 A A A特征向量(eigenvector)

在本文中,我们将探讨特征向量、特征值和矩阵的特征方程。并且以 2 维方阵为例,教大家如何计算矩阵的特征向量和特征值。

文章目录

举个例子

考虑矩阵 T T T:
T = ( 1 3 2 2 ) T = \begin{pmatrix} 1 &3 \\ 2 &2 \end{pmatrix} T=(1232)
如果将矩阵 T T T 乘以向量 ( 2 , 0 ) (2,0) (2,0) 会得到一个新的向量 ( 2 , 4 ) (2,4) (2,4):
( 1 3 2 2 ) ( 2 0 ) = ( 2 4 ) \begin{pmatrix} 1 &3 \\ 2 &2 \end{pmatrix} \begin{pmatrix} 2 \\ 0 \end{pmatrix}=\begin{pmatrix} 2 \\ 4 \end{pmatrix} (1232)(20)=(24)
如下图所示。左图中原始向量 ( 2 , 0 ) (2, 0) (2,0) 用青色表示。它还显示了其他几个不同颜色的向量。右图展示了由上述矩阵 T T T​ 变换后的同一组向量:

在这里插入图片描述在这里插入图片描述

一般来讲,右边每个变换后的向量与左边的原始向量相比,其大小和方向都有所不同。

有两个特殊的向量在经过 T T T 矩阵变换后方向不变,这两个向量是 ( 1 , 1 ) (1, 1) (1,1) ( − 3 , 2 ) (-3, 2) (3,2)​:

在这里插入图片描述在这里插入图片描述

这些向量被称为 T T T特征向量。青色向量 ( 1 , 1 ) (1,1) (1,1) 被变换为向量 ( 4 , 4 ) (4,4) (4,4)。变换后的向量与原始向量指向相同的方向,但长度是原来的 4 4 4 倍。我们说向量 ( 1 , 1 ) (1,1) (1,1) T T T 的一个特征向量,其特征值 4 4 4

橙色向量 ( − 3 , 2 ) (-3, 2) (3,2) 被变换为向量 ( 3 , − 2 ) (3,-2) (3,2)。它指向与原始向量方向完全相反的方向,换种说法是说它具有相同的方向但长度为负。向量 ( 3 , − 2 ) (3, -2) (3,2) 等于 ( − 3 , 2 ) (-3, 2) (3,2) 乘以 − 1 -1 1,因此我们说这个向量也是 T T T 的一个特征向量,其特征值 − 1 -1 1

特征向量的定义

我们用下列方程定义特征向量:
A v = λ v Av = \lambda v Av=λv
其中 A A A 是一个 n n n 阶方阵(上述示例中是一个 2 2 2 阶方阵), v v v 是一个 n n n 阶向量,而 λ \lambda λ 是一个标量常数。

如果 v v v A A A 的一个特征向量,则 λ \lambda λ 是对应 A A A 的特征向量 v v v 的一个特征值。

通常,特征值的个数等于矩阵的阶数(因此在前面的示例中,有两个特征值,因为它是一个 2 2 2 阶矩阵)。每个特征值都与一个特征向量相关联,但请记住,如果 v v v 是一个特征向量,那么 v v v 的任何标量倍数也是一个特征向量。重要的只是向量的方向。

此外,有时也可能出现合并情况。例如,一个 2 2 2 阶矩阵可能只有一个特征值,对应于两个不共线的不同特征向量。

特征方程

根据上面定义的特征向量的方程 A v = λ v Av = \lambda v Av=λv,我们可以利用单位矩阵来寻找特征值。

单位矩阵是一个方阵,其中主对角线上的每个元素都是 1 1 1,所有其他元素都是 0 0 0。如果我们用同阶的单位矩阵乘以任何向量 v v v,它会使向量保持不变:
I v = v Iv=v Iv=v
因此,我们可以将原方程右侧的 v v v 替换为 I x Ix Ix,方程仍然成立:
A v = λ I v Av = \lambda Iv Av=λIv
然后将两项都移到方程的左侧并提取公因子 v v v ,整理后得到下面的方程。
( A − λ I ) v = 0 (A-\lambda I)v = 0 (AλI)v=0
注意,上面方程中, 0 0 0 代表零向量,而不是标量值 0 0 0。例如,如果 v v v 2 2 2 阶向量,则 0 0 0 表示 ( 0 , 0 ) (0, 0) (0,0)

这表明矩阵 ( A − λ I ) (A-\lambda I) (AλI) 总能将向量 v v v 变换为 0 0 0,这意味着其行列式必须为 0 0 0。因此:
∣ A − λ I ∣ = 0 \vert A-\lambda I \vert = 0 AλI=0
这便是矩阵 A A A特征方程。我们在这里不进行证明,但这个方程的解就是 A A A 的特征值,从这些特征值我们可以找到对应的特征向量。

2 × 2 2 \times 2 2×2 矩阵的特征值

让我们用上面介绍的特征方程来求矩阵 A = ( 1 3 2 2 ) A=\begin{pmatrix} 1 &3 \\ 2 &2 \end{pmatrix} A=(1232) 的特征向量。其特征方程如下:
∣ A − λ I ∣ = ∣ ( 1 3 2 2 ) − λ ( 1 0 1 1 ) ∣ = ∣ ( 1 3 2 2 ) − ( λ 0 1 λ ) ∣ = ∣ ( 1 − λ 3 2 2 − λ ) ∣ \begin{aligned} \vert A-\lambda I \vert &= \Bigg\vert \begin{pmatrix} 1 &3 \\ 2 &2 \end{pmatrix} - \lambda \begin{pmatrix} 1 &0 \\ 1 &1 \end{pmatrix} \Bigg\vert \\ &=\Bigg\vert \begin{pmatrix} 1 &3 \\ 2 &2 \end{pmatrix} - \begin{pmatrix} \lambda &0 \\ 1 &\lambda \end{pmatrix} \Bigg\vert \\ &= \Bigg\vert \begin{pmatrix} 1-\lambda &3 \\ 2 &2-\lambda \end{pmatrix}\Bigg\vert \end{aligned} AλI= (1232)λ(1101) = (1232)(λ10λ) = (1λ232λ)
根据 2 2 2 阶矩阵的行列式计算公式 ∣ a b c d ∣ = a d − b c \begin{vmatrix}a & b \\ c & d\end{vmatrix}=ad-bc acbd =adbc,可得
∣ A − λ I ∣ = ( 1 − λ ) ( 2 − λ ) − 2 ⋅ 3 = λ 2 − 3 λ − 4 \begin{aligned} \vert A-\lambda I \vert =& (1-\lambda)(2-\lambda)-2 \cdot 3 \\ =&\lambda^2-3\lambda-4 \end{aligned} AλI==(1λ)(2λ)23λ23λ4
解二次方程 λ 2 − 3 λ − 4 = 0 \lambda^2-3\lambda-4 = 0 λ23λ4=0 得,
λ = − 1 λ = 4 \lambda = -1 \qquad \lambda=4 λ=1λ=4
这就是矩阵 A A A 都特征值。

利用特征值求特征向量

我们利用 ( A − λ I ) v = 0 (A-\lambda I)v = 0 (AλI)v=0 求特征向量。

上面我们已经推导出 A − λ I = ( 1 − λ 3 2 2 − λ ) A-\lambda I = \begin{pmatrix} 1-\lambda &3 \\ 2 &2-\lambda \end{pmatrix} AλI=(1λ232λ) 。代入上面公式可得:
( A − λ I ) v = ( 1 − λ 3 2 2 − λ ) ( x y ) = 0 (A-\lambda I)v = \begin{pmatrix} 1-\lambda &3 \\ 2 &2-\lambda \end{pmatrix} \begin{pmatrix}x \\ y\end{pmatrix} = 0 (AλI)v=(1λ232λ)(xy)=0
将上一步求得的特征值 λ = − 1 , λ = 4 \lambda = -1 , \lambda=4 λ=1,λ=4 分别代入可得:

  • λ = − 1 \lambda=-1 λ=1 时, ( 2 3 2 2 ) ( x y ) = 0 \begin{pmatrix} 2 &3 \\ 2 &2 \end{pmatrix} \begin{pmatrix}x \\ y\end{pmatrix} = 0 (2232)(xy)=0,得到如下二元一次方程组
    { 2 x + 3 y = 0 2 x + 3 y = 0 \begin{cases} 2x+3y=0 \\ 2x+3y=0 \end{cases} {2x+3y=02x+3y=0
    这个两个方程是线性相关的(共线的),因此有无数组解,我们只能得到一个关系 x = − 2 3 y x=-\frac{2}{3}y x=32y​。

    这是一条过原点,斜率为 − 2 3 -\frac{2}{3} 32 的直线方程。我们的特征向量可以是该线上的任何向量。

    在一开始,我们通过图形的方式展示了向量 ( − 3 , 2 ) (-3, 2) (3,2) 是一个特征向量,这个向量在此直线上。但我们也看到,任何具有相同斜率的向量也是特征向量。因此,例如, ( − 6 , 4 ) (-6, 4) (6,4)​ 也是一个特征向量(并且它也满足相同的关系)。存在无数具有不同长度但相同斜率的向量。我们可以选择任何向量,但通常选择具有整数分量的最小向量(如果存在这样的向量)。

  • λ = 4 \lambda=4 λ=4 时, ( − 3 3 2 − 2 ) ( x y ) = 0 \begin{pmatrix} -3 &3 \\ 2 &-2 \end{pmatrix} \begin{pmatrix}x \\ y\end{pmatrix} = 0 (3232)(xy)=0​,得到如下二元一次方程组
    { − 3 x + 3 y = 0 2 x − 2 y = 0 \begin{cases} -3x+3y=0 \\ \enspace\:2x-2y=0 \end{cases} {3x+3y=02x2y=0
    这个两个方程也是线性相关的(共线的),因此有无数组解,我们得到关系 x = y x=y x=y​。

    这同样是一条通原点,斜率为 1 1 1 的直线。因此, ( 1 , 1 ) (1, 1) (1,1) 是一个特征向量, ( 2 , 2 ) (2, 2) (2,2) 等也是特征向量。

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

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

相关文章

03_led_horse_run_v1 跑马灯

03_led_horse_run_v1 在Verilog中实现跑马灯通常涉及到使用一个计数器来控制LED灯的亮灭顺序。 跑马灯是一种常见的电子显示方式,它通过控制多个LED灯的顺序点亮,形成一种动态的视觉效果,看起来就像灯在“跑”一样。 更新 使用dip开关控制…

一键 input 苹果 OpenELM,零门槛 Llama 3 教程,40+ 优质模型/数据集/教程,建议收藏!...

现在 AI 行业什么最火? 「大模型」一定仍然排在前三甲的位置。 自从 2022 年底 ChatGPT 面世以来,大模型在各行各业已经带来了太多的惊喜,应用场景愈发丰富,同时也带动了相关底层技术的普及与普适化。尤其是在开源模型繁荣发展之下…

描述Nacos中服务发现的流程。

Nacos中服务发现的流程解析 在微服务的架构体系中,服务发现是一个至关重要的组成部分。它解决了服务提供者和消费者之间如何动态发现对方地址的问题,使得微服务之间的调用更加灵活和高效。在众多服务发现组件中,Nacos以其易用性、高性能和丰…

C#核心之面向对象-多态

面向对象-多态 文章目录 1、Vob1、多态的概念2、多态的实现 2、抽象类和抽象方法1、抽象类2、抽象方法 3、接口1、接口的概念2、接口的声明3、接口的使用4、接口可以继承接口5、显示实现接口总结思考 电脑使用USB接口读取数据 4、密封方法 1、Vob 1、多态的概念 多态&#xf…

本周10个Github有趣项目WebLlama等

10个Github有趣的项目、工具和库 1、WebLlama Llama-3 网络Web代理,这是使用 Llama 3 构建的最强大的代理,通过聊天对话实现Web导航,可以按照说明浏览网页并与您交谈。 在Llama-3-8B-Web性能上超过了 GPT-4V(*零样本)…

为什么选择OpenNJet?OpenNJet下一代云原生应用引擎!OpenNJet开发实战!

前言导读 在当今这个数字化转型加速的时代,云原生技术已成为企业和开发者构建现代应用的首选路径。OpenNJet作为新一代云原生应用引擎,在国内外技术社区受到了广泛关注。 本文将深入探讨OpenNJet的特点、优势以及在开发实践中的应用,带您全…

【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台-源码下载与项目配置

基于.NET Framework 4.8 开发的深度学习模型部署测试平台,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等应用场景,同时支持图像与视频检测。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runtime以及OpenCV DNN,支持CPU、IGP…

用python画一个正八边形

1 问题 使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长100的正八边形。 2 方法 1、利用for循环解决如何画出图形中相同的八条边的问题。 2、再利用turtle.fd()函数和turtle.seth()函数画出完整的图形。 代码清单 1 import turtleturtle.pensize(2)d0for i in r…

【系统架构师】-选择题(十三)

1、在某企业的营销管理系统设计阶段,属性"员工"在考勤管理子系统中被称为"员工",而在档案管理子系统中被称为"职工",这类冲突称为( 命名冲突)。 同一个实体在同系统中存在不同的命名&am…

智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务

目录 一、引言 二、智慧旅游的概念与特点 (一)智慧旅游的概念 (二)智慧旅游的特点 三、科技推动旅游业创新发展 (一)大数据技术的应用 (二)人工智能技术的应用 (…

推荐收藏!40 道算法工程师必问的高频面试题!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#xff1a…

【计算机科学速成课】笔记二

笔记一 文章目录 7.CPU阶段一:取指令阶段阶段二:解码阶段阶段三:执行阶段 8.指令和程序9.高级CPU设计——流水线与缓存10.早期编程方式11.编程语言发展史12.编程原理13.算法入门14.数据结构15.阿兰图灵 7.CPU CPU也叫中央处理器,…

在R的 RGui中,使用devtools 安装trajeR

创建于:2024.5.5 文章目录 1. 报错信息2. 尝试使用指定的清华镜像,没有解决3. 找到原因:官网把包删除了4. 尝试从网上下载,然后安装。没有成功5. 使用devtools安装5.1 尝试直接安装:install.packages("devtools&q…

写点简单的算法压压惊

题目 问题描述 小蓝是个直男,他老是不懂女朋友的心思,甚至不知道女朋友 有没有生气。 后来他逐渐发现,如果女朋友给他发的消息的字符个数小于等 于 10 个,那么就是生气了,否则就是没有生气。 现在收到一条女朋友发来的…

关于YOLO8学习(四)模型转换为ncnn

前文 关于YOLO8学习(一)环境搭建,官方检测模型部署到手机 关于YOLO8学习(二)数据集收集,处理 关于YOLO8学习(三)训练自定义的数据集 简介 本文将会讲解: (1)如何通过PyCharm,进行pt模型的转换,最后输出一个适合手机端使用的模型 开发环境 win10、python 3.11…

C语言写一个终端进度条

C语言写一个终端进度条 这个功能挺简单的,主要有以下两点: 如何获取终端宽度如何让字符在原地闪烁 如何获取终端宽度 这里用到了设备控制接口函数ioctl(),下面简单的介绍一下这个函数的用法: ioctl是一个在Unix和类Unix系统中…

1-36 双列集合

一 Map集合 1.存储特点(重点记忆:) 以键值对(KEY-VALUE)形式存储 2.特点: ①将键值对看做对象进行存储 ②KEY 不能重复,VALUE可以重复 ③每一对K-V都是意义对应的映射关系 3.拓展:Map集合是双列集合,由两个单列集合组成的 分析KEY和VALUE所在的是什么种类集合 ①KEY不…

JS基础:js的2种基本用法,4个属性详解

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合…

C++容器map及unordered_map底层实现和性能上有所不同

std::map 和 std::unordered_map 都是 C 标准库中用于实现关联容器的类模板,但它们在底层实现和性能上有所不同。 1. std::map: - 使用红黑树实现,保持元素的有序性。因此,所有操作的时间复杂度都是 O(log n),其中…

算法--贪心算法

贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤其有效,这意味着局部最优解能决定全局最优解。简单来说,贪心…