深度网络的过拟合问题讨论

问题背景

最近做深度学习实验的时候遇到了一个很棘手的问题,那就是大名鼎鼎的“过拟合”,直观地表现在图中是长这个样子的,分析来讲就是说深度网络在拟合训练集的时候是可以很好地实现,Loss很小,Accuracy很大(我这儿能达到99.99%),但是呢,测试集的Loss很大,Accuracy在一个比较低的范围内波动(我这儿是70%-80%),并没有像论文中说的那样,测试集的Loss随着迭代的增加而减小,Accuracy随着迭代的增加而增大。



如果你没有看出来上图有什么毛病的话,我就放一张理想状态的结果图做对比(如下图粗粗的线),画的比较挫,但是大概的意思在那儿,随着迭代的增加,训练集和测试集的精确度应该上升,我们可以容忍测试集的精确度没有训练集那么高,毕竟有拟合的误差,但是像上图我做出来的结果那样,一定是“过拟合”啦。 

用白话来说“过拟合”就是:老师给你的题你都会做了,考试给你换个花样你就懵逼了。好,老师给你的题就相当于我们的训练数据,考试的题相当于测试数据,“过拟合”就是深度网络把训练的数据拟合的特别好,但是有点好过头了,对训练数据当然是100%好用,但是一来测试数据就疯了,那这样的网络训练出来其实是没有用的,训练集已经是监督学习了,拟合的再好也没用。

体现在函数上就是下图


正常是测试数据是一个线性或者二次多项式的分布,如果过拟合了,深度网络很有可以弄出一个特别复杂的拟合曲线函数,把上面所有的黑点点都穿过,当然训练数据的误差超级小,但是测试数据一来整个的误差就比较高了。


网络结构介绍

我实验中用到的深度网络结构原型是Fully Convolutional Networks,参考的论文中也叫它U-Net,总之就是一个用来做图像分割的深度网络。示意图如下:  

 用Keras的实现代码是:
  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
非常感谢您的提问。您的问题涉及到一个比较细节的问题,需要进行比较详细的讨论。在这里,我将从以下几个方面给您介绍一下卷积神经网络(CNN)在RNA序列预测中的应用,并且讨论如何使用PyTorch来实现和优化。 1. 卷积神经网络在RNA序列预测中的应用 卷积神经网络是一种非常适合处理序列数据的神经网络模型。在RNA序列预测中,我们可以将RNA序列看作是一种序列数据,并且可以使用卷积神经网络来处理这些序列数据。具体来说,我们可以使用卷积层来从RNA序列中提取特征,并使用池化层来降低特征的维度。最后,我们可以使用全连接层来将这些特征映射到RNA序列的预测结果。 2. 使用PyTorch构建卷积神经网络 PyTorch是一个非常流行的深度学习框架,它提供了丰富的工具和接口来构建和训练深度神经网络。在PyTorch中,我们可以使用nn模块来定义卷积神经网络。具体来说,我们可以定义一个包含卷积层、池化层和全连接层的模型,并使用PyTorch提供的优化器和损失函数来训练模型。 3. 优化卷积神经网络模型 在训练卷积神经网络模型时,我们需要注意一些优化技巧,以提高模型的性能和训练效率。例如,我们可以使用批量归一化技术来加速模型的收敛,并使用dropout技术来减少过拟合。此外,我们还可以使用学习率调度器来动态地调整学习率,以提高模型的性能。 总之,卷积神经网络是一种非常适合处理序列数据的神经网络模型,可以用来预测RNA序列。使用PyTorch构建卷积神经网络模型并进行优化,可以提高模型的性能和训练效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值