深度学习·理论篇(2023版)·第003篇深度学习和计算机视觉中的基础数学知识02:特征向量和特征值+矩阵乘法的几何意义(2)+奇异值分解+线性可分性和维度+非线性变换

💕恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~

🧡本文章为2021版本迭代更新版本,在结合有效知识的基础上对文章进行合理的增加,使得整个文章时刻顺应时代需要

🧡本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,涉及人工智能的各个领域,是经过一年时间打磨的精品专栏!

💜专栏地址:https://blog.csdn.net/qq_39237205/category_12077968.html

正文开始~~~

没看上一篇的先看上一篇哦,都有联系:
上一篇地址:https://blog.csdn.net/qq_39237205/article/details/127589548

文章目录

    • 2.1.5 特征向量和特征值
      • 2.1.5.1 特征值和特征向量的定义与几何意义
      • 2.1.5.2 正定矩阵的特征向量的特别之处
    • 2.1.6 矩阵乘法的几何意义(2)
      • 2.1.6.1 从旋转和拉伸角度理解矩阵乘法的几何意义
    • 2.1.7 奇异值分解
    • 2.1.8线性可分性和维度
      • 2.1.8.1 线性可分的定义如下
      • 2.1.8.2 举例:二维的样本通过矩阵乘法投影到高维
    • 2.1.9 非线性变换

2.1.5 特征向量和特征值

2.1.5.1 特征值和特征向量的定义与几何意义

特征值和特征向量的定义,对于一个非零向量x和一个矩阵A,如果有标量入使得:

在这里插入图片描述

则称入为A的特征值,x为对应的特征向量。从定义来看,特征向量的意思就是说对经过变换后,这个向量并没有发生方向的变化(或是完全反向,如果入为负值的话)。

我们来直观感受一下特征向量和特征值的几何含义,为方便讨论,以单位向量为例,考虑如下矩阵:

在这里插入图片描述

这个矩阵变换的特征向量分别为(-1/√2,-1/√2)和(-1/√5,-2/√5),对应的特征值分别是2和3。

首先来看看向量(1,0)和(0,1)经过变换后的情况,如图2-10所示。

在这里插入图片描述

根据矩阵乘法几何含义的理解,(1,0)向量所示的黑色实线箭头变换后对应的则是第一列的向量(1,-2),而(0,1)所示的浅色实线箭头变换后对应的是第二列的向量(1,4)。显然这两个向量都发生了方向的变化。

接下来看看图2-10b中,两个特征向量变换后的情况。(-1/√2,-1/√2)是黑色实线箭头,(-1/√5,-2/√25)是浅色实线箭头,变换后的两个向量和变换前的向量方向完全一致,其中黑色虚线箭头的长度是黑色实线箭头长度的2倍,浅色虚线箭头的长是浅色实线箭头长度的3倍。

这就是特征值的几何含义:变换会将对应特征向量方向上的向量进行缩放,缩放的倍数就是特征值。

上面的例子用的矩阵是一个非对称矩阵,在机器学习中比较常见的情况是对称矩阵,尤其是正定矩阵。

2.1.5.2 正定矩阵的特征向量的特别之处

正定矩阵的定义如下:对于任意非零的向量x,和一个对称矩阵A,如果有
在这里插入图片描述
则称矩阵A是正定矩阵。

从之前讲到的点积的几何意义,正定矩阵可以理解为一个向量经过正定矩阵变换后,和自身的点积大于0。即正定矩阵对应的变换不会把变换后的向量变到向量本身所垂直的平面的另一侧从二维的角度来看,即变换后的向量和自身的夹角都不会大于90°。

考虑如下正定矩阵:

在这里插入图片描述

特征向量分别是(0.85,0.53)和(-0.53,0.85),对应的特征向量为1.81和0.69,画出来如图2-11a所示,深色实线箭头为单位向量,浅色虚线箭头为变换后的向量。

在这里插入图片描述

可以看到,两个特征向量是互相垂直的。

