本文主要是介绍花书第二章——线性代数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2.1 标量、向量、矩阵、张量和转置
-
标量(scalar):标量就是一个单独的数,例如数字1、2、1.1、1.2都是标量;
-
向量(vector):一个向量可以看作是一组标量形成的一维数组,例如由 n 个实数组成的向量 x \pmb{x} x 为:
x \pmb{x} x = [ x 1 , x 2 , … , x n x_1,x_2, \dots,x_n x1,x2,…,xn]。我们可以把向量看作空间中的点,向量中的每个元素是不同坐标轴上的坐标。 -
矩阵(matrix):矩阵是一个二维数组,其中的每一个元素被两个索引(行和列)所确定。矩阵A的例子如下所示
-
张量(tensor):张量是多维数组。零维数组就是标量,一维数组就是向量,二维数组就是矩阵,多维数组就是张量。
-
转置(transpose):矩阵的转置可以看作是将矩阵按主对角线翻转过来(也就是行变列,列变行),矩阵 A A A 的转置常用 A T A^T AT来表示。主对角线是指从左上角到右下角的那条对角线。
2.2 矩阵运算
-
矩阵乘法:两个矩阵 A 和 B 的矩阵乘积是第三个矩阵 C。A 矩阵的形状为m×n,B 矩阵的形状为n×p,C矩阵的形状为m×p。即 A m n ∗ B n p = C m p A_{mn}*B_{np}=C_{mp} Amn∗Bnp=Cmp,其中A 矩阵的列数等于 B 矩阵的行数。
-
内积(点积):向量 x = [ x 1 , x 2 , . . . , x n ] x=[x_1,x_2,...,x_n] x=[x1,x2,...,xn],向量 y = [ y 1 , y 2 , . . . , y n ] y=[y_1,y_2,...,y_n] y=[y1,y2,...,yn]。则向量 x x x 与向量 y y y 的内积为: [ x , y ] = x T y = x 1 y 1 + x 2 y 2 + . . . + x n y n [x,y]=x^Ty=x_1y_1+x_2y_2+...+x_ny_n [x,y]=xTy=x1y1+x2y2+...+xnyn。两个向量的内积是一个标量(数)。
-
逆矩阵: A A − 1 = A − 1 A = I n AA^{-1}=A^{-1}A=I_n AA−1=A−1A=In。其中,矩阵 A A A 是n阶方阵, A − 1 A^{-1} A−1是矩阵A的逆矩阵。 I n I_n In是n阶单位矩阵,任意向量和单位矩阵相乘,都不会改变。下面是一个3阶单位矩阵的示例。
假如一个矩阵存在逆矩阵,那么相应的线性方程组就可以转化为求逆矩阵与向量的矩阵乘积,如下所示。
-
范数(norm):范数用来衡量一个向量的大小。形式上, L p L^p Lp 范数定义如下:
范数是将向量映射到非负值的函数。直观上来说,向量 x x x 的范数衡量从原点到点 x 的距离。
(1)当p=2时, L 2 L^2 L2范数被称为欧几里得范数。它表示从原点出发到向量 x x x 确定的点的欧几里得距离。 L 2 L^2 L2范数在机器学习中出现地十分频繁,经常简化表示为 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣,略去了下标2。 L 2 L^2 L2范数的平方经常用来衡量向量的大小,可以通过向量自身的点积 x T x x^Tx xTx 来计算。
(2)当p=1时,为 L 1 L^1 L1范数。 L 1 L^1 L1范数如下所示。
-
特殊矩阵:
(1)对角矩阵(diagonal matrix):只在主对角线上含有非零元素,其他位置都是零。我们用 d i a g ( v ) diag(v) diag(v) 表示一个对角元素由向量 v v v 中元素给定的对角方阵。
(2)对称矩阵(symmetric matrix):对称矩阵的转置等于它自身。即 A T = A A^T=A AT=A。
(3)正交矩阵(orthogonal matrix):正交矩阵的转置与它自身的矩阵乘积是单位矩阵。即:
正交矩阵的几何意义:行向量或列向量要两两正交,且都是单位向量。
(4)向量正交:向量 x x x 与向量 y y y 的内积 x T y = x 1 y 1 + x 2 y 2 + . . . + x n y n = 0 x^Ty=x_1y_1+x_2y_2+...+x_ny_n=0 xTy=x1y1+x2y2+...+xnyn=0,那么就称向量 x x x 与向量 y y y 正交(垂直)。如果向量 x x x 与向量 y y y 不仅互相正交,并且范数都为1(单位向量),那么我们称它们是标准正交。 -
迹(trace):迹定义为求主对角线元素的和。
2.3 特征分解(eigendecomposition)
(1)特征分解就是将矩阵分解成一组特征向量和特征值。A是n阶矩阵,对于一个数 λ \lambda λ,存在非零向量 v v v,使得 A v = λ v Av=\lambda v Av=λv。那么 λ \lambda λ 是矩阵A的特征值, v v v是矩阵A对应于特征值 λ \lambda λ的特征向量。
(2)如果方阵A和向量 v v v 的乘积可以表示为一个标量 λ \lambda λ与向量 v v v 的乘积,那么 v v v 就是A的一个特征向量, λ \lambda λ就是A的一个特征值。
(3)
参考考研笔记中的相似矩阵、相似对角化。
(4)所有特征值都是正数的矩阵被称为正定;所有特征值都是非负数的矩阵被称为半正定;所有特征值都是负数的矩阵被称为负定;所有特征值都是非正数的矩阵被称为半负定。
(5)我们可以想象矩阵A实际上是将空间在其特征向量的方向上各自拉伸了对应的特征值的尺度。
2.4 奇异值分解
上面探讨了如何将矩阵分解成特征向量和特征值。还有另一种分解矩阵的方法,被称为奇异值分解(singular value decomposition,SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。
2.5 主成分分析(待补充…)
主成分分析(PCA)是一种数据降维算法,通过线性组合原始变量形成互不相关的主成分,保留数据的主要信息。
参考:
深度学习花书读书笔记目录
花书中文版.pdf
这篇关于花书第二章——线性代数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!