今天记录三个小细节–前馈神经网络、梯度下降、学习率以及BP神经网络防止过拟合的方法
前馈神经网络
每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为前馈神经网络。如下图:
梯度下降
所谓函数的梯度下降,其实就是沿该点的方向导数最大,即函数的导数变化的最快。例如周志华书中谈及BP算法时针对神经网络的均方误差函数进行梯度下降处理,快速到达均方误差函数的导数为0的地方,即取到最值的地方,BP算法正是基于这个思路设计的。
学习率
在西瓜书中谈到,学习率控制着每一轮迭代中的更新步长。若太大则容易引起震荡,太小则收敛速度过慢。这个代表学习率的参数出现在梯度下降的式子中,不难想出是调控梯度下降速率的参数。注意学习率的取值为η∈(0 ,1)。
BP神经网络过拟合的处理
[Hornik et al., 1989] 证明,只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数.然而,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠"试错法" (trial-by-error) 调整.
正是由于其强大的表示能力, BP 神经网络经常遭遇过拟合:其训练误差持续降低,但测试误差却可能上升。有两种策略常用来缓解BP 网络的过拟合.第一种策略是"早停" (early stopping): 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阔值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值.第二种策略是"正则化" (regularization) [Barron, 1991; Girosi et al., 1995],其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阔值的平方和.仍令Ek 表示第k 个训练样例上的误差,wi表示连接权和阙值,则误差目标函数(5.16) 改变为一个带正则化项的函数。