论文参考信号处理中提升方案提出双向池化操作LiftPool,不仅下采样时能保留尽可能多的细节,上采样时也能恢复更多的细节。从实验结果来看,LiftPool对图像分类能的准确率和鲁棒性都有不错的提升,而对语义分割的准确性更能有可观的提升。不过目前论文还在准备开源阶段,期待开源后的复现,特别是在速度和显存方面结果 来源:晓飞的算法工程笔记 公众号
论文: LiftPool: Bidirectional ConvNet Pooling
***
空间池化是卷积网络中很重要的操作,关键在于缩小分辨率的同时保留最重要的特征值,方便后续的模型辨别。简单的池化操作,如最大池化和平均池化,不仅池化时忽略了局部特性,还不支持逆向恢复丢失的信息。为此,论文提出了双向池化层LiftPool,包含保留细节特征的下采样操作LiftDownPool以及产生精细特征图的上采样操作LiftUpPool。
LiftPool的灵感来自于信号处理中的提升方案(Lifting Scheme),下采样时将输入分解成多个次频带(sub-band),上采样时能够完美地逆向恢复。如图1所示,LiftDownPool产生四个次频带,其中LL次频带是去掉细节的输入近似,LH、HL和HH则分别包含水平、垂直和对角方向的细节信息。用户可以选择一个或多个次频带作为输出,保留其它次频带用于恢复。LiftUpPool根据次频带恢复上采样输入,对比MaxUpPool的效果,LiftUpPool则能产生更精细的输出。
***
下采样特征图时,池化操作核心在于减少下采样造成的信息损失,而信号处理中的提升方案(Lift Scheme)恰好能满足这一需求。提升方案利用信号的相关结构,在空间域构造其下采样的近似信号以及多个包含细节信息的次频带(sub-band),在逆转换时能完美重构输入信号。借用提升方案,论文提出了双向池化层LiftPool。
其中$F(\cdot)=f{update}\circ f{predict}\circ f_{split}(\cdot)$包含3个函数,$\circ$表示函数组合。
LiftDownPool-1D的整体过程如图2所示,包含以下步骤:
实际上,经典的提升方案就是由低通滤波和高通滤波来完成的,通过预设的滤波器将图片分解成四个次频带。但一般来说,以预设滤波器的形式定义$\mathcal{P}(\cdot)$和$\mathcal{U}(\cdot)$是很难的。为此,Zheng等人提出通过网络的反向传播来学习滤波器。借用此思路,论文通过1D卷积+非线性激活来实现LiftDownPool中的$\mathcal{P}(\cdot)$和$\mathcal{U}(\cdot)$功能:
为了能够更好地进行端到端地训练,需要对最终的损失函数添加两个约束。首先,$s$是从$x^e$变化得到的,基本上要跟$x^e$相似,添加正则项$c_u$最小化$s$和$x^o$的L2-norm距离:
另外,$\mathcal{P}(\cdot)$的设想是将$x^e$转换为$x^o$,所以添加正则项$c_p$最小化细节差异$d$:
完整的损失函数为:
$\mathcal{L}_{task}$为特定任务的损失函数,如分类或语义分割损失。设置$\lambda_u=0.01$和$\lambda_p=0.1$,能够给模型带来不错的正则化效果。
图3为VGG13的首个LiftDownPool层的几个特征输出,LL特征更平滑,细节较少,LH、HL和HH则分别捕捉了水平方向、垂直方向和对角方向的细节。
LiftUpPool继承了提升方案的可逆性。继续以1D信号为例,LiftUpPool可从$s,d$中恢复上采样信号$x$:
$\mathcal{G}(\cdot)=f{merge}\circ f{predict}\circ f_{update}(\cdot)$包含update、predict、merge函数,即$s,d\to x^e,d\to x^e,x^o\to x$:
通过上述公式获得$x^e$和$x^o$,进而合成$x$,得到包含丰富信息的上采样特征图。
上采样在image-to-image转换中经常使用,比如语义分割,超分辨率和图片上色等任务。但目前大多数池化操作是不可逆的,比如MaxPool上采样的输出较为稀疏且损失大部分的结构信息。而LiftUpPool能对LiftDownPool的输出进行逆转换,借助次频带产出更好的输出。
以kernel size=2、stride=2的池化为例,LiftPool和MaxPool的逻辑如图6所示。
***
在CIFAR-100上对比次频带和正则项效果。
在ImageNet上,搭配不同主干网络上进行对比。
进行抗干扰数据集测试对比。
不同数据集上的语义分割性能对比。
语义分割上采样结果对比。
***
论文参考信号处理中提升方案提出双向池化操作LiftPool,不仅下采样时能保留尽可能多的细节,上采样时也能恢复更多的细节。从实验结果来看,LiftPool对图像分类能的准确率和鲁棒性都有不错的提升,而对语义分割的准确性更能有可观的提升。不过目前论文还在准备开源阶段,期待开源后的复现,特别是在速度和显存方面结果。
如果本文对你有帮助,麻烦点个赞或在看呗~undefined更多内容请关注 微信公众号【晓飞的算法工程笔记】
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。