LiWei_1226 2023-03-01 09:04 采纳率: 50%
浏览 50
已结题

神经网络训练无论多少epoch精度都差不多是怎么回事儿

下载的代码,30个epoch和300个epoch跑出来精度都差不多,是随机种子的问题吗?我该如何修改呢?

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-01 13:00
    关注
    • 这篇博客: 神经网络训练技巧中的 3 epoch 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch。然而,当一个epoch对于计算机而言太庞大的时候,就需要把它分成多个小块 - batch。

      为什么要使用多于一个epoch?

      在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但请记住,我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降来优化学习过程。如下图所示。因此仅仅更新一次或者说使用一个epoch是不够的。

      随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线从欠拟合变得过拟合.

      那么,问题来了,几个epoch才是合适的呢?

      不幸的是,这个问题并没有正确的答案。对于不同的数据集,答案是不一样的。但是数据的多样性会影响合适的epoch的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。

      如果随着Epoch的次数增加,准确度在一定时间内(比如5到10次)变化很小,就可以停止Epoch。开始时可以把Epoch次数设置的大一些,观察在哪个地方准确度变化很小,就把Epoch设置成几。也可以用早停法,防止过拟合。

       

      4. 卷积滤波器和池化层大小

      输入数据最好是2的整数幂次方,比如32(CIFAR-10中图片尺寸),64,224(ImageNet中常见的尺寸)。此外采用较小尺寸的滤波器(例3x3),小的步长(例1)和0值填充,不仅会减少参数数量,还会提升整个网络的准确率。当用3x3的滤波器,步长为1,填充(pad)为1时,会保持图片或特征图的空间尺寸不变。池化层经常用的池化大小是2x2。

       

      5. 在预训练的模型上微调

      很多state-of-the-arts deep networks的模型被开源出来,这些预训练的模型泛化能力(generalization abilities)很强,因此可以在这些模型的基础上根据自己的任务微调。微调涉及两个重要的因素:新数据集的大小和两个数据集的相似度。网络顶层特征包含更多dataset-specific特征。

       数据集相似性高数据集相似性低
      数据少直接提取顶层特征来训练线性分类器比较困难,尝试用不同层的特征训练一个线性分类器
      数据多用较小的学习率微调更多的层用较小的学习率微调尽可能多的层

       

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月1日

悬赏问题

  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图