首页 理论教育 深度神经网络的隐藏层原理解析

深度神经网络的隐藏层原理解析

时间:2023-06-28 理论教育 版权反馈
【摘要】:如图2.1所示,深度神经网络包括一个输入层,一个输出层,还有介于这两层之间的多个隐藏层。图2.1 DNN模型隐藏层的作用是实现复杂函数的转换。若想在很短时间内,全面地、明确地理解DNN,隐藏层便是DNN的秘密所在,隐藏层神经元执行的非线性数据转换是该技术的核心。从图2.1可以看到,DNN是神经元个体的组合,这些神经元相互连接,可以使输出的组合更加灵活。

深度神经网络的隐藏层原理解析

线性模型通过特征间的线性组合来表达“结果-特征集合”之间的对应关系。由于线性模型的表达能力有限,在实践中,只能通过增加“特征计算”的复杂度优化模型。比如,在广告点击通过率(CTR)预估应用中,除了“标题长度、描述长度、位次、广告ID,Cookie”等这样的简单原始特征,还有大量的组合特征(比如“位次-Cookie”表示用户对位次的偏好)。事实上,现在很多搜索引擎的广告系统用的都是Logistic Regression模型(线性),而建模最重要的工作之一就是“特征抽取”。

线性模型的思路是“简单模型+复杂特征”,用这样的组合实现复杂非线性场景描述。由于模型结构简单,这种做法的训练/预估计算代价相对较小;但是,特征的选取是一个需要耗费大量人力的工作,且要求相关人员对业务有较深的理解。

建模的另外一个思路是“复杂模型+简单特征”。即弱化特征工程的重要性,利用复杂的非线性模型来学习特征间的关系,增强表达能力。DNN模型就是这样一个非线性模型。

如图2.1所示,深度神经网络包括一个输入层,一个输出层,还有介于这两层之间的多个隐藏层。它类似于多层感知机,但是它拥有多个隐藏层,而且每个隐藏层都有多个相互连接的神经元。DNN的多个隐藏层的优势在于能够逼近复杂的决策函数。

978-7-111-57073-8-Chapter02-1.jpg

图2.1 DNN模型

隐藏层的作用是实现复杂函数的转换。它们连接着输入层,为输入值标记权重并且结合对输入值标记的权重产生一个全新的、真实的数值,然后传递给输出层。输出层使用在隐藏层中计算得来的抽象的特征进行分类或者预测。

若想在很短时间内,全面地、明确地理解DNN,隐藏层便是DNN的秘密所在,隐藏层神经元执行的非线性数据转换是该技术的核心。

从图2.1可以看到,DNN是神经元个体的组合,这些神经元相互连接,可以使输出的组合更加灵活。正是这样的灵活性,使得它们可以逼近任何函数。

多层的好处是可以用较少的参数表示复杂的函数。(www.xing528.com)

在有监督学习中,以前的多层神经网络的问题是容易陷入局部极值点。如果训练样本足够充分覆盖未知样本,那么学到的多层权重可以很好地用来预测新的测试样本。但是很多任务难以得到足够多的标记样本,在这种情况下,简单的模型,如线性回归或者决策树往往能得到比多层神经网络更好的结果(更好的泛化性以及更小的训练误差)。

在无监督学习中,以往没有有效的方法构造多层网络。多层神经网络的顶层是底层特征的高级表示,例如,对图像而言,底层是像素点,上一层的结点可能表示横线、三角;而顶层可能有一个结点表示人脸。一个成功的算法应该能让生成的顶层特征最大化地代表底层的样例。如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,误差就会逐层传递。这会面临与上面有监督学习中相反的问题,会严重欠拟合。

2006年,Hinton提出了在无监督数据上建立多层神经网络的一种有效方法,简单地说,分为两步:一是每次训练一层网络;二是微调。微调的目的是使原始数据x向上生成x的高级表示r,该高级表示r向下生成的x′要尽可能与x一致,具体方法如下:

1)逐层构建单层神经元,这样每次都是训练一个单层网络。

2)当所有层训练完后,使用Wake-Sleep算法进行微调。将除最顶层的其他层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其他层则变为图模型。向上的权重用于“认知”,向下的权重用于“生成”。然后使用Wake-Sleep算法调整所有的权重。让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确地复原底层的结点。例如,顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为醒(Wake)和睡(Sleep)两个部分。

①Wake阶段,认知过程。通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。

②Sleep阶段,生成过程。通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。

由于自编码网络(Auto Encoder),广义上的自编码网络是指所有的从低级表示得到高级表示,并能从高级表示生成低级表示的近似结构,狭义上指的是其中的一种,谷歌的猫脸识别用的)有联想功能,也就是缺失部分输入也能得到正确的编码,所以上面说的算法也可以用于有监督学习,训练时,y作为顶层网络输入的补充,应用时,顶层网络生成y′。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