Py学习  »  机器学习算法

2021年,深度学习还有哪些未饱和、有潜力且处于上升期的研究方向?

深度学习这件小事 • 2 年前 • 320 次点击  

来自|知乎  作者丨谢凌曦、数据误码率、Zhifeng

编辑丨极市平台

 

在目前的深度学习领域,有些研究方向已经较为成熟,实现新突破的难度与过去相比显著提升。那么就目前来看,还有哪些方向处于朝阳阶段,相比之下更有研究潜力?

问题链接:
https://www.zhihu.com/question/460500204


01


作者:谢凌曦

来源链接:

https://www.zhihu.com/question/460500204/answer/1930151239

注:本回答所有内容均只代表作者本人观点,均有可能被推翻,二次转载务必连同声明一起转载。

我的主要研究方向是计算机视觉,所以本文也会比较偏重CV方向。

1. 不适合的研究方向

首先我要反对两个方向:对比学习为代表的自监督学习算法(包括BYOL等)和Transformer。它们的上限几乎是肉眼可见的,在没有非平凡的改进之前,很难有本质上的突破。在大量研究者投入精力的情况下,只要没有持续的产出,就必然会导致其加速衰落。前些年盛极一时的网络架构搜索(NAS)就是一个非常典型的例子。

我们首先分析NAS、对比学习、Transformer的局限性:

(1) 原本以NAS为代表的AutoML技术受到了广泛的期待,我还主张“自动机器学习之于深度学习,就好比深度学习之于传统方法”,不过后来发现它的缺陷是明显的。在搜索空间指数级扩大之后,算法就必须在精度和速度之间做出选择。后来盛行的权重共享类搜索方法,相当于追求搜索空间中的平摊精度,而平摊精度与最佳个体的精度往往并不吻合。

(2)对比学习被广泛引入图像领域作为自监督任务以后,前世代的自监督算法(如预测旋转、拼图、上色等)纷纷被吊打,甚至开始在下游任务中超越有监督训练的模型。然而,当前的对比学习类方法(包括BYOL)对于数据扩增(data augmentation)的依赖过重,因而不可避免地陷入了invariance和consistency之间的矛盾:强力的augmentation能够促进学习效果,但是如果augmentation过强,不同view之间的可预测性又无法保证。

(3)至于Transformer,虽然目前还处在比较兴盛的状态,然而它的上限也是明显的。除了更快的信息交换,似乎这种模型并没有体现出显著的优势。问题是:CV任务真的需要频繁而快速的视觉信息交换吗?遗憾的是,学界依然沉浸在“先将所有任务用Transformer刷一遍”的廉价快乐中,鲜有人愿意思考一些更深入的问题。

因此,我特别希望初学者不要看到一个热门方向就一拥而上,而要冷静地思考这个问题:如果全世界都知道这个方向火热,那么你的研究要想脱颖而出,就必然有某些过人之处——比如你有特别多的卡,或者你有丰富的PR资源。否则,很可能还是捧红了别人的文章,浪费了自己的时间。

2. 应该关注的方向(但未必能够保证产出)

