【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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D