23_深度学习__前方有路,未来可期:深度前馈网络
文章目录
深度前馈网络(Deep Feedforward Network)是具有深度结构的前馈神经网络,可以看成是进化版的多层感知器。与只有一个或两个隐藏层的浅层网络相比,深度前馈网络具有更多的隐藏层数目,从而具备了更强的特征提取能力。
深度前馈网络不考虑输入数据可能具备的任何特定结构,也就是不使用关于数据的先验信息。但特征提取能力增强的代价是运算复杂度的提升。因而,网络架构的建立、损失函数的选择、输出单元和隐藏单元的设计、训练误差的处理等问题就成为深度前馈网络设计中的一系列核心问题。
在深度前馈网络的设计中,确定架构是首要考虑的关键问题。架构决定着网络中包含多少基本单元,以及这些基本单元之间如何相互连接。几乎所有前馈网络采用的都是链式架构,即前一层的输出是后一层的输入。在这样的链式架构中,层的数目和每一层中神经元的数目就是网络的主要变量。
介绍多层感知器时我曾提到了通用逼近的性质,这个性质的严格形式是通用逼近定理。通用逼近定理的内容是如果一个前馈网络具有单个隐藏层,这个隐藏层又有足够但是有限数目的神经元,这个神经网络就可以以任意精度逼近任意连续函数。虽然在这个定理的初始证明中,隐藏神经元的传递函数是具有“挤压”性质的非线性函数,但定理的成立性实际上并不取决于传递函数的性质,而是由网络的前馈架构所决定的。
通用逼近定理是一个存在性定理,它说明需要的神经网络是肯定存在的,却并没有指明具体的构造方法。所以在给定一个目标函数时,我们可以确定单隐藏层的感知器一定能够将它表示出来,却对隐藏层需要多少神经元毫无把握。这个数目很可能是个天文数字,这会让网络结构在计算机上根本无法实现。即使能够设计出这么复杂的算法,要对它进行训练和泛化也近乎天方夜谭。
深度前馈网络的出现克服的正是单隐藏层带来的复杂性问题:使用深度架构的模型既能减少表示目标函数时所需要的单元数量,也能有效降低泛化误差,在一定程度上抑制过拟合的发生。深度架构对复杂函数具有更强的表示能力,这一点已经在数学上得到证明。除此之外,深度架构也暗含了这样的假设:待学习的复杂函数可以视为若干简单函数的层次化结合。由于深度学习的思想本就借鉴自神经科学,这个假设也就合情合理了。
在层与层之间,深度架构采用的最常见的方式是全连接,意味着相邻层次中的任意神经元都两两相连。全连接是最简单也最复杂的架构,说它简单是因为连接方式只有一种选择,不需要考虑保留哪些连接或是放弃哪些连接;说它复杂是因为这种方式需要确定的参数最大,给网络训练带来了很大的麻烦。目前也有大量神经网络使用了稀疏的连接方式,这需要结合应用场景具体分析。
任何机器学习算法都可以看成是对某个预设函数的最优化方法,深度前馈网络也不例外。与其他神经网络一样,深度前馈网络也利用梯度信息进行学习,在处理误差时采用的是反向传播方法,利用反向传播求出梯度后再使用随机梯度下降法寻找损失函数的最小值。但深度网络的非线性特性常常会影响到学习算法的收敛性能,这也是使用非线性函数的神经网络的一个固有特性。
在学习中,损失函数的选择是深度神经网络设计中另一个重要环节。深度前馈网络选择损失函数的准则与其他机器学习算法并无二致:回归问题的损失函数通常是最小均方误差,而分类问题的损失函数通常是交叉熵(Cross-Entropy)。
交叉熵描述的是真实的数据分布和神经网络输出分布之间的差异性。当我们使用神经网络的输出去预测符合真实分布的测试数据时,网络输出并不能完全消除关于测试数据的不确定性。这部分剩余的不确定性可以由泛化误差体现,在信息论中则由交叉熵来定义。
如果 p(x)p(x)
文章作者
上次更新 10100-01-10