机器学习中的数学基础(二)

news2025/2/28 21:43:27

机器学习中的数学基础(二)

  • 2 线代
    • 2.1 矩阵
    • 2.2 矩阵的秩
    • 2.3 内积与正交
    • 2.4 特征值与特征向量
    • 2.5 SVD矩阵分解
      • 2.5.1 要解决的问题
      • 2.5.2 基变换
      • 2.5.3 特征值分解
      • 2.5.4 奇异值分解(SVD)

在看西瓜书的时候有些地方的数学推导(尤其是概率论的似然、各种分布)让我很懵逼,本科的忘光了,感觉有点懂又不太懂,基于此,干脆花一点时间简单从头归纳一下机器学习中的数学基础,也就是高数、线代、概率论(其实大学都学过)。
本文全部都是基于我自己的数学基础、尽量用方便理解的文字写的,记录的内容都是我本人记忆不太牢靠、需要时常来翻笔记复习的知识,已经完全掌握的比如极限连续性啥的都不会出现在这里。

学习内容来自这里

2 线代

2.1 矩阵

在这里插入图片描述
矩阵就是数据,对数据做任何操作都是对矩阵做操作。
行=列就是方阵。
在这里插入图片描述
同型矩阵:行、列相同。
在这里插入图片描述

2.2 矩阵的秩

秩就是矩阵有几个极大线性无关组。
行的秩=列的秩。

理解:
在这里插入图片描述
比如图中第一张图点A的坐标是(x,y),经过旋转矩阵之后,变成了:
[ x c o s θ + y s i n θ , − x s i n θ + y c o s θ ] [xcos\theta+ysin\theta, -xsin\theta+ycos\theta] [xcosθ+ysinθ,xsinθ+ycosθ]原来是二维图形,经过旋转矩阵之后,仍然是二维图形,所以旋转矩阵的秩=2。
这一点在图像也可以直观地看出来:旋转矩阵无法线性组合。
在这里插入图片描述
矩阵中最大不相关向量的个数就是秩。

2.3 内积与正交

在这里插入图片描述
内积=0,则向量正交:
在这里插入图片描述
在这里插入图片描述

2.4 特征值与特征向量

在这里插入图片描述
如图所示,对角矩阵表示对向量拉伸,如果在其它位置上有值,那就有旋转操作。

在这里插入图片描述
x是特征向量, λ \lambda λ是特征值。特征值与特征向量是矩阵中信息描述的主要工具。
普遍可以这样认为:特征向量代表方向,特征值代表这个方向的重要程度。特征值大,就是主要信息。
特征空间包含了所有的特征向量。

应用:
图像就是 长×宽×通道数 的矩阵,所以可以通过特征值,提取主要信息。这就是图像压缩。

特征值和特征向量是为了研究向量在经过线性变换后的方向不变性而提出的:
1)一个矩阵和该矩阵的非特征向量相乘是对该向量的旋转变换;
2)一个矩阵和该矩阵的特征向量相乘是对该向量的伸缩变换,其中伸缩程度取决于特征值大小
矩阵在特征向量所指的方向上具有 增强(或减弱)特征向量 的作用。这也就是说,如果矩阵持续地叠代作用于向量,那么特征向量的就会突显出来。

2.5 SVD矩阵分解

2.5.1 要解决的问题

问题:数据过大且稀疏。
举例:以电商数据为例,如果有100万个客户,供选择的商品有10万个,那么这就是一个 100万×10万 的矩阵,这个数据量未免过于庞大,而且每一个客户可能只在这些商品中选择寥寥几种,所以这个矩阵会非常稀疏。那么就可以把它分解成一个 100万×10 的矩阵和一个 10×10万 的矩阵,前者表示客户,后者表示商品,这就是SVD矩阵分解要解决的问题。
在这里插入图片描述

2.5.2 基变换

什么是基?
在这里插入图片描述

要计算的话,就是直接把原坐标与新的基相乘(矩阵乘法本质是一种变换,是把一个向量,通过旋转,拉伸,变成另一个向量的过程):
在这里插入图片描述

从下面这张图可以看到:左边是进行了x轴的拉伸,右边是有一个旋转。
所以左边的主要方向就是x轴,右边的主要方向就是图中箭头部分。
这在2.4的图里也可以看到。

2.5.3 特征值分解

