Javen Chen's Blog

Tech and Life~

15. Representation Learning

前馈网络:我们可以将监督学习训练的前馈网络视为表示学习的一种形式。
具体地,网络的最后一层通常是线性分类器,如softmax回归分类器。 网络的其余部分学习出该分类器的表示。

贪心逐层无监督预训练(Greddy Layer-Wise Unsupervised Pretrain):贪心逐层无监督预训练依赖于单层表示学习算法,例如RBM、单层自编码器、稀疏编码模型或其他学习潜在表示的模型。

每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。 贪心逐层无监督预训练被称为贪心的,是因为它是一个贪心算法,这意味着它独立地优化解决方案的每一个部分,每一步解决一个部分,而不是联合优化所有部分。 它被称为逐层的,是因为这些独立的解决方案是网络层。

具体地,贪心逐层无监督预训练每次处理一层网络,训练第kk层时保持前面的网络层不变。无监督预训练结合了两种不同的想法:
第一,它利用了深度神经网络对初始参数的选择,可以对模型有着显著的正则化效果(在较小程度上,可以改进优化)的想法。
第二,它利用了更一般的想法——学习输入分布有助于学习从输入到输出的映射。

Read more »

14. Autoencoders

自编码器(Autoencoders)

自编码器是神经网络的一种,经过训练后能尝试将输入复制到输出。自编码器内部有一个隐藏层 $h$,产生编码表示输入

该网络由两部分组成:一个由函数$h = f(x)$表示的编码器和一个生成重构的解码器$r=g(h)$。 如果一个自编码器只是简单地学会将处处设置为$g(f(x)) = x$,那么这个自编码器就没什么特别的用处。

相反,我们不应该将自编码器设计成输入到输出完全相等:向自编码器强加一些约束,使它只能近似地复制,并只能复制与训练数据相似的输入。

Read more »

13. Linear Factor Models

线性因子模型(Linear Factor Models):线性因子模型通过随机线性解码器函数来定义,该函数通过对h的线性变换以及添加噪声来生成x。通常包含如下步骤:1.首先,我们从一个分布中采样解释性因子h,$h\sim p(h)$,其中p(h)是一个因子分布,满足$p(h)=\prod_i p(h_i)$;2.然后,我们对实值的可观察变量进行采样$x=Wh+b+noise$。

概率PCA、因子分析和其他线性因子模型仅在对观测到x之前的噪声分布和隐变量h先验的选择上有所不同。

因子分析(Factor Analysis):隐变量先验是一个方差为单位矩阵的高斯分布$h \sim N(h;0,I)$,同时假定在给定h的条件下观察值$x_i$是条件独立的。假设噪声是从对角协方差矩阵的高斯分布中采样的的,协方差矩阵为$ψ=diag(σ^2)$,容易看出,x服从多维正态分布,并满$x\sim N(x;b,WW^⊤+ψ)$。

概率PCA(Probabilistic PCA)和:在因子分析的基础上,使条件方差$σ^2_i$等于同一个值。x的协方差简化为$WW^⊤+σ^2_I$,或者等价的$x=Wh+b+σz$,其中$z\sim N(z;0,I)$

Read more »

12. Application

计算机视觉

计算机视觉的应用:计算机视觉的应用广泛:从复现人类视觉能力(比如识别人脸)到创造全新的视觉能力。

预处理:1.标准化:使得它们的像素都在相同并且合理的范围内,比如$[0,1]$或者$[-1,1]$。2.标准尺寸:裁剪或缩放图像以适应固定的尺寸。3.数据集增强:只对训练集做预处理,是减少大多数计算机视觉模型泛化误差的一种极好方法。

对比度归一化:对比度指的是图像中亮像素和暗像素之间差异的大小,在深度学习中,对比度通常指的是图像或图像区域中像素的标准差。

Read more »

11. Practical Methodology

实践设计流程

1.确定目标:使用什么样的误差度量(error metric),并为此指定目标值。

2.尽快建立一个端到端的的pipeline,包括估计合适的性能度量(performance metric)。

3.搭建系统,并确定性能瓶颈,检查哪个部分的性能差于预期,以及是否是因为过拟合、欠拟合,或者数据或软件缺陷造成的。

Read more »

10. Sequence Modeling: Recurrent and Recursive Nets

