第十七章:Monte Carlo Methods
17. Monte Carlo Methods
随机算法:随机算法可以粗略地分为两类:拉斯维加斯算法(Las Vegas algorithms)和蒙特卡洛算法(Monte Carlo algorithms)。
拉斯维加斯算法(Las Vegas algorithms):总是精确地返回一个正确答案(或者返回算法失败)。 该方法通常需要占用随机量的计算资源(一般指内存或运行时间)。
蒙特卡洛算法(Monte Carlo algorithms):蒙特卡罗方法返回的答案具有随机大小的错误。
花费更多的计算资源(通常包括内存和运行时间)可以减少这种错误。 在任意固定的计算资源下, 蒙特卡罗算法可以得到一个近似解。
第十六章:Structured Probabilistic Models for Deep Learning
16. Structured Probabilistic Models for Deep Learning
多样化的任务:
除了分类任务以外,很多任务需要对输入数据整个结构有完整理解,包括:
- 1.概率密度估计(Density Estimation):给定一个输入x,机器学习系统返回一个对数据生成分布的真实密度函数p(x)的估计。
- 2.去噪(Denoising):给定一个受损的或者观察有误的输入数据$\tilde{x}$,机器学习系统返回一个对原始的真实x的估计。
- 3.缺失值的填补(Missing Value Imputation):给定x的某些元素作为观察值,模型被要求返回一些或者全部未观察值的估计或者概率分布。
- 4.采样(Sampling):模型从分布$p(x)$中抽取新的样本。
非结构化建模的挑战
第十五章:Representation Learning
15. Representation Learning
前馈网络:我们可以将监督学习训练的前馈网络视为表示学习的一种形式。
具体地,网络的最后一层通常是线性分类器,如softmax回归分类器。 网络的其余部分学习出该分类器的表示。
贪心逐层无监督预训练(Greddy Layer-Wise Unsupervised Pretrain):贪心逐层无监督预训练依赖于单层表示学习算法,例如RBM、单层自编码器、稀疏编码模型或其他学习潜在表示的模型。
每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。 贪心逐层无监督预训练被称为贪心的,是因为它是一个贪心算法,这意味着它独立地优化解决方案的每一个部分,每一步解决一个部分,而不是联合优化所有部分。 它被称为逐层的,是因为这些独立的解决方案是网络层。
具体地,贪心逐层无监督预训练每次处理一层网络,训练第kk层时保持前面的网络层不变。无监督预训练结合了两种不同的想法:
第一,它利用了深度神经网络对初始参数的选择,可以对模型有着显著的正则化效果(在较小程度上,可以改进优化)的想法。
第二,它利用了更一般的想法——学习输入分布有助于学习从输入到输出的映射。
第十四章:Autoencoders
第十三章:Linear Factor Models
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)$
第十二章:Application
第十一章:Practical Methodology
第十章:Sequence Modeling:Recurrent and Recursive Nets
10. Sequence Modeling: Recurrent and Recursive Nets
循环神经网络(Recurrent Neural Network,RNN)
- 是一类用于处理序列数据的神经网络。
-RNN在不同的时间点上共享参数,使得模型能够扩展到不同长度的样本并进行泛化。 - 如果我们在每个时间点都有一个单独的参数,我们不但不能泛化到训练时没有见过序列长度,也不能在时间上共享不同序列长度和不同位置的统计强度。
- $h^{(t)} = f (h^{(t−1)}, x^{(t)} ; θ)$
展开过程的两个主要优点:
- 无论序列的长度,学成的模型始终具有相同的输入大小。
- 可以在每个时间节点使用相同的转移函数$f$。
第九章:Convolutional Networks
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):