0

我正在构建一个单层感知器,它具有相当长的特征向量(30-200k),全部标准化。

假设我有 30k 个特征,这些特征在预测一个类时有些用处,但随后又添加了 100 个非常好的预测特征。预测的准确性只上升了微不足道的数量。但是,如果我手动增加 100 个优秀特征的权重(比如增加 5 倍),准确率会提高几个百分点。

我的印象是,训练过程的性​​质应该自然地赋予更好的特征更高的权重。然而,似乎最好的功能正在被更差的功能“淹没”。

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

如何以相当简单的方式使算法适应更好的权重特征?此外,一种相当快速的方式;如果我的功能更少,那么运行算法很容易,一次只留下一个,但对于 30k 来说这并不可行。

4

1 回答 1

0

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

我有几个建议给你:

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

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

希望这可以帮助。

于 2012-04-19T06:20:12.530 回答