特征值分解是矩阵分解的一种方法,矩阵分解也称为矩阵因子分解,即将原始矩阵表示成新的结构简单或者具有特殊性质的两个或多个矩阵的乘积,类似于代数中的因子分解。

特征值分解的实质是求解给定矩阵的特征值和特征向盘,提取出矩阵最重要的特征,特征值分解公式: A = V Λ V − 1 A=V\Lambda V^{-1} A=VΛV1其中V为特征向量矩阵, Λ \Lambda Λ是特征值对角阵。

为什么是这样?
因为前面提过:
在这里插入图片描述
x是运动方向, λ \lambda λ是运动速度。
这个式子是不完备的,对于一个秩为m的矩阵 ,应该存在m个这样的式子,完备式子应该是: A X = X Λ AX=X\Lambda AX=XΛ,所以特征值分解公式就是 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX1

基的要求:正交,即线性无关

缺陷:
特征值分解仅适用于提取方阵特征,但在实际应用中,大部分数据对应的矩阵都不是方阵;
矩阵可能是有很多0的稀疏矩阵,存储量大且浪费空间,这时就需要提取主要特征。

2.5.4 奇异值分解(SVD)

SVD是将任意较复杂的矩阵用更小、更简单的 3个子矩阵的相乘表示 ,用这3个小矩阵来描述大矩阵重要的特性。
在这里插入图片描述
但是可以看到这三个分解出来的矩阵反而都很大。
所以只要提取特征向量里面的主要信息就可以了,比如这里我们提取k个主要信息,则中间的矩阵就变成了 k × k k\times k k×k了:
在这里插入图片描述
SVD推导:
在这里插入图片描述
在这里插入图片描述

应用:
在使用线性代数的地方,基本上都要使用 SVD。 SVD 不仅仅应用在 PCA 、图像压缩、数字水印、 推荐系统和文章分类、 LSA (隐性语义分析)、特征压缩(或数据降维)中,在信号分解、信号重构、信号降噪、数据融合、同标识别、目标跟踪、故障检测和神经网络等方面也有很好的应用, 是很多机器学习算法的基石。

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

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

相关文章

使用redis快速实现session共享,springboot

1.引入依赖 <dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId> </dependency> <!-- 引入 redis 依赖 --> <dependency><groupId>org.springframework.b…

8.2 数据结构——插入排序

1、基本思想&#xff1a;每步将一个排序的对象&#xff0c;按其关键码大小插入到前面已经排好序的一组对象的适当位置上&#xff0c;直到对象全部插入为止。即边插入边排序&#xff0c;保证子序列中随时都是有序的。 2、基本操作&#xff1a; &#xff08;1&#xff09;在有序…

嗯哦哎辟 NOIP 2022 游寄

虽然上次不是假的&#xff0c;但这次是真的寄了。 Day 0 虽然是南京本地人&#xff0c;但因疫情原因&#xff0c;晚上决定去住了酒店。 看了一眼考场&#xff0c;感觉位置小得离谱。不愧是 NOI 2022 团体总分第十的“强省”江苏。 刚开始去了 409&#xff0c;发现房间里一股…

非凡社群管理之社群管理如何制定规则

1、加人规则&#xff1a;我们上篇文章里说到了&#xff0c;拉人前也是要进行一个明确定位的&#xff0c;不能什么人都拉&#xff0c;这就是我们常说的“设门槛”&#xff0c;避免占用群资源以及后期花费精力对其进行筛除。常用到的方式有这么几种&#xff1a;邀请式&#xff08…

【C++】类和对象(下)(再谈构造函数 初始化列表 explicit关键字 static成员 特性 友元 友元函数 友元类 内部类 匿名对象)

文章目录再谈构造函数初始化列表explicit关键字static成员特性友元友元函数友元类内部类匿名对象再谈构造函数 我们之前学习构造函数的时候&#xff0c;调用构造之后对象中就已经有了一个初始值&#xff0c;但不能说它是对对象像成员变量的初始化&#xff0c;构造函数体中的语…

windows10不支持Miracast无线投屏(不能进行无线投影)

电脑屏幕小看视频不爽&#xff0c;想把电脑屏幕投屏到电视上&#xff08;单独买一块高质量显示屏太贵&#xff0c;而且没有大尺寸的电视看的爽&#xff09;&#xff0c;但是windows提示不支持Miracast&#xff0c;跟着下面步骤教你解决问题。 当链接电视时出现下图提示不支持Mi…

SpringBoot 3.0 来啦!