图2-11b,想象有个单位长度的向量,把这个向量绕着原点旋转,并画出变换前和变换后的轨迹,则这个向量显然画出了一个圆,而变换后的向量画出的轨迹是一个椭圆。

图2-11c所示,而这个正定矩阵对应的特征向量,则正好分别是椭圆长短轴所指的方向,特征值则是椭圆的半长轴和半短轴的长度。

从几何上理解就是正定矩阵变换前后的空间里可以找到一组正交的向量,这组正交向量变换后仍是正交的,且方向不变,空间只是沿着这组正交向量的方向上发生了拉伸/收缩。

2.1.6 矩阵乘法的几何意义(2)

2.1.6.1 从旋转和拉伸角度理解矩阵乘法的几何意义

正定矩阵对应的变换其实就是沿着特征向量的方向进行了缩放。那么从旋转和缩放的角度如何看待正定矩阵的变换呢?

还是考虑图2-11中的例子,对于图2-11例子中的变换矩阵

在这里插入图片描述

很难直观想象出沿着特征向量方向(0.85,0.53)和(-0.53,0.85)进行缩放的几何过程。如果沿着横轴和纵轴方向进行缩放,那么形式就非常简单了,如x-y二维平面中,用一个变换对横轴缩放a倍,纵轴缩放b倍的矩阵如下:

在这里插入图片描述

该矩阵是一个对角矩阵,对应维度上的元素就是要缩放的倍数。

通过上文,我们可以了解到旋转矩阵和对应的几何理解,那么对于二维平面的情况,即转换思路:只要用一个旋转矩阵,把原来空间中对应特征向量的方向旋转到对应x轴和y轴,然后进行简单的缩放,然后再用一个矩阵变换旋转回去,等效于直接乘以一个变换矩阵。

按照这个思路来试一下。

第①步,已知两个特征向量的方向,现在要把(0.85,0.53)转回x轴的位置,只需要把当前的x轴转到(0.85,0.53)沿x轴对称的位置,所以第一个列向量就是(0.85,-0.53)。

同样的对于(-0.53,0.85),要转回y轴,则需要把当前y轴转到(-0.53,0.85)沿y轴对称的位置,也就是(0.53,0.85),所以变换矩阵就是

在这里插入图片描述

也就是从图2-12a到图2-12b的情况。注意其实就是特征向量作为行向量的矩阵。接下来就是简单的沿着x轴和y轴方向进行缩放,其中缩放的倍数分别是两个特征向量对应的特征值,也就是进行如下的矩阵变换。

在这里插入图片描述
这一步对应下图2-12b到图2-12c,可以看到,变换前的方格里的笑脸已经被扭曲成了斜着的四边形,接下来就是最后一步,也就是第一步的“逆旋转”,其实就是逆变换,注意到旋转矩阵都是正交矩阵,所以逆变换就是转置,也就是特征向量作为列向量的矩阵。

在这里插入图片描述

最后就得到了图2-12d,所以在这个过程中相当于把变换矩阵按照M=U∑UT分解成了3个子变换矩阵:

在这里插入图片描述
在这里插入图片描述
其中第一次和最后一次的变换是单纯旋转,中间的变换是单纯地沿坐标轴缩放。

2.1.7 奇异值分解

图2-12的例子讲的是正定矩阵,那么对于一般情况下的矩阵变换呢,是否这种基于特征向量和特征值,然后用单纯旋转和缩放的组合解释的几何意义也能推广呢?答案是肯定的,而且形式上和对于正定矩阵的分解很类似,也是“翻转→缩放→翻转”,这种更一般的分解就是奇异值分解(Singular Value Decomposition,SVD) 。

定义如下:
在这里插入图片描述
其中∑是一个对角矩阵,就我们在机器学习领域内的问题而言,U和V为正交矩阵。

下面还是以二维的例子来演示,考虑如下的矩阵及其奇异值分解。

在这里插入图片描述

