专栏名称: 大数据文摘
普及数据思维,传播数据文化
目录
相关文章推荐
软件定义世界(SDX)  ·  【PPT】互联网女皇340页AI报告猛料刷屏 ·  2 天前  
软件定义世界(SDX)  ·  DeepSeek模型在113个国企的部署及应用 ·  昨天  
数局  ·  后浪研究所:2025年轻人毛绒玩具报告 ·  2 天前  
数据派THU  ·  ICML 2025 | ... ·  昨天  
艺恩数据  ·  2025人生四双鞋:京东趋势白皮书 ·  3 天前  
51好读  ›  专栏  ›  大数据文摘

深度 | 你的神经网络不work? 这37个原因总有一款适合你!

大数据文摘  · 公众号  · 大数据  · 2017-08-16 12:58

正文

请到「今天看啥」查看全文



资料来源: http : //dilbert.com/strip/2014-05-07

1. 检查输入数据


检查一下你输入训练模型的数据是否正确。之前,曾经好多次我都搞混了图像的宽度和高度,还有的时候,我手误输入一堆多余的零,还有,曾经发生过多次重复输入同一批次数据的情况……


总之,记得仔细检查一开始几个批次输入和输出情况,尽可能保证看起来正常。

2. 随机输入验证


尝试往训练项目中输入一些随机数据,然后看看模型报错,和之前的报错情况是否一致。 如果一致,那肯定是在模型的某个阶段出了问题,将数据转换成了垃圾。 之后,逐层调试,找到出错的地方就好。

3. 检查数据加载器


有时候,数据本身可能没问题,出问题的可能是将数据输入到网络的代码。 因此,在任何操作之前,请打印第一层的输入检查检查。

4. 确保输入连接到输出


检查几个输入样品是否有正确的标签。 同时还要确保输入样本与输出标签的重新排序方式相同。

5. 输入与输出之间的随机比例问题


如果模型中,输入输出之间的非随机部分,相比随机部分比例过小,那么我们可以确定,输入和输出无关的可能性比较大。 因为这往往取决于数据的性质,目前,针对这个情况,我还没找到更简便的方式来检测,毕竟这与数据本身的特质息息相关。


6. 数据集中是否有太多噪音?


之前有一次,我打算从食品站点上整理一组图像数据集,放到我的神经网络模型,结果就碰到了这个问题。里面很多数据都显示损坏标签,才影响到模型结果。建议手动检查一些输入样本,看看它们显示的标签。

对于多少噪音才是神经网络训练的临界点目前仍有争议,比如,这篇文章( https://arxiv.org/pdf/1412.6596.pdf ) 显示,在一定条件下,在使用了50%损坏标签的MNIST数据集中,准确率仍可以达到50%以上。

7. 对数据集重新排序


如果数据集没有重新排序,并且有特定的顺序(按照标签排序),这可能会对学习产生负面影响。 记得给数据集随机重新排序,也别忘了将输入和标签用同样的方式重新排序。

8. 减少标签不平衡


图像种类B和图像种类A是1:1000吗? 如果这样,我们可能需要平衡损失功能或尝试其他标签不平衡数据的应对方法 ( http://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/ )。


9. 你的训练数据够多吗?


从头开始训练一个神经网络,是需要大量数据的。 在图像分类方面, 有人建议每个类别需要约1000张图片或更多。( https://stats.stackexchange.com/a/226693/30773 )。


10. 确保批次数据不为单一标签


这可能发生在有序数据集中(即前一万个样本拥有同一个标签)。 通过将数据集重新排序可轻松修复这个问题。


11.减少每个批次的容量


这篇文章( https://arxiv.org/abs/1609.04836 )指出,拥有非常大的批次可以降低模型的泛化能力。

添加 1.使用标准数据集(例如mnist,cifar10)


感谢@ hengcherkeng提出这一点:


当测试新的网络架构或编写新的代码片段时,首先使用标准数据集,而不是自己的数据。 这样,我们就可以参考前人的数据集总结,这样做的好处是,不存在标签噪音、训练/测试分配差异、数据集难度过大等问题。


II. 数据归一化/增强



12. 特征标准化


你有没有标准化你的输入数据,它们是否具有零均值和单位标准差?

13. 你是否做了太多的数据扩增?


数据扩增具有正则化效果。 太多的数据扩增,再加上其他形式的正则化(比如weight L2, dropout等等),都可能导致网络拟合不足。

14. 检查预训练模型的预处理







请到「今天看啥」查看全文