改善深度神经网络的方法:1.增加深度(增加层数)2.增加宽度(增加每层神经单元数)
带来问题:
1.网络庞大,数据集小时,易导致过拟合(解决过拟合办法:L1,L2正则化;Dropout;数据增强)
2.参数过多,训练时间长
3.网络深度过大,易导致梯度消失问题(解决梯度消失问题:运用残差连接)
解决办法:运用稀疏连接结构替代全连接结构(包括Conv层)。CPU及GPU适于计算密集矩阵,计算非一致稀疏矩阵的效率低下。提出Inception结构:运用稀疏连接,但适于硬件密集矩阵运算。
文章说明低维特征向量也能够表示图像相对较多的信息,将特征向量压缩融合后不利于建模,仅仅在必要时候才将这些图像特征进行合并。故采用了 1*1 ,3 * 3,5*5 卷积核(采用不同尺寸卷积核具有不同大小的感受野),能够提取不同范围大小的图像特征,能以稀疏结构表示这些特征。由于3 * 3,5*5 卷积核计算开销大,先运用1*1 降低其维数。同时由于池化层表现好,故也添加了池化层。最后,将各个特征合并作为下一层输入。为了效率,通常在高层使用Inception结构,在底层使用传统结构。
Inception结构的优点:1.在每一层增加隐藏层单元数量不会导致计算量的膨胀。2.在进行卷积运算时,先进行降维处理,降低卷积核维度,降低计算量3.采用多尺寸卷积核,与视觉信息一致,提取不同尺度图像特征。同时融合不同尺度特征得到抽象特征作为下一层的输入。
GoogleNet主体架构:
底层主要为3个卷积层,1个maxpooling层,2个LRN局部响应归一化层,用于提取图像局部基础特征。随后,接9个Inception结构,同时文章指出中间层抽象特征具有较大的特征区分度,故而在中间部分添加了两个额外的分类器(增强区分能力,增强反向传播梯度信号,增加额外的正则化),并将其损失值乘上权重后加入总损失值(文章取权重为0.3)。最后,AveragePooling层+FC全连接层+softmax分类器。