2020-3-24 深度学习笔记15 - 表示学习 1(贪心逐层无监督预训练-目前已经不太使用)

第十五章 表示学习

官网
英文

很多信息处理任务可能非常容易,也可能非常困难,这取决于信息是如何表示的。

在机器学习中,到底是什么因素决定了一种表示比另一种表示更好呢? 一般而言,一个好的表示可以使后续的学习任务更容易。 选择什么表示通常取决于后续的学习任务。

表示学习的概念将许多深度学习形式联系在了一起。 前馈网络和循环网络,自编码器和深度概率模型都在学习和使用表示。 学习最佳表示仍然是一个令人兴奋的研究方向。

贪心逐层无监督预训练Greedy Layer-Wise Unsupervised Pretraining

http://deeplearning.stanford.edu/wiki/index.php?title=Deep_Networks:_Overview&action=edit
https://blog.csdn.net/dcxhun3/article/details/48131745

通过引入深度网络(含有多个隐藏层的神经网络),我们可以计算更多复杂的输入特征。因为每一个隐藏层可以对上一层的输出进行非线性变换,因此深度神经网络拥有比“浅层”网络更加优异的表达能力(例如:可以学习到更加复杂的函数关系)。

那么,我们应该如何训练深度网络呢?逐层贪婪训练方法是取得一定成功的一种方法。

简单来说,逐层贪婪算法的主要思路是每次只训练网络中的一层,即我们首先训练一个只含一个隐藏层的网络,仅当这层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推。
2020-3-24 深度学习笔记15 - 表示学习 1(贪心逐层无监督预训练-目前已经不太使用)_第1张图片

在每一步中,我们把已经训练好的前k-1层固定,然后增加第k层(也就是将我们已经训练好的前k-1的输出作为输入)。每一层的训练可以是有监督的(例如:将每一步的分类误差作为目标函数),但更通常使用无监督方法(例如:自编码器)。
2020-3-24 深度学习笔记15 - 表示学习 1(贪心逐层无监督预训练-目前已经不太使用)_第2张图片

这些各层单独训练所得到的权重被用来初始化最终(或者说全部)的深度网络的权重,然后对整个网络进行“微调”(即把所有层放在一起来优化有标签训练集上的训练误差)。

+++++++++++++++++++++++++++++++++++
以上是补充内容,以下是《机器学习》内容
+++++++++++++++++++++++++++++++++++

无监督学习在深度神经网络的复兴上起到了关键的、历史性的作用,它使研究者首次可以训练不含诸如卷积或者循环这类特殊结构的深度监督网络。 我们将这一过程称为无监督预训练,或者更精确地,贪心逐层无监督预训练。

贪心逐层无监督预训练依赖于单层表示学习算法,例如:RBM(目前很少使用)、单层自编码器(目前很少使用)、稀疏编码模型或其他学习潜在表示的模型。 每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。 这个新的表示的分布(或者是和其他变量比如要预测类别的关系)有可能是更简单的。

基于无监督标准的贪心逐层训练过程,早已被用来规避监督问题中深度神经网络难以联合训练多层的问题。

贪心逐层无监督预训练被称为贪心的,是因为它是一个贪心算法, 这意味着它独立地优化解决方案的每一个部分,每一步解决一个部分,而不是联合优化所有部分。

它被称为逐层的,是因为这些独立的解决方案是网络层。 具体地,贪心逐层无监督预训练每次处理一层网络,训练第 k k k层时保持前面的网络层不变。 特别地,低层网络(最先训练的)不会在引入高层网络后进行调整。

它被称为无监督的,是因为每一层用无监督表示学习算法训练。

它也被称为预训练pretraining,是因为它只是在联合训练算法精调所有层之前的第一步。 通常而言,”预训练”不仅单指预训练阶段,也指 结合预训练监督学习 的两阶段学习过程。 监督学习阶段可能会使用预训练阶段得到的顶层特征训练一个简单分类器,或者可能会对预训练阶段得到的整个网络进行监督精调。 不管采用什么类型的监督学习算法和模型,在大多数情况下,整个训练过程几乎是相同的。 虽然无监督学习算法的选择将明显影响到细节,但是大多数无监督预训练应用都遵循这一基本方法。

预训练的意思就是提前已经给你一些初始化的参数,这个参数不是随机的,而是通过其他类似数据集上面学得的,然后再用你的数据集进行学习,得到适合你数据集的参数

贪心逐层无监督预训练也能用作其他无监督学习算法的初始化,比如 深度自编码器和具有很多潜变量层的概率模型。

何时以及为何无监督预训练有效?
在很多分类任务中,贪心逐层无监督预训练能够在测试误差上获得重大提升。但是在很多其他问题上,无监督预训练不能带来改善,甚至还会带来明显的负面影响。 因此很有必要了解它何时有效以及有效的原因,以确定它是否适合用于特定的任务。

  • 从无监督预训练作为学习一个表示的角度来看,我们可以期望无监督预训练在初始表示较差的情况下更有效。
  • 从无监督预训练作为正则化项的角度来看,我们可以期望无监督预训练在标注样本数量非常小时很有帮助。
  • 当我们要学习的函数非常复杂时,无监督预训练可能会非常有用。
  • 无监督预训练通常用来改进分类器,减少测试集误差
  • 无监督预训练可以用于改进优化,而不仅仅只是作为正则化项

何时预训练效果最好?——预训练的网络越深,测试误差的均值和方差下降得越多。

与无监督学习的其他形式相比,无监督预训练的缺点是其使用了两个单独的训练阶段。
无监督预训练没有一种明确的方法来调整无监督阶段正则化的强度。 相反,无监督预训练有许多超参数,但其效果只能之后度量,通常难以提前预测。
在无监督预训练的情况下,没有一种灵活调整正则化强度的方式——要么监督模型初始化为预训练的参数,要么不是。

具有两个单独的训练阶段的另一个缺点是每个阶段都具有各自的超参数。 第二阶段的性能通常不能在第一阶段期间预测,因此在第一阶段提出超参数和第二阶段根据反馈来更新之间存在较长的延迟。

如今,大部分算法已经不使用无监督预训练了

  • 基于监督学习的深度学习技术,通过Dropout或批标准化来正则化,能够在很多任务上达到人类级别的性能,但仅仅是在极大的标注数据集上。
  • 在中等大小的数据集(例如:CIFAR-10 和 MNIST,每个类大约有5,000个标注样本)上,这些技术的效果比无监督预训练更好。
  • 在极小的数据集,例如:选择性剪接数据集,贝叶斯方法要优于基于无监督预训练的方法。

现在所常说的预训练 ,其实专指 migration learning迁移学习了。迁移学习中的监督预训练流行于在ImageNet数据集上使用卷积网络预训练。

你可能感兴趣的:(深度学习,IT)