应用数学与机器学习基础-线性代数

应用数学与机器学习基础-线性代数

 

基本概念

线性代数主要研究的是以下几种对象:

  • 标量(scalar):标量就是单一的数字,比如单一的整数,实数,有理数等都是标量。
  • 向量(vector):可以看做是一组标量形成的一维数组,如由n个实数组成的向量:

 

  • 矩阵(matrix): 矩阵是二维数组,所以每个元素需要行和列的指标来标记

 

  • 张量(tensor):张量是多维数组,当它是零维时就是标量,一维时就是矢量,二维时就是矩阵,也可以大于二维。

矩阵运算

  • 转置(transpose):矩阵转置可以想成将矩阵按轴线翻转过来。

 

  • 矩阵乘法(matrix product):假如有两个形状分别为 m x n 的矩阵A和 n x p 的矩阵B,注意A的列数和B的行数要匹配,矩阵乘积C=AB就是将A的每一行与对应的B的每一列相乘求和,并将所得的数存储在C的对应元素中。

 

    矩阵与向量的乘积可以看做是矩阵与矩阵乘积的一种特殊情况。我们常用的n元一次线性方程组也可以表示为矩阵与向量的乘积形式

 

  • 逆矩阵(inverse matrix):首先我们需要定义单位矩阵(Identity Matrix)  ,  是一个n x n的方形矩阵,并且主对角线均为1,其他元素均为零,单位矩阵与任意向量相乘还得到该向量本身。矩阵A的逆矩阵常用  表示,其性质是

 

假如一个矩阵存在逆矩阵,那么相应的线性方程组就可以转化为求逆矩阵与向量的矩阵乘积的问题:

 

  • (trace):迹定义为求主对角线元素的和

 

  • 范数(norm):范数用来度量向量的大小。比如  norm定义为

 

特殊矩阵

  • 对称矩阵(symmetric matrix):对称矩阵的转置等于它自身。

 

  • 对角矩阵(diagonal matrix):除主对角线的元素均为零。
  • 单位向量(unit vector): 单位向量的  norm等于1。
  • 正交矩阵(orthogonal matrix): 正交矩阵的转置与它自身的矩阵乘积是单位矩阵:

 

生成子空间

  如果逆矩阵 A−1 存在,那么式1 肯定对于每一个向量 b 恰好存在一个解。但是,对于方程组而言,对于向量 b 的某些值,有可能不存在解,或者存在无限多个解。存在多于一个解但是少于无限多个解的情况是不可能发生的;因为如果 x 和y 都是某方程组的解,则

z = αx + (1 − α)y                  (其中 α 取任意实数)也是该方程组的解。

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

 


这种操作被称为 线性组合。形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即:

 


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

 

范数

 

在机器学习,通过 范数 来衡量一个向量的大小。在形式上,Lp范数定义如下 p >= 1:

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

三角不等式,即两边之和大于等于第三边。

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

当机器学习中零与非零的差异非常重要的时候,通常会使用L1范数。每当x中某个元素从0增加learning-rate 的时候,对应的L1范数也会增加learning-rate。

特征分解

正如我们可以把正整数表示为更基本的质数的乘积的形式,特征分解(eigendecomposition)也是将矩阵分解为组成它的特征向量(eigenvector)和特征值(eigenvalue)的形式。

特征向量定义如下:如果正方形矩阵A和向量v的乘积可以表示为一个标量  与向量v的乘积,那么v就是A的一个特征向量,  就是A的一个本征值:

 

可以看出,如果v就是A的一个本征向量,那么任意一个标量与v的乘积仍是A的一个特征向量,而且他们的特征值相同,所以通常我们只关心范数为1的本征向量。假设我们将矩阵A的所有本征向量连成一个矩阵V:  ,而对应的本征值连成一个向量  ,那么矩阵A就可以表示为它的特征分解形式:

 

我们可以想象矩阵A实际上是将空间在其本征向量的方向上各自拉伸了对应的特征值的尺度。

 

当然,不是所有矩阵都可以做特征分解,比较幸运的是,通常我们可能要解决的只是某类特定形式的矩阵问题,例如实对称矩阵总可以表示成特征分解的形式。

SVD

SVD全称是Single Value Decomposition奇异值分解。和本征分解类似,它也是将矩阵分解为更基本的组合乘积,而且SVD更具有普适性,对于矩阵本身的要求很少,基本上所有实数矩阵都可以做SVD分解,而本征分解对于非对称矩阵是无能为力的。

SVD将矩阵表示为三个矩阵的乘积形式:

 

其中A是m x n的矩阵,U是m x m的矩阵,D是m x n的矩阵, V是nXn的矩阵U和V均是正交矩阵,而D是对角矩阵,其对角元素成为奇异值。

SVD在很多方面有重要的作用,比如在推荐系统里,我们有矩阵A来表示用户对影片的评分,那么SVD可以看做是将其映射到某个隐性特征(例如影片风格)的过程,其中U即为(用户,隐性特征)矩阵,V即为(影片,隐性特征)矩阵,而D就代表了每个隐性特征的重要性,我们如果想压缩存储空间的话可以只选择D的一些较大的对角元素,而相应的选取出U和V的对应行列形成新矩阵,通过压缩后的U',D',V'再重构的矩阵A'可以较好的还原矩阵A而没有较大的失真。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNNY小飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值