当网络使用相同的数据产生不同的结果时,有哪些方法可以计算深度卷积神经网络的错误率?

人工智能 深度学习 卷积神经网络 Python 喀拉斯 物体识别
2021-11-05 08:38:10

我是对象识别社区的新手。在这里,我要问的是当网络使用相同的数据产生不同的结果时,计算深度 CNN 错误率的广泛接受的方法。

一、问题介绍

最近我试图复制一些经典的深度 CNN 用于对象识别任务。输入是一些包含物体的二维图像数据,输出是物体的识别/分类结果。该实现涉及使用 Python 和 Keras。

我面临的问题是,即使使用相同的训练/验证数据集,我也可能在多次训练中得到不同的验证结果。对我来说,这使得报告模型的错误率变得很困难,因为每次验证结果都可能不同。

我认为这种差异是因为深度 CNN 不同方面所涉及的随机性,例如随机初始化、规则中使用的随机“dropout”、选择 epoch 时使用的“shuffle”过程等。但我不当我想计算对象识别领域的错误率时,还知道处理这种差异的“正确”方法。

2.我的探索——在线搜索

我在网上找到了一些答案作者提出了两种方式,他/她推荐了如下所示的第一种方式:

解决此问题的传统且实用的方法是多次运行您的网络(30 次以上)并使用统计数据来总结您的模型的性能,并将您的模型与其他模型进行比较。

他/她介绍的第二种方式是深入 CNN 的每个相关方面,有目的地“冻结”它们的随机性。这种做法也从这里的 Keras Q&A 中介绍过。他们称这个问题为“产生生殖结果”。

3.我的探索——在学术界(还没有结果,需要你的帮助!

由于我不确定上述两种方法是否是被广泛接受的“正确”方法,因此我在对象识别学术界进一步探索。

现在我刚刚开始阅读imageNet网站。但我还没有找到答案。也许你可以帮助我更容易地知道答案。谢谢!

大旗

0个回答
没有发现任何回复~