人工智能中的随机性机器学习

时间:2011-05-05 01:32:14

标签: artificial-intelligence machine-learning data-mining classification

在处理AI和ML的2个项目时,我想到了这个问题。如果我正在构建模型(例如,分类神经网络,K-NN等等),该模型使用包含随机性的某些功能。如果我不修复种子,那么每次在相同的训练数据上运行算法时,我都会得到不同的精度结果。但是,如果我修复它,那么其他一些设置可能会产生更好的结果。

平均一组精度足以说明这个模型的准确度是xx%吗?

我不确定如果这是一个提出这样一个问题/开展此类讨论的合适场所。

5 个答案:

答案 0 :(得分:6)

简单回答,是的,您将其随机化并使用统计数据来显示准确性。但是,仅仅平均一些运行是不够的。您至少还需要一些可变性的概念。重要的是要知道“70%”是否准确意味着“100次运行中每次100%准确”或“100%准确一次,40%准确一次”。

如果你只是试着玩一下并说服自己某些算法有效,那么你可以运行30次左右,然后查看平均值和标准偏差并称之为一天。如果你要说服其他任何人有效,你需要研究如何进行更正式的假设检验。

答案 1 :(得分:4)

有些模型自然依赖于随机性(例如,随机森林)和仅使用随机性作为探索空间的一部分的模型(例如,神经网络的值的初始化),但实际上具有明确定义的,确定性的,目标函数。

对于第一种情况,您将需要使用多个种子并报告平均准确度,标准。偏差,以及你获得的最低限度。如果你有办法重现这个,通常很好,所以只需使用多个固定的种子。

对于第二种情况,您可以随时告诉训练数据哪种运行最佳(尽管实际上可能不是那种能够提供最佳测试精度的运行!)。因此,如果你有时间,那么说,10次运行,然后评估具有最佳训练错误(或验证错误,从不评估测试< / em>为此决定)。您可以升级并进行多次多次运行并获得标准偏差。但是,如果您发现这很重要,则可能意味着您没有尝试足够的初始化,或者您没有为数据使用正确的模型。

答案 2 :(得分:2)

我从你得到的问题中总结出答案, 我认为精度始终是多次运行的平均精度和标准偏差。因此,如果您正在考虑准确性,您可以使用不同的种子到随机生成器,您是否实际上没有考虑更大范围的输入(这应该是一件好事)。但您必须考虑标准偏差来考虑准确性。或者我的问题完全错了吗?

答案 3 :(得分:2)

随机技术通常用于搜索无法进行详尽搜索的非常大的解空间。因此,您几乎不可避免地要尝试尽可能多地分布大量的样本点。正如其他地方所提到的,基本的统计技术将帮助您确定样本何时大到足以代表整个空间。

为了测试准确性,最好留出一部分输入模式,避免对这些模式进行训练(假设您正在从数据集中学习)。然后,您可以使用该集来测试您的算法是否正确学习基础模式,或者它是否只是记住示例。

要考虑的另一件事是随机数生成器的随机性。标准随机数生成器(例如来自rand的{​​{1}})在许多情况下可能无法成为等级,因此请寻找更强大的算法。

答案 4 :(得分:-1)

我相信cross-validation可能会为您提供您所询问的内容:对分类效果进行平均且因此更可靠的估算。除了最初置换数据集外,它不包含随机性。变化来自于选择不同的列车/测试分裂。