正值假期,决定恶补机器学习、深度学习及相关领域(顺便开个博客)。首先学习一下数学基础以及数值计算的方法(主要参考《深度学习》)
一、数学基础
这里简单复习一下机器学习相关的数学
1.线性代数
范数
衡量一个向量的大小,对Lp范数,有:
∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 p \left\| x\right\| _{p}=\left( \sum _{i}\left| x_{i}\right| ^{p}\right) ^{\dfrac {1}{p}} ∥x∥p=(i∑∣xi∣p)p1
其中 p ∈ R , p ≥ 1 p\in \mathbb{R} , p\geq1 p∈R,p≥1.
对一切范数(包括Lp),满足下列性质:
- t ( x ) = 0 ⇒ x = 0 ; t\left( x\right) =0\Rightarrow x=0; t(x)=0⇒x=0;
- f ( x + y ) ≤ f ( x ) + f ( y ) ; f\left( x+y\right) \leq f\left( x\right) +f\left( y\right); f(x+y)≤f(x)+f(y);(三角不等式)
- ∀ α ∈ R , f ( a x ) = ∣ a ∣ f ( x ) . \forall \alpha \in \mathbb{R} ,f\left( ax\right) =\left| a\right| f\left( x\right). ∀α∈R,f(ax)=∣a∣f(x).
- L0范数指的是向量中非零元素的个数
- L1范数可以用于机器学习中0与非0元素之间的差异十分重要时。也能让模型变得更加稀疏。(常替代L0)
- 最大范数:L∞范数 表示向量中具有最大幅值元素的绝对值。 ∥ x ∥ ∞ = max i ∣ x ∣ i \left\| x\right\| _{\infty }=\max _{i}\left| x\right|_i ∥x∥∞=maxi∣x∣i
- 要衡量矩阵的大小,最常用的是使用Frobenius范数,即 ∥ A ∥ F = ∑ i , j A i , j 2 \left\| A\right\| _{F}=\sqrt {\sum _{i,j}A^{2} _{i,j}} ∥A∥F=∑i,jAi,j2.
进一步学习:
L0、L1、L2范数在机器学习中的应用
范数对于数学的意义?1范数、2范数、无穷范数
正交矩阵
行向量和列向量是分别标准正交的方阵
A A T = I ; A − 1 = A T \begin{aligned}AA^{T}=I;\\ A^{-1}=A^{T}\end{aligned} AAT=I;A−1=AT
特征分解
特征分解可以知晓一些矩阵隐含的性质。
-
特征向量:与 A A A相乘后相当于对该向量进行缩放的非零向量 v v v
A v = λ v Av=\lambda v Av=λv其中λ为特征向量对应的特征值。(通常指右特征向量)
由于 k v kv kv与 v v vy特征值相同,一般情况下只考虑单位特征向量。 -
若 A A A有n个线性无关的特征向量 { v ( 1 ) , v ( 2 ) , … , v ( n ) } \left\{ v^{(1)},v^{(2)},\ldots ,v^{\left( n\right) }\right\} { v(1),v(2),…,v(n)},对应n个特征值 { λ 1 , λ 2 , … , λ n } \{\lambda_1,\lambda_2,\ldots,\lambda_n\} { λ1,λ2,…,λn}。将特征向量连接成一个矩阵,使得每一列都是一个特征向量 V = [ v ( 1 ) , v ( 2 ) , … , v ( n ) ] V=[v^{(1)},v^{(2)},\ldots ,v^{( n)}] V=[v(1),v(2),…,v(n)]特征值也连接成一个向量λ。
A A A的特征分解指 A = V d i a g ( λ ) V − 1 A=Vdiag\left( \lambda \right) V^{-1} A=Vdiag(λ)V−1
机器学习中通常不会遇到复数的特征分解,一般我们会处理实对称矩阵,它一定可以分解为 A = Q Λ Q T A=Q\Lambda Q^{T} A=QΛQT 其中 Q Q Q为正交矩阵,由 A A