青藏高原对我国的气候有什么影响( 五 )


2.梯度弥散 。使用反向传播算法传播梯度的时候 , 随着传播深度的增加 , 梯度的幅度会急剧减小 , 会导致浅层神经元的权重更新非常缓慢 , 不能有效学习 。这样一来 , 深层模型也就变成了前几层相对固定 , 只能改变最后几层的浅层模型 。
3.数据获龋深层模型的表达能力强大 , 模型的参数也相应增加 。对于训练如此多参数的模型 , 小训练数据集是不能实现的 , 需要海量的有标记的数据 , 否则只能导致严重的过拟合(Over fitting) 。
4.3 深层模型的训练方法
尽管挑战很大 , Hinton教授并没有放弃努力 , 他30年来一直从事相关研究 , 终于有了突破性的进展 。2006年 , 他在《Science》上发表了一篇文章[1] , 掀起了深度学习在学术界和工业界的浪潮 。这篇文章的两个主要观点是:
1.多隐藏层的人工神经网络具有优异的特征学习能力 , 学习到的特征对数据有更本质的刻画 , 从而有利于可视化或分类 。
2.深度神经网络在训练上的难度 , 可以通过“逐层初始化”(Layer-wise Pre-training)来有效克服 , 文中给出了无监督的逐层初始化方法 。
优异的特征刻画能力前文已经提到 , 不再累述 , 下面重点解释一下“逐层初始化”的方法 。
给定原始输入后 , 先要训练模型的diyi层 , 即图中左侧的黑色框 。黑色框可以看作是一个编码器 , 将原始输入编码为diyi层的初ji特征 , 可以将编码器看作模型的一种“认知” 。为了验证这些特征确实是输入的一种抽象表示 , 且没有丢失太多信息 , 需要引入一个对应的解码器 , 即图中左侧的灰色框 , 可以看作模型的“生成” 。为了让认知和生成达成一致 , 就要求原始输入通过编码再解码 , 可以大致还原为原始输入 。因此将原始输入与其编码再解码之后的误差定义为代价函数 , 同时训练编码器和解码器 。训练收敛后 , 编码器就是我们要的diyi层模型 , 而解码器则不再需要了 。这时我们得到了原始数据的diyi层抽象 。固定diyi层模型 , 原始输入就映射成diyi层抽象 , 将其当作输入 , 如法炮制 , 可以继续训练出第二层模型 , 再根据前两层模型训练出第三层模型 , 以此类推 , 直至训练出最高层模型 。
逐层初始化完成后 , 就可以用有标签的数据 , 采用反向传播算法对模型进行整体有监督的训练了 。这一步可看作对多层模型整体的精细调整 。由于深层模型具有很多局部最优解 , 模型初始化的位置将很大程度上决定最终模型的质量 。“逐层初始化”的步骤就是让模型处于一个较为接近全局最优的位置 , 从而获得更好的效果 。
4.4 浅层模型和深层模型的对比
浅层模型有一个重要的特点 , 需要依靠人工经验来抽取样本的特征 , 模型的输入是这些已经选取好的特征 , 模型只用来负责分类和预测 。在浅层模型中 , 最重要的往往不是模型的优劣 , 而是特征的选取的优劣 。因此大多数人力都投入到特征的开发和筛选中来 , 不但需要对任务问题领域有深刻的理解 , 还要花费大量时间反复实验摸索 , 这也限制了浅层模型的效果 。
事实上 , 逐层初始化深层模型也可以看作是特征学习的过程 , 通过隐藏层对原始输入的一步一步抽象表示 , 来学习原始输入的数据结构 , 找到更有用的特征 , 从而最终提高分类问题的准确性 。在得到有效特征之后 , 模型整体训练也可以水到渠成 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。