zoukankan      html  css  js  c++  java
  • 对mnist识别中过拟合的处理

    参考:https://www.jianshu.com/p/86051c14d434

    1.出现了过拟合现象,在epoch=30的情况下:

    损失loss:

    精度acc:

    所以根据上述图像选择epoch=5得到结果,提交到kaggle上,获得分数0.98414。

    1.尝试加入dropout层

    model.add(Flatten())
    model.add(Dropout(0.5))

    在flatten之后,

    损失loss:

    可以比较明显地看出,良好地解决了过拟合的问题,(至于在16epoch的时候为什么损失突然升高,不明白。)

     精度acc:

    这次结果提交分数为0.98671。

    2.调参? 

    没有调整学习率,尝试对batch_size调整。

    根据第三小节的实验,发现使用adam+dropout效果最好。所以将其作为基线,对模型调参batch_size。

    将batch_size由32改为128,其他均选择最优结果。 

     loss:

    精度:

    提交到kaggle的结果为:0.99057,为什么和32一样?接着尝试一下batch_size=64

    看起来效果不错,提交到kaggle评分为:0.98942,结果没有那么好。

    3.使用其他的优化方法

    初始使用的是rmsprop;

    sgd:(加dropout)

    loss

    //相较于rmsprop更平滑。

     acc:

    但是效果看起来没有rms好,提交之后的结果

    对sgd也去掉dropout之后,也出现了过拟合:

    adam:(dropout)

    发现是有过拟合的趋势的。

     

    看精度,也获得了和rsm相似的很好的效果。

    将本次结果提交,kaggle评分为0.99057。又有了新的提升。 

  • 相关阅读:
    python-裴波那契数列
    python-装饰器
    登录权限,认证
    sevlet面试题总结
    ssm整合
    配置文件sshmvc
    利用反射来实现动态代理
    springmvc spring hibernate整合
    中期项目总结
    web servlet 网址http://www.cnblogs.com/mengdd/tag/Servlet/
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/11067521.html
Copyright © 2011-2022 走看看