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

Mor*_*o88 10 artificial-intelligence classification machine-learning data-mining

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

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

我不确定这是否是提出这样一个问题的正确场所/开放这样的讨论.

deo*_*ong 6

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

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


lui*_*dro 5

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

对于第一种情况,您将需要使用多个种子并报告平均准确度 std。偏差,以及您获得的最小值。如果您有办法重现这一点通常很好,因此只需使用多个固定种子即可。

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