暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深度学习中的线性代数知识

老刘聊广告 2021-08-19
617

掌握好线性导数对于理解和从事机器学习算法相关工作是很有必要的,尤其是对于深度学习算法而言。本文将会介绍机器学习中最常用到的线性代数知识

标量、向量、矩阵和张量

  • 标量:一个标量就是一个单独的数,通常用斜体表示,并被赋予小写的变量名称
  • 向量:一个向量是一列数。这些数是有序排列的。通过次序中的索引,可以确定每个单独的数。通常赋予向量粗体的小写变量名称,比如**$x$
    **
  • 矩阵:矩阵时一个二维数组,其中每一个元素都由两个索引所确定
  • 张量:在某些情况下,我们会讨论超过两维的数组。一般的,一个数组中的元素分布在若干维坐标的规则网络中,称之为张量

转置是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称之为主对角线。矩阵A的转置通常被记为

向量可以看作只有一列的矩阵。对应地,向量的转置可以看作只有一行的矩阵。标量可以看作只有一个元素的矩阵,标量的转置等于它本身

只要矩阵的形状一样,介意把两个矩阵相加。两个矩阵相加是指对应位置的元素相加

标量和矩阵相乘,或者和矩阵相加时,只需将其与矩阵的每个元素相乘或相加,比如,其中,

在深度学习中,有时候会使用一些不那么常规的符号。比如,允许矩阵和向量相加,产生另一个矩阵:,其中。换言之,向量b和矩阵A的每一行相加。这个简写方法使我们无须在加法操作前定义一个将向量b复制到每一行而生成的矩阵。这种隐式地复制向量b到很多位置的方式,称为广播

矩阵和向量相乘

两个矩阵A和B的矩阵乘积是第三个矩阵C。为了使乘法可被定义,矩阵A的列数必须和矩阵B的行数相等。如果矩阵的形状是,矩阵B的形状是,矩阵C的形状是。矩阵乘法可定义如下:

矩阵乘积服从分配律:

服从结合律:

但不满足交换律,即下式并非总是满足:

矩阵乘积的转置:

单位矩阵和逆矩阵

任意向量和单位矩阵相乘,都不会改变,通常记为。单位矩阵的结构很简单,所有沿主对角线的元素都是1,而其它位置的所有元素都是0

矩阵A的逆矩阵记作,它满足如下条件:

现在,可以通过以下步骤来求解方程:

线性相关和生成子空间

可以将方程A的列向量看作从原点出发的不同方向,确定有多少种方法可以到达向量b。在这个观点下,向量x中的每个元素表示应该沿着这些方向走多远,即表示需要沿着第i个向量的方向走多远:

一般而言,这种操作称为线性组合

一组向量的生成子空间是原始向量线性组合后所能达到的点的集合

确定是否有解,相当于确定向量b是否在A列向量的生成子空间中。这个特殊的生成子空间被称为A的列空间或者A的值域

为了使向量对于任意向量都存在解,要求A的列空间构成整个。如果中的某个点 不在A的列空间中,那么该点对应的b会使得该方程没有解。矩阵A的列空间是整个的要求,意味着A至少有m列,即。否则,A列空间的维数会小于m

不等式仅是方程每一点都有解的必要条件,这不是一个充分条件,因为有些列向量可能是冗余的。这种冗余称为线性相关。如果一组向量中任意一个向量都不能表示成其它向量的线性组合,那么这组向量称为线性无关

要想矩阵可逆,还需要保证对于每一个b值至多有一个解。为此,需要确保该矩阵至多有m个列向量;否则,该方程会有不止一个解。也就是说,该矩阵必须是一个方阵,即m=n,并且所有列向量都是线性无关的。一个列向量线性相关的方阵被称为是奇异的

范数

在机器学习中,经常使用范数的函数来衡量向量大小。形式上,范数定义如下:

其中,,

直观上来说,向量的范数衡量从原点到的距离。更严格地说,范数是满足下列性质的任意函数:

当p=2时,范数称为欧几里得范数。它表示从原点出发到向量确定的点的欧几里得距离。平方范数也经常用来衡量向量的大小,可以简单地通过点击来计算

平方范数在数学和计算上都比范数本身更方便。例如,平方范数对中每个元素的导数只取决于对应的元素,而范数对每个元素的导数和整个向量相关。但是在很多情况下,平方范数也可能不受欢迎,因为它在原点附近增长得十分缓慢。在某些机器学习应用中,区分恰好是零的元素和非零但值很小的元素是很重要的。在这些情况下,我们可以使用在各个位置斜率相同,同时保持简单的数学形式的函数:范数:

另外一个在机器学习中出现的范数是范数,也被称为最大范数。这个范数表示向量中具有最大幅值的元素的绝对值:

在深度学习中,经常使用Frobenius范数,类似于向量的范数,即

两个向量的点击可以用范数来表示:

其中,之间的夹角

特殊类型的矩阵和向量

对角矩阵只在主对角线上含有非零元素,其它位置都是零。对角矩阵受到关注的部分原因是对角矩阵的乘法计算很高效。计算乘法,只需将x中每个元素放大倍。计算对角矩阵的逆矩阵也很高效,对角矩阵的逆矩阵存在,当且仅当对角元素都是非零值,在这种情况下:

对称矩阵是转置和自己相等的矩阵,即:

单位向量是具有单位范数的向量,即:

如果,那么向量x和向量y互相正交。如果两个向量都有非零范数,那么这两个向量夹角是90度。在中,至多有n个范数非零向量互相正交。如果这些向量不但互相正交,而且范数都是1,那么它们是标准正交

正交矩阵指行向量和列向量分别是标准正交的方阵,即

正交矩阵收到关注是因为求逆计算代价非常小

特征分解

特征分解是使用最广的矩阵分解之一,即将矩阵分解成一组特征向量和特征值。方阵A的特征向量是指与A相乘后相当于对该向量进行缩放的非零向量

其中标量称为这个特征向量的特征值。如果的特征向量,那么任何缩放后的向量也是的特征向量。此外,具有相同的特征值

假设矩阵有n个线性无关的特征向量,对应着特征值。将特征向量连接成一个矩阵,使得每一列是一个特征向量:;类似地,也可以将特征值连接成一个 向量。因此,A的特征分解可以记为:

不是每一个矩阵都可以分解成特征值和特征向量。在某些情况下,特征分解存在,但是会涉及复数而非实数。具体来讲,每个实对称矩阵都可以分解成实特征向量和实特征值:

其中,的特征向量组成的正交矩阵,是对角矩阵。特征值对应的特征向量是矩阵的第i列,记作。因为是正交矩阵,因此可以将看作沿方向延展倍的空间

虽然任意一个实对称矩阵都有特征分解,但是特征分解可能并不唯一。如果两个或多个特征向量拥有相同的特征值,那么由这些特征向量产生的生成子空间中,任意一组正交向量都是该特征值对应的特征向量。特征分解唯一,当且仅当所有的特征值都是唯一的

矩阵是奇异的,当且仅当含有零特征值

所有特征值都是正数的矩阵称为正定;所有特征值都是非负数的矩阵称为半正定。同样地,所有特征值都是负数的矩阵称为负定;所有特征值都是非正数的矩阵称为半负定。半正定矩阵受到关注是因为它们保证。此外,正定矩阵还保证

奇异值分解

还有另一种分解矩阵的方法,叫做奇异值分解,是将矩阵分解为奇异向量奇异值。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。例如,非方阵的矩阵没有特征分解,这是只能用奇异值分解

奇异值分解和特征分解类似,将矩阵分解成三个矩阵的乘积:

假设是一个的矩阵,那么是一个的矩阵,是一个的矩阵,是一个的矩阵。这些矩阵每一个经定义后都有特殊的结构。矩阵和矩阵都定义为正交矩阵,而矩阵定义为对角矩阵,但不一定是方阵

对角矩阵对角线上的元素称为矩阵的奇异值。矩阵的列向量称为左奇异向量,矩阵的列向量称为右奇异向量。可以用与A相关的特征分解来解释A的奇异值分解。A的左奇异向量是的特征向量,A的右奇异向量是的特征向量,A的非零奇异值是特征值的平方根,同时也是特征值的平方根

Moore-Penrose伪逆

对于非方阵而言,其逆矩阵是没有定义的。但可以计算伪逆

其中,矩阵是矩阵奇异值分解后得到的矩阵。对角矩阵D的伪逆是其非零元素取倒数之后再转置得到的

当矩阵A的列数多余行数时,使用伪逆求解线性方程式众多可能解法中的一种。特别地,当是方程所有可行解中欧几里得范数最小的一个;当矩阵A的行数多于列数时,可能没有解,通过伪逆得到的使得的欧几里得距离最小

迹运算

迹运算返回的是矩阵对角元素的和

多个矩阵相乘得到的方阵的迹,和将这些矩阵中的最后一个挪到最前面之后相乘的迹是相同的:

即使循环置换后矩阵乘积得到的矩阵形状变了,迹运算的结果依然不变

行列式

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

行列式计算方法:主对角线元素乘积与副对角线元素乘积的差

文章转载自老刘聊广告,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论