网络通用设计准则
GoogLeNet设计的初衷是既要保证识别精度,又要速度快。虽然像VGGNet这样通过堆叠卷积层可以提高识别精度,但是会增加对计算资源的要求。我们知道,GoogLeNet的参数量只有Alexnet的1/12,而VGGNet的参数量却是Alexnet的3倍。因此,我们需要考虑这样一个问题——如何在不提高网络参数量的前提下提升网络的表达能力?作者给出了一些通用的网络设计准则:
1. 避免表达瓶颈,尤其是网络早期。前馈网络在向后传递信息时,通过瓶颈层(高度压缩的层)时,会损失大量的有用信息,也就是遇到了表达瓶颈。当信息向后传播时,特征尺寸一般是要逐渐减小的,但是不要急剧减少,比如feature map直接从128x128减小到3x3,这样的网络是很难训练的。另外,特征维度(通道数)一般会逐渐增加,但是维度只是作为一种估计的手段,并不代表信息的多少,因为会丢弃相关结构等重要信息。
2. 高维特征更易处理。高维特征(多次非线性映射)带有更多的判别信息,网络也会更容易训练。
3. 可以在低维特征时进行空间聚合,而不必担心会损失太多信息。这句话的意思是在网络前几层的时候可以考虑降低特征维度,不会损失太多信息,反而还能加速训练。例如,在低维特征时,我们在进行3x3卷积前,可以先使用pooling操作,加速训练。
4. 平衡网络的宽度与深度。过深或过宽的网络都会使网络性能达不到最优。
上面几点只是对网络设计提供一个大方向的指导,让设计者避免走一些不必要的弯路,但是想让你的网络性能得到直接提升还需自己在算法上和实验中进行尝试。