单层感知器

时间:2012-04-19 05:03:43

标签: algorithm perceptron

我正在构建一个具有相当长的特征向量(30-200k)的单层感知器,所有这些都被归一化。

假设我有30k的功能,这些功能在预测课程时有些用处,但随后又增加了100个功能,这些功能都是很好的预测器。预测的准确性只会微不足道。但是,如果我手动增加100个优秀功能(例如5倍)的权重,则精度会上升几个百分点。

我的印象是,训练过程的性​​质应该能够提供更好的特征,自然更重。然而,看起来最好的功能是被更糟糕的人“淹没”。

我尝试使用大量迭代运行它,但这没有帮助。

如何以合理简单的方式使算法适应更好的权重?而且,一个相当快的方式;如果我的功能较少,那么运行算法很容易,一次只能输出一个,但是30k并不是真的可行。

1 个答案:

答案 0 :(得分:0)

我实施基于感知器的网络的经验是,需要大量的迭代才能学到一些东西。我相信我使用每个样本大约1k次来学习xor函数(当只有4个输入时)。因此,如果您有200k输入,则需要大量样本和大量时间来训练您的网络。

我有几点建议:

  • 尝试减小输入的大小(尝试将多个输入聚合成一个输入或尝试删除冗余一次)。

  • 尝试多次使用每个样本。正如我所说,即使是一个简单的函数也可能需要花费很多次迭代才能学习

希望这有帮助。