:线性代数
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:线性代数相关的知识,希望对你有一定的参考价值。
深度学习——第二章:线性代数
前言
深度学习(deep learning)作为深度学习领域的殿堂级作品,囊括了数学领域包括线性代数、概率论、信息论等知识,以及机器学习中的相关内容,同时还介绍了工业界实践者用到的深度学习技术,是深度学习领域最为全面、权威的著作,笔者对于这本书早有耳闻,但是因为其内容充实、数学公式较多一直未敢涉足,借这个夏天的空闲时光,拜读这部作品,希望有所收获。本篇博客内容涉及花书第二章内容,主要介绍机器学习的重要的数学武器——线性代数。
线性代数
线性代数广泛应用于科学和工程中。面向连续数学,是学习机器学习相关知识的必备武器。
1. 标量、向量、矩阵和张量
标量: 一个单独的数,通常用斜体表示。
向量: 一列数,有序排列。通常用小写粗体表示,如x。如果向量中每个元素都属于
R
\\mathbbR
R,并且该向量有n个元素,那么该向量属于实数集
R
\\mathbbR
R的n次笛卡尔乘积构成的集合,记为
R
n
\\mathbbR^n
Rn。向量也可以看做空间上的点,每个元素是不同坐标轴的坐标。符号-表示补集索引,
x
−
1
x_-1
x−1表示除了
x
1
x_1
x1外的所有元素。
矩阵: 二维数组,每个元素由两个索引确定。通常赋予矩阵粗体的大写变量名称,比如
A
A
A。如果一个实数矩阵高宽为m和n,那么就说
A
∈
R
m
×
n
A\\in \\mathbbR^m\\times n
A∈Rm×n。“:”表示某行或者某列的所有元素。
张量: 一个数组中的元素分布在若干维坐标的规则网格中,称之为张量。
转置操作是矩阵重要操作。以对角线为轴镜像。
矩阵的形状如果相同,可以进行标量加法,标量乘法就是矩阵每个位置的元素与标量相乘。
在深度学习中,允许矩阵和向量相加,产生另一个矩阵,换言之,即向量和矩阵的每一行相加,这种隐式复制向量到很多位置的方式称为广播。
2. 矩阵和向量相乘
两个矩阵
A
A
A和
B
B
B相乘,为了使乘法可被定义,矩阵
A
A
A的列数一定要和矩阵
B
B
B的行数相等。如果
A
A
A的形状是
m
×
n
m \\times n
m×n,
B
B
B的形状是
n
×
p
n \\times p
n×p,那么乘积结果矩阵
C
C
C的形状是
m
×
p
m \\times p
m×p。
C
=
A
B
C=AB
C=AB
具体地,乘法操作定义为:
C
i
,
j
=
∑
k
A
i
,
k
B
k
,
j
C_i,j=\\sum_kA_i,kB_k,j
Ci,j=k∑Ai,kBk,j
元素对应元素乘积: 又称Hadamard乘积,与两个矩阵标准乘积不同,表示为
A
⊙
B
A\\odot B
A⊙B。
两个相同维度的向量点积,可以看做矩阵乘积
x
⊤
y
x^\\top y
x⊤y。
矩阵乘积满足的数学规律:
- 分配律
- 结合律
- 不满足交换律,但是两个向量的点积满足交换律 x ⊤ y = y ⊤ x x^\\top y=y^\\top x x⊤y=y⊤x
- 矩阵乘积的转置 ( A B ) ⊤ = B ⊤ A ⊤ (AB)^\\top=B^\\top A^\\top (AB)⊤=B⊤A⊤
3. 单位矩阵和逆矩阵
单位矩阵: 任意向量和单位矩阵相乘,都不会改变。将n维向量不变的单位矩阵记作
I
n
I_n
In。形式上,
I
n
∈
R
n
×
n
I_n\\in \\mathbbR^n\\times n
In∈Rn×n。
∀
x
∈
R
n
,
I
n
x
=
x
\\forall x\\in \\mathbbR^n,I_nx=x
∀x∈Rn,Inx=x
单位矩阵的结构很简单,所有沿主对角线的元素都是1,其他位置的所有元素都是0,如下图所示:
逆矩阵: 记作
A
−
1
A^-1
A−1,其定义的矩阵满足如下条件:
A
−
1
A
=
I
n
A^-1A=I_n
A−1A=In
逆矩阵的用法在于计算线性方程组
A
x
=
b
Ax=b
Ax=b中的向量
x
x
x。
当然,前提条件是能否找到逆矩阵 A − 1 A^-1 A−1。
2.4 线性相关和生成子空间
如果逆矩阵 A − 1 A^-1 A−1存在,那么式 A x = b Ax=b Ax=b肯定对于每个向量b恰好存在一个解。但对于方程组而言,对于b的某些值,可能不存在解,可能无限多个解,但不存在多于一个解但少于无限多个解的情况。这是因为如果 x x x和 y y y都是某方程组的解, 那么 z = α x + ( 1 − α ) y z=\\alpha x+(1-\\alpha)y z=αx+(1−α)y也是方程组的解( α \\alpha α取任意实数),z的形式可以很多种。
A的列向量可以看做从原点出发的不同方向,从而确定有多少种方法可以达到向量b。在这种观点下,向量
x
x
x中的每个元素表示我们应该沿着这些方向走多远,即
x
i
x_i
xi表示我们需要沿着第
i
i
i个向量方向走多远。
A
x
=
∑
i
x
i
×
A
:
,
i
Ax=\\sum_ix_i \\times A_:,i
Ax=i∑xi×A:,i
这种操作称为线性组合。形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即
∑
i
c
i
v
(
i
)
\\sum_ic_iv^(i)
i∑civ(i)
一维向量的生成子空间,是原始向量线性组合后所能抵达的点的集合。
所以确定 A x = b Ax=b Ax=b是否有解,即确定向量 b b b是否在 A A A的列向量生成子空间中。这个特殊的生成子空间又称为 A A A的列空间或者 A A A的值域。
为了使方程\\mathbbR^m对于任意向量 b ∈ R m b\\in \\mathbbR^m b∈Rm都存在解,要求 A A A的列向量空间构成整个 R m \\mathbbR^m Rm。如果 R m \\mathbbR^m Rm中的某一个点不在 A A A的列向量空间中,那么该点对应的 b b b无解。这就要求 A A A至少有m列,否则 A A A的列空间维度小于m。 n ⩾ m n\\geqslant m n⩾m仅是方程对每一点都有解的必要条件,因为向量可能相同,出现冗余,这种冗余即线性相关。
线性无关: 如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,则成为线性无关,反之为线性相关。
充要条件: 因此,如果一个矩阵的列空间涵盖整个 R m \\mathbbR^m Rm,那么该矩阵必须包含至少一组m个线性无关的向量。这才是 A x = b Ax=b Ax=b有解的充要条件。
可逆条件: 需要保证 A x = b Ax=b Ax=b对于每个 b b b至多一个解,为此,要确保该矩阵至多有m个列向量。
最终成立条件: 矩阵为方阵,并且所有列向量线性无关,这种矩阵称为非奇异矩阵。
2.5 范数
范数用来衡量向量的大小。形式上,
L
p
L^p
Lp范数定义如下:
∣
∣
x
∣
∣
p
=
(
∑
i
∣
∣
x
i
∣
∣
p
)
1
p
||x||_p=(\\sum_i||x_i||^p)^\\frac1p
∣∣x∣∣p=(i∑∣∣xi∣∣p)矩阵的迹相关性质