针对有多层卷积的神经网络不易收敛的措施(持续更新中)

版权声明:本文为博主原创文章,如需转载请附上博文链接 https://blog.csdn.net/wendygelin/article/details/88399145

1. 卷积层权重初始化的时候,不用默认的constant,都为0,而是用Xavier,msra

weight_filler {
      type: "msra"
    }

原因:如果网络中的权重太小,则信号在经过每一层的时候就会抖动(shrinks),直到信号太小了,都没用了。
如果网络中的权重初始值就太大了,信号在经过每一层的时候都会增大,直到太大了以至于没用了。
Xavier 初始化,确保权重大小正合适,让信号在一个合理的大小范围内经过各层。

reference: Xavier Glorot & Yoshua Bengio’s Understanding the difficulty of training deep feedforward neural networks.

https://blog.csdn.net/northeastsqure/article/details/53161640

2. 绘制learning curve,查看算法是否运行正常,是否有过拟合和欠拟合

绘制learning curve的方法,横轴是训练样本的数量,纵轴是训练集和交叉验证集的error。正常情况下,随着训练样本的增加,训练集的error先上升后平稳,交叉验证集的error先下降后平稳。

如果有欠拟合,则训练集的error很快就上升到一个平台期,随着数据的增大,不再变化。而且随着数据的增大,与交叉验证集的error非常接近;

如果有过拟合,则即使数据量已经很大,交叉验证集和训练集的error都有很大的区别。

猜你喜欢

转载自blog.csdn.net/wendygelin/article/details/88399145
今日推荐