最近在训练一个神经网络,想要识别图片中的水印,
样本数据:Train on 6786 samples, validate on 1198 samples
模型如下:

但是train loss一直居高不下,如图,什么原因呢?

很奇葩的图,对不对?哈哈哈

可以看到模型容量太小的原因,什么是模型容量呢,简单的说 就是神经网络的层数,neural的数目。
知道原因就好办了,提高网络的容量:

最终从下图中可以看到,网络的拟合能力提升了!

同样的,当出现overfitting的时候怎么办呢,通常有两种办法:
1:降低模型容量
2:正则化方法:weight decay, dropout, data augmentation
通常,正则化方法比较通用
网友评论