神经网络 - 所有输入向量的训练进度显着不均匀

时间:2012-03-21 01:36:04

标签: algorithm machine-learning neural-network deep-learning

我正在实施一个使用反向传播进行训练的前馈神经网络。当我在每个测试用例之后输出错误率时它会学习 - 我注意到在一些时期之后它开始很好地学习某些测试用例但其他测试用例非常糟糕。即某些测试用例的错误率很低,但其他测试用例的错误率非常高。

基本上,在几个时期之后,我注意到均值平方误差停滞到以下模式 - (每行代表单个测试用例后的MSE)。

0.6666666657496451
0.6666666657514261
1.5039854423139616E-10
1.4871467103001578E-10
1.5192940136144856E-10
1.4951558809679557E-10
0.6666521719715195
1.514803547256445E-10
1.5231135866323182E-10
0.6666666657507451
1.539071732985272E-10

是否有任何可能的原因导致这种情况发生?

最初我认为这些导致高错误率的情况可能只是异常值 - 但是模型暗示的情况太多了。可能是我的学习者刚刚达到了当地的最低点,需要一些动力才能摆脱它吗?

2 个答案:

答案 0 :(得分:4)

我的回答是针对训练你的分类器的“不均衡”进展的可能解决方案。关于“为什么”你看到这种行为,我推迟。特别是,我不愿意尝试将原因归因于我在培训中观察到的工件 - 即数据是什么?还是MLP的实施?或者我选择的可调配置?事实是,分类器 交互 导致此观察的数据,而不是其中任何一个的固有特征。< / p>

分类器很好地学习某些输入向量并且也很快 - 也就是说, [观察 - 预测] ^ 2 在仅少量周期/时期之后变得非常小 - 并且对于同一个分类器,无法在其他输入向量上反复失败(并且无法改进)。

要成功完成分类器的培训, 提升 是您问题中描述的问题的教科书答案。

在继续之前,配置/设置中的一个小错误也可以解释您观察到的行为。

特别是,可能会在配置中验证这些项目:

  • 是您正确编码的输入向量 - 例如,它们的范围是 [-1,1]?

  • 您是否正确编码了您的响应变量(即 1-of-C 编码 )?

  • 您选择了合理的初始学习率和动力 术语?您是否曾尝试使用学习率值进行培训 调整了初始学习率的两边?吨

无论如何,假设这些配置和设置问题都没问题,以下是有关Boosting的相关实现细节(严格来说,这是一种组合多个分类器的技术),其工作方式如下:

在一些时期之后,检查结果(就像你一直在做的那样)。 *分类器未能学习的那些数据向量被赋予加权因子以增加erro * r(某个数大于1);类似地,分类器学好的那些数据向量也被赋予加权因子,但这里的值小于1,这样就减少了训练误差的重要性。

因此,例如,假设在第一个时期结束时(迭代通过包含训练数据集的所有数据向量),您的总误差为100;换句话说,平方误差(观测值 - 预测值)在训练集中的所有数据向量上求和。

这些是您的问题

中列出的两个MSE值
0.667        # poorly learned input vector => assign error multiplier > 1 
1.5e-10      # well-learned input vector => assign error multiplier < 1  

在Boosting中,您会找到与这两个误差测量相对应的输入向量,并将每个误差权重关联起来;这个重量在第一种情况下大于1,在第二种情况下小于1。假设您分别指定了1.3和.7的误差权重。进一步假设在下一个时期之后,你的分类器在学习这两个输入向量中的第一个方面没有改进 - 即,它返回与上一个时期相同的预测值。然而,对于这个迭代/纪元,来自该输入矢量的总误差的贡献不是0.67而是1.3×0.67,或大约。 0.87。

此增加错误对培训进度有何影响?

较大的误差意味着更陡峭的梯度,因此对于下一次迭代, 对包含权重矩阵的适当权重 进行更大的调整 - 换句话说,更快速的训练专注于这个特定的输入向量。

您可能会想到这些数据向量中的每一个都具有1.0的隐式错误权重。提升只会增加误差权重(对于分类器无法学习的向量),并减少它学习得很好的向量的权重。

我刚刚描述的是一个名为 AdaBoost 的特定实现,它可能是最着名的Boosting实现。有关langauge特定实现的指导甚至代码,请查看boosting.com] 1(严重)。不再维护本网站,所以这里有一些我依赖的优秀资源并且可以高度推荐。第一个是带注释的参考书目形式的academic site(包括链接到网站上讨论的论文)。本网站上列出的第一篇论文(带有pdf的链接),机器学习的提升方法:概述,是一个很好的概述和获得这一系列技术的工作知识的有效资源

videolectures.net

上还有关于Boosting和AdaBoost的优秀视频教程

答案 1 :(得分:0)

您的神经元网络是否可能过于简单而无法正确分类数据?如果您的神经元太少和/或层数太少,则可能没有网络学习分类的权重配置。