来源:https://www.zhihu.com/question/385326992
编辑:深度学习与计算机视觉
声明:仅做学术分享,侵删
作者:Zhanxing Zhu
https://www.zhihu.com/question/385326992/answer/1164005349
其实自从2018年三大佬靠深度学习拿了图灵奖之后,基本宣告深度学习容易解决的问题做的差不多了,这两年这个领域没有太大的突破,因为剩下的问题都是硬核问题,想要比较好的解决很困难,这个可以从这几年的顶会NeurIPS, ICML和 ICLR 可以看出来。我大体列一下自己认为值得 follow 的几个大方向。
1.深入反思和理解深度学习的行为: Understanding deep learning, 包括理论和完整的实验分析。比如深度学习获得泛化能力的来源:数据、模型和训练算法技巧的分析;还有深度学习学到的特征表示究竟是什么,宽度、深度、跳连等究竟在 representation learning 上所起的作用;深度学习稳健性,包括对噪声变化、对结构变化、对对抗样本的稳健性;从不同视角建模深度学习等。
2.新模型的构建方面,主要目的是希望深度学习满足某种性质或要求,比如可解释性强、可信能力强的模型的构建;比如具有因果推断能力的模型,这其实是个很重要的方向,深度学习很大的成功在于模式识别和函数拟合,其他能力很弱;比如小容量计算友好的模型等。
3.新的数据场景或数据结构中的深度学习模型,比如semi-supervised, self-supervised或大家也称unsupervised, transfer learning ,meta-learning等。因为已有的深度学习的成功展现在大数据的有监督上,目前关于这些挑战场景上的理解还很少,虽然大家一顿猛发文章,本质是什么尚不清晰,尤其是背后的设计模型的核心 principle 是什么还是很模糊的。新的数据结构下的问题,典型代表是graph,大型 table及结构化的数据上。
4.Learning-enhanced algorithms,我自己起的名字,主要指如何利用数据驱动的方式,尤其是深度学习强大表达能力和灵活性,来解决一些传统算法的瓶颈问题,比如如何用learning的思路来解决一些组合问题中的搜索策略;如何从解决多个问题中总结数据或者问题的经验,来拓展到解决类似问题上。
5.对应用友好的模型和算法,尤其是精细场景以及实际落地应用中。毕竟深度学习的很多问题是应用驱动的,如何更好的解决实际应用问题也极其关键。这里涉及很多,比如模型动态更新(包括类别,数据的分布变化,数据的异质,多模态等),快速部署(衍生很多加速算法等),便捷部署(衍生 automl),可视化,模块化等。
6.还有一个是和硬件结合的方向,这个也很重要,自己不是很懂。
当然随着逐渐发展,还有不同新的有意思的新方向、新应用出现。不过最终深度学习这个框架和方法最终会像最小二乘法一样,被广泛应用,成为标准工具,但会不断的有新的东西能挖出来。
作者:夕小瑶
https://www.zhihu.com/question/385326992/answer/1141673234
我给可解释性问题投一票。这个研究分支是唯一一个让我觉得,看不懂也想看,自己做不了也要偶尔延伸一些小实验验证一些小猜想,别人都说没意义但我觉得最有意义,虽然不会轻易写paper但是希望自己能坚持follow的一个研究方向。
回想起来自己读研的时候曾经很傻很冒险的一个人花了小半年的时间陷入在了一个现在看来非常扯淡的词向量迁移到分类模型时的训练行为和结果可解释性问题上,当时以为自己就要构建起一个比较naive的数学模型了,跑了五六个数据集去验证都发现模型预测出来的现象都与实际炼丹结果一致!
我相信根本没有人在乎这个问题的,简直感觉自己就是一个民科瞎搞的既视感。当时给@Simon John看我的论文初稿时他觉得我疯了哈哈哈哈,最后我还是死缠烂打的求他给了很多建议,帮我完善了这么一篇扯淡文。
最后这篇paper经历也是非常搞笑,第一次投稿到某顶会后,唯一一个给了strong reject的审稿人却是对这篇工作评价最高的,大体意思就是,虽然哪里跟哪里的建模存在缺陷,但是这个工作非常有意思,也相信我们的大方向是对的,希望我们一定要把这个模型完善下去,千万不要放弃,非常期待看到后续进展巴拉巴拉之类的,巨煽情,差点把我看哭。
后来就是因为秋招的原因,急于让它出现在简历上,就转投了一个水会,果然水会就中了。。几个审稿人都没有发现那个建模的缺陷。但是想了想,这样放出去太不负责了,万一这个缺陷真的会导致全篇的建模都是错的,那就把后人误导死了,所以在收到accept邮件后的第二天又发了封邮件主动撤稿了。哎,还是再去试图修正一下那个问题吧。
最后的挣扎结果是,修复的过程中发现了新的问题,于是提出新的假设,检验新的补丁,最后发现没法收场了。最终搁置,投入秋招大业中。
再后来,出了elmo,出了bert,谁还会去关心w2v呢。这篇扯淡的工作也更加没有意义了。不过还好,有一天可以在知乎上作为故事写出来hhhh
虽然最后这件事情上0产出,但由衷感觉解开深度学习黑箱是很有挑战性但也非常有意思的事情。不建议一个人瞎搞,但建议持续追踪,黑盒的秘密很令人着迷呀
作者:王晋东不在家 https://www.zhihu.com/question/385326992/answer/1138098433
我比较关心深度学习的泛化问题,举例:
数据分布差异的度量与建模
人类经验与机器知识的结合
模型的可迁移性,边界在哪里
结构化的知识表征与泛化问题,等等。
作者:机智的叉烧
https://www.zhihu.com/question/385326992/answer/1141908138
做工程一段时间了,其实感觉很多东西还是要落地,这个研究才有意义。(当然也要包括领先上百年甚至更多的数学),从应用角度还是希望有一些东西能快速落地,快速解决问题(赚取KPI)更加平民化的落地会更好。
但是!
现在很多模型其实只考虑了准确率,而牺牲了很多东西(其实我的理解最终变成了一个比赛,大家都在刷数据),追高不是错,但是只追高就有问题了,一整套方法要考虑所有流程,配套设施的完整性,可用性,从我的实践角度看,深度学习目前在这些问题上应该说上升空间比较大,也有巨大的研究需求。主要是这么几点吧:
模型压缩和蒸馏。这块感觉做得不太够,bert做出来,效果真的好,但训练本身只是有钱人的游戏,如何能把模型的体积降下来,耗时降下来,无论是训练侧还是推理侧,都有很大的价值。其实,Hinton大神在14年已经提出了蒸馏的概念,近期也有很多关于bert的压缩,比较火的albert,新鲜出炉的Fastbert,但是感觉下降到理想水平还有一段距离。
样本依赖问题。绝大部分的优秀模型都依赖大量数据,其实很多人已经在这块尝试了很多方法降低这种依赖,然而其实做的人远远不如做模型的多,感觉工作很多能做但是出结果的似乎都不是很多,例如主动学习一查标杆文献基本都只有10年前后甚至更早的东西,博客谈的也只是科普(也不知道是不是我看的不够多)。
主动学习,边学边调整样本,但是个人看似乎还是依赖人工打标。
数据增强,通过特定规则增加一些数据,当然这些规则本身会带入过拟合信息。
半监督、弱监督、无监督。个人感觉这块有一定收益吧。
迁移学习、联邦学习、pre-training。谨慎的拿来注意,就问这么一个问题,所有的事情都得从零开始吗?从10开始然后做不香吗,github搬代码不香吗,能有一个地方能让自下载模型改吧改吧就完事,是不是很好,于是这些相关的思路,我们是有必要去发扬、优化的。
我一直觉得,各种模型不是目的,只是方法,能解决问题的方法,深度学习的确能够在很多领域带来提升,然而由于数据和一些工程上的压力,深度学习的使用范围被限制,那么其实如果我们能够扩大他的适用范围,突破他的限制,这个贡献是不是会比哪怕是特定领域提升几个点来的更加有意义?
作者:青春没有终点
https://www.zhihu.com/question/385326992/answer/1161171596
能真正让模型适合落地的研究,都值得追踪。
1、Semi-supervised, self-supervised, unsupervised learning. 俗话说“有多少智能就有多少人工”,那么能不能不需要太多标记样本,甚至不需要标记样本。
2、Transfer learning, generalization. 模型提取特征的能力也是需要大量数据加持,但不是所有应用场景都有大数据,比如医疗和遥感。所以如何利用别人已经训练精美的模型,是一个很值得思考的问题。换个一个角度思考,你已经学会识别大花猫了(训练好的模型),那么再给你一只蓝猫,你肯定也知道他是猫(transfer到其他猫),所以模型泛化能力也蛮重要的。
3、Imcremental learning, lifelong learning, online learning. 你今天有一批数据,训练了一个模型,过了一段时间积攒了一批新的训练数据(甚至包含了新的类别),想让模型学习一下,怎么办?用新数据接着训练旧模型?显然不行,旧样本的知识会产生“灾难性遗忘”。所以在原模型的基础上,如果只用新样本就能把模型调整好,甚至极端一点,一个样本只学习一次就能让模型记住,是不是非常节省时间。
4、Model Compression, lightweight model. 深度学习动辄百八十层,嵌入式场景下怎么办,所以要把大模型压缩成效果相当的小模型。同时训练大模型也劳民伤财吧,那么设计什么样的小模型和参数优化方法,能达到大模型的效果呢?
5、Model interpretation, domain knowledge. 你说你的模型好就好?准确率高模型就一定好?你说这一层提取了什么特征就提取了什么特征?那你具体说说到底提取了什么,别说提取了“局部视觉特征”。所以模型的可解释性非常重要,如果模型每个计算每个特征都有直观的含义,那么不但模型更加可靠,甚至调参都将会变得有依据。如果还能融入人类的生活经验以及领域专家的见解,那么模型更容易朝着我们想象的结果走。
6、Optimization. 机器学习模型利用各种凸优化的方法求解(求闭式解啊,交替迭代啊,还有梯度下降,牛顿,拟牛顿),深层网络也是基本靠反向传播(梯度下降),甚至也有另辟蹊径的(智能群体算法)。但是你获取的数据有很多问题(样本不均衡,多源数据,错误标记等等),而且优化的速度、消耗资源、解的质量(局部最优)都有待提升。这些问题解决的好,也能对上面几位的发展起到推动作用。
7、最后,编程框架翻译,虽然放在最后,但是这是我最想说的(当然这个东西并不存在)。不知道大家有没有因为找不到合适的开源代码而发愁,比如你擅长TensorFlow,但是代码却是PyTorch写的。虽说要有精通多个语言多个框架的能力,但是大部分人精力有限,而且读自己不擅长语言非常浪费时间。这个时候,如果可以把PyTorch翻译成TensorFlow该有多好,希望有大牛分分钟搞出来。嗯,苟富贵,毋相忘。
作者:Luau Lawrence
https://www.zhihu.com/question/385326992/answer/1179153331
个人投一票负采样问题。
这个可能不是所谓的前沿研究,但一定是深度学习落地非常重要也非常有意义的一个环节。
1.可能在小数据上打打闹闹的时候感受不到这个问题的重要性,但真实场景下的data是非常非常复杂和多样的,这时候简单的随机或者简单的负样本很可能学到的是无意义的信息,从而导致模型收敛到trivial的solution。
2. 另外,真实场景下的深度学习往往要考虑大量的隐式反馈(implicit feedback),如何区分隐式反馈中的正负反馈同样也是非常关键的。
3. 还有一点,就是实际场景中更多地需要考虑极端情况,例如adversarial attacks. 如何利用负样本去push模型做到这一点,也是很多学者在研究的。目前最前沿的进展应该是GAN for hard negative mining.
在实际场景中,负样本的重要性是不亚于正样本的,如何利用好负样本去学习到更有意义的模型是个有待探索、充满挑战但又非常有价值的课题。
作者:马昊天
https://www.zhihu.com/question/385326992/answer/1170576826
ICLR马上开了,最近在翻论文。我列几个比较新颖的:
1.今年ICLR有一篇,Deep Learning for Symbolic Mathematics,用transformer做的,之后可能有更多的人关注这个方向。在这个方向中,我更关注如何获得一些新的formula或者一类比较抽象的思维方式。
2.在某些其他领域中,通过可解释性方法获得domain knowledge。这类工作应该给出针对某些特定task的general solution,并且能获得可靠的knowledge。用到machine learning的领域已经很多了,例如计算物理中的神经网络势,用machine learning预测分子结构。
3.Federated learning,一篇Federated Learning with Matched Averaging有一部分提到了interpretability。目前一提起Federated learning可能第一反应就是,这是和业界和落地场景有关的,但它或许可以作为解决某些理论问题的途径。
作者:凯恩博
https://www.zhihu.com/question/385326992/answer/1165995488
AI是和工业界需求联系紧密,那新的研究能促进 降成本、落地是非常关键的,比如:
Few-shot learning — 很多场景数据和标注太贵了,总是暴力标注也不是办法
AutoML — 对于企业算法人员也太贵了,未来必定算力越来越便宜,机器自己去搜网络和调参多好 。。本是同根生,相煎何太急,/(ㄒoㄒ)
可解释行 — 不能解释直接导致落地困难
作者:Spaceman
https://www.zhihu.com/question/385326992/answer/1146545582
比如研究深度学习的表示。
推荐我比较喜欢的一个NeurIPS 2018的理论文章《Towards Understanding Learning Representations: To What Extent Do Different Neural Networks Learn the Same Representation》。
神经网络虽然在众多任务中取得了不错的效果,但是网络本身究竟学习到了什么样的表示(Representation),仍然没有答案。同时这个问题,也给人一种无从下手的感觉。这篇paper找到了一个新颖的切入点,尝试回答这样一个较简单的问题:同样的一个网络,在不同的初始化下,它学到的表示有多像?如果是相似的,这种相似的粒度又是什么呢?是neuron级别,还是neuron cluster这样的级别呢?
这篇paper为了解决这个问题,主要做了这样几件事:
首先,要想知道网络学到的表示有多像,就需要定义清楚:1)如何定义网络学到的表示?2)如何来度量网络的表示的相似程度?于是,作者提出了一套子空间匹配的理论来解决上述的两个问题。
然后,基于上述的理论,作者设计了一套算法来解决来找到maximum match和simple match (该理论的两个核心概念)。
最后,基于上述的算法,作者进行了实验来分析,并回答网络学到的表示有多像。
这篇文章的信息量比较大,具体细节可以参考如下原文链接。https://urlify.cn/JrIveq
作者:谭励
https://www.zhihu.com/question/385326992/answer/1149603245
数据本身的构成
我们很清楚神经网络是如何计算的,也能在输入数据中找到对判定结果很重要的区域。常用的交叉熵甚至有好几种理解方式。也有人证明了各种算法的收敛性。然而,深度学习离开了数据本身,就成了无源之水,无本之木。数据本身的构成方式也许才是最大的黑盒,解开它,算法的可解释性会从本质上得到提升。
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文(无广告)。
↓扫描二维码添加小编↓