本文主要是介绍17.2.20 Sparsifying Neural Network Connections for Face Recognition 小感,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先作为自己的第一篇博客,不为别的。在大致读了
> 《Sparsifying Neural Network Connections for Face Recognition》
本文主要是提出了一种稀疏神经元连接的方法。主要是根据神经元之间的相关性正负和大小,只保留对模型影响较大的神经元间的连接,将影响不大的舍去。
本文并不是第一个考虑到减少神经元连接的方法。GoogLeNet在ImageNet的比赛上已经想到了这种方法。GoogLeNet所采用的是选取比较小的卷积核(1×1和3×3的)。本文在3×3的卷积核的基础上设置了一定的稀疏度,用来舍去一些神经元连接。
但是在稀疏之前需要先训练一个完整的network,本文的基础模型与VGG net(每两个卷积层后接着一个最大池化层)类似。但是本文的模型与VGG有一个主要的不同是VGG的最后两个卷积层在本文模型中被替换成了locally-connected层。这么做主要是为了能够学习不同的人脸区域的特征。在第二个locally-connected层后面是一个512维的全连接层,最终可以得到最终的人脸特征。具体的网络信息如图1所示。
接下来就是本文的稀疏的具体方法。在训练好的基础模型的基础上,如果一个层被稀疏,那么一个新的网络模型会在上一个模型的基础上重新进行训练。因此会产生{},其中是最终的模型。在知道了如何训练稀疏模型之后,需要利用一个二值矩阵来简化神经元连接的稀疏过程。利用0和1来表示该神经元连接是否需要。具体的流程如图2所示。
在了解了稀疏的方法之后,如何选择稀疏的程度成为了接下来的主要工作。本文是设置一个稀疏度变量。在计算了神经元与上一层的每个神经元之间的相关性之后,将其进行排序,进行筛选。有一点需要注意的是,相关性有正有负,有大有小,如何选取?作者认为应该保留正负相关性大的神经元连接,保留相关性较小的神经元连接。主要有三个原因(1)正相关性较大的神经元连接对模型有着正面积极的作用。(2)负相关性大的神经元连接能够帮助减少错误率,抑制负样本。(3)作者猜测是相关性较小的神经元连接对相关性的较大的能起到一个互补的作用。
对于全连接层而言,假设给定一个神经元,它与前一层的每个神经元之间的连接用表示,那么该神经元与上一层神经元之间的相关性可以表示为:。所以最后会随机选取正负相关系数前半部分与后半部分的和。对于卷积层的神经元连接稀疏,利用如下公式:
从实验结果可以看出利用稀疏可以提高性能。模型的再训练是在前一个模型的基础上进行训练,这样能够很好的比避免出现局部最优的情况。
这篇关于17.2.20 Sparsifying Neural Network Connections for Face Recognition 小感的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!