对于任何图像,我希望我的分类器能够判断它是否是向日葵。我该如何创建第二个类别?将所有可能的图像集合 – {向日葵} 作为第二个类别是过于复杂的。在这个方向上有什么研究吗?目前我的分类器在最后一层使用了神经网络。我是基于以下教程构建的:
https://github.com/torch/tutorials/tree/master/2_supervised
我使用254×254的图像作为输入。支持向量机(SVM)在最后一层是否有帮助?我也愿意尝试使用任何其他可能有助于我的分类器/特征。
回答:
机器学习中的标准方法是:
1) 构建模型
2) 尝试在一些带有正/负例的数据上进行训练(从训练集中50/50的正/负例开始)
3) 在测试集上验证(同样,尝试在测试集中50/50的正/负例)
如果结果不好:
a) 尝试不同的模型?
b) 获取更多数据
对于情况#b,当决定需要哪些额外数据时,我的经验法则是:
1) 如果分类器产生很多误报(当实际上不是向日葵时,分类器却说这是向日葵) – 获取更多的负例
2) 如果分类器产生很多漏报(当实际上是向日葵时,分类器却说这不是向日葵) – 获取更多的正例
一般来说,从一些合理数量的数据开始,检查结果,如果训练集或测试集上的结果不好 – 获取更多数据。当你获得最佳结果时,停止获取更多数据。
你还需要考虑的另一件事是,如果你当前的数据和分类器的结果不好,你需要理解问题是高偏差(训练集和测试集上的结果都不好)还是高方差问题(训练集上的结果好但测试集上的结果不好)。如果你有高偏差问题 – 更多数据或更强大的分类器肯定会有所帮助。如果你有高方差问题 – 不需要更强大的分类器,你需要考虑泛化 – 引入正则化,可能从你的ANN中移除几层。解决高方差的另一种可能方法是获取更多,非常多的数据。
总之,你需要使用迭代方法,并尝试逐步增加数据量,直到获得好的结果。没有魔法棒般的分类器,也没有关于你应该使用多少数据的简单答案。