你用过 Google Trends 吗?相当酷,输入一些关键词,然后能看到它们在谷歌中的搜索趋势变化。刚好 arxiv-sanity 论文数据库在过去 5 年内有 28303 份机器学习相关论文,所以我想,为什么不做一些类似的事情,来看看机器学习研究在过去 5 年是如何进展的?结果相当有趣,所以我想我该写篇文章分享一下。
(机器学习是一个大领域。本文偏重的领域是深度学习——这是我最熟悉的一个分区。)
arxiv 奇点
让我们首先看下,在 arxiv-sanity 上( cs.AI、cs.LG、cs.CV、cs.CL、cs.NE、stat.ML)的 论文提交总数,见下图:
是的, 2017 年 3 月这些领域差不多提交了 2000 份论文。峰值可能与会议(比如 NIPS/ICML)的截止日期有关。注意,这里并不能说明该领域本身论文数量规模,因为并不是所有人都会把论文提交到 arxiv ,而且研究人员对一部分论文的分类会随时间变化。但值得指出的是,这些领域有大量的论文。
把论文的总数作为分母。我们现在可以看下这部分论文包含了哪些我们感兴趣的特定关键词。
深度学习框架
先预热下,让我们看看正在使用的那些深度学习框架。计算这个值时,在整篇论文中任何地方(包括提到的参考书目书名等)提到深度学习框架的这部分论文都被记录在内。对上传于 2017 年 3 月的这部分论文,我们得到如下结果:
- % of papers framework has been around for (months)
- ------------------------------------------------------------
- 9.1 tensorflow 16
- 7.1 caffe 37
- 4.6 theano 54
- 3.3 torch 37
- 2.5 keras 19
- 1.7 matconvnet 26
- 1.2 lasagne 23
- 0.5 chainer 16
- 0.3 mxnet 17
- 0.3 cntk 13
- 0.2 pytorch 1
- 0.1 deeplearning4j 14
也就是说,2017 年 3 月提交的论文中有 10% 提到了 TensorFlow 。当然,不是每篇论文都声明了它使用的框架,但如果我们假定那部分声明了该框架的论文,对框架使用有一个比较固定概率的话,那么大约 40% 的社区目前正在使用 TensorFlow (甚至更多,如果你把带 TF 后端的 Keras 也算上)。下图可以看出一些比较流行的框架是如何随时间演变的:
我们可以看到 Theano 已经出现一段时间了,但是它的增长几乎停滞。Caffe 在 2014 年急速猛增,但是在过去几个月被 TensorFlow 赶超。Torch(以及最近的 PyTorch)也在攀升,虽缓慢但稳定。接下来几个月的发展会很有趣——我个人的猜测是 Caffe/Theano 会继续有一个缓慢的下降,以及由于 PyTorch 的出现, TF 的增长会稍微变得缓慢。
ConvNet 模型
就乐趣而言,我们何不来看下常见的 ConvNet 模型?这里,我们清楚地看到 ResNets 有一个巨大的攀升:2017 年 3 月它们出现在 9% 的论文中:
还有,在 InceptionNet 之前谁在讨论 inception?我对此表示好奇。
优化算法
在优化算法方面,看起来 Adam 连连获胜,2017 年 3 月 23% 的论文中都出现了它!实际的使用比例很难估测;它可能高于 23%,因为一些论文没有声明优化算法,而且很大一部分论文可能甚至没有优化任何神经网络。然后它还可能就是 5% 左右,因为 Adam 在 2014 年 12 月才发布,并且可能与论文作者名字冲突。
研究者们
我还好奇深度学习领域重要人物的提及情况,因此作出下图(这有点类似于论文引用量计数,但是:① 它比论文的“0/1”计数更稳定, ② 对总范围进行了标准化。
值得注意的几点:提交的论文中有 35% 提到了“bengio”,这里有两个 Bengio : Samy Bengio 和 Yoshua Bengio,我们做了合并。 Geoff Hinton 出现的比例超过 30%!看起来很高。
热点或非热点关键词
最后,我们不去对关键词做手动分类,而是看一下热点(hot)或者非热点的关键词。
Top hot keywords 排前列的热点关键词
对此有多种定义,但是这次尝试中我查看了所有论文中每个 unigram(单个 word )或 bigram ( 双 word ),并记录了相比于去年最大使用量的比例。高于这个比例,就是去年有较大潜力但是今年表现出更高的相对频率。热点关键词排名结果如下:
- 8.17394726486 resnet
- 6.76767676768 tensorflow
- 5.21818181818 gans
- 5.0098386462 residualnetworks
- 4.34787878788 adam
- 2.95181818182 batchnormalization
- 2.61663993305 fcn
- 2.47812783318 vgg16
- 2.03636363636 styletransfer
- 1.99958217686 gated
- 1.99057177616 deepreinforcement
- 1.98428686543 lstm
- 1.93700787402 nmt
- 1.90606060606 inception
- 1.8962962963 siamese
- 1.88976377953 characterlevel
- 1.87533998187 regionproposal
- 1.81670721817 distillation
- 1.81400378481 treesearch
- 1.78578069795 torch
- 1.77685950413 policygradient
- 1.77370153867 encoderdecoder
- 1.74685427385 gru
- 1.72430399325 word2vec
- 1.71884293052 reluactivation
- 1.71459655485 visualquestion
- 1.70471560525 imagegeneration
举例来说, ResNet 的比例是 8.17,因为 1 年前( 2016 年 3 月——最大使用量的月份)它在所有提交的论文中出现的比例是 1.044% ,而上月( 2017 年 3 月)是 8.53% , 8.53 / 1.044 ~= 8.17。
所以可以从上图看到,过去一年盛行的核心创新是: 1) ResNets、2) GANs,、3) Adam、4) BatchNorm。 在研究中多使用这些模型。
在研究兴趣方面,我们看到的是 1)风格转换、2) 深度强化学习、3) 神经网络机器翻译 (“nmt”),以及 4) 图像生成 。
在架构上,热点使用是 1) 全卷机网络 ( FCN )、2) LSTMs / GRUs 、3) Siamese 网络,以及 4) 编码器-解码器网络。
非热词
在相反的方面呢?有哪些词过去一年有较少的提交,但是历史上较高。以下列举了一些:
- 0.0462375339982 fractal
- 0.112222705524 learningbayesian
- 0.123531424661 ibp
- 0.138351983723 textureanalysis
- 0.152810895084 bayesiannetwork
- 0.170535340862 differentialevolution
- 0.227932960894 wavelettransform
- 0.24482875551 dirichletprocess
我不确定 “fractal” 指什么,但是一般来说看起来像是贝叶斯非参数受到攻击。
结论
现在提交的论文主题应该是围绕全卷积编码器解码器 BatchNorm ResNet GAN( Fully Convolutional Encoder Decoder BatchNorm ResNet GAN )应用于风格转换,用 Adam 进行优化。这听起来似乎没那么不着边际。