\(L^p\) norm 定义如右: \(||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}}\) for \(p∈R,p≥1\).html
任何知足以下条件的函数均可视为norm:机器学习
最经常使用的是二范式,即\(L^2\) norm,也称为Euclidean norm(欧几里得范数)。由于在机器学习中经常使用到求导,二范式求导以后只与输入数据自己有关,因此比较实用。ide
可是二范式在零点附近增加很慢,并且有的机器学习应用须要在零点和非零点之间进行区分,此时二范式显得力不从心,因此咱们能够选择一范式,即\(L^1\) norm,其表达式为:\(||x||_1=\sum_i|x_i|\).函数
0范式表示矢量中非0的元素的个数。其实0范式这个说法是不严谨的,由于它不知足第三个条件,but whatever~学习
无穷大范式,也叫max norm,它表示矢量中全部元素绝对值的最大值,即
\[||x||_∞=max |x_i|\]idea
F norm全称是Frobenius Norm,其表达式以下:
\[||A||_F=\sqrt{\sum_{i,j}A_{i,j}^2} \]spa
定义: a matrix \(D\) is diagonal if and only if \(D_{i,j}=0\) for all \(i≠j\).scala
仔细看定义!!!这里并无说必须是squre matrix(方阵),因此对角矩阵不必定是方阵,rectangle matrix也有多是对角矩阵(只要对角线上不为0,其他部分都为0)。orm
定义: 若\(A^TA=AA^T=I\),那么n阶实矩阵A则为正交矩阵。htm
注意矩阵A必须为方阵,另外有定义可知 \(A^{-1}=A^T\)
定义: 知足正交矩阵的要求,且为x和y均为unit vector(单位矢量)。
不少数学概念其实均可以分解成很小的组成部分,而后经过观察这些组成进而找出它们可能存在的通用的性质。例如对于一个整数12,咱们会试着把它分解成12=2×2×3,由这个表达式咱们能够获得一些有用的结论,例如12不能被5整除,任何数乘以12后都能被3整除等等。
很天然地,对于矩阵,咱们也想看看他是否也能被拆分呢,因此就引入了特征分解的概念,经过特征分解咱们会获得矩阵\(A\)的(一组)eigenvector(特征向量): \(v\) 和 eigenvalue(特征值): \(λ\),它们知足以下等式:
\[Av=λv\]
(特征向量固然也能够在右边,可是一般更习惯于放在右边。)
假设矩阵\(A\)有n个线性独立的特征向量\(\{v^{(1)}, ..., v^{(n)}\}\)以及对应的特征值\(\{ λ_1, ...,λ_n \}\)。记
\(V=[v^{(1)}, ..., v^{(n)}],λ=[λ_1, ...,λ_n ]\),则矩阵A的特征分解以下:
\[A=Vdiag(λ)V^{-1}\]
另外实对称矩阵的特征分解用得比较多,表达式为\(A=Q\Lambda Q^{-1}\),\(Q\)表示由特征向量组成的正交矩阵,\(\Lambda\)表示对角矩阵,注意\(Q\)和\(\Lambda\)的值是一一对应的。
Singular Value Decomposition (SVD) 能够把一个矩阵分解获得 singular vectors和singular values。SVD能够像特征值分解同样帮助咱们对一个矩阵进行分析,而且SVD适用性更广。每一个实矩阵都能作SVD,可是不必定能作特征值分解。好比说若是一个矩阵不是方阵,那么就不能作特征分解,可是咱们能够作SVD。
SVD分解后的矩阵表达式以下:
\[A=UDV^T\]
假设A是一个m×n矩阵,那么U定义为m×m矩阵,D是m×n矩阵,V是n×n矩阵。
除此之外
讲这么多,确定对SVD尚未一个直观的理解,下面一节会介绍SVD的应用。
咱们在求一个矩阵的逆(matrix inverse)的时候,通常都须要规定这个矩阵是方阵。
假设有一个线性方程\(Ax=y\),为了解出这个方程,咱们很直观地但愿可以造出一个left-inverse矩阵B和A相乘,从而求出x,即\(x=By\)。
若是A是一个非方阵的矩阵,当它的row大于column时,颇有可能此时无解;而当row小于column时,可能有多解。
Moore-Penrose Pseudoinverse就是为了解决这个问题的,矩阵A的伪逆定义以下:
\[A^+=lim_{α\searrow{0}}(A^TA+αI)^{-1}A^T\]。
上面的公式实际不多用,通常都是使用SVD的公式,即
\[A^+=VD^+U^T\]
U,D,V是上节中提到的矩阵A的奇异分解。\(D^+\)是矩阵D的伪逆,它是首先将D的非零元素取倒数获得一个矩阵,而后将这个矩阵转置以后就获得了\(D^+\)。
当矩阵A的row比column少时,使用伪逆能够获得不少解。可是,\(x=A^+y\)这个解是全部解中有最小Euclidean norm(\(||x||_2\))的。
当矩阵A的row比column多时,可能无解。可是使用伪逆求得的解x ,能使得\(Ax\)尽量的接近\(y\),也就是说能使得\(||Ax-y||_2\)最小。
trace运算符是将矩阵对角线上的全部元素求和,即\(Tr(A)=\sum_iA_{i,i}\)