Deep Learning
Deep Neural Network
- 每层的参数情况、神经元情况都可以自行设计
- 浅神经网络:几个隐藏层
- 高效训练
- 结构确定比较容易
- 理论上已经足够强大
- 深神经网络:非常多的隐藏层
- 训练有些难度
- 复杂的结构设计
- 完全任意的有效
- 更加有“意义”
- 深度学习的“意义”
- 提取逐层复杂的特征
- 非常适合原始特征非常难以利用的任务
- 深度学习的挑战及关键技术
- 困难的结构设计
- 加入领域知识(视觉领域的CNN)
- 高模型复杂度
- 目前有足够量的数据,一般不会称为问题
- 正则化(dropout,denoising)
- 比较难的最优化问题
- 谨慎的初始化——预训练
- 巨大的计算复杂度
- 大量数据会恶化这个问题
- GPU
- 困难的结构设计
- 简单的DL算法
- 预训练:逐层确定初始化权重
- 使用BP算法微调初始化过的权重
Autoencoder
- 信息保持编码
- 权重——特征转换(编码)
- 好的权重——保持信息(不同的表示,同样的内涵信息)
- 输入 d d d——编码 d ~ \tilde d d~——重建 d d d
- 自动编码器
- 信息保留
- 重建——逼近等价函数 g ( x ) ≈ x g(\bold x) \approx \bold x g(x)≈x
- 目标函数 ∑ i = 1 d ( g t ( x ) − x i ) 2 \sum_{i = 1}^d (g_t(\bold x) - x_i)^2 ∑i=1d(gt(x)−xi)2
- 近似等价函数的意义
- 发现数据中的隐藏结构
- 监督学习中
- 可以用于特征转换——初始化
- 学习更加“信息代表化”的表示
- 非监督学习中
- 密度估计——更大的结构匹配,数据密度越大
- 异常检测——不合群点
- 学习数据的“典型”表示
- 近似过程实际上是表示的学习
- 基本的自编码器
- BP可以使用
- 压缩表示 d ~ < d \tilde d < d d~<d
- 可以归类为非监督学习——并不关注标签部分
- 将 w i j ( 1 ) = w j i ( 2 ) w_{ij}^{(1)} = w_{ji}^{(2)} wij(1)=wji(2)作为正则化限制——梯度计算会比较复杂
- 预训练,使用自编码器逐层作为表示层进行权重初始化确定(已确定层冻结参数)
Denoising Autoencoder
- 正则化:
- 结构约束
- 权重衰减、权重消除
- 提前结束
- 处理噪声?
- 数据清理
- 向数据里加入噪声?
- 鲁棒的自编码器不仅能够学到 g ( x ) ≈ x g(\bold x) \approx \bold x g(x)≈x,还能够对于噪声数据 x ~ \tilde {\bold x} x~也能够学到原始表示 g ( x ~ ) ≈ x g(\tilde {\bold x}) \approx \bold x g(x~)≈x
- 去噪自编码器,给数据加入人工噪声,促使自编码器学习原始的数据
- 加入噪声以获得去除噪声的能力在很多领域受用
Principal Components Analysis
- 线性的自编码器?
- 忽略偏置项
- 考虑约束权重对称对应
- 重建过程 W W T x \bold W \bold W^{\mathrm{T}} \bold x WWTx
- 对
W
W
T
\bold W \bold W^{\mathrm{T}}
WWT进行特征值分解
- W W T = V Γ V T \bold W \bold W^{\mathrm{T}} = \bold V \bold \Gamma \bold V^{\mathrm{T}} WWT=VΓVT
- 对 W ∈ R d × d ~ \bold W \in \R^{d \times \tilde d} W∈Rd×d~,对角阵最多 d ~ \tilde d d~个非零分量
-
W
W
T
x
=
V
Γ
V
T
x
\bold W \bold W^{\mathrm{T}} \bold x = \bold V \bold \Gamma \bold V^{\mathrm{T}} \bold x
WWTx=VΓVTx
- 使用一组正交基对其进行变换
- 其中的 d − d ~ d - \tilde d d−d~个分量被置零,其余分量被适当放缩
- 从正交基上进行反变换(重建)
- 原始输入可以类似地表示: V I V T x n \bold V \bold I \bold V^{\mathrm{T}} \bold x_n VIVTxn
- 重建损失
E i n ( W ) = 1 N ∑ n = 1 N ∥ x n − W W T x n ∥ 2 E_{in}(\bold W) = \frac 1N \sum_{n = 1}^N \|\bold x_n - \bold W \bold W^{\mathrm{T}} \bold x_n\|^2 Ein(W)=N1n=1∑N∥xn−WWTxn∥2
- 转化一下问题:
min Γ 1 N ∑ n = 1 N ∥ V I V T x n − V Γ V T x ∥ 2 \min_{\Gamma} \ \frac 1N \sum_{n = 1}^N \|\bold V \bold I \bold V^{\mathrm{T}} \bold x_n - \bold V \bold \Gamma \bold V^{\mathrm{T}} \bold x\|^2 Γmin N1n=1∑N∥VIVTxn−VΓVTx∥2
- 其中, V \bold V V不影响长度,省去
min Γ 1 N ∑ n = 1 N ∥ ( I − Γ ) V T x ∥ 2 \min_{\Gamma} \ \frac 1N \sum_{n = 1}^N \| (\bold I - \bold \Gamma) \bold V^{\mathrm{T}} \bold x\|^2 Γmin N1n=1∑N∥(I−Γ)VTx∥2
- 我们希望 ( I − Γ ) (\bold I - \bold \Gamma) (I−Γ)的元素有尽可能多的0,而后者最多只有 d ~ \tilde d d~个分量非零,我们指定差的结果为后 d − d ~ d - \tilde d d−d~个分量为1
- 最优化思路
min V ∑ n = 1 N ∥ [ 0 0 0 I d − d ~ ] V T x n ∥ 2 ⇒ max V ∑ n = 1 N ∥ [ I d ~ 0 0 0 ] V T x n ∥ 2 \min_\bold V \sum_{n = 1}^N \left\| \left[\begin{array}{cc} 0 & 0 \\ 0 & \bold I_{d - \tilde d}\end{array}\right] \bold V^{\mathrm{T}} \bold x_n \right\|^2 \Rightarrow \max_\bold V \sum_{n = 1}^N \left\| \left[\begin{array}{cc} \bold I_{\tilde d} & 0 \\ 0 & 0\end{array}\right] \bold V^{\mathrm{T}} \bold x_n \right\|^2 Vminn=1∑N∥∥∥∥[000Id−d~]VTxn∥∥∥∥2⇒Vmaxn=1∑N∥∥∥∥[Id~000]VTxn∥∥∥∥2
- 最优的 V V V: X T X \bold X^{\mathrm{T}} \bold X XTX的最大的若干特征向量(源自于拉格朗日乘子法)
- 线性自编码器(投影幅度平方最大化)——PCA(投影方差最大化)
- 求得数据均值 x ˉ = 1 N ∑ n x n \bar {\bold x} = \frac 1N \sum_n \bold x_n xˉ=N1∑nxn,令 x n ← x n − x ˉ \bold x_n \gets \bold x_n - \bar{\bold x} xn←xn−xˉ
- 取 X T X \bold X^{\mathrm{T}} \bold X XTX的最大的 d ~ \tilde d d~个特征向量
- 这些特征向量构成转换区镇 W ( x − x ˉ ) \bold W (\bold x - \bar{\bold x}) W(x−xˉ)