【论文阅读43】FOCNet——网络与分数阶方程的结合

为什么不能早看到这篇文章呢?感觉之前基本上在白淦。。。

本文标题FOCNet: A Fractional Optimal Control Network for Image Denoising,网络模型即FOCNet

是看到的继TNRD后,总第2篇结合DE和网络结构的文章,引入的是分数阶ODE的离散化,带来长期记忆性。有点动态网络的味道,但不是

文献简介

FOCNet是2019CVPR的文章,是贾老师、张磊老师等的文章,至2021/03/24谷歌显示有31引用量

略读笔记

【1】谁的文章:贾老师、张老师等

【2】什么问题:图像去噪

【3】有动机否:基于DnCNNs的方程解释,改成分数阶方程;分数阶方程似乎有长期记忆性

【4】有无框架:FOCNet,分数最优控制网络,算是分数阶微分方程的离散化;并加强多尺度特征交互来加强网络

【5】什么模型:与框架一致,求解分数最优控制(FOC)问题,有不少理论保证。有DenseNet/动态网络的味道

【6】方程类型:分数阶方程,原文第4页式$(7)$,好像就是条件pde变成了分数阶方程,其它都是网络套的

【7】实验:很多,有经典单图加多种噪声,用多种模型;还有数据集同样处理的

打算细看一点点~

要解决的问题

从标题知,本文的目标是图像去噪问题。从正文看也是general的图像去噪,没有什么特殊假设

背景方法

本文的背景领域是去噪,其中主要关注的是背景方法是DnCNNs和动力系统解释DNN这两个:

  • DnCNNs在low-level的去噪中表现出色

    ps:本文在引言部分介绍了大量去噪网络模型,需要的话再看

  • 深度卷积网络DCNN结合残差可以解释为动力系统,由此引入分数阶ODE

动机/Idea

本文的动机/idea有两个

  • 整数阶ODE在时间尺度上局部之间的关系显然是大的,但是全局就不大了,因此只有所谓短期记忆;而分数阶(fractional)ODE有长期记忆(原文第3页图$(1)$所示的power-law memory)。在去噪这个问题上,历史状态(原图)应该也是对稳健控制有关的

    ps1:DenseNet、MemNet似乎也可以看成学习长期记忆

    ps2:至于为什么要长期记忆,这是从动力系统当前state可能和历史states都相关启发得到的结论

  • 多尺度特征交互加强网络性能

模型FOCNet

FOCNet这个框架就是结合了上述动机的去噪网络。网络的(前向)结构根据分数阶ODE的离散化设计

介绍一下分数阶网络,其实就是根据power-law memory的power-law机制重新定义了分数阶导数:

这个式子是很广泛使用的一种分数阶导数定义(确实有别的),叫做Grünwald-Letnikov定义

但是这个定义咋一看式子有些难懂,看维基百科的话,即知,这个定义是推广出来的概念,可以写个2阶导,分子其实就有$f(x),f(x+h),f(x+2h)$三项,推广至整数n阶导其实就是上面$(1)$的形式,$(1)$又把这个阶数推广到一般阶数,如$(0,1)$之间的阶数,至于里面的二项式系数我就不知道咋算的了哈哈

那么FOCNet的FOC问题整体是这样的:

其中输入的脏图是$\mathbf{y}(s)$,真实的gt干净图是$\mathbf{x}(s)$,$s\in\Omega$是图像上的二维坐标。$\Phi$和$\Psi$都是线性变换如卷积,大概是要把图像稍微处理一下,具体是啥应该不是特别重要


然后就到了加强性能的时候,idea是考虑多尺度特征交互,加强长期记忆能力。哎,这个多尺度交互的过程我看了好长时间才看明白。。。是我太菜了

尺度的变换是通过上pooling或者pooling(平均池化)完成的

注:趁机复习补充了一堆上下采样、上pooling、pooling的知识,参考:

  1. 有2种池化的可视化:【吴恩达深度学习】卷积神经网络深度学习中的各种卷积操作计算指南上池化(unpooling),上采样(unsampling)和反卷积(deconvolution)的区别
  2. 有2种池化的意义解释:平均池化和最大池化的区别和使用场景图像分类中的max pooling和average pooling是对特征的什么来操作的,结果是什么?
  3. 都有:平均池化和最大池化分别适用于什么场景呢?

先上网络的结构图:

用数学形式表示交互的过程为原文第4页的$(8)$式:

这个$(3)$式要配合上图一起看,以一般的中间式子$\mathscr{D}_t^{\beta}\mathbf{u}(t,s,l_i) = f(\mathbf{u}(t,s,l_i),g(\mathbf{u}(t,s,l_{i\pm 1})),\theta_i (t))$为例,这个$\beta$阶导数指的是第$i$个尺度(scale)的变化过程,即图中的第$i$行网络。图中第$i$行网络中每个侧着的方形都是一个状态(state),为了前进到下一步,以变化率$f$前进,$f$取决于三个因素,$\mathbf{u}$、$g$和$\theta_i$。其中

  • $\mathbf{u}=\mathbf{u}(t,s,l_i)$是前当前state
  • $g=g(\mathbf{u}(t,s,l_{i\pm 1}))$中的$g$本身叫做scale switch函数(图中最左下角的黑字),包含在图中的浅绿色箭头中,$g(x)=wT(x)$,$w$是0-1二元变量,$T$是pooling或者上pooling算子,也就是说,$g$是把前一个($i-1$)或者下一个($i+1$)尺度信息利用到当前尺度($i$)中的算子,就是图中的浅绿色箭头,式子中的$\pm$就是指中间的尺度可能接受来自上下两个尺度的信息。如图中深蓝色圆圈所示,状态2就从下一个尺度的状态1进行了scale switch,状态4就从上一个尺度的状态3进行了scale switch
  • 最后$\theta_i$就是尺度$i$的网络参数了

实验

实验在Berkeley Segmentation Dataset和DIV2K的部分数据上进行训练,其中有超参数的选择,如分数阶$\beta$,用多少尺度

测试则在Set12、BSD68、Urban100三个常用数据集上测试,并和其它诸多方法进行了对比,效果显著。具体可参考文中实验结果表,以及PSNR和计算时间的对比,显然它表现在几个方法中最优,且计算也不慢:


FOCNet代码中,FracDCNN.m定义了添加网络模块的函数,以及定义了本文的FOCNet,FracDCNN_train_dag.m则包含了训练的过程设置

优点

  • 通过引入分数阶ODE,网络前向后向传播过程中都有一定的长期记忆能力
  • 利用多尺度特征交互,即网络分层的形式,加强了网络性能
  • 方程做成网络,是残差的形式,训练也好弄
  • 实验表示去噪的视觉效果和指标都不戳

思考

  1. 图像去噪的过往方法:PDE-based,稀疏编码(可能是GAN一类的)、低秩估计(分解),etc

    而过去的方法很多对图像先验的假设是有限的

    那么是否对于general的去噪,先验的作用要削弱;对于specific的去噪任务,自适应加强先验呢❓大概是的,应该有不少工作是要自适应学习图像的先验信息,这个模块不能丢掉

  2. 既然分数阶ODE记忆长期,那么分数阶ODE会有混沌么❓

  3. FOCNet也是堆积了网络模块,但其实不是动态网络,结构还是固定的

  4. 能不能糅合DnCNNs、FOCNet、动态网络得到动态+残差+BN+分数阶方程。。。是不是在瞎搞❓也没啥创意。。。

参考文献

[1] X. Jia, S. Liu, X. Feng, and L. Zhang. Focnet: A fractional optimal control network for image denoising. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 6047–6056.

1
2
3
4
5
6
7
8
9
@inproceedings{RN45,
author = {Jia, X. and Liu, S. and Feng, X. and Zhang, L.},
title = {FOCNet: A Fractional Optimal Control Network for Image Denoising},
booktitle = {2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
pages = {6047-6056},
ISBN = {2575-7075},
DOI = {10.1109/CVPR.2019.00621},
type = {Conference Proceedings}
}