【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

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word