神经网络输入数据的优化

时间:2010-01-02 09:36:54

标签: neural-network inputstream mathematical-optimization

我正在尝试构建一个应用来检测来自网页的广告图像。一旦我发现了那些,我就不会允许那些在客户端显示。

基本上我使用反向传播算法来训练神经网络,使用此处给出的数据集:http://archive.ics.uci.edu/ml/datasets/Internet+Advertisements

但是在那个数据集中没有。属性非常高。事实上,该项目的一位导师告诉我,如果你训练具有许多属性的神经网络,那么需要花费大量的时间来接受训练。那么有没有办法优化输入数据集?或者我只需要使用那么多属性?

3 个答案:

答案 0 :(得分:5)

1558实际上是一些适当数量的功能/属性。实例数(3279)也很小。问题不在于数据集方面,而在于训练算法方面。

人工神经网络培训速度慢,我建议你使用逻辑回归或svm。他们俩都很快训练。特别是,svm有很多快速的算法。

在此数据集中,您实际上是在分析文本,而不是图像。我认为线性家庭分类器,即逻辑回归或svm,对你的工作更好。

如果您正在使用生产,则无法使用开源代码。与良好的ANN和SVM相比,Logistic回归非常容易实现。

如果您决定使用逻辑回归或SVM,我可以在将来推荐一些文章或源代码供您参考。

答案 1 :(得分:1)

如果您实际使用的是具有1558个输入节点且仅有3279个样本的反向传播网络,则训练时间是您遇到的最少问题:即使您的网络非常小,只有一个隐藏层包含10个神经元,在输入层和隐藏层之间有1558 * 10个权重。您如何才能期望从仅3279个样本中获得15580自由度的良好估计? (而这个简单的计算甚至不考虑“维度的诅咒”)

您必须分析数据以了解如何优化数据。尝试了解您的输入数据:哪些(元组)特征(统计)具有统计显着性? (使用标准统计方法)有些功能是多余的吗? (主成分分析是一个很好的说明点。)不要指望人工神经网络为你做这项工作。

另外:记住Duda& Hart着名的“无免费午餐定理”:没有分类算法适用于所有问题。对于任何分类算法X,存在一个问题,即翻转硬币会产生比X更好的结果。如果考虑到这一点,在分析数据之前决定使用哪种算法可能不是一个明智的想法。您可能已经选择了实际上比您对特定问题盲目猜测更差的算法! (顺便说一句:Duda& Hart& Storks的book about pattern classification是了解这一点的好起点,如果你还没有读过它。)

答案 2 :(得分:0)

适用于每种功能的单独ANN 例如 网址条目的457输入1输出(ANN1) 495输入1输出用于origurl(ANN2) ...

然后训练他们所有人 使用另一个主要的ANN来加入结果