还是按照类似图2-12所示的策略,先画出(0.38,0.92)和(-0.92,0.38)两个第一次旋转后会转到横轴和纵轴的向量,还有虚线笑脸,来一起看看一步步直到最终的变换,如图2-13所示。

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

所以得知,任何一个矩阵乘法执行的线性变换都是可以分解为旋转→缩放→旋转,而且其实正定矩阵的奇异值分解就是U和V是同一个矩阵的情况,奇异值分解可以看作是特征值和特征向量的推广。

2.1.8线性可分性和维度

线性可分就是说可以用一个线性函数把两类样本分开

2.1.8.1 线性可分的定义如下

在这里插入图片描述
图2-14a中在一维直线上,将两类点分开的超平面就是一个点。图2-14b中,分开两类点的超平面是一条直线。图2-14c中则是一个平面分开了两个不同类别的点。对于这种二分类问题,在n维空间中,wx+b=0则是描述判别这两类不同模式的超平面。至于线性不可分,如图2-15a所示的是一个经典的表达异或(XOR)函数的线性不可分例子。

在这里插入图片描述

在图2-15b中,一种类别的点集“包围”着另一种类别的点集。对于这种情况,无论怎么画直线,都不可能将两类点分开。
在这里插入图片描述

那么线性可分和前面讲的线性变换有什么联系呢?通过前面的内容,矩阵所对应线性变换就是矩阵会对空间进行旋转,沿指定方向缩放的操作。线性变换再结合平移向量一起,这类变换被称为仿射变换。

在同维度下,仿射变换下有些特性可能会发生变化,如长度、面积、角度和距离等,有些量则保持不变,如直线的平行性质,还有线性可分的性质。形象来理解,仿射变换如果对变换前的空间标上格子,那么变换后格子的相对位置是不会发生变化的。

所以以二维为例,如果变换前可以被直线二分类的空间,变换后对应的空间和分界线都是一样的,如图2-16所示。
在这里插入图片描述

也就是说同维度的仿射变换不改变线性可分或不可分的性质。

那如果变换一下维度呢?结论对于线性不可分还是一样,只要是线性/仿射变换,线性不可分的变换后还是线性不可分,而对于线性可分的例子,则有可能会变得线性不可分。我们还是用图2-14中的例子,先考虑变换到低的维度,如图2-17所示。

在这里插入图片描述

在图2-17中,分别把样本位置和x轴的单位向量(1,0),y轴的单位向量(0,1)和A点方向的单位向量(1/2,-V3/2)做矩阵乘法,也就是点积,相当于求出了样本在这些向量上的投影。可以看到,在y轴和A向量的投影仍然是线性可分的,但是在x轴上的投影上,样本则混在了一起,无法用一个点分开。

2.1.8.2 举例:二维的样本通过矩阵乘法投影到高维

把二维的样本通过矩阵乘法投影到高维,只需要用一个三行两列的矩阵,如图2-18所示。

在这里插入图片描述

可以看到,经过投影到高维的矩阵乘法,二维平面在三维空间里还是分布在一个平面上,所以线性可分性还是保持不变。

虽然我们只看了一维到三维的情况,不过不同维度之间的线性变换的规律是类似的,高维变换到低维可能会让本来线性可分的样本变得不可分,而低维变换到高维则不会破坏线性可分性

总体而言,在高维空间中的样本更容易被线性分开,直观想象一下,一群挤在一条线上的样本和一群同样数量分布在三维空间中的样本,哪个感觉更容易被线性分开?当然是后者了

2.1.9 非线性变换

如果是线性不可分的样本,通过线性变换到更高维的空间后,仍然是线性不可分的。

但是注意到,低维的样本变换到更高维空间后,事实上仍处在原来维度大小的一个超平面上。

如图2-18所示,二维空间中所有的样本在变换到三维空间后还是处在一个二维平面上,但是和二维情况不同的是,在二维空间内,无论如何都不能改变样本的分布,而在三维空间内却多出了一个维度!

