极市平台是专业的视觉算法开发和分发平台,加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
来源:深度学习大讲堂
作者:刘日升
编者按:深度学习在计算机视觉领域取得了巨大的成功,有研究者甚至一度期望这种端到端的学习策略可以完全替代传统模型驱动的算法。然而,大量工作证明:当我们面临复杂问题的时候,完全抛弃领域知识是非常不明智的策略。因此,如何将领域知识和先验融合到深度网络中,成为深度学习领域一个新的研究热点。其中,Deep Unrolling为我们提供了一种结合知识与数据的有效手段。
本文中,来自大连理工大学的刘日升副教授,将为大家介绍基于Unrolling的深度方法及应用。
本次报告主要向大家汇报一下基于Unrolling的深度学习方法,其在计算机视觉领域的各种应用,以及我们近期针对该类型深度网络的一些理论分析方面的工作。
近年来,深度学习相关工作大量涌现。在早期阶段,研究者们大多基于经验和对问题的一些理解,启发式地设计网络结构,并通过端到端学习的方式得到解决具体问题的深度模型。该类方法在计算机视觉领域的一些问题中已经取得了巨大成功。比如在人脸识别、目标检测等High-level问题中,各种深度网络的性能已经远远优于传统方法。但随着相关研究的逐渐深入,学者们也发现完全启发式设计的深度网络并不能在所有视觉问题中都取得令人满意的结果。特别是在一些底层视觉问题中,直接使用端到端学习策略和经验设计网络的性能并不能令人满意。比如,现有的启发式深度网络在图像盲去模糊问题中的性能仍然无法令人满意。
为了更深刻理解深度网络的本质特点,我们首先比较一下传统模型驱动的思路和端到端学习深度网络建模方法的区别与联系。具体来说:模型驱动方法通常首先利用领域知识为问题建立数学模型,进而通过特定的优化算法或求解策略得到模型的最优解。相对应地,端到端学习方法则希望直接建立输入数据与输出结果的非线性映射关系,其性能往往与训练数据的质量和规模有密切关系。总结起来,我们发现以上两种方法分别主要侧重于利用“领域知识”或者基于“数据(及经验)”来解决计算机视觉问题。很自然的,如果我们可以有效结合这两种不同的策略,将非常有希望设计出更加强大、且可解释性更强的深度网络模型。这也引出了我们后面将向大家介绍的Deep Unrolling技术。
近年来,Unrolling技术为“领域知识”与“数据(“及经验)”结合提供了一种有效手段。具体来说,所谓Unrolling是指我们将求解一个给定连续模型的迭代优化看成是一个动态系统,进而通过若干可学习模块来离散化这一系统,得到数据驱动的演化过程(Data-dependent Propagation)的方法。实际上,Unrolling过程与机器学习领域的元学习(Meta Learning)和近期LeCun等人提出的可微分编程(Differentiable Programming)概念也有着非常密切的内在联系。
在Unrolling方法中,我们首先需要设计一个迭代框架(Schematic Scheme),在此基础上进一步将可学习模块嵌入到迭代中。更为重要的是,我们还需要对于所设计的演化过程进行必要的理论分析。
接下来,我们将对计算机视觉领域中使用Unrolling思想的方法进行简要回顾。需要指出的是,在一些工作中,其原始论文虽然没有显式地使用Unrolling的概念,但我们仍然可以通过Unrolling框架对这些方法的原理和有效性进行解释和分析。
偏微分方程/扩散过程是非常经典的一类图像处理方法。该类方法实质上可以考虑为求解一个变分能量的梯度流。我们在2010年首先提出基于学习的偏微分方程(Learning-based PDE)解决各种不同的图像处理(去噪、分割、去马赛克等)问题。该方法最大的特点是通过学习旋转与平移不变的基本微分不变量来实现对扩散过程的Unrolling。并通过最优控制技术实现系统参数的端到端学习。值得指出的是,基于学习的偏微分方程实际上就是一种基于微分算子的、结构简化的深度网络模型。此外,我们所采用的最优控制框架也与现在被广泛使用的反向传播技术有着深刻的本质联系。随后,Chen 和Pork的工作则使用更高阶的算子来进行扩散学习,解决图像去噪等问题。
MRF作为一类无向图上的参数化先验,也可以被用来刻画不同类型图像的潜在分布规律。近年来,通过使用不同的优化策略(如半二次分裂、原始对偶、交替方向等)作为基础迭代格式,并使用高阶滤波器对MRF先验进行Unrolling,学者们提出了一系列不同的图像增强算法,并在不同的应用领域取得了较好的效果。
由于CNN实质上也可以看成是一种高阶的扩散算子,因此直接使用CNN对优化迭代过程进行Unrolling成为最近一两年来非常热门的研究方向。各种不同的CNN结构和Unrolling思路大量涌现。这里需要指出的是,Unrolling方法中CNN不再是一个端到端的回归器。实质上,我们更倾向于认为其学习的是优化算法在真实数据上每步计算所产生的迭代误差(或模型误差)。因此在这类Unrolling方法中,我们往往使用不同强度的高斯噪声来训练迭代过程中的CNN模块。
接下来,我们将进一步使用Unrolling思想对几类在底层视觉领域取得成功的深度网络方法进行分析与理解。
VDSR是一种将残差结构(Residual Structure)应用到图像处理问题上的深度学习方法,其在超分辨率问题上取得了非常好的效果。我们通过分析发现,VDSR网络结构实际上可以被理解成为一个一步的梯度下降过程。而CNN则学习了我们从低分辨率输入到高分辨率输出的下降方向。 相对于较早期的超分辨率网络(如SRCNN等,直接学习低分辨率到高分辨率的映射),VDSR通过学习下降方向(即残差),显著降低了网络的学习难度,从而取得了更好的效果。
随后,DnCNN将类似的思想成功应用到了图像去噪问题中,再次验证了使用CNN学习下降方向在底层视觉问题中的有效性。
EDSR作为VDSR的改进,取得了更优于VDSR的超分辨率效果。按照Unrolling的观点,我们可以非常直观的发现,在其网络结构中,作者实际上使用了更多的残差单元来进行梯度下降,而通过级联更多的下降模块,我们实际上得到了一个基于CNN的可学习迭代过程。从优化角度来看,更多的迭代步数往往可以让我们更容易得到复杂(如非凸)问题的最优解。这也从一个侧面给出了EDSR优于VDSR的原因。
在非盲图像去模糊问题中,IRCNN取得了非常好的性能。而该方法最大的成功就是将CNN网络结构引入到了图像复原模型的优化过程中。
在盲图像复原领域,最近的一些方法将各种不同的CNN模块集成到优化模型中(如Li et al),或者通过级联的方式模型构建隐式的梯度流(如Nah et al)。以上方法所提出的网络结构也均可以被Unrolling思想解释。
Ledig et al的工作给出了基于感知损失的残差网络训练方法。这一工作实际上表明我们可以使用对抗和感知损失函数来对级联的梯度下降模块(残差单元)进行训练,从而得到更加真实的图像增强结果。
以上我们介绍的Unrolling方法均面向Low-level问题(如去噪,去模糊,超分辨等)。实际上,很多High-level问题也可以使用Unrolling方法解决。如LeCun等人提出的LISTA方法,就是将解决稀疏字典学习的一阶优化算法(ISTA)使用参数化网络进行Unrolling。而Xiong和De la Torre则通过将一个非线性回归模型的每一步梯度下降迭代使用线性回归进行Unrolling,得到了解决人脸特征点检测等问题的新方法。最近,研究者还尝试将强化学习(Li 和Malik)和递归网络结构(Andrychowicz et al)引入到回归、分类模型的Unrolling过程中。
总结起来,Unrolling主要包括三个核心步骤,即设计迭代格式、嵌入可学习模块和理论分析。已有工作将注意力主要集中在前两部分,而由于使用了可学习模块对迭代格式进行非精确展开和计算,原有数值算法的理论性质(如收敛性等)已经不再被保持。因此我们迫切需要对于Unrolling过程的理论性质给出一些分析。此外,如何从理论上挖掘Unrolling过程的内在属性和有效性保证也是非常值得研究的内容。以下将简要介绍一下我们在相关问题上的一些初步尝试。
我们首先基于一阶非光滑优化格式给出了一个通用的迭代框架。在此基础上,我们进一步使用残差结构设计了一个可学习网络结构来进行下降方向估计。我们注意到大多数已有的Unrolling算法往往直接使用网络结构代替部分迭代计算过程。而我们在使用可学习下降模块进行Unrolling的基础上,还引入了一个额外的误差矫正模块。这一模块的最主要作用就是可以及时控制迭代过程中网络所产生的过大迭代误差。
具体来说,通过分析基于网络的Unrolling过程所引入的误差,并使用临近迭代输出来控制网络的非精确计算,我们得到了一种新的网络前馈传播精度控制准则,即所谓的“松弛化最优性准侧”。
基于以上的设计,我们可以在理论上证明,在求解一个非凸非光滑模型的最优解的问题中,我们所提出的Unrolling框架,可以产生一个全局收敛的序列(注意,这里的“全局收敛”指的是序列整体上收敛到给定的点,而非收敛到全局最优解)。如果所处理的问题有一个明确的先验正则化r时,我们可以证明该序列收敛到给定模型的一个Critical Point。此外,即使在不知道先验r的情况下,我们产生的序列仍然可以全局收敛到一个Fixed Point。我们首先将这里提出的Unrolling方法考虑成是一个非精确的迭代算法,并与标准优化策略进行比较。我们发现通过引入网络快速估计下降方向,我们的收敛速度(LBS)明显快于传统基于数学推导设计的迭代格式(如FBS,FISTA,ADMM等)。右上方的图示则给出了使用我们的误差矫正(LBS)和直接进行Unrolling(nLBS)的迭代曲线比较。我们可以看到不考虑误差控制而直接使用网络进行Unrolling会产生严重的震荡,甚至得到完全不收敛的迭代序列。而通过使用我们提出的自适应误差矫正策略,序列的收敛性得到显著改善。
接下来,我们以盲图像去模糊(反卷积)为例,展示如何利用我们提出的Unrolling框架解决具体的视觉问题。我们知道,由于盲图像去模糊问题需要从一个已知观测同时估计出未知的模糊核和清晰图像,该问题是一个典型的病态反问题。因此传统方法往往需要设计复杂的先验,并根据经验人为改造迭代过程,来实现对特定类型图像的去模糊。幸运的是,基于我们的Unrolling框架,我们提出了一种“生成-矫正”式的网络结构。这里Generator是一个进行图像生成的残差网络模块(反映数据和经验),Corrector则是一个基于反卷积模型设计的自适应迭代矫正模块(反映领域知识)。我们通过级联这样两类模块并进行协同学习,给出了一种可以在保证理论收敛的前提下,有效恢复各种不同类型模糊图片的新方法。 这里需要指出的是,我们所提出的这一“生成-矫正”式协同学习结构,实际上是一种比“生成-对抗”网络更加适合解决那些具有强领域知识的底层视觉问题。
我们在更多的视觉问题中尝试使用以上的Unrolling策略,并在水下增强,低光图像增强、去除反射、去除雨层等问题中取得了非常好的效果。
在深度学习的发展过程中,研究者曾经希望端到端学习策略可以完全替代传统模型驱动的算法。但大量工作已经证明当我们面临复杂问题的时候,完全抛弃领域知识是非常不明智的策略。这往往意味着我们需要使用更深的网络结构和更多的训练数据来学习问题中的潜在复杂回归关系。在一些情况下我们甚至无法找到合适的网络或训练数据。因此如何将领域知识和先验融合到深度网络中成为深度学习领域一个新的研究热点。
Deep Unrolling为我们提供了一种结合知识与数据的有效手段。我们可以通过领域知识建立原始模型并给出基础迭代格式。在此基础上通过引入可学习模块,进而从给定训练数据中学习该问题的潜在规律和数据分布。最后通过Unrolling实现知识与数据的有效融合。而我们近期的工作则从理论上为Unrolling方法的收敛性和有效性给出分析,在此基础上设计了一系列基于自适应误差矫正的Unrolling方法,并成功应用到不同的底层视觉问题中。
我们最后指出,“学习如何学习”(即Learning to Learn或Meta Learning)是人工智能未来发展的重要方向。而我们相信Unrolling将会成为设计Meta Learning算法的一类重要手段。
作者简介:
刘日升,大连理工大学国际信息与软件学院副教授。大连理工大学本科、博士,香港理工大学博后。研究方向为面向视觉问题的可学习优化算法,特别是基于深度模型的非凸非光滑优化建模与求解。
*推荐文章*
每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击左下角“阅读原文”立刻申请入群~