作者是西电的Jingwei Xin, Nannan Wang, Xinrui Jiang, Jie Li, Heng Huang, Xinbo Gao等人,不认识呢。
Summary:第一篇把BNN的概念引入SR的文章(灌水?),具体不好判断怎么样。文章提出了一种BAM(bit-accumulation mechanism)算法,将不同层的weights和activations分别加权加在一起,通过BN再取sign作为量化的weights和activations(见鬼了,这能work?也没解释这么做的动机啊?)。这种BAM方法似乎可以直接去改SR的一些baseline。这篇文章还提出了一种SR model building block,这种block搭出来的网络比直接BAM一些baseline效果更好些。总之读起来是一篇抢坑的水文(更别说文中还有"ass"这种拼写错误了,怎么回事)
Rating: 3.0/5.0
Comprehension: 4.0/5.0
有一些关于Super Resolution的知识:
现有的基于深度神经网络的SISR方法的处理过程可以分成三个阶段:特征提取(feature extraction)、非线性映射(nonlinear mapping)和图像重建(image reconstruction)。用公示表示成:
其中\(\mathcal{R}\)、\(\mathcal{M}\)和\(\mathcal{E}\)分别表示上文所述的图像重建(通常是一层Conv)、非线性映射(通常是级联的Conv)和特征提取(一层Conv),x和y分别是输入的低分辨率图像和输出的高精度图像。\(\mathcal{M}\)的结构直接影响了整个网络的性能和参数(复杂度)。
这一部分还提了一些点:
计算当前层binary weights的方法是,用几个\(\alpha\)加权之前层的weights(这里的加权方法是按元素乘系数,然后量化的部分只有\(\mathcal{M}\),这一部分的网络通道数一致,所以"+"也是按元素加),通过BN(为什么要过BN…)后取符号,再用逐层用全精度参数的均值绝对值加权。
至于式中的\(\alpha\),按照后面algo的描述并不是可训练的(activation累加时的参数\(\beta\)才是可训练的),这里只是求解出来的(解这个优化问题应该相当费时间?):
BAM算法,画得是相当抽象:
对Activation的处理和weight的差不多:
作者argue超分模型对图像的处理对中间activation的依赖很强,所以这里不用单一scale(对应weight的 \(E(\|W_n\|)\) ),而是用一种(可学习)two-dimensional array来scale activation:
式中的\(\beta_n^{scale}\)是个scale factor而且只有它在训练的时候可以被更新(我想应该是相对\(\alpha\)说的)。
最后整体的BAM算法是:
构造了个high-precision binarization (HPB) block作为这种SR model \(\mathcal{M}\)的building block:单个HPB block是由多个LB-block堆叠成的,每个LB-block由1个3x3 Conv和2个1x1 Conv组成(所以weight accumulation是在kernel一致的filter之间进行的,activation accumulation看图好像是不在3x3 Conv两侧进行,也就是文中所说的short-range accumulation&long-range accumulation)。
整体的网络结构如下所示:
两篇文章用的数据集好像挺一致,所以这是SR领域的通用设置吗?
Data augmentation、Batch size、optimizer等相关设置。
现在好像需要关注实验结果了。有三组结果,分别是用BAM在VDSR、SRResNet这两个传统SR model上的结果和BAM+BSRN的结果。
作者在比较VDSR和SRResNet实验结果的时候对模型结构有些阐发:SRResNet上的量化结果好于VDSR的原因有,SRResNet用的这种残差块的非线性映射能力要强于VDSR的(而且参数数量多),同时结构中的skip connection降低了反传梯度上的难度,也丰富了信息流。
把几张图拎出来比较的吹B写法可以学学,我是看不太出来图之间有什么区别,就嗯吹。