Artificial intelligence 人工智能中的随机性&;机器学习

Artificial intelligence 人工智能中的随机性&;机器学习,artificial-intelligence,machine-learning,data-mining,classification,Artificial Intelligence,Machine Learning,Data Mining,Classification,在AI和ML的两个项目中工作时,我想到了这个问题。如果我正在构建一个模型(例如分类神经网络、K-NN等等),并且该模型使用了一些包含随机性的函数,该怎么办。如果我不修正种子,那么每次在相同的训练数据上运行算法时,我都会得到不同的精度结果。但是,如果我修复了它,那么其他一些设置可能会提供更好的结果 平均一组精度是否足以说明该模型的精度为xx% 我不确定这是否是提出这样一个问题/展开这样一场讨论的正确地点。我从你的问题中得出了一般性的答案, 我认为准确度总是多次运行的平均准确度和标准偏差。因此,如果

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

平均一组精度是否足以说明该模型的精度为xx%


我不确定这是否是提出这样一个问题/展开这样一场讨论的正确地点。

我从你的问题中得出了一般性的答案,
我认为准确度总是多次运行的平均准确度和标准偏差。因此,如果您考虑的是使用不同的种子对随机生成器获得的精度,那么您实际上是否考虑了更大范围的输入(这应该是一件好事)。但是你必须考虑标准偏差来考虑精度。还是我把你的问题完全弄错了?

简单的回答,是的,你把它随机化,然后用统计数据来显示准确性。然而,仅仅平均几次跑步是不够的。你们至少也需要一些可变性的概念。重要的是要知道“70%准确率”是指“100次运行中每次70%准确率”还是“100%准确率一次,40%准确率一次”


如果你只是想玩一玩,让自己相信某些算法是有效的,那么你只需运行30次左右,看看平均值和标准偏差,就可以结束这一天了。如果你想让其他人相信它是有效的,你需要研究如何进行更正式的假设检验。

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

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


另一件需要考虑的事情是随机数生成器的随机性。标准随机数生成器(如
中的
rand
)在许多情况下可能无法评分,因此请四处寻找一种更稳健的算法。

我相信可能会给您提供您想要的:分类性能的平均值,因此更可靠的估计值。它不包含任何随机性,除了最初排列数据集。这种变化来自于选择不同的训练/测试分割。

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

对于第一种情况,您需要使用多个种子并报告平均精度、标准偏差和获得的最小值。如果你有办法复制它,这通常是好的,所以只需使用多个固定种子

对于第二种情况,您总是可以根据训练数据判断哪种运行是最好的(尽管它实际上可能不是提供最佳测试精度的运行!)。因此,如果您有时间,最好先运行10次,然后在训练错误(或验证错误)最好的一次上进行评估(只是不要在测试中评估此决策)。你可以提高一个水平,进行多次测试,也可以得到一个标准偏差。但是,如果您发现这一点很重要,则可能意味着您没有尝试足够的初始化,或者没有为数据使用正确的模型