人脸识别方向论文笔记(3)-- Sparsifying Neural Network Connections for Face Recognition
原文地址:http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Sun_Sparsifying_Neural_Network_CVPR_2016_paper.pdf
这篇论文中,主要的创新点在于,他是基于一个Baseline ConvNet structures(VGG模型),进行了创新,也就是对逐层进行sparse,从而得到一个sparse CNN模型。
所做的贡献:
提出了一种Sparse ConvNet model,对VGG模型进行了创新改造。
首先,训练一个基础的卷积模型;然后,从结果上将全连接层到卷积层Sparse,重新训练一下,得到Sparse CNN模型。
具体细节:
1.Baseline model是基于VGG模型的,但是又不同于VGG模型,根据两个模型结构对比来看。
VGG模型
Baseline 模型
基于VGG做改进的Baseline Model:
1.最后两个卷积层用两个Locally-Connected层来代替,这样可以增加模型拟合能力
2.在所有的卷积层中都用修正后的线性**函数
3.最后一个locally-connected层和全连接层分别使用Dropout率为30%和50%的Dropout
2.对网络模型进行Sparse处理
以下为本人对论文的理解,如需看原伪代码,请见论文
通过第一步训练好的baseline model,训练好之后,就有需要稀疏化的M个层,M层分别对应了M个稀疏度。好了,稀疏连接算法的输入得到了。
输入:网络结构T;M个网络层;M层相对应的稀疏度
for m from 1 to M do
//有M层就得循环M次,相当于每次循环都是全网络层循环,只不过对m层有效
根据上一层网络和这一层的稀疏度计算这一层的drop矩阵
对于卷积层,计算相关性的公式:
对于全连接层,计算相关性的公式:
r>0.75(论文中选择的)设置为1,其他的为0(这是我的理解)
根据网络结构T和上一层的权值初始化这层网络
while直至全覆盖:
通过点乘更新drop矩阵
通过前向后向传播,进行权值更新
end while
end for
输出:第M次经过dropping后的CNN(即最终的网络)