【ML学习笔记】5:机器学习中的数学基础5(张量,哈达玛积,生成子空间,超平面,范数)

本文主要是介绍【ML学习笔记】5:机器学习中的数学基础5(张量,哈达玛积,生成子空间,超平面,范数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

向量/矩阵/张量

向量

向量可以表示成一维数组,每个分量可以理解为向量所表示的点在空间中坐标的分量。

矩阵

矩阵可以表示成二维数组,上节理解了矩阵可以理解为线性映射在特定基下的一种定量描述。

张量

张量可以表示成任意维的数组,张量是向量概念向更高阶次的推广,向量是一维张量。
但不能把矩阵简单的看成二维张量,张量是几何的,矩阵是代数的。二阶张量和矩阵概念不同,但可以建立联系,矩阵可以描述二阶张量的一些特性(在确定坐标系后,可以用矩阵来表示)。

向量的广播

复制向量到很多位置的操作称为向量的广播,如把m维行向量加到n行m列的矩阵的每一行就是一种广播操作。

向量内积

内积即点积,两个相同维数向量对应分量相乘再相加,得到的是标量,向量x和向量y的内积可以记为:
这里写图片描述
这是因为我们这里说的”向量”可以视为就是在说”列向量”,所以可以看成列向量转置后得到的行向量和另一个列向量的矩阵的标准乘积。
显然向量点积满足交换律。

矩阵的标准乘积

就是普通的矩阵乘法,要求前一个矩阵的列数和后一个矩阵的行数相同,结果矩阵中Cij=左边矩阵的第i行向量和右边矩阵的第j列向量的对应分量相乘再相加。

矩阵的Hadamard乘积

两个规模相同的矩阵,如果对应位置的元素可乘,那么就有Hadamard乘积,新矩阵的规模与原来矩阵的规模一致,每个位置的元素是原来两个矩阵的那个位置元素的乘积。
这里写图片描述

生成子空间

一组向量的生成(线性)子空间,是它们经过线性组合后所能抵达的点的集合。
这里写图片描述
在这张图中,这两个红色的向量经过线性组合,能达到的点构成了一个二维的平面。

超平面

超平面是指n维欧式空间中维度等于n-1的线性子空间,如在三维的欧式空间中就是一个平面,在二维的欧式空间中就是一个点,在更高维的空间中我们生活中找不到描述它的词。
因为是子空间,所以超平面一定过原点。

线性相关和线性无关

如果一组向量中,每个向量都不能表示成其它向量的线性组合,则称这组向量线性无关,否则就是线性相关的,比如下面这三个向量构成的向量组就是线性相关的,因为:
这里写图片描述
这个向量可以被另外两个向量的线性组合表示,画到图上就是:
这里写图片描述
很显然用A和B这两个向量构成的向量组,其生成子空间就是这个整个二维平面了,而加入了这个向量C以后,因为C能被我们之前这个向量组中的向量线性表示,加入了它生成子空间也不会有丝毫的变大,从这个意义上来看,这个能被其它向量线性表示的向量在向量组中是冗余的。

关于逆矩阵

其实只要记住有逆矩阵的一定是一个方阵,并且所有列向量都是线性无关的。但是在书上看到这一部分很有意思,还是做一下笔记。

考虑解一个线性方程组Ax=b,未知的是列向量x:
这里写图片描述
如果矩阵A的逆存在的话,可以试图用A的逆矩阵去求解它,那就要左乘A的逆。对于这个方程组而言,只可能无解/有1个解/有无限多个解,因为如果列向量x1和x2都是这个方程的解,那么对于任意实数α:
这里写图片描述显然也是这个方程组的解,那么还是有无穷多个解的情况。
前面学了,矩阵和向量的乘积,可以理解成矩阵的列向量的线性组合,而决定线性组合的权重值的正是这个向量x的每个分量。所以求方程的解,实际上也就是求有哪些种线性组合的方法——x中的第i个分量表示沿着矩阵i的第i列的列向量走多远,能够到达向量b。
所以方程Ax=b有没有解,实际上就是在询问向量b是否在矩阵A的列向量的生成子空间中,如果在的话,x的分量描述了到达这个向量b的途径。这个特殊的生成子空间称为矩阵A的列空间或者值域
这里写图片描述
如果要对任意m维向量b都存在解,就要使矩阵A的列空间布满整个m维空间,所以A至少要有m列,否则其线性组合是不可能达到m维的,如一个3x2的矩阵(m=3而n=2):
这里写图片描述
很显然这两个3维列向量不论怎么组合,都只能在一个平面上跑,也就是说这个矩阵的列空间只能是一个平面,而不能包括m=3维度上的所有点。
回到那个问题,A至少有m列也就是n>=m。这只是一个必要条件,还不是充分条件,因为有些列可能是多余的,如下面这个矩阵:
这里写图片描述
很显然不管有再多的列,因为列都是一样的,不管列向量再怎么组合,都只能在一条直线上跑,不能包括m=2维度上的所有点。这种多余就是因为这些列向量线性相关了。
所以要使列向量线性组合后能包含整个m维空间上的所有点,就要求这个矩阵的列至少有一组m个线性无关的向量,用它们就能实现包括m维度上的所有点了,也就是m维线性空间中的一组

要用逆矩阵来求的话,左乘逆矩阵以后得到的x肯定是唯一的,所以要保证方程对于每一个b最多只能有一个解,那么矩阵就最多只能有m个列向量。这是因为如果有多于m个列向量,又有了前面说了m个线性无关的向量,那么剩下的那个向量肯定能被这m个向量线性表示,那么它就能替代线性表示它的向量中的任意一个:
这里写图片描述
上图中红色是一个m个向量的线性无关组,蓝色是表示绿的向量的一组向量(权重不是0),绿色的这个向量可以去替代这个线性无关组中的蓝色向量中的任意一个,而新的组仍然是m个向量的线性无关组。
那么有了多种线性无关组m,就会有不止一种线性组合:
这里写图片描述以及这里写图片描述等等。
该方程也就有不止一个解x了,因此n<=m

综上来看n=m,也就是矩阵A需要是个方阵,而且列向量线性无关,这样才可逆,可逆矩阵也叫非奇异矩阵。此外,列向量线性相关的方阵被称为奇异矩阵
根据前面说的线性相关和线性无关可以理解:如果A为奇异矩阵,则AX=0有无穷解(能被线性表示的列向量线性表示后,权重可以同乘任意实数),AX=b有无穷解或者无解(如果b不能被A的列向量线性表示就无解,否则有无穷多解,无穷的方式还是那一个解的1-α权重组合)。如果A为非奇异矩阵,则AX=0有且只有唯一零解(m维的0向量b自然也是有唯一解,这个解总是m=n维0向量因为列向量谁们也不能表示谁),AX=b有唯一解(正如前面所说)。

范数

范数(norm)可以衡量向量的大小,向量x的范数可以衡量从原点到x点的距离,显然这个距离和我们平时生活中的距离不太一样。

范数的性质

①正定性:如果向量x的范数为0,向量一定是0向量。
②三角不等式:两向量和的范数不大于范数之和。
③正值齐次性:缩放α倍后的x的范数等于x的范数乘以α的绝对值。

Lp范数

这里写图片描述
展开的分量的p次幂加和再开p次方,即:
这里写图片描述
显然L2范数表示的就是从原点到指定点的欧几里徳距离,这个距离也就是我们日常生活说的狭义的距离,L2范数也叫欧几里徳范数
L1范数是x的所有分量的单纯加和,当机器学习问题中零和非零的元素差异很重要时通常使用L1范数(书上这样说,但具体怎么用还是不清楚)。

最大范数(L∞范数)

取向量中具有最大幅值的元素的绝对值:
这里写图片描述

Frobenius范数

用来衡量矩阵的大小,矩阵中每个元素平方后全部加起来再开根号:
这里写图片描述

用L2范数表示向量点积

高中学的”模乘模乘夹角余弦”里的”模”其实就是向量的L2范数:
这里写图片描述

这篇关于【ML学习笔记】5:机器学习中的数学基础5(张量,哈达玛积,生成子空间,超平面,范数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/474102

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

MySQL8.0临时表空间的使用及解读

《MySQL8.0临时表空间的使用及解读》MySQL8.0+引入会话级(temp_N.ibt)和全局(ibtmp1)InnoDB临时表空间,用于存储临时数据及事务日志,自动创建与回收,重启释放,管理高... 目录一、核心概念:为什么需要“临时表空间”?二、InnoDB 临时表空间的两种类型1. 会话级临时表

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署