和深度学习有关的线性代数知识

和深度学习有关的线性代数知识

1.标量,向量和张量

标量:

一个标量就是一个单独的数。它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。标量通常会被赋予小写的变量名称。在介绍标量时,我们会明确它们是哪种类型的数。

向量:

一个向量就是一列数。这些数都是有序排列的。向量中的元素可以通过带脚标的斜体表示。如果每个元素都属于R,并且该向量有n个元素,那么该向量属于实数集R的n次迪卡尔乘积构成的集合,记为R^n。有时我们需要索引向量中的一些元素,在这种情况下,我们定义一个包含这些元素索引的集合,然后将该集合写在脚标处。我们用符号-表示集合中补集的索引,比如x-1.

矩阵:

矩阵是一个二维数组,其中的每一个元素由两个索引所确定。

张量:

一般的,一个数组中的元素分布在若干维坐标的规则网络中,我们称之为张量。

转置:

转置是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,从左上角到右下角的对角线称为主对角线。标量可以看做只有一个元素的矩阵,标量的转置等于它本身。
两个矩阵相加是指对应位置的元素相加。
标量与矩阵相乘或者相加,只需将其与矩阵的每个元素相乘或相加。

2.矩阵和向量相乘

矩阵乘法是矩阵运算中最重要的操作之一。两个矩阵AB的矩阵乘积是第三个矩阵C。为了使乘法可被定义,矩阵A的列数必须和矩阵B的行数相等。如果矩阵A的形状是mn,矩阵B的形状是np,那么矩阵C的形状是mp。
注意:两个矩阵的标准乘积不是指两个矩阵中对应元素的乘积。不过这种乘积的确存在,称为元素对应乘积,或者Hadamard乘积
两个相同维数的向量xy的点积可看作矩阵乘积x^T
y.
矩阵乘积服从分配律和结合律,但是不服从交换律,两个向量的点积服从交换律。

3.单位矩阵和逆矩阵

任意向量和单位矩阵相乘,都不会改变。我们将维持n维向量不变的单位矩阵记为In。单位矩阵的结构很简单,所有沿主对角线的元素都是1,而其他位置的元素都是0.
矩阵A的矩阵逆记做A^-1,其定义的矩阵满足:A A^-1=In.
当逆矩阵A^-1 存在时,有几种不同的算法都能找到它的闭解形式。理论上,相同的逆矩阵可用于多次求解不同向量b的方程。然而,逆矩阵A^-1主要是作为理论工具使用,并不会在大多软件应用程序中实际使用。因为精度不够。

4.线性相关和生成子空间

对于方程组而言,对于向量b的某些值,有可能不存在解,也有可能存在无穷多个解。为了分析方程组究竟有多少个解,(比如A x=b),我们可以将A的列向量看做从原点(元素都是零的向量)出发的不同方向,确定有多少种方法可以到达向量b,在这个观点下,向量x中的每个元素表示我们应该沿着这些方向走多远,
在这里插入图片描述一般而言,这种操作称为线性组合。形式上,一组向量的线性组合是指每个向量乘以对应标量系数之后的和。
一组向量的生成子空间,是原始向量线性组合后所能抵达的点的集合。确定A x=b,是否有解,相当于确定向量b是否在A列向量的生成子空间中,这个特殊的生成子空间被称为A的列空间或者A的值域。
为了使方程A x=b对于任意向量b∈Rm都存在解,我们要求A的列空间构成整个Rm.如果Rm中的某个点不在A的列空间中,那么该点对应的b会使得该方程没有解。矩阵A的列空间是整个Rm的要求,意味着A至少有m列,即n>=m.否则,A列空间的维数会小于m。不等式n>=m仅是方程对每一个点都有解的必要条件,但并不是充分条件,因为有些列向量可能是冗余的。假设有一个R2*2中的矩阵,它的两个列向量是相同的,那么它的列空间和它的一个列向量作为矩阵的列空间是一样的。正式地说,这种冗余称为线性相关。如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,那么这组向量称为线性无关。某个向量是一组向量中某些向量的线性组合,那么将这个向量加入这组向量后不会增加这组向量的生成子空间。这意味着,如果一个矩阵的列空间涵盖整个Rm,那么该矩阵包含至少一组m个线性无关的向量。这是式2.11(A x=b)对于每一个b都有解的充分必要条件。要想使矩阵可逆,我们还需要保证式2.11对于每一个b值至多有一个解,为此我们需要确保该矩阵至多有m个列向量。这意味着该矩阵必须是一个方阵,即m=n,并且所有列向量都是线性无关的。一个列向量线性相关的矩阵称为奇异的