在这里插入图片描述

下面来考虑如图2-19a的情况,在垂直二维x-y平面的方向上增加第三个维度z。

在这里插入图片描述

显然是线性不可分的,一个很自然的想法是通过非线性变换得到一个z轴的值,来考虑如下的非线性变换:

在这里插入图片描述

得到的结果在三维空间中如图2-19b所示,如果只看z轴,如图2-19c所示。

可以看到,无论是只考虑非线性变换后在低维空间的效果(图2-19c)还是同时考虑到非线性变换和高维空间的效果(图2-19b),都有无数个超平面可以轻松地将样本分开。在图2-19b和图2-19c中分别标出了z=0.1所在的分界作为例子。

注意到因为图2-19a中的样本中心是在(0.5,0.5),所以在非线性变换时需要对x和y分别减去0.5。这一过程可以看作是为了能让非线性变换起到最好的效果而做的仿射变换,所以当遇到线性不可分的样本,就可以考虑先做仿射变换,然后进行非线性变换

如果效果不好呢?可以考虑更灵活的非线性变换,更高的维度甚至到无限维,SVM里的核方法就含有这一思想。或者可以考虑再来一次仿射变换+非线性变换,至此神经网络呼之欲出。

在这里插入图片描述

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

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

相关文章

Oracle 控制文件管理

控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据文件和日志文件信息。控制文件在数据库创建时被自动创建,并在数据库发生物理变数时更新。控制文件被不断更新,在任何时候都要保证控制文件可用,…

数组超过预设的最大数组大小_工作表数组大小的扩展及意义

朋友们好,今日给大家继续讲解VBA数组与字典解决方案的第17讲,数组大小的扩充问题。这一讲的内容相对比较简单,在之前的章节中讲了数组与数组的计算规律,也是利用了数组的扩展原理。其实,两个数组计算时,参与…

Android ANR 实例分析

什么是ANR? 以下四个条件都可以造成ANR发生: InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时10秒没…

【GIT 基础篇六】分支管理(创建与合并)

上篇我们整理了如何创建远程仓库,以及如何将本地文件上传至远程仓库,仓库创建好了,我们接下来就要准备开发了,对于使用git而言,通常的习惯就是一人一个分支,等测试无误再合并;又或者根据需求创建…

git 命令汇总

瞎扯 最近有几个留言想让写下git的内容,git是一个工具,主要是用来管理码农的代码的,理由很简单,码农写的代码太多,自己都不知道可能哪里出现了Crash。Linux也是因为git的出现,可以让世界上越来越多的人维护…

我的最佳队友之K8无线蓝牙键盘深度使用测评( Keychron K8 )

K8 无线蓝牙键盘深度使用测评( Keychron K8 )——500 元左右最适配 Mac 电脑的机械键盘 0.键盘参数: 首先我们在实际测评之前,看下这个键盘的具体参数,心里有个大致的了解~ 87键 国产佳达隆G轴 可选茶轴/红轴/青轴 蓝…

你见过哪些操蛋的代码?

NO.1#define TRUE FALSE //Happy debugging suckers快乐的去调试你的代码吧,哈哈NO.2#define NULL (::rand() % 2) // would be quite nice aswell嗯,这个代码也很不错NO.3#define if( if(!卧槽,这个代码更加叼,哈哈&#xff…

后序线索树怎样画图_算法新解刘新宇(二)二叉搜索树:数据结构中的“hello world”...

二叉搜索树BST定义:基于广义二叉树,一颗二叉树定义:或者为空 或者包含三部分:一个值,一个左分支和一个右分支。这两个分支也都是二叉树分支。一颗二叉搜索树是满足下面条件的二叉树:所有左分支的值都小于本…

Android 亮屏速度分析总结

前面聊的 最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面的时间都不能达到要求,因此引发了一系列的调试之路。 计算按下power键到亮屏的时间 Android 唤醒时间统计 刚开始的时…

