1. 深度学习导论
导论和简介的基础知识和路径。
深度学习的各项涵盖范围:深度学习MLPs,然后是机器学习、逻辑回归,知识基础等等
1)连结+神经网络等等:Cybernetics控制论,Connectionism连结主义,Neural Networks神经网络等
其中,控制论是研究动态系统如何通过反馈机制实现自我调节和控制的跨学科领域,核心关注信息、控制和通信在生物、机器和社会系统中的流动。
Connectionism(联结主义)是一种基于神经网络模拟智能的理论框架,认为认知功能源于简单单元(神经元)之间的连接权重调整。关键思想分布式表征、学习即权重调整、受生物启发。
与Cybernetics的关系。控制论提供系统层面的框架(如反馈),联结主义是其具体实现之一。
两者都关注适应性,但联结主义更侧重可学习的网络结构。
神经网络:神经网络是联结主义的具体计算模型,由多层互联的“神经元”组成,通过数学运算模拟信息处理。
关键特点
层级结构:输入层、隐藏层、输出层
激活函数:决定神经元是否激活(如ReLU、Sigmoid)
训练算法:如反向传播(Backpropagation)
1.1 数学基础
- 线性代数
1) L p L_p Lp距离( L p d i s t a n c e L_p distance Lpdistance对于两个向量 x = ( x 1 , . . . , x n ) x=(x_1, ...,x_n) x=(x1,...,xn)和 y = ( ) y=() y=()
L_p距离衡量的是两个点在n维空间中的“距离”,不同的 p 值对应不同的距离衡量方式。
L p ( x i , x j ) = ∥ m n ∥ p = ( ∑ i = 1 n ∣ x i ( l ) − x j ( i ) ∣ p ) 1 / p L_p(x_i, x_j)=\begin{Vmatrix} m & n\end{Vmatrix}_p=(\sum^n_{i=1}|x^{(l)}_i-x^{(i)}_j|^p)^{1/p} Lp(xi,xj)=∥∥mn∥∥p=(∑i=1n∣xi(l)−xj(i)∣p)1/p$
其中, x i ∈ R n x_i\in\mathbb{R^n} xi∈Rn, x j ∈ R n x_j\in\mathbb{R^n} xj∈Rn,其中 L ∞ L_\infty L∞定义为: L ∞ ( x i , x j ) = m a x l ∣ x i ( l ) − x j ( l ) ∣ L\infty(x_i, x_j)=max_l|x^{(l)}_i-x^{(l)}_j| L∞(xi,xj)=maxl∣xi(l)−xj(l)∣
2) L 1 L_1 L1范数(Manhattan Distance / 曼哈顿距离)
特点:计算的是各维度差值绝对值的和。
几何意义:在网格状道路(如曼哈顿街区)中,从A点到B点需要走过的实际路径长度(只能横平竖直走)
当p=1时,L_p距离变为 L_1范数(也叫曼哈顿距离)
∥ m n ∥ 1 = \begin{Vmatrix} m & n\end{Vmatrix}_1 = ∥∥mn∥∥1=
应用场景:
a. 鲁棒性要求高的场景:数据中存在异常值(离群值)
3) L 2 L_2 L2范数
特点: L 2 d e f i n e s a s s u m i n ( x i ) 2 L_2\, defines \, as \sqrt {sum^n_i(x_i)^2} L2definesassumin(xi)2,其中 x = [ x 1 , x 2 . . . , x n ] T , x ∈ R x=[x_1,x_2...,x_n]^T, x\in\mathbb{R} x=[x1,x2...,xn]T,x∈R
几何意义:
4)PCA(Principal component analysis;主成分分析技术)
数据降维方式,将n维数据降低到指定的K维。数据降维有以下优点:
假设在 R n \mathbb{R}^n Rn中有 m m m个点{ x ( 1 ) , . . . , x ( n ) x^{(1)}, ..., x^{(n)} x(1),...,x(n)},希望对点进行有损压缩-使用更少的内存但损失精度去存储这些点。
编码这些点的方式是用低维表示,则对于每个点 x ( i ) ∈ R l x^{(i)}\in\mathbb{R^l} x(i)∈Rl,若 l l l比 n n n小,则使用了更少的内存来存储原来的数据。希望找到一个编码函数,根据输入返回编码, f ( x ) = c f(x)=c f(x)=c;也希望找到解码函数,给定编码重构输入, x ≈ g ( f ( x ) ) x≈g(f(x)) x≈g(f(x))
PCA由选择的解码函数而定,为了简化解码器,使用矩阵乘法映射回 R n \mathbb{R}^n Rn,即 g ( c ) = D c g(c)=Dc g(c)=Dc,其中 D ∈ R n x 1 D\in\mathbb{R}^{nx1} D∈Rnx1是定义解码的矩阵。
5)特征分解(eigendecomposition)是使用最广的矩阵分解之一,即将矩阵分解成一组特征向量和特征值
方阵A的特征向量(eigenvector)是值与A相乘后对该向量进行压缩的非零向量 v v v: A v = λ v Av=\lambda v Av=λv
标量 λ \lambda λ被成为这个特征向量的特征值(evgenvalue,类似定义左特征向量(left eigenvector),有 v T A = λ v T v^{T}A=\lambda v^{T} vTA=λvT
若 v v v是 A A A的特征向量,那么缩放后的向量 s v ( s ∈ R , s ) sv(s\in\mathbb{R},s) sv(s∈R,s) - 概率论和信息理论基础
1)概率论是用于表示不确定性声明的数学框架,不仅提供了量化不确定性的方法,也提供了用于导出新的不确定声明(statement)的公理
2)联合概率:包含多个条件且所有条件同时成立的概率,记作$P{X=a}$
3)基础概率论知识:
KaTeX parse error: Expected 'EOF', got '}' at position 18: …x;\mu, \sigma^2}̲ = \sqrt1/()
4) - 机器学习基础
- 数据计算
1.2 深度学习基础
分类基础:包括分类(决策树Decision Tree,K近邻)、集群、回归(逻辑回归logistic Regression、SVM)、降维
1)决策树
2)K近邻
T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) T = {(x_1, y_1),(x_2, y_2), ..., (x_N, y_N)} T=(x1,y1),(x2,y2),...,(xN,yN)
其中, x i x_i xi
3)
- 深度前馈神经网络
其中,常用的激活函数有 Sigmoid函数、双曲正切激活函数(tanh)、修正线性单元(ReLU)等。
梯度消失指在神经网络反向传播过程中梯度值逐渐减小趋近于零,导致靠近输入层的参数更新缓慢或停滞;梯度爆炸则指梯度值迅速增大呈指数级增长,导致参数更新剧烈震荡甚至训练失败。
1)Sigmoid函数
单调增函数: Sigmoid函数是单调增函数,输出范围在[0,1]之间,且越是负向增大,越接近于0
Sigmoid函数会造成梯度消失问题,从图像中我们也可以得知,当输入特别大或是特别小时,神经元的梯度几乎接近于0,这就导致神经网络不收敛
由于输出不以0为均值,导致转入下一层的输入非0。导致了若 Sigmoid函数的输出全部为正数,那么传入下一层神经网络的值永远大于0,这时参数无论怎么更新梯度都为正。正是基于上述的缺点, Sigmoid函数近年来的使用频率也在渐渐减弱。
2)Tanh函数又名双曲正切激活函数
是 Sigmoid函数的变形,其数学表达式为: t a n h ( x ) = s i n h ( x ) / c o s h ( x ) = ( e x − e ( − x ) ) / ( e x + e ( − x ) ) tanh(x)=sinh(x)/cosh(x)=(e^x-e^(-x))/(e^x+e^(-x)) tanh(x)=sinh(x)/cosh(x)=(ex−e(−x))/(ex+e(−x)),函数图像如图3-9所示:
3)修正线性单元ReLU
ReLU激活函数又名修正线性单元,是目前深层神经网络中越来越受欢迎的一种激活函数,其数学表达式为:f(x) = max(0,x),函数图像如下图所示
相比于上述的 Sigmoid和tanh两种激活函数,ReLU激活函数完美的解决了梯度消失的问题,因为它的线性的、非饱和的
但是ReLU激活函数也有一些缺陷:训练的时候不适合大梯度的输入数据,因为在参数更新之后,ReLU的神经元不会再任何数据节点被激活,这就会导致梯度永远为0。比如:输入的数据小于0时,梯度就会为0,这就导致了负的梯度被置0,而且今后也可能不会被任何数据所激活,也就是说ReLU的神经元“坏死”了。
所以针对ReLU函数上述的缺点,又出现了带泄露的ReLU(Leaky ReLU)和带参数的ReLU(Parametric ReLU)
Leaky ReLU是ReLU激活函数的变形,主要是针对ReLU函数中神经元容易坏死的缺陷,将原点左侧小于0的部分,赋予一个很小的斜率。其效果通常要好于ReLU激活函数,但实践中使用的频率并没有那么高。数据公式为:f(x) = max(0, x) + γmin(0, x)。通常,γ是一个很小的常数,如:0.01。
4)其他激活函数: Leaky ReLU是ReLU激活函数的变形,主要是针对ReLU函数中神经元容易坏死的缺陷,将原点左侧小于0的部分,赋予一个很小的斜率。其效果通常要好于ReLU激活函数,但实践中使用的频率并没有那么高。数据公式为:f(x) = max(0, x) + γmin(0, x)。通常,γ是一个很小的常数,如:0.01
- 正则化
1)神经网络的正则化是通过在模型训练过程中添加约束或惩罚项来防止过拟合,提高模型泛化能力的技术
2) - 优化
- CNN
- RNN
- 粒子算法
- 应用相关
1.3 深度学习研究
- 线性工厂模型Linear Factor Models
- 自动代码AutoCodes
参考文献:
[1] 深度学习“花书”啃书指导视频!
[2]一文带你读懂激活函数