循环神经网络(Recurrent Neural Network,RNN)

  • 是一类用于处理序列数据的神经网络。
    -RNN在不同的时间点上共享参数,使得模型能够扩展到不同长度的样本并进行泛化。
  • 如果我们在每个时间点都有一个单独的参数,我们不但不能泛化到训练时没有见过序列长度,也不能在时间上共享不同序列长度和不同位置的统计强度。
  • $h^{(t)} = f (h^{(t−1)}, x^{(t)} ; θ)$

展开过程的两个主要优点

  • 无论序列的长度,学成的模型始终具有相同的输入大小。
  • 可以在每个时间节点使用相同的转移函数$f$。
Read more »

9. Convolutional Networks

卷积网络(Convolutional Networks):卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

卷积(Convolution)操作

  • 卷积是一种特殊的线性运算。
  • 假设我们正在用激光传感器追踪一艘宇宙飞船的位置,$x(t)$表示宇宙飞船在时刻t的位置,$x$和$t$都是实值。
  • 假设我们的传感器受到一定程度的噪声干扰。 为了得到飞船位置的低噪声估计,我们对得到的测量结果进行平均。
  • 显然,时间上越近的测量结果越相关,所以我们采用一种加权平均的方法,对于最近的测量结果赋予更高的权重。
    采用一个加权函数$w(a)$来实现,其中a表示某个测量的测量时刻:$s(t)=∫x(a)w(t−a)da$,或者用离散的表达式:$s(t)=(x∗w)(t)=∑_{a=−∞}^∞x(a)w(t−a)$。
  • 这就是卷积操作,可以用星号表示:$s(t)=(x∗w)(t)$。
  • $x$是输入(input);$w$是核(kernel);输出的$s$是特征映射(feature map)。

互相关函数(cross-correlation)

Read more »

8. Optimization for Training Deep Models

机器学习和纯优化问题的区别:机器学习关注某些性能度量P,定义于测试集上并且可能是不可解的,只能间接地优化P。因此通过降低代价函数J(θ)来提高P。

这一点与纯优化不同,纯优化最小化目标J本身。

批量(batch)梯度算法:使用整个训练集的优化算法被称为批量(batch)或确定性(deterministic)梯度算法。

在线(online)算法:每次只使用单个样本的优化算法有时被称为随机(stochastic)或者在线(online)算法。

Read more »

7. Regularization for Deep Learning

正则化(Regularization):对学习算法的修改——旨在减少泛化误差而不是训练误差。

参数范数惩罚(Parameter Norm Penalties):通过对目标函数J添加一个**参数范数惩罚Ω(θ)**,来限制模型的学习能力。

我们将正则化后的目标函数记为$\tilde{J}$:$\tilde{J}(θ;X,y)=J(θ;X,y)+αΩ(θ)$,其中α∈[0,∞)是权衡范数惩罚项Ω和标准目标函数J(X;θ)相对贡献的超参数。说明,在神经网络中我们通常只对每一层仿射变换的权重w做惩罚而不对偏置做正则惩罚。典型的参数范数惩罚有$L^2$参数正则和$L^1$参数正则。

$L^2$参数正则($L^2$ Parameter Regularization):也就是权重衰减(weight decay),顾名思义,权重会有所减小;罚项为$Ω(θ)=\frac{1}{2}||w||_2^2$,也称为岭回归(ridge regression)或Tikhonov正则。

Read more »

6. Deep Feedforward Networks

深度前馈网络(Deep Feedforward Networks):也被称为前馈神经网络(feedforward neural networks),或者多层感知机(multi-layer perceptrons, MLPs)是典型的深度学习模型。前馈网络的目标是去近似一个函数$f^*$。模型之所以称为前馈,是因为信息只向前流动,没有反馈的连接。

基于梯度的学习(Gradient Based Learning):神经网络模型和线性模型最大的区别在于神经网络的非线性使得损失函数不再是凸函数。这意味着神经网络的训练通常使用迭代的、基于梯度的优化,仅仅使得代价函数达到一个非常小的值;而不是像用于训练线性回归模型的线性方程求解器,或者用于训练逻辑回归或SVM的凸优化算法那样保证全局收敛。

凸优化从任何一种初始参数出发都会收敛(理论上如此——在实践中也很鲁棒但可能会遇到数值问题)。

用于非凸损失函数的随机梯度下降没有这种收敛性保证,并且对参数的初始值很敏感。 对于前馈神经网络,将所有的权重值初始化为小随机数是很重要的。

Read more »
0%