2010-01-02 76 views
1

我试图构建一个应用程序来检测从网页上的广告图像。一旦我发现我不会让这些显示在客户端。神经网络输入数据的优化

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

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

回答

5

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

ANN训练速度慢,我建议你使用逻辑回归或svm。他们两个都非常快速地训练。特别是,svm有很多快速算法。

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

如果您使用的是生产版本,但不能使用开源代码。与良好的ANN和SVM相比,Logistic回归非常容易实现。

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

+0

先生,我的项目组想要为此使用神经网络? 我有神经网络吗?我能从某处获得一些帮助吗? 我可以像逻辑回归一样使用神经网络算法吗?更重要的是有没有那种? – 2010-01-03 15:26:30

+1

神经网络并不是一个高维问题空间。至于使它更快尝试使用GPU或减少功能或示例的数量。最后,ann是这份工作的错误工具。 – 2010-01-06 21:45:29

+0

好吧,现在我知道ANN没有成为正确的工具,所以我决定现在使用SVM。如果你能推荐一些关于它在我的项目中使用的文章,那将是非常棒的。 另外我想问你是否应该先执行。 PCA在实施SVM之前。 谢谢。干杯! – 2010-01-08 09:02:34

0

aplly一个单独的ANN为特征 例如 457输入1个输出的URL术语(ANN1) 495输入1个输出origurl(ANN2) ...

然后训练所有这些每个类别 使用另一个主ANN加入结果

1

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

您必须分析您的数据以了解如何对其进行优化。试着理解你的输入数据:哪些(元组)元素是(共同)统计显着的? (为此使用标准统计方法)是否有一些功能是冗余的? (主成分分析对此是一个很好的说明。)不要指望人工神经网络为你工作。哈特着名的“免费午餐定理”:没有分类算法适用于所有问题。对于任何分类算法X,都存在一个问题,即掷硬币导致比X更好的结果。如果考虑到这一点,在分析数据之前决定使用什么算法可能不是一个聪明的想法。你可能已经选择了比你对特定问题盲目猜测更差的算法! (顺便说一句:Duda & Hart &鹳的book about pattern classification是一个很好的起点了解这一点,如果你还没有读过它。)