一、常用的深度学习模型和方法介绍
1.自编码器
自编码器通过一个编码和一个解码过程来重构输入数据,学习数据的隐表示。基本的自编码器可视为一个三层的神经网络结构.下图是自编码器结构示意图:
自编码器的目的是使得输入 x 与输出 y 尽可能接近,这种接近程度通过重构误差表示,根据数据的不同形式,通常重构误差有均方误差和交叉熵两种定义方式。
如果仅仅通过最小化输入输出之间的误差来实现对模型的训练,自编码器很容易学习到一个恒等函数。为了解决这个问题,研究者提出了一系列自编码器的变种,其中比较经典的包括稀疏自编码器和降噪自编码器。2007 年,Bengio 等人通过堆叠多个降噪自编码器,提出了栈式降噪自动编码器(StackedDenoising Autoencoder, SDAE)的概念,其是一种深度神经网络结构,通过逐层非监督学习的预训练可以学习多层次的数据抽象表示。
应用场景主要包括评分预测、文本推荐、图像推荐等。
2.受限玻尔兹曼机
玻尔兹曼机(Boltzmann machine, BM)是一种生成式随机神经网络,由Hinton和Sejnowski在1986年提出。。BM能够学习数据中复杂的规则,具有强大的无监督学习能力。但是,玻尔兹曼机的训练过程非常耗时。为此,Sejnowski等 人 进 一 步 提 出 了 一 种 受 限 玻 玻 尔 兹 曼 机(Restricted Boltzmann Machine, RBM)其在玻尔兹曼机的基础上,通过去除同层变量之间的所有连接极大地提高了学习效率。
尽管无法有效计算RBM所表示的分布,但是通过Gibbs采样能够得到RBM所表示的分布的随机样本。Gibbs采样的问题是需要使用较大的采样步数,使得RBM的训练效率仍不高。考虑到这种情况,Hinton提出了一种对比散度(contrastivedivergence, CD)快速学习算法,CD算法同样利用Gibbs采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层)来获得随机样本,但是只需迭代 k (通常 k =1)次就可获得对模型的估计,而不需要像Gibbs采样一样直到可见层和隐层达到平稳分布。
应用场景主要是用户评分预测。
3.深度信念网络
Hinton等人在 2006 年提出了一种深度信念网络(Deep Belief Network, DBN),其是一种由多层非线性变量连接组成的生成式模型。在深度信念网络中,靠近可见层的部分是多个贝叶斯信念网络,最远离可见层的部分则是一个 RBM,其结构如下图所示: