论文:Global2Local: Efficient Structure Search for Video Action Segmentation
参考
论文名:
Global2Local: Efficient Structure Search for Video Action Segmentation
"Global2Local:搜寻视频动作分割的有效结构"
作者:Shang-Hua Gao1;Qi Han1;Zhong-Yu Li;Pai Peng;Liang Wang;Ming-Ming Cheng;TKLNDST, CS, Nankai University1;Tencent2;NLPR
来源:CVPR
时间:2021
关键字:全局到局部方法;接受野;视频动作分割
代码:http://mmcheng.net/g2lsearch
研究问题:
视频动作分割中,模型的时间感受野起着重要作用,较大的感受野有助于建立视频帧的长期关系,而较小的感受野捕捉局部的细节。
现有的方法是在每一层中使用人工设计的感受野,那能否通过高效地搜索新的感受野组合来代替手工设计的感受野呢?
作者提出一种搜索方案,从全局到局部的方式寻找更好的感受野组合。
研究方法:
在搜索感受野的方案上,采用了全局到局部的方案:
具体来说,
- 一个基于遗传算法的全局搜索算法,用于寻找粗略的有效的感受野组合;
- 一个以期望为指导的局部迭代搜索算法,用于在局部进一步优化通过全局搜索得到的结构。
算法结构:
一般情况分析:
假设一个TCN网络有L层卷积,每层卷积的膨胀率|感受野的集合定义为\(D={d_{1},d_{2},...,d_{N}}\),所有层感受野的组合为\(C={c_{1},c_{2},..,c_{l},.,c_{L}}\),其中\(l\in [1,L]\)为卷积层号索引,且\(c_{l}\in D\).所以有\(|D|^{L}\)个感受野组合。
以MS-TCN来说,就有\(1024^40\)个感受野组合。
1. 在全局搜索前降低感受野的搜索空间
通过稀疏采样扩张率来降低搜索空间的大小。
稀疏离散采样策略可以有:均值采样、逐步稀疏采样、逐步密集采样。
(采取了逐步稀疏采样:理由,适合动作分割。小感受野提取细节,大感受野捕捉长相关性)
全局搜索空间定义如下:
,其中k表示搜索空间稀疏程度的控制因子,T表示搜索空间的最大值。
在相同最大值的情况下,可以看出\(|D_{g}|<<|D|\),即全局搜索的搜索空间远小于原始的搜索空间。
以MS-TCN来说,其最大的感受野为1024,搜索空间从\(1024^40\)降低到\(11^40\).
2.基于遗传算法的global search方法
即使降低了感受野的搜索空间,但仍有\(11^40\)的组合数,可以看出搜索空间仍然很大。暴力搜索仍然很困难。所以提出遗传算法来寻找感受野组合。
基于遗传算法的全局搜索流程图例
:
选择(selection)
:感受野候选组合:\(P={C_{i},i\in [1,M]}\),其中,\(C_{i}\)表示一个全局搜索的候选组合,M表示总的候选组合数量。
选择操作是在P这个候选空间中选择需要的组合出来,选择方式则是通过acc的评价结果:
其中,\(E(C_{i})\)表示\(C_{i}\)的准确性,f(·)表示评价指标(这里是每一帧是否分割正确的一个acc指标),V是交叉验证集,\(\theta_{n}\)表示训练n个epochs的模型。
交叉(crossover)
:这个步骤目的是为了产生一些新的感受野组合结构。将已有的候选每两个进行组合,然后将这两个候选网络中随机取一段,进行感受野互换,从而获取到新的感受野组合。
如何选择交换组合?通过如下选中概率
注:交换两个感受野组合的随机片段,而不是只在单个点上进行交换
变异(mutation)
:避免算法走到局部最优解,所以引入mutation。
mutation会通过一个预设的概率p_m来定义有多大的几率需要进行mutation操作,并且随机的将要变异的一个感受野组合中的一定量的感受野(这个一定量文章设置的是0.2)进行改变,改变的值也是随机的。
全局搜索的伪代码:
Global search
输入:search算法总共迭代N次,每个结构训练n个epoch,随机初始化P,变异概率为pm,P的总个数为M;
for iter in [i, N] do
1.利用公式(3)选择出一些感受野组合出来,并且每两个间进行cross操作
2.根据概率p_m来变异出新的感受野组合
3.每个组合训练n个epochs
4.利用公式(2)选择出M个感受野组合出来,如果不够那么随机生产一些补上,作为新的感受野组合的集合
end for
return P
3.基于期望指导的局部搜索
- Expectation Guided Iterative Local Search
局部搜索旨在以低成本更细粒度地寻找更有效的感受野组合。
如果能获得当前数据集上的膨胀率的概率质量分布,那就可以获得这个数据集上的一个膨胀率期望来更好的适应当前数据集。
但这个膨胀率的概率质量分布是没法获得的。所以,采用卷积参数共享机制来得到近似的概率质量分布。
在初始扩张率\(D_{l}\)附近的区间\([D_{l}\pm \Delta D_{l}]\)内,均匀采样S个扩张率。这样在一层内,可能的扩张率的集合为\(T_{l}={d_{i},i\in [1,S]}\),其中\(d_{i}=D_{l}-\Delta D_{l}+\frac{i-1}{S-1} 2\Delta D_{l}\), \(\Delta D_{l}\)为控制搜索精度的值
具体来说,就是在区间内均匀采样,比如文章采用\(\Delta D_{l}=0.1\),S=3,即在采样三个点\(T_{l}=\{D_{l}-\Delta D_{l},D_{l},D_{l}+\Delta D_{l}\}\)
可以理解为一个卷积现在分成了S个卷积,这S个卷积的权重共享,只是扩张率不一样。S个扩张率都要学习它们对应的权重,权重定义为\(W=\{w_1, w_2,...,w_i,i\in [1,S]\}\),通过这些权重来反应这些扩张率的重要性。由于W的值是没有界的,所以将它们归一化,归一化后其实就是上面提到的近似的概率质量函数\(PMF(d_i)\)
得到这个概率质量函数后,我们可以计算期望来表示一个新的扩张率 \(D'_l\)
上述计算对应如下图示
基于概率质量函数,给定输入x,输出y可以表示为:
局部搜索的伪代码
Expectation Guided Iterative Local Search
输入:迭代N,初始化感受野D;使用D初始化模型;
for iter in [1,N] do
对每一层在D的基础上构建Tl
训练模型并根据公式(4)获得PMF
根据公式(5)计算出新的dilation rate
更新D
end for
return local-searched D
什么是卷积参数共享?
参数共享是卷积神经网络(CNN)中的一个重要概念,它指的是在网络的不同位置使用相同的权重。在卷积层中,卷积核(也称为滤波器)的权重在整个输入上是共享的。
具体来说,对于每个卷积核,其权重在水平和垂直方向上是相同的。这样的设计可以大大减少网络的参数数量,从而降低过拟合的风险,提高模型的训练效率,并且有助于捕捉输入数据中的局部特征。
卷积操作中的参数共享可以通过以下几个步骤来理解:
- 卷积核的权重共享: 对于每个卷积核,它在整个输入上使用相同的权重。这意味着卷积核在不同位置检测相似的特征。
- 减少参数数量: 如果不使用参数共享,每个卷积核的权重都将是独立的,导致大量的参数。通过共享参数,网络的参数数量减少到了可管理的水平。
- 局部感受野: 参数共享有助于卷积层对输入的局部区域进行响应,从而更好地捕捉局部特征,如边缘、纹理等。
卷积核的权重共享是指卷积核里的数字吗?
是的,卷积核的权重共享指的是卷积核中的参数(数字)在整个输入上是相同的。卷积核是一个小的窗口,通过滑动在输入上进行卷积操作。在参数共享的情况下,卷积核的每个元素(数字)在不同的位置上使用相同的值。
举例来说,考虑一个
3×3 的卷积核:
在参数共享的情况下,整个
3×3的卷积核的所有权重\(w_{ij}\)是相同的。例如,如果我们设定\(w_{ij}=2\)那么卷积核的参数就是:
对于整个输入都是相同的。这意味着,当卷积核在输入上滑动时,卷积操作使用的权重是一样的,只不过是在不同的位置上进行了相同的卷积操作。
这种共享的方式有助于减少模型的参数数量,提高模型的泛化能力,并且能够更好地捕捉输入数据中的局部特征。