英语学习中总结的阅读、段落匹配、选词填空技巧

1 阅读题 一般五道题都是围绕主旨来问的,所以后四个问题也能帮助第一题的解答,找共有词~~~串起来 文章一般都是新旧观点的碰撞,所以有时候他问的是旧观点,要看清楚他问的是新观点还是旧观点,这是个陷阱~ 2 段落匹配 反…

sql 账号查询一个表查询权限_一个查询语句引发的问题以及巨型表相关操作探索与思考...

背景:关于这个标题想了试了好几个总觉得欠那么点意思。大致情况是,在某服务支持中,1张大表4.5T左右,该表也是分区表。其中一个执行频繁的SQL写法有很大问题,导致巨表全量扫描,造成IO负载很大,业…

Android 亮屏速度分析

前面聊的最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面的时间都不能达到要求,因此引发了一系列的调试之路。计算按下power键到亮屏的时间Android 唤醒时间统计刚开始的时候&…

container_of实例

1 前面说的 container_of 在linux内核代码里面使用非常多,对于喜欢linux编程的同学来说,对这个函数要非常清楚他的使用方法,而且还要知道他的原理,这对以后看内核代码,写内核驱动的帮助都非常大,当然&…

Git 分布式版本控制工具 03Git常用命令:Git全局设置+本地与远程仓库操作获取Git仓库+标签操作+忽略名单+工作区、暂存区、版本库+分支操作+暂时保存

Git常用命令目录4 Git常用命令4.1 Git全局设置4.2 获取Git仓库4.2.1 在本地初始化Git仓库4.2.2 从远程仓库克隆4.3 常见的概念:工作区、暂存区、版本库4.4 常见的概念:Git工作区中文件的状态4.5 本地仓库操作4.5.1 git status4.5.2 git add4.5.3 git res…

matlab dir函数_MATLAB自动管理文件

MATLAB自动管理文件1. MATLAB中路径设置(1)cd:用于切换当前工作目录示例:将当前工作目录切换到D:\Documents\MATLAB\Matlab test\study下。代码:cd (D:\Documents\MATLAB\Matlab test\study)(2)path:用于对搜索路径的操作示例:先查看当前所有的文件路径&…

Git 分布式版本控制工具 04Gitcode案例:多人协作开发流程+创建仓库+拉取操作+克隆仓库+拉取远程仓库中最新的版本+修改拉取的本地代码

文章目录5. Gitcode5.1 多人协作开发流程5.2 创建仓库5.3 拉取操作5.3.1 克隆仓库5.3.2 拉取远程仓库中最新的版本5.4 修改拉取的本地代码5.5 解决冲突5.6 跨团队协作5. Gitcode 在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存&#xff0c…

rabbitmq如何保证消息不被重复消费_如何保证消息不被重复消费

一. 重复消息为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1 生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经…

Git 分布式版本控制工具 06在IDEA中使用Git:获取Git仓库+本地仓库操作+远程仓库操作+创建/查看/切换/推送/合并分支操作

在IDEA中使用Git7. 在IDEA中使用Git7.1 在IDEA中配置Git7.2 获取Git仓库7.2.1 本地初始化仓库7.2.2 从远程仓库克隆7.3 Git忽略文件7.4 本地仓库操作7.4.1 将文件加入暂存区7.4.2 将暂存区文件提交到版本库7.4.3 查看日志7.5 远程仓库操作7.5.1 查看远程仓库7.5.2 添加远程仓库…

linux 内核宏container_of剖析

1、前面说的我在好几年前读linux 驱动代码的时候看到这个宏,百度了好久,知道怎么用了,但是对实现过程和原理还是一知半解。container_of宏 在linux内核代码里面使用次数非常非常多,对于喜欢linux编程的同学来说,了解其…

目录树 删除 数据结构_数据结构:B树和B+树的插入、删除图文详解

B树1.1B树的定义B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。一颗m阶的B树定义如下:1)每个结点最…