【问题标题】:How to determine the accuracy of cnn when writing a paper写论文时如何判断cnn的准确性
【发布时间】:2018-05-01 21:04:23
【问题描述】:

我想写一篇关于卷积神经网络的论文,我的 cnn 模型的验证数据集的准确率从 98 到 99 波动,测试数据集的准确率每次都不一样。所以我不确定我应该在哪个时间写准确率,实验中的 epoch 总数是 6000 次。我可以选择最后一个epoch中10个epoch的最高准确率作为论文的准确率,或者我应该怎么做?非常感谢!

【问题讨论】:

    标签: deep-learning convolutional-neural-network


    【解决方案1】:

    我也有同样的问题。这些是我一直在使用的方法:

    定期降低学习率

    定期降低学习率不仅可以提高验证准确度,还可以降低训练结束时准确度的方差。

    例如,将学习率除以 5

    Epochs        Learning rate
    0-4000        5e-4
    4000-5000     1e-4
    5000-6000     2e-5
    etc
    

    您也可以自动监控。例如,如果最后 N 个批次的损失没有显着减少,则降低学习率并重新开始计数。 M这样减少后,停止训练。

    重复实验

    您获得的准确度将取决于创建网络时分配的初始随机权重。因此,即使使用学习率降低,您仍然会得到不同的结果。重复实验并取平均值。这需要很长时间,具体取决于您的数据集。

    【讨论】:

    • 首先非常感谢。我试过把0.0001的学习率改成0.00005和0.00001,但是最终的准确率是没有0.0001的学习率,所以学习率只能是0.0001。我在一篇论文中看到“为了确定收敛性,在连续十个 epoch 内验证集没有改进时训练结束。选择了验证分数最高的 epoch。”在这篇论文中,选择了最高准确率。精度是个人自己选择的吗?
    • @ohdoughnut 我已经更新了定期降低学习率的意思。你指的是哪篇论文?听起来个人从 10 个选项中选择了最佳学习率,我不太喜欢这种方法。
    • 这篇论文是“基于CNN的Sensor Fusion Techniques for Multimodal Human Activity Recognition”。而且我不知道如何定期降低学习率,是adam还是其他方法?
    • @ohdoughnut 你在使用 tensorflow 吗?有一些内置的方法。例如stackoverflow.com/questions/33919948/…虽然我更喜欢分段滴
    • @我用的是keras,什么是分段滴?谢谢。
    【解决方案2】:

    10 个测量值不足以导出具有重要属性的静态属性...您可以列出所有 10 个或给出 lowhighavg 和 median,这些应该足以让您的网络ACC 签约并将其与其他网络进行比较

    【讨论】:

    • 但是和其他论文比较,很少有论文会列出最低、最高、均值和中位数,通常只有一个数字,那么这样的说法应该如何比较,谢谢。跨度>
    • @ohdoughnut 大多数论文都发布了最佳价值,为了让它们看起来不错,通过发布你的 acc 的统计属性,它可以与任何其他论文进行比较,例如在最坏的情况下,我的网络表现更好...
    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2018-06-15
    • 2023-03-16
    • 2021-10-12
    相关资源
    最近更新 更多