如何针对特定问题找到最佳学习规则,例如多类别分类?
我在考虑使用遗传算法,但我知道有关性能的问题。我正在寻找你没有使用过教科书学习规则的现实世界的例子,以及你如何找到这些学习规则。
答案 0 :(得分:9)
好问题BTW 。
分类算法可以使用许多特征进行分类,如:
因此,对于您的问题对多个类别进行分类,我将使用在线逻辑回归(FROM SGD),因为它非常适合中小数据(小于数以千万计的训练样例,而且速度非常快。
另一个例子:
假设您必须对大量文本数据进行分类。那么朴素贝叶斯就是你的宝贝。因为它强烈喜欢文本分析。即使 SVM 和 SGD 也更快,而且我更容易训练。但是当数据大小被视为中等或小而不大时,可以应用这些规则“SVM和SGD”。
一般来说,任何数据挖掘人员在想要启动任何 ML或简单挖掘项目时,都会向他自己提出四个提出的要点。
之后你必须衡量其 AUC ,或任何相关的,看看你做了什么。因为您可能在一个项目中使用的不仅仅是一个分类器。或者有时当您认为自己找到了完美的分类器时,使用某些测量技术的结果似乎并不好。所以你会再次开始检查你的问题,找出你出错的地方。
希望我帮忙。
答案 1 :(得分:5)
当您向网络输入向量x
时,网络将根据所有权重(向量w
)给出输出。输出和真实答案之间会有错误。平均误差(e
)是w
的函数,比方说e = F(w)
。假设您有一层二维网络,那么F
的图像可能如下所示:
当我们谈论培训时,我们实际上是在谈论找到最小w
的{{1}}。换句话说,我们正在搜索函数的最小值。 训练是搜索。
所以,你问的是如何选择搜索方法。我的建议是:这取决于e
的表面如何。更有条理的是,应该使用更随机化的方法,因为基于梯度下降的简单方法将有更大的机会引导你陷入局部最小值 - 所以你失去了找到全局最小值的机会。另一方面,如果F(w)
的表面看起来像一个大坑,那么就忘记了遗传算法。在这种情况下,简单的反向传播或基于梯度下降的任何东西都会非常好。
您可能会问我怎么知道表面如何?这是一种经验技巧。或者您可能想要随机抽样一些F(w)
,并计算w
以获得表面的直观视图。