5.范数

在机器学习中,我们经常使用称为范数的函数来衡量向量大小。形式上,Lp范数定义如下:
在这里插入图片描述其中p∈R,p>=1.
范数是将向量映射到非负值的函数。直观上说,向量x的范数衡量从原点到点x的距离。更严格的说,范数是满足下列性质的任意函数:
(1)f(x)=0 =>x=0
(2)f(x+y)<=f(x)+f(y)
(3)任意α∈R,f(αx)=|α|f(x)
当p=2时,L2范数称为欧几里得范数。它表示从原点出发到向量x确定的点的欧几里得距离。欧几里得范数在机器学习中出现的非常频繁,经常简化成||x||,略去了下标2。平方L2范数也经常用来衡量向量的大小。在数学和计算上平方L2范数的使用比L2范数更方便。因为它对向量x中每个元素的导数只取决于对应的元素。但是它在原点附近增长的非常缓慢,而在某些机器学习中,区分恰好等于零和不等于零但是值很小的元素是很重要的。在这种情况下,我们选择使用在各个位置斜率相同,同时保持简单数学形式的L1范数。
另外一个经常在机器学习中出现的范数是L范数,也被称为最大范数。这个范数表示向量中具有最大幅值的元素的绝对值:
在这里插入图片描述有时候我们可能也希望衡量矩阵的大小。在深度学习中,最常见的做法就是使用Forbenious范数即
在这里插入图片描述其类似于向量的L2范数。
两个向量的点积还可以用范数来表示,
xTy=||x||2||y||2cosθ,其中θ表示x和y之间的夹角。

6.特殊类型的矩阵和向量

对角矩阵只在主对角线上有非零元素,其他位置上的元素都是零。我们用diag(v)表示对角元素由向量v中元素给定的一个对角方阵。并非所有对角矩阵都是方阵,非方阵的对角矩阵没有逆矩阵。
对称矩阵是转置和自己相等的矩阵。
单位向量是具有单位范数的向量。即||x||2=1
如果xTy=0,那么向量x和向量y互相正交。如果两个向量都有非零范数,那么这两个向量之间的夹角是90°。在Rn中,至多有n个范数非零的向量互相正交,如果这些范数不仅互相正交而且范数都为1,那么我们称它们为标准正交
正交矩阵指行向量和列向量分别标准正交的方阵,即
ATA=A AT=I
这意味着,A-1=AT

7.特征分解

许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性来更好地理解。这些属性是通用的,而不是由我们选择表示它们的方式产生的。正如我们可以通过分解质因数来发现整数的一些内在性质,我们也可以通过分解矩阵来发现矩阵表示成数组元素时不明显的函数性质。
特征分解是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。方阵A特征向量是指与A相乘后相当于对该向量进行缩放的非零向量v:A v=λ v
其中标量λ称为这个特征向量的对应的特征值(类似的,我们也可以定义左特征向量 vT A=λ vT)但是我们通常更关注右特征向量
如果vA的特征向量,那么任何缩放后的向量s v(s∈R,s≠0)也是A的特征向量。此外,s vv有相同的特征值,因此我们只考虑单位特征向量。
假设矩阵A有n个线性无关的特征向量{v(1),…,v(n)}.类似地,我们也可以将特征向量连成一个向量λ=[λ1,…,λn]T.因此A的特征分解可以记做
A=V diag(λ)V-1
每个实对称矩阵都可以分解成实特征向量和实特征值。虽然任意一个实对称矩阵A都有特征分解,但是特征分解可能并不唯一。如果两个或多个特征向量拥有相同的特征值,那么在由这些特征向量产生的生成子空间中,任意一组正交向量都是该特征值对应的特征向量。因此,我们可以等价地从这些特征向量中构成Q作为替代。
所有特征值都是正数的矩阵称为正定,所有特征值都是非负数的矩阵称为半正定,同样的还有负定和半负定。

8.奇异值分解

我们探讨过如何将矩阵分解成特征向量和特征值。还有另一种分解矩阵的方法:称为奇异值分解。是将矩阵分解成奇异值和奇异向量。每个实数矩阵都有一个奇异值分解但不一定有特征分解,(非方阵没有特征分解),奇异值分解将矩阵A分解成三个矩阵的乘积。
A=U D VT
假设A是一个 m * n 的矩阵,那么U是一个 m * m 的矩阵,D是一个 m * n 的矩阵,V是一个 n * n 矩阵。矩阵UV都定义为正交矩阵,矩阵D定义为对角矩阵。注意矩阵D不一定是方阵。
对角矩阵D对角线上的元素称为矩阵A奇异值,矩阵U的列向量称为左奇异向量,矩阵V的向量称为右奇异向量

9.Moore-Penrose伪逆

对于非方阵而言,其逆矩阵没有定义。假设在下面问题中,我们希望通过矩阵A的左逆B来求解线性方程:
A x=y
等式两边左乘左逆B后,我们得到
x=B y
取决于问题的形式,我们可能无法设计一个唯一的映射将A映射到B。如果矩阵A的行数大于列数,那么上述方程可能没有解,如果矩阵A的行数小于列数,那么上述矩阵可能有多个解。
Moore-Penrose伪逆使我们在这类问题上取得了一定进展,矩阵A的伪逆定义为:
在这里插入图片描述计算伪逆的实际算法没有基于这个定义,而是使用下面的定义:
A+=V D+ UT
其中,矩阵UDV是矩阵A奇异值分解后得到的矩阵。对角矩阵D的伪逆D+是其非零元素取倒数之后再转置得到的。
当矩阵A的列数多于行数时,使用伪逆求解线性方程是众多可能解法中的一种。特别地,x=A+ y是方程所有可行解中欧几里得范数||x2||最小的一个。
当矩阵A的行数多于列数时,可能没有解。在这种情况下,通过伪逆得到的x使得A xy的欧几里得距离||A x-y||2最小。

10.迹运算

迹运算返回的是矩阵对角元素的和。迹运算因为很多原因而有用。若不使用求和符号,有些矩阵运算很难描述,而通过矩阵乘法和迹运算符号可以清楚地表示。例如,迹运算提供了另一种描述矩阵Forbenius范数的方式:
||A||F=(Tr(AAT))½
用迹运算表示表达式,我们可以使用很多有用的等式巧妙地处理表达式。例如,迹运算在转置运算下是不变的:
Tr(A)=Tr(AT)
多个矩阵相乘得到的方阵的迹,和将这些矩阵中的最后一个挪到最前面之后相乘的迹是相同的。当然我们需要考虑挪动之后矩阵乘积依然定义良好。
即使循环置换后矩阵乘积得到的矩阵形状变了,迹运算的结果依然不变。标量在迹运算后仍然是他自己。

11.行列式

行列式,记做det(A),是一个将方阵A映射到实数的函数。行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是0,那么空间至少是沿着某一维完全收缩了,使其失去了所有的体积;如果行列式是1,那么这个转换保持空间体积不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值