C15.Representation Learning
本章的目标
- 表示学习(Representation Learning)的含义
- 表示学习如何支持深度学习框架的设计,一个好的表示可以使后续的学习任务更加容易
- 共享统计信息:无监督学习为监督学习提供信息
- 监督学习训练的前馈网络也可以视为表示学习的一种形式
- 基于各个隐藏层使表示能够更加容易完成训练任务
- 迁移学习
- 表示学习的优点
- 分布式表示
- 深度表示
- 数据生成过程潜在假设描述了观测数据的基本成因
- 提供了进行无监督学习和半监督学习的一种方法
- 半监督学习通过进一步学习未飘游的数据来解决过拟合问题
15.1 Greedy Layer-Wise Unsupervised Pretaining
贪心逐层无监督预训练(Greedy Layer-Wise Unsupervise Pretaining),简称无监督预训练。训练的深度监督网络中不含有特殊的网络结构(例如:卷积、循环)。预训练依赖于单层表示学习算法(例如:受限玻尔兹曼机、单层自编码器、稀疏编码模型或者其他学习潜在表示的模型)。每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。这个新的表示的分布有可能是更加简单的。
贪心逐层无监督预训练是一个贪心算法,即逐层寻找最优表示,每次处理一层网络,训练第$k$次时保持前面的网络层的参数不变。低层的网络(最先训练)不会在引入高层的网络后进行调整。
- 无监督:是因为每一层用无监督表示学习算法训练
- 预训练:是因为只是在联合训练算法精调(fine tune)所有层之前的第一步
- 结合预训练和监督学习的两阶段学习统一称作「预训练」
- 预训练可被看作监督学习的正则化项和参数初始化的一种形式
- 预训练也可用作其他无监督学习算法的初始化
贪心逐层监督预训练算法:基于浅层模型的训练比深度模型更容易
15.1.1 When and Why Does Unsupervised Pretaining Work?
贪心逐层无监督预训练的应用目标
- 能够在许多分类任务中减少测试误差。
- 在处理单词任务时特别有效。
- 对于标注样本数量非常小时帮助较大。
- 对于学习的函数非常复杂时效果很好
- 权重衰减正则化方法偏向于学习简单的函数
无监督预训练的两个重要理念
- 基于深度神经网络来初始化模型参数,从而对模型产生显著的正则化效果
- 预训练会初始化模型到一个可能不会到达的位置
- 保持无监督学习阶段提取的信息的方法
- 现代方法同时使用无监督学习和监督学习,而不是依序使用两阶段学习,这样
- 固定特征提取器的参数,仅仅将监督学习作为顶层学成特征的分类器
- 学习输入分布有助于学习从输入到输出的映射
- 基于无监督学习得到的信息,在监督学习阶段模型会表现得更好
无监督预训练效果分析
- 无监督预训练的神经网络训练停止的函数空间区域具有相似性,并且区域较小,从而减少了估计过程的方差,降低严重过拟合的风险,将有监督训练模型初始化为参数不易逃逸的区域,并且遵循这种初始化的结果更加一致,因此模型质量很差的可能性更低。
- 有监督神经网络训练停止的函数空间区域则相对较广
无监督预训练模型使用场合
- 预训练的网络越深,测试误差的均值和方差就下降得越多
- 预训练学习算法会发现那些与生成观察数据的潜在原因相关的特征
无监督预训练的主要缺点:使用了两个单独的训练阶段
- 没有明确的方法来调整无监督阶段正则化的强度
- 每个阶段都具有各自的超参数,第二阶段的性能无法在第一阶段进行预测,因此在第一阶段得到的超参数和第二阶段根据反馈来更新之间存在较长的延迟。
- 在监督阶段使用验证集上的误差来挑选预训练阶段的超参数
15.2 Transfer Learning and Domain Adaption
迁移学习和领域自适应指的是利用一个情景(分布$P_1$)中已经学到的内容去改善另一个情景(分布$P_2$)中的泛化情况。
- 迁移学习(Transfer Learning):学习器必须执行两个或者更多不同的任务,前提假设为能够解释$P_1$变化的因素也能够解释$P_2$的变化
- Ex1:在无监督学习任务和监督学习任务之间转移表示
- 在监督学习中,输入是相同的,输出是不同的
- 概念漂移(Concept Drift):也属于迁移学习,数据分布随时间而逐渐变化。
- 多模态学习(Multimodal Learning):学习两种模态的表示,以及两种模态的观察结果组成的数据对之间的关系(通常是一个联合分布)
- 多任务学习(Sec 7.7):多指监督学习任务
- 迁移学习和概念漂移都属于多任务学习的特定形式
- 广义的迁移学习也适用于无监督学习和强化学习
- 领域自适应(Domain Adaption):在每个情景中的任务都是相同的,只有输入的分布稍有不同。
- Ex1:情感分析任务,假设存在一个潜在函数可以判断任何语句是正面的、中性的还是负面的,只有词汇和风格会因领域而有差异,去噪自编码器能够应用于领域自适应的情感分析[^Glorot,2011]
- 当存在对不同的情景或者任务有用的特征时,并且这些特征对应的多个情景出现的潜在因素,迁移学习、多任务学习和领域自适应都可以使用表示学习来实现,即具有共享底层和任务相关上层的学习框架
- 当不同的任务之间共享的不是输入的语义,而是输出的语义,则共享神经网络的上层(输出附近)和进行任务特定的预处理是有意义的
表示学习
- 目标:利用第一个情景下的数据提取信息,那些信息在第二个情景中学习时或者直接进行预测可能有用
- 思想:相同的表示可能在两种情景中都是有用的,两个情景使用相同的表示,使得表示可以受益于两个任务的训练数据
迁移学习的极端形式
- 一次学习(One-Shot Learning):只有一个标注样本的迁移任务。在第一阶段学习出的表示可以清楚地分离出潜在的类别。在迁移学习阶段,仅需要一个标注样本来推断表示空间中聚焦在相同点周围许多可能测试样本的标签。在学成的表示空间中,对应于不变性的变化因子已经与其他因子完全分离。
- 零次学习(Zero-Shot Learning),也叫零数据学习(Zero-Data Learning):没有标注样本的迁移任务。需要在训练时使用额外信息(传统输入$x$,传统输出或者目标$y$,以及描述任务的附加随机变量$T$)。零次学习要求$T$表示为某种形式的泛化。
- 零次学习是迁移学习的特殊形式