SpringBoot 3.0 来啦&#xff01;&#xff01; 大家好&#xff0c;我 是 Ding Jiaxiong。 没赶上热乎的&#xff0c;晚了两天&#xff0c;2022年11月24日&#xff0c;SpringBoot 3.0 正式发布了&#xff01; 文章目录SpringBoot 3.0 来啦&#xff01;&#xff01;1 看看官网2…

ARM 37 个通用寄存器详解

一、简介 1、ARM 总共有 37 个寄存器&#xff0c;但是每种模式下最多只能看到 18 个寄存器&#xff0c;其他寄存器虽然名字相同&#xff0c;但是在当前模式不可见。 2、例如&#xff0c;对 r13 这个名字来说&#xff0c;在 ARM 中共有 6 个名叫 r13&#xff08;又叫 sp&#x…

SpringBoot SpringBoot 原理篇 1 自动配置 1.10 bean 的加载方式【八】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.10 bean 的加载方式【八】1.10.1 BeanDefinitionRegistryPostPro…

ABAP学习笔记之——第五章:内表

内表&#xff1a; 内表是可以在程序内部定义且使用的表&#xff0c;属于本地表。 与C语言比较&#xff1a; C语言的数组和内表比较&#xff1a; 内表是动态数组(Dynamic Data Object) INITIALSIZE 语句并非实际占用内存空间&#xff0c;而只是预约(RESERVE)内存空间。 创建…

Python每日一练 06

Python每日一练 06 文章目录Python每日一练 06while循环实例一、斐波那契数列前n项实例二、Leibniz公式计算圆周率while循环 循环结构表示程序重复执行某个或某些操作&#xff0c;直到某条件为假&#xff08;或为真&#xff09;时才可终止循环。 在问题求解过程中&#xff0c;…

[算法笔记]最长递增子序列和编辑距离

最长递增子序列 例如对于 a[] {2,1,5,3,6,4,8,9,7}其最长递增子序列为{1,3,4,8,9}所以长度&#xff08;或者说是结果&#xff09;为5。 对于a[0...n-1]&#xff0c;用dp[i]表示a[0...i]中以a[i]结尾的最长递增子序列长度 其状态状态方程&#xff1a; dp[i]1 // 0≤i≤…

【无人机通信优化】基于粒子群算法的多跳无线网络部署优化附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

[附源码]SSM计算机毕业设计时事资讯平台JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Date对象

文章目录Date日期对象Date对象的创建格式化日期3.获取Date总的毫秒数(时间戳)&#xff0c;是距离1970年1月1日过了多少毫秒数。二&#xff1a;常用时间获取方法三&#xff1a;日期设置方法四&#xff1a;时间转字符串菜鸟工具&#xff1a;https://www.runoob.com/jsref/jsref-o…

在Express框架使用ORM模型访问关系型数据库

一、ORM模型&#xff1a;设计思想&#xff0c;主要目的是简化计算机程序访问数据库 1、ORM&#xff1a;对象关系模型(对象关系映射) Object Releastion Model,将程序中的对象和数据库中关系(表格)进行映射。可以使开发者在程序中方便的对数据库进行操作(用户在程序操作对对象实…

【网页制作课作业】用HTML+CSS制作一个简单的学校网页(9页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

一文熟悉 Go 的分支结构(if - else-if - else、switch)

哈喽大家好&#xff0c;我是陈明勇&#xff0c;今天分享的知识是 Go 的分支结构。如果本文对你有帮助&#xff0c;不妨点个赞&#xff0c;如果你是 Go 语言初学者&#xff0c;不妨点个关注&#xff0c;一起成长一起进步&#xff0c;如果本文有错误的地方&#xff0c;欢迎指出&a…

Python爬虫脚本+XML解析实现自动保存某商城的商品图

文章目录 1.背景介绍2.代码分析2.1.创建图片保存的目录2.2.定一下载函数2.3.发送请求解析数据2.源代码(全)1.背景介绍 Python脚本可以实现数据的爬取,而XML可以解析网页数据。将Python爬虫脚本与XML解析功能相结合,可以实现自动保存某商城的商品图功能。 注:本功能仅用于…

基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、手写体数字识别系统✳️ 2.1 MNIST 数据集✳️ 2.2 CNN✳️ 2.3 网络训练✳️ 三、手写体数字识别结果✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 手写数字识别是计算机视觉领域中的一个重要应用&#xff0c;已广泛应用在很…