版权声明:本文为博主原创文章,如需转载请附上博文链接 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都有很大的区别。