摘自《机器学习导论》
训练过程
改善收敛性
梯度下降具有多种优点。它简单,它是局部的,即权重的改变只是用前后突出单元和误差(适合向后传播)的值。当使用在线训练时,它不需要存储训练集,并且可以自适应学习任务的变化。但是,就自身而言,梯度下降收敛很慢。当学习时间很重要时,可以使用更复杂的优化方法。有两种频繁使用的优化技术,可以显著改善梯度下降的性能。
动量
令 wi w i 为多层感知器任意层中的权重,包括偏倚。在每次参数更新时,连续的 Δwti Δ w i t 可能很不相同以致出现摆动,减缓收敛。t为时间指数,是批量学习的周期数和在线学习的迭代次数。基本想法是在当前的改变中考虑上一次的更新,去移动平均,好像因上次更新而存在的动量(momentum):
自适应学习率
在梯度下降中,学习因子 η η 决定参数的该变量。它通常在0.0-1.0之间取值,大部分情况小雨或等于0.2。为了更快收敛,可以让它自适应。学习开始时它保持较大,学习减慢时它也减小:
过分训练
随着训练周期的增加,训练机上的误差降低,但是当超过某一点时,验证集上的误差开始增加。
由于非线性,误差函数可能有多个极小,而梯度下降收敛于最近的极小。为了能够评估期望的误差,通常以不同的初始权重开始。
构造网络
在某些应用中,我们可能相信输入具有局部结构。此时,再设计MLP时,并不是将隐层单元连接到所有输入单元,因为并非所有的输入都是相关的。另外,我们定义隐藏单元,它在输入空间上定义一个输入窗口,并且仅与输入的一个小的局部子集相连接。这样做减少了连接数,从而减少了自有参数的数目。
同时,我们可以通过圈中共享(weight sharing)进一步减少参数的数目。
线索
局部结构的只是可以使得我们预先构造多层网络,并且使用权重共享使得他具有较少的参数。具有全连接层的MLP不具有这种结构,并且更难训练。如果将与应用相关的任何类型的知识都用与网络结构的构建中,那么这些知识称作线索(hint)。它们是我们知道的目标函数的性质,独立于训练实例。
- 可以使用线索创建虚拟实例。如图像的伸缩变换。
- 不变形可以作为预处理阶段实现。例如,光学字符阅读器可以有一个预处理步骤。将输入字符的图像关于尺寸和倾斜进行中心化和规范化。
- 线索可以纳入网络结构中。
- 也可以通过修改误差函数纳入线索。