1

我正在尝试构建一个应用程序来检测来自网页的广告图像。一旦我检测到这些,我将不允许它们显示在客户端。

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

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

4

3 回答 3

5

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

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

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

如果您用于生产并且不能使用开源代码。与良好的 ANN 和 SVM 相比,逻辑回归非常容易实现。

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

于 2010-01-02T09:55:36.643 回答
1

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

您必须分析您的数据以找出如何优化它。尝试了解您的输入数据:哪些(元组)特征(共同)具有统计意义?(为此使用标准统计方法)是否某些特征是多余的?(主成分分析是一个很好的说明点。)不要指望人工神经网络为您完成这项工作。

另外:记住 Duda&Hart 著名的“no-free-lunch-theorem”:没有分类算法适用于所有问题。对于任何分类算法 X,都存在一个问题,即抛硬币比 X 得到更好的结果。如果考虑到这一点,在分析数据之前决定使用哪种算法可能不是一个聪明的主意。您很可能已经选择了实际上比盲目猜测您的特定问题更糟糕的算法!(顺便说一句:Duda&Hart&Storks关于模式分类的书是了解这一点的一个很好的起点,如果你还没有读过的话。)

于 2010-01-04T15:03:04.573 回答
0

为每个类别的特征应用一个单独的 ANN,例如 457 个输入 1 个输出用于 url 术语 (ANN1) 495 个输入 1 个输出用于 origurl (ANN2) ...

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

于 2010-01-04T14:07:16.663 回答