13|深度学习(下):3招提升神经网络预测准确率
数据方面的考量:图像数据增广
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了神经网络模型性能优化的方法,包括数据增广、Dropout层的添加以及不同类型的神经网络优化器的选择和应用。数据增广通过对图像进行水平翻转、位移、颜色抖动等操作来增加数据量,提高模型的泛化能力;Dropout层的添加可以防止过拟合,提高神经网络的泛化能力;而选择合适的神经网络优化器可以优化模型的训练效果。文章还提供了在Keras中使用ImageDataGenerator工具定义数据增广器的示例代码,并展示了数据增广对卷积神经网络模型性能的显著提升。此外,文章还提出了三个思考题,鼓励读者在实际项目中尝试不同的优化方法,以提升模型性能。整体而言,本文为读者提供了丰富的技术内容,涵盖了数据增广和神经网络模型优化的多个方面,对于希望提升模型性能的读者具有一定的参考价值。
《零基础实战机器学习》,新⼈⾸单¥59
全部留言(3)
- 最新
- 精选
- 在路上佳哥好,听完这讲我有两个问题。第一,从“神经网络中的局部最低点”这张图来看,很容易看出哪个点是全局最低点,在任意时刻模型的数据都是确定的,也就是这张图代表的函数是确定的,为什么神经网络的参数不能直接根据函数找到全局最低点呢?第二,如果我在事后都不能解释Adam优化器为什么比RMSProp更优,那指不定那天我又要调整参数了,这个过程听着怎么一点都不智能。
作者回复: 嗯,神经网络存在着解释性比较差这个问题。这也是公认的,它就是一个黑盒子,解决了问题,但是很难说清如何解决的。而全局最低点,在整个网络中非常难找,因为网络的拟合空间远远比那张图显示处理的复杂的多得多,而且多维空间是根本展示不出来的。Andrew Ng在它的斯坦福机器学习课里面说:找到一个不错的局部最低点就挺好的了。因此不必纠结于全局最低点。😝😝 也因此,“迁移学习”的概念在神经网络这儿有很多的应用,也就是,使用大量的已经调好了的,参数都定下来了的大型神经网络来解决工业级别的问题。 比如: 牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/) 谷歌 inception 模型(https://github.com/tensorflow/models/tree/master/inception) 微软 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks) 谷歌 Word2vec 模型(https://code.google.com/archive/p/word2vec/) 然后,我们直接就在这些大型网络模型的基础上,进行很少的微调即可。这种预训练好了的大型网络的迁移,在Keras中也很容易实现的。(可以参考《Python深度学习》一书) 我们这里,就只是简单的介绍有这些参数可调,也就只是这样,那么进一步利用深度网络解决大型问题。那就需要用到这些预训练好了的网络。 当然,也有神经网络自动调参的方法,可以搜索AutoML(自动化机器学习)的一些文章。这些,都需要时间和精力进一步研究。
2021-09-2735 - Matthew在看这个专栏前,我把李沐大神的《动手学深度学习》啃了一段时间,再来看专栏的11-13讲,还是有点感觉得。李沐大神的课程有从零实现的部分,而这个专栏侧重于调用API,相得益彰。
作者回复: 哎呀,实在不敢与大神比较🤯。我希望能够从纯实践的角度提供一点点思路。
2023-06-01归属地:江苏 - iff老师,您好,LSTM预测某一数据时(时间序列数据),发现训练集和测试集中预测值和真实值之间均存在延迟现象,请问一下,这是什么原因,怎么解决?
作者回复: 你好,试一试反复运行,调整轮次,调整网络层数,加入一些Dropout层,之后,还都有这个问题吗?在我调试的过程中,并没有发现明显的滞后现象。可以试着调一下网络结构。 不过,在这里,我这个例子其实重点不是为了展示预测有多准,这个数据集信息量也很小。我觉得预测未来的数字其实是很难做到的,更多的是去理解RNN网络的应用场景,初步掌握神经网络的训练、调参过程。
2021-09-282