我认为CV领域还是存在很多本质问题没有解决的。但是这些问题往往非常困难,投入长期研究的风险也比较大,因而大部分研究者会回避这些问题。然而要从根源上推进CV的发展,这些问题就不得不去面对、解决:
(1)是否存在神经网络之外的推理方式?当前,神经网络成为训练以后的唯一产物,而几乎所有算法均假设将输入送给神经网络以后,一次性地得到输出结果。然而,是否能够设计直接向前传递以外的其他推理方式?例如,当一个物体处于罕见的视角或者被严重遮挡时,能否通过多次迭代式的处理,逐渐恢复其缺失的特征,最终完成识别任务?这就涉及到将强化学习引入训练,或者通过类似于image warping的方式找到一条困难样例和简单样例之间的路径。后者可以导向一个非常本质的问题:如何以尽可能低的维度刻画语义空间?GAN以及相关的方法或许能够提供一些思路,但是目前还没有通用的、能够轻易跨越不同domain的方法。
(2)是否存在更精细的标注方式,能够推进视觉的理解?我最近提出了一个假想:当前所有的视觉识别算法都远远没有达到完整[1],而这很可能是当前不够精细的标注所导致的。那么,是否能够在可行的范围内,定义一种超越instance segmentation的标注方式,进一步推进视觉识别?这就涉及到一系列根本问题:什么是一个物体?如何定义一个物体?物体和部件之间有什么联系?这些问题不得到解决,物体检测和分割将步图像分类的后尘,迅速陷入过拟合的困境。
(3)如何解决大模型和小样本之间的矛盾?当前,大模型成为AI领域颇有前景的规模化解决方案。然而,大模型的本质在于,通过预训练阶段大量吸收数据(有标签或者无标签均可),缓解下游小样本学习的压力。这就带来了一个新的矛盾:大模型看到的数据越多,模型就越需要适应一个广泛而分散的数据分布,因而通过小样本进行局部拟合的难度就越大。这很可能是制约大模型思路落地的一个瓶颈。
(4)能否通过各种方式生成接近真实的数据?生成数据(包括虚拟场景或者GAN生成的数据)很可能会带来新的学习范式,然而这些数据和真实数据之间存在一种难以逾越的domain gap,制约了其在识别任务中发挥作用。我们提出问题:这种domain gap,本质上是不是特定的识别任务带来的learning bias?我们希望通过改变学习目标,使得这种domain gap得到缓解甚至消失,从而能够在有朝一日消灭人工标注,真正开启新的学习范式。
(5)是否存在更高效的人机交互模式?目前,人机之间的交互效率还很低,我就经常因为为做PPT而头疼不已。我认为AI算法或许会深刻地改变人机交互的模式,使得以下场景变得更容易:多媒体内容设计和排版、跨模态信息检索、游戏微操作,等等。多模态算法很可能会在这波“人机交互革命”中发挥重要作用。
在我看来,上述任何一个问题,相比于无止境的烧卡刷点,都要有趣且接近本质,但是风险也要更大一些。因此,大部分研究人员迫于现实压力而选择跟风,是再正常不过的事情。只要有人在认真思考这些问题并且稳步推进它们,AI就不是一个遥不可及的梦。
限于时间,无法将上述每个点写得太仔细;同时限于水平和视野,我也无法囊括所有重要的问题(如可解释性——虽然我对深度学习的可解释性感到悲观,不过看到有学者在这个领域深耕,还是能够感觉到勇气和希望)。
非常欢迎针对各种问题的讨论,也希望这些观点能够引发更多的思考吧。
[1] https://zhuanlan.zhihu.com/p/376145664


02


作者:数据误码率

来源链接:

https://www.zhihu.com/question/460500204/answer/1915471641

如果以CVPR为CV的导向的话,目前发展大概是这样:

MLP(2012年的前)—>CNN(2012-约2020)—>transformer(2020年以后)—>MLP(??Google最近又把这玩意刨出来了,至于是不是,不敢推测结果如何)

先说结论:

越来越比拼硬件资源能力了。

总之就我做的医学图像分割上来说,最直观的感受就是几个点吧:

(1)传统基于CNN的文章除非在理论上、网络结构上(万年薅UNet,各种魔改)有大的创新,否则给人的感觉创新性都不大,甚至可以归为“水文”,二区都难。

(2)独立于网络之外的用于提升网络性能的模块上,attention-gate、channel- attention、spatial- attention、channel- spatial attention、non-local、scale- attention……反正就是魔改,要说最近的方向,可能就是类似ECA-module这种类似的走轻量注意力上才有的发paper。

(3)transformer:是个很新的方向,目前应该是医学图像分割上最好灌水的方向之一了,我记得去年开组会刚想把Unet的编码器或者解码器部分改成transformer,试试效果如何,结果一上知乎,我校某实验室就在编码器部分搞了出来一篇transUnet。看完swin-tranformer我一拍大腿,我去,这个好,这下解码器编码器都可以改了,对我这个小菜鸡还好理解点,结果马上有人做出来了swin-unet。总的来说就是,目前想水医学图像分割的transformer文章的,代码+硬件两手都硬的同行们,可以抓紧了。因为目前只要你速度够快,method部分不需要写大量公式计算,也不用憋着想如何写创新点,创新点统一为:

“本文首次把transformer应用于XXX检测/识别/分类/分割”

(4)大显存、多数量GPU,无论显存还是数量,越多越好,堪比挖矿。我曾经尝试把DA-Net中的PAM和CAM丢到UNet里去,结果直接out of memory….you need another 64GB。把我吓得,团队只有4卡RTX2080Ti瑟瑟发抖。transformer那种基于self-attention的大型注意力包,理论上计算资源只会多不会少,等忙完这段时间我准备搞一个3层的swin结构的编解码结构试试,但愿能跑起来,这样毕业论文就显得新一点 。



03


作者:Zhifeng

来源链接:

https://www.zhihu.com/question/460500204/answer/1902459141

回答几个我最近在研究的方向~ 我主要在做生成模型,不过乱七八糟的也有涉猎。

1. 可解释性

feature-based研究的很多了,instance-based个人感觉在上升期,从研究的角度来说缺乏benchmark/axiom/sanity check. 主流方法是influence function, 我觉得这里面self influence的概念非常有趣,应该很值得研究。当然,更意思的方向是跳出influence function本身,比如像relatIF 加一些regularization,也是水文章的一贯套路(relatIF是好文章)。

Influence function for generative models也是很值得做的。Influence function for GAN已经有人做了,虽然文章直接优化FID是有点问题的,但是框架搭好了,换一个evaluation换个setting就可以直接发paper.

我最近写了Influence function for VAE, 有不少比较有意思的observation (paper[1]; code repo: VAE-TracIn-pytorch).

2. 无监督生成学习

最近的denoising diffusion probabilistic model(DDPM)绝对是热坑,效果好,但是速度慢没有meaningful latent space限制了很多应用,有待发掘。我去年实习写了一篇DiffWave是这个方法在语音上的应用,效果很好,最近应该能看到这个模型的application井喷,比如3D point cloud生成。

DDPM的加速最近已经有不少paper了,目前来看有几类,有的用conditioned on noise level去重新训练,有的用jumping step缩短Markov Chain,有的在DDPM++里面研究更快的solver. 我最近写了FastDPM, 是一种结合noise level和jumping step的快速生成的框架(无需retrain, original DDPM checkpoint拿来直接用),统一并推广了目前的好几种方法,给出了不同任务(图像, 语音)的recipe (paper[2]; code repo: FastDPM_pytorch).

生成模型里的Normalizing flow模型,用可逆网络转化数据分布,很fancy 能提供likelihood和比较好的解释性但是效果偏偏做不上去,一方面需要在理论上有补充,因为可逆或者Lipschitz网络的capacity确实有限。另一方面,实际应用中,training不稳定可能是效果上不去的原因,其中initialization 和training landscape都是有待研究的问题。潜在的突破口:augmented dimension或者类似surVAE那种generalized mapping. 除此之外,normalizing flow on discrete domain也是很重要的问题,潜在突破口是用OT里面的sinkhorn network.

我对residual flow这个模型有执念,很喜欢这个框架,虽然它不火。今年早些时候我写了residual flow的universal approximation in MMD的证明,很难做,需要比较特殊的假设 (paper[3])。之后可能继续钻研它的capacity和learnability.

再补充一个:

3. 生成模型的overfitting是一个长久的问题,但是本身很难定义,很大一个原因是mode collapse和copy training data耦合在一起。我们组去年发表了data-copying test用于检测相关性质,不过这个idea还停留在比较初级的阶段,我觉得这一块需要更多high level的框架。

4. Meta learning + generative model方向个人十分看好,meta learning 框架可以直接套,loss改成生成模型的loss就可以了。Again, GAN已经被做了,不过GAN的paper那么多,随便找上一个加上meta learning还是很容易的。类似可以做multitask + GAN.

[1] https://arxiv.org/pdf/2105.14203.pdf
[2] https//arxiv.org/pdf/2106.00132.pdf
[3] https://arxiv.org/pdf/2103.05793.pdf

技术交流群邀请函



△长按添加小助手

扫描二维码添加小助手微信(ID : HIT_NLP

请备注:姓名-学校/公司-研究方向-城市
(如:小事-浙大-对话系统-北京)
即可申请加入深度学习/机器学习等技术交流群
为您推荐

思考丨到底什么叫算法工程师的落地能力?

Transformer模型有多少种变体?看看这篇全面综述
从SGD到NadaMax,十种优化算法原理及实现
各种注意力机制的PyTorch实现
你写的ML代码占多少内存?这件事很重要

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/116862
 
320 次点击