当使用多层更深的隐藏层全连接网络时,参数量会变得非常巨大,达到数十亿量级;而采用CNN结构,则可以层间共享权重,极大减小待训练的参数量;同时可采用二维卷积,保留图像的空间结构信息;采用池化层,进一步减少参数计算。
  一般来说,提高泛化能力的方法主要有: 正则化、增加神经网络层数、改变激活函数与代价函数、使用好的权重初始化技术、人为扩展训练集、弃权技术。
  下面以MNIST为例,结合CNN、Pooling、Fc结构,通过不同的网络结构变化,给这些参数优化理论一个直观的验证结果。

CNN不同网络结构性能比较

  可以看出:
  1、使用L2正则化,dropout技术,扩展数据集等,有效缓解过拟合,提升了性能;
  2、使用ReLU,导数为常量,可以缓解梯度下降问题,并加速训练;
  3、增加Conv/Pooling与Fc层,可以改善性能。
  
  Note:
  1、网络并非越深越好,单纯的Conv/Pooling/Fc结构,增加到一定深度后由于过拟合性能反而下降。
  2、网络结构信息更重要,如使用GoogleNet、ResNet等。