NIPS 2015 Deep Learning Symposium

今天小S 决定咬着牙写写 NIPS 2015 的论文总结。NIPS 文章理论较多,耗时耗力,如果有总结不周的地方,大家多多包涵,多多指正。因为 NIPS 文章也很多,我将会按照官方的 topic 分类。今天先分享 Deep Learning Symposium 中一些 references。依然很多,今天是第一部分,周五争取分享剩下的。

今天包括的:

《Character-aware Neural Language Models》. Yoon Kim, Yacine Jernite, David Sontag, Alexander M. Rush.

《Character-level Convolutional Networks for Text Classification》. Xiang Zhang, Junbo Zhao, Yann LeCun.

《A Neural Algorithm Of Artistic Style》. Leon A. Gatys, Alexander S. Ecker, Matthias Bethge.

Listen, attend and spell》. William Chan, Navdeep Jaitly, Quoc V. Le, Oriol Vinyals.

《Skip-thought vectors》. Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov, et al.

《Ask me anything: Dynamic memory networks for natural language processing》. Ankit Kumar, Ozan Irsoy, Peter Ondruska, et al.

《Teaching machines to read and comprehend》. Karl Moritz Hermann, Tomáš Kočiský, Edward Grefenstette, et al.

《Towards AI-complete question answering: A set of prerequisite toy tasks》. JasonWeston, Antoine Bordes, Sumit Chopra, et al.

Visualizing and understanding recurrent networks》. Andrej Karpathy, Justin Johnson, Li Fei-Fei.

End-to-end memory networks》. Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, Rob Fergus.

《Grid long-short term memory》. Nal Kalchbrenner, Ivo Danihelka, Alex Graves.

 

 

Character-aware Neural Language Models

 

这篇文章之前挂在 arXiv 上,现在已经被 AAAI 2016 正式接收。推荐系数5星。是一篇 NLP 和 DL 结合的非常好的论文,而且信息量非常大。他们的 model 由两个部分组成,character-level 的输入,输入给 CNN,CNN 的输出,输入给 RNNLM,但最终预测仍然是 word-level。

In this work, we propose a language model that leverages subword information through a character-level convolutional neural network (CNN), whose output is used as an input to a recurrent neural network language model (RNNLM).

只用了一次 convolutional + pooling (max-over-time),并且作者表示用多次 conv+pooling 的组合(stacked,就像 CNN for Sentence Modeling 那里一样,并没有提升效果)。Whereas a conventional NLM takes word embeddings as inputs, our model instead takes the output from a single-layer character-level CNN with max-over-time pooling. 除了在 stacked 与否的问题上,和 Sentence Modeling 的 CNN 不同的第二个地方在于,这里不再是 wide convolutional,而是 narrow convolutional。

特殊的地方在于 pooling 的 output 不是直接输入给 LSTM,而是先经过一个基于 Highway Network (HW-Net)改造的 module。而且在实验中,作者验证了,如果没有这个 module,效果会差。这个 HW-Net Module 只对 character-level 的模型有效,对于 word-level input,则无提升。HW-Net 相当于另一个 nonlinear 隐层,作用类似于别的模型中的 MLP(multilayer perceptron),增强 feature 之间的 interaction 的。在这篇论文中的这个模型里,因为 conv+pooling 只是单层,没有那么多 interaction 被 model 进去,所以考虑了这层 interaction。但是作者声称尝试了 stacked CNN,没有提升,所以是否可以推论 highway networks 的 interaction 和 stacked CNN 是不同的?

  • Similar to the adaptive memory cells in LSTM networks, HW-Net allows for training of deep networks by adaptively carrying some dimensions of the input directly to the output.

  • Applying HW-Net to the CharCNN has the following interpretation: since each output is essentially detecting a character n-gram (where n equals the width of the filter), HW-Net allows some character n-grams to be combined to build new features (dimensions where transform ≈ 1), while allowing other character n-grams to remain ‘as-is’ (dimensions where carry ≈ 1).

最后作者在实验结论部分表示这个 highway 对于 character-aware compositonal 的 model 非常重要,对于 word-level 不重要。加不加这个东西,可以从学出来的 word representation 周围都是啥词看出效果(见 Table 5). 这个结果还是不要太明显……震惊。

  • Before the highway layers the representations seem to solely rely on surface forms—for example the nearest neighbors of you are your, young, four, youth, which are close to you in terms of edit distance. The highway layers however, seem to enable encoding of semantic features that are not discernable from orthography alone. After highway layers the nearest neighbor of you is we, which is orthographically distinct from you. Another example is while and though— these words are far apart edit distance-wise yet the composition model is able to place them near each other.

HW Net 对于 word-level 没用的原因是:dimensions of word embeddings do not (a priori) encode features that benefit from nonlinear, hierarchical composition availed by highway layers. 最后这篇的 Related Work 也很值得看。

 

 

Character-level Convolutional Networks for Text Classification

 

这篇论文前身是《Text Understanding from Scratch》,当时在微博上一时因为实验效果太过拔群,引起轰动和过分关注。最后被发现是实验数据测试集训练集有严重重叠,暂时撤稿。重新修改后被 NIPS’15 接收。这篇论文的风格给人感觉非常不 NLP,从术语到模型思路,到写作风格,都感觉是纯做 Deep Learning 的人,来做了 NLP 的任务而已。



文章中的模型是完全基于 ConvNet 改造。按照作者的原话是,This article is the first to apply ConvNets only on characters。是很规矩的, temporal convolutional,temporal max-pooling (max-over-time),然后有 dropout 在最后三个全连接层。值得注意的是他们用到的 nonlinear funtion 是 rectifier/thresholding:h(x) = max{0,x},使得很像 ReLUs。

细节上,这个模型十分“简单”,并没有做变长的 convolutional 处理。也就是说,一旦一个输入的 text chunk,超过了他们预定的一个 length,那么后面的 character 就都不要了。输入的时候就是把一个定长的 character embedding sequence input 进去。另外的细节是,尽管不是用 RNN 这样的 recurrent 模型 encoding decoding,但他们依然用 reverse 的 input,The character quantization order is backward so that the latest reading on characters is always placed near the begin of the output, making it easy for fully connected layers to associate weights with the latest reading

在实验设置上考虑了大小写区分开,然后发现很多时候区分反而不如不区分。We report experiments on this choice and observed that it usually (but not always) gives worse results when such distinction is made. One possible explanation might be that semantics do not change with different letter cases, therefore there is a benefit of regularization. 他们使用了 Data Augmentation,用同义词去制造更多的“正例”。这部分细节在 Section 2.4。

 

 

A Neural Algorithm Of Artistic Style

 

这篇文章应该是这次 Symposium 中最著名的了。看看下面这些作品:

这个工作被叫做 neural art,就是用 Deep Neural Networks 的方法,将一些作品,进行特定风格化(photorealistic rendering)。比如可以将梵高在《Starry Night》中的那种,高对比和清晰笔触的风格,渲染在各种风景摄影作品上。

这个工作主要基于 CNN,其核心是对一张图片中的 content 和 style 分别建模 representation,而核心的核心就是 style 的建模。由于 CNN 的 hierarchy,content 建模中,越是 high-level 的 content representation 可能越 general,越难 reconstruct;但另一方面,style representation,则是在 high-level 的地方更不容易被“image content”的局部信息所“迷惑”。

因为 content 和 style 是很难完全独立开的,在网络设计上,作者也考虑了这点。所以 style representation 并不是基于某一层的 content representation,而是在 CNN 中的每一层都有一个 style representation。style representation 的建模就是利用“不变性”——这背后的假设其实是,不管你在画什么东西,画哪个局部,你的 style 应该保证了一种局部性;不变的 feature,才是 style。所以它采用的是对比每一个层 filter 之间的 correlation,进行 style representation

这个工作已经有相当多开源代码,在线应用,也被集成在各种 NN 框架中。大家有兴趣可以找来玩玩。

 

 

Listen, attend and spell

 

这篇文章其实挺简单的。核心思想就是用一个 listener-speller encoder-decoder 的结果做 speech recognition(speeach utterances -> characters)。listener(encoder)部分用的是 pyramidal RNN,这个比较特别,作者 argue 说 pyramidal RNN 对于这个任务提速显著。


pyramidal RNN 的部分,实质是一个 hierarchical 的 Bi-LSTM (pBLSTM)。而这个架构,就像 CNN 一样,high-level(在“金字塔”顶端)的 features 会比较少,比较“浓缩”,用这样少一些的 features 传给 decoders,会减少 decoder 解析的耗时,提高解析的能力,并且整体上提高 encoder-decoder 的 inference 速度。

另一方面,speller 端用的 attention-mechansim,好处很显然,防止 overfitting

Without the attention mechanism, the model overfits the training data significantly, in spite of our large training set of three million utterances - it memorizes the training transcripts without paying attention to the acoustics. Without the pyramid structure in the encoder side, our model converges too slowly - even after a month of training, the error rates were significantly higher than the errors we report here.

 

 

Skip-Thought Vectors

 

已经是相当有名的工作。模型上,具体使用是 RNN-RNN 的 encoder-decoder 模型;其中两个 RNN 都用了 GRU 去“模拟” LSTM 的更优表现。在 encoder 阶段,只是一个 RNN;在 decoder 阶段,则是两个(分别对应前一个句子和后一个句子——也就是说不能预测多个前面的句子和后面的句子)。

这样的模型可以保留一个 encoding for each sentence,这个 encoding 会很有用,就被称为 skip-thoughts vector,用来作为特征提取器,进行后续 task。注意是 Figure 1 中所谓的 unattached arrows,对应在 decoder 阶段,是有一个 words conditioned on previous word + previous hidden state 的 probability 束缚。同时,因为 decoder 也是 RNN,所以可用于 generation(在论文结尾处也给出了一些例子)。

本文的另一个贡献是 vocabulary mapping。因为 RNN 的复杂性,但作者又不希望不能同时 learn word embedding,所以只好取舍一下——我们 learn 一部分 word embedding(words in training vocabulary);对于没出现的部分,我们做一个 mapping from word embedding pre-trained from word2vec。这里的思想就是 Mikolov'13 年那篇 word similarity for MT 的,用一个没有正则的 L2 学好 mapping。

在实验中,他们用此方法将 20K 的 vocabulary 扩充到了 930K。

In our experiments we consider 8 tasks: semantic-relatedness, paraphrase detection, image-sentence ranking and 5 standard classification benchmarks. In these experiments, we extract skip-thought vectors and train linear models to evaluate the representations directly, without any additional fine-tuning. As it turns out, skip-thoughts yield generic representations that perform robustly across all tasks considered.

首先是他们有三种 feature vectors,uni-skip/bi-skip/combine-skip。分别对应 encoder 是 unbidirectional,bidirectional,和 combine 的。分别都是 4800 dimensions。对于不同的 task,可能用不同的 feature indicator,比如把两个 skip-thoughts-vectors u 和 v,点乘或者相减,作为两个 feature,再用 linear classifier(logistic)。

 

 

Ask me anything: Dynamic memory networks for natural language processing

 

这篇文章也是相当早就放在 arXiv 上了,ACL 2015 的论文中就已经有人引用。文章来自 Richard Socher 的 MetaMind 团队。主要就是利用一个 dynamic memory network(DMN)框架去进行 QA(甚至是 Understanding Natural Language)。


这个框架是由几个模块组成,可以进行 end-to-end 的 training。其中核心的 module 就是Episodic Memory module,可以进行 iterative 的 semantic + reasoning processing。DMN 先从 input 接受 raw input(question),然后生成 question representation,送给 semantic memory module,semantic module 再将 question representation + explicit knowledge basis(只是设想) 一起传给核心的 Episodic Memory module。这个 Episodic Memory module 会首先 retrieve question 中涉及到的 facts 和 concepts,再逐步推理得到一个 answer representation。由于可能有多个涉及到的 facts 和 questions,所以这里还用到了 attention mechanism。最后,Answer Module 就可以用接收到的 answer representation 去 generate 一个真正的 answer。

 

 

Teaching machines to read and comprehend

 

这篇论文有两个主要贡献,一个在于 attention-based model 的运用和改进,一个在于构造了一个 supervised document-query based 的数据集,虽然说是供 machine comprehend 使用,其实依然没有超过 QA 范畴,就是基于一篇 document,一个 query(document-query pair)回答一个 entity form 的 answer。数据集在此不表。来看他们 attention-based 的相关 model。


论文一共提出三个新 model,其中只有后两个(图中 (a)(b))是 attention-based 的。input 都是一个 document query pair。作者尝试了两种机制,一种是 document 按一小段句子(以标点分割)输入,一小段句子+一个query,这样算一次输入;另一种是一篇 document 全部输入完毕再输入 query,这种方法被认为失去了 query 的 mention 作用。

两个 attention-based model,(a) Attentive Reader 和 (b) Impatient Reader。(a) 非常好理解,看 (a) 左边就是标准的 attention mechanism 的结构啊,对比一下:

再看 (b) Impatient Reader,这个 model 很有趣,尤其和我下面想说的非 NLP 那篇有点像。我按我的理解来解读,这个 model 强调“reread”,就是说,对于每一个 query,有许多个 token,按照 query token 一个个输入,每一个 query token(不再是每一个 query),就都读一遍 document,然后下一个 token,再来一遍——reread。

我会把这种 reread 机制,理解为一种“逐渐”获取(理解)文章的过程,就像我们读一篇艰深的文章,读一遍不成,读两遍,读三遍。这个机制的 motivation 很好,但是如果只用来预测一个 token(the answer),我会认为起不到 motivation 的作用。个人理解。

 

 

Towards AI-complete question answering: A set of prerequisite toy tasks

 

和《Ask Me Anything》那篇一样,也是很早就放在 arXiv 上的工作。这个数据集不仅被《Ask Me Anything》引用,也被很多 ACL 2015 和后续的 QA 工作引用。文章主要就是介绍他们的 AI-related QA 数据集,因为是 Facebook 团队制作且有 20类问题,所以这个数据集后来被缩写为 FB20。

按照上次介绍的 ICLR2016 中 Jianfeng Gao 团队的工作,在这 20类问题中,最难做的是 position reasoning 和 path finding 两类任务。

We achieve near-perfect accuracy on all categories, including positional reasoning and pathfinding that have proved difficult for all previous approaches due to the special two-dimensional relationships identified from this study.

 

如果想了解在这个数据集上的一些工作,可以看下面几篇论文:

1.《Learning Answer-Entailing Structures for Machine Comprehension》Mrinmaya Sachan, Kumar Dubey, Eric Xing, Matthew Richardson. ACL 2015. CMU 出品,Eric Xing 老师的组。本文不是 NN,数学上还算简单。个人觉得有两个亮点,一个就是假设了一个中间的 hypothesis,一个是在数学的地方结合了 multi-task,并使用了 feature map 的 technique 把 multi-task 给“退化”成了原始问题。他们先用 Question 和 Answer,学出一个 hypothesis,这个 hypothesis 就是一种 latent variable,也可以认为是一种 embedding 后的 fact。如果我们认为 question + answer 共同描述了一个 fact/truth/event 的话。基于这个 hypothesis,再去 match 原始 paragraph/text 里的 relevant words。具体可以看看 Figure 1.我觉得这个蛮有趣的。因为让我想起编码解码。Question + Answer 的组合就是一种 对于这篇 doc 的一种表达;而这篇 doc 本身是另一种表达。这两种表达就是两种 representation 的结果,那么中间真实的事情是什么?所谓的完整的 information 是什么?他这样直接结合的 hypothesis 肯定也是 reduce 了信息的。实际我觉得现在 Machine Translation/Conversation 那边也在做类似的事情。我们不要直接一对一,要有中间一个看不见的“hypothesis”。第二个 multi-task,他们用了FB20这20类,把任务细分,细分成 20个 subtask。这样就变成了 multi-task 的问题。然后使用了 feature map(Evgeniou 2004)的技术,把 multi-task 又给转化成了原始问题。我觉得还蛮有趣的。当然 multi-task 已经有非常多的解决办法了,这个只是一种适用于他的模型的有效简单的办法。

2.《Machine Comprehension with Discourse Relations》. Karthik Narasimhan and Regina Barzilay. ACL 2015. MIT CSAIL 出品。开源。是一篇很 neat 的论文,而且不是 NN。这篇文章的卖点是:discourse information + less human annotation所以他们的 model,可以使用 discourse relation(relations between sentences, learned, not annotated) 去增强 machine comprehension 的 performance。具体的,他们先使用 parsing 等方法,去选出和 question 最 relevant 的一个句子(Model 1)或者多个句子(Model 2 和 Model 3),并在这个过程中建立 relation,最后预测。思想都是 discriminative model 的最简单的思想,找 hidden variable,概率连乘。如果对本文有兴趣,推荐看 Section 3.1,讨论了一下他们认为这个 task 上可能相关的四【类】feature

3.《Reasoning in Vector Space: An Exploratory Study of Question Answering》. In submission to ICLR 2016. 文章来自 Microsoft Jianfeng Gao, Xiaodong He 团队。是一份比较详细的针对 Facebook 20 tasks(FB20)的分析和工作。所谓分析是指,过去针对 FB20 的 Reasoning Work 基本都是 end-to-end 的,所以对于 error case 的分析不够明确,不知道到底是作为 basis 的 semantics 就没建模好;还是 reasoning 的过程出了问题。为了进一步提高在这个 tasks 上的 performances,作者就将 end-to-end 拆分开来,利用 tensor product representation(TPR)的方法,融合一些 common-sense inference(比如东和西是 opposite 的两个方向),将 FB20 的正确率提高到了几乎完美的程度。

 

 

Visualizing and understanding recurrent networks

 

作者是写出《The Unreasonable Effectiveness Of RNN》 博文的 Stanford 学生,Andrej Karpathy。同时 Andrej Karpathy 也是 Fei-Fei Li 教授的高徒。

这篇工作从几个月前递交到 arXiv,前几日又更新了一版,投到了 ICLR 2016,内容上是博文的扩展。主要是通过 controlled experiment 的实验方式,结合可视化的方法,去“量化”展示 char-LSTM 到底为什么 powerful,是否真的如 often cited/claimed 的那样,可以 model long term dependency。这篇工作最后的结论也和之前 Yoav Goldberg 澄清 char-LSTM 令人惊奇之处的文章一致——指出 char-LSTM 厉害之处,不在于它能 generate 出看起来还不错的 char sequence,而是在于其对于 bracket, quote 等显著 long distance information 的 retrieval 能力。

它们通过 visulization cell 的激活,gate activation statistics, error type/case analysis 的方式,展现了许多 LSTM 确实是“对应”和“负责”某些 character position 的,同时 LSTM 确实比 n-gram character language model 大幅降低了 bracket, quote 等 long distance information 的 error case。

 

 

End-to-end memory networks

 

这篇文章,及 Neural Turing Machine,其实是很多类似思想的前身工作,下次会把相关一起对比一下。这类工作的 motivation 是,如何把 large body 的 external memory 用在 Neural Networks 里。


在这篇工作中,他们就是尝试性地探究了几种方式。首先,是 single-layer or multi-layer,其次是 feature 空间如何转换。如果将这样的 end-to-end memory networks 的输出拆分成两种,就可以和 typical RNN 的工作映射起来。将 output 分为 internal output 和 external output,那么分别就可以对应到 RNN 中的 memory 和 predicted label

 

 

Grid Long-Short Term Memory

 

总的来说,这篇的贡献应该是给出了一个更 flexible 还 computation capability 更高的框架。 要理解这个论文,可能首先要理解三个概念:grid/block, stacked, depth。(1)Grid/Block 是把一个 LSTM 机制改造后的一个 component,这个 component 可以是 multi-dimensional 的,决定了几个方向进行 propagate。每一个 dimension 都有 memory 和 hidden cell。1-dimensional 的Grid LSTM 就很像上面所说的 Highway Networks。(2)Stacked 和 LSTM stacked 一样,是指把 output 和 input 连在一起。但是 stacked 并不会改变 Grid LSTM 的 dimension。stacked 2D Grid LSTM 依然是 2D 的,而不是 3D 的。从 visualize 来看,无非就是把一个个方块/方形,平铺在空间里(每个 dimension 都要延展)。(3)Depth 则是会增加 dimension。在一个 block内部,变 deep,就是增加 layers。一个 block 由几个 layer 组成,就是几层 deep 的 Grid LSTM

只是 1D/2D 的时候,Grid LSTM 看不出特别大的优点。但是当变成 multidimensional 的时候,就会比传统的 multidimensional LSTM 更好的解决 gradient vanishing 的问题。原因是,传统multidimensional LSTM 在计算每层的 memory cell 的时候,是把每个 dimensional 的 gate 信息集合起来的。显然这样有问题。Grid LSTM 就不是这样。它是每个 dimensional 分开计算memory cell。对于每一个 grid,有 N 个 incoming memory cells 和 hidden cells,同时还有 N 个outgoing memory cells 和 hidden cells。N 是 dimension 的个数。而 Grid LSTM share 的其实大的隐层 H。这样既保证了 interaction 又保证了 information flow

这篇论文后面还有挺有趣的应用,把 MT 的任务转换成一个 3D Grid LSTM 的问题,其中两个dimensions 分别是 bi-LSTM 正向逆向读写,第三个 dimension 是 depth。效果不俗。

可能这篇论文的这个框架的提出,在于让 LSTM 的变种稍微有迹可循了一点,到底有多大performance 的提高,我还是比较怀疑的。

今天继续把 NIPS 2015 Deep Learning Symposium 的论文笔记写完,这次的论文个人感觉有很多有联系,让我隐隐感到 Bayes 圣战已经再度打响……比如,early stopping, batch normalization 这些都可以在 Bayesian Neural Networks 的框架下有较好的解释了。是否可以预期,NN 这种 black-box 已经越来越透明了?

 

今天会包括的论文有:

Spatial Transformer Networks》. Max Jaderberg, Karen Simonyan, Andrew Zisserman, and Koray Kavukcuoglu.

Semi-Supervised Learning with Ladder Networks》. Antti Rasmus, Harri Valpola, Mikko Honkala, et al.

Neural Turing Machines》. Alex Graves, Greg Wayne, Ivo Danihelka.

Deep Generative Image Models Using A Laplacian Pyramid Of Adversarial Networks》. Emily Denton, Soumith Chintala, Arthur Szlam, Rob Fergus.

Natural neural networks》. Guillaume Desjardins, Karen Simonyan, Razvan Pascanu, Koray Kavukcuoglu.

Early stopping is nonparametric variational inference》. Dougal Maclaurin, David Duvenaud, Ryan P. Adams.

Dropout as a Bayesian approximation: Representing model uncertainty in deep learning》. Yarin Gal, Zoubin Ghahramani.

 

 

 Spatial Transformer Networks

 

 

来自 Google DeepMind 的工作。主要是说,尽管 CNN 一直号称可以做 spatial invariant feature extraction,但是这种 invariant 是很有局限性的。因为 CNN 的 max-pooling 首先只是在一个非常小的、rigid 的范围内(2×2 pixels)进行,其次即使是 stacked 以后,也需要非常 deep 才可以得到大一点范围的 invariant feature,三者来说,相比 attention 那种只能抽取 relevant 的 feature,我们需要的是更广范围的、更 canonical 的 features。为此它们提出了一种新的完全 self-contained transformation module,可以加入在网络中的任何地方,灵活高效地提取 invariant image features.


具体上,这个 module 就叫做 Spatial Transformers,由三个部分组成: Localization Network, Grid generator 和 Sampler。Localization Network 非常灵活,可以认为是一个非常 general 的进一步生成 feature map 和 map 对应的 parameter 的网络。因此,它不局限于用某一种特定的 network,但是它要求在 network 最后有一层 regression,因为需要将 feature map 的 parameter 输出到下一个部分:Grid generator。Grid generator 可以说是 Spatial Transformers 的核心,它主要就是生成一种“蒙版”,用于“抠图”(Photoshop 附体……)。Grid generator 定义了 Transformer function,这个 function 的决定了能不能提取好 invariant features。如果是 regular grid,就好像一张四四方方没有倾斜的蒙版,是 affined grid,就可以把蒙版“扭曲”变换,从而提取出和这个蒙版“变换”一致的特征。在这个工作中,只需要六个参数就可以把 cropping, translation, rotation, scale and skew 这几种 transformation 都涵盖进去,还是很强大的;而最后的 Sampler 就很好理解了,就是用于把“图”抠出来。


这个工作有非常多的优点:(1)它是 self-contained module,可以加在网络中的任何地方,加任何数量,不需要改变原网络;(2)它是 differentiable 的,所以可以直接进行各种 end-to-end 的训练;(3)它这个 differentiable simple and fast,所以不会使得原有网络变慢;(4)相比于 pooling 和 attention 机制,它抽取出的 invariant features 更 general。

 

 

 Semi-Supervised Learning with Ladder Networks

 

 

 


这篇论文并没有特别多的创新点,主要是将 Ladder Networks 从纯 unsupervised fashion 改成了 semi-supervised fashionLadder Networks 其实就是把 stacked autoencoder 中 layer 和 decoded reconstruction 之间加上了 skip-connection,所以就像在 encoder 和 decoder 之间有了 ladder,因此命名。那么这篇论文的改进就是在 Ladder Networks 上,encoder 部分的每一层 layer 都加入了 Gaussian noise,并保持 decoder 部分是 noise-free 的。加了 noise 的部分用于 unsupervised autoencoder loss,noise-free 的就是用来提供 supervised loss

但是这篇论文的实验结果实在是太 outstanding。在 MNIST 数据集上,达到了 1.13% 的超低错误率。这也可以一定程度上证明 semi-supervised 的 improvements。不过,这种 semi-supervised 暂时来看还没被运用得很好,因为这篇工作中,在 validation set 上用的依然是全部的 10K label,而不是小范围的 label。这点上,个人认为是有点 cheating 的。

 

 

 Neural Turing Machines

Neural Turing Machines(NTM) 这个工作应该是整个 DL Symposium 中最出名的了。跟这篇工作相关的工作有个五六篇(比如同是这个 Symposium 中的另外两篇《Large-scale simple question answering with memory networks》和《End-to-end memory networks》),下次有机会专门写一下。这次只讲这篇原始的 NTM。NTM 的 motivation 我个人理解,主要有两点:(1)neural networks 虽然可以提供很好的 hidden units 计算,去 model internal memory,但是我们在真实生活中有时候更需要 external memory 的辅助和交互(这是两件事,比如和 NTM 很像的 memory networks 其实就只有辅助,没有交互,而 NTM 是有交互的);(2)RNN 作为一种出色的 neural networks,其实是图灵完备的(已被证明)。既然如此,是否可以去把它设计成图灵机?出于这两个目的,就有了 NTM 这个工作。

 

一个 NTM 包括 Controller,Read+Write Heads 和 External Memory;Controller 就是 NN。换言之,NTM 比一般的 NN 多在了读写头和外部存储交互(memory networks 就没有读写头)。个人理解,如果把 NTM 中的 Controller 比作计算机的 CPU,那么其中的 memory 就是计算机的 RAM,而 hidden states 就是 CPU 中的 registers。NTM 中的 Read+Write Heads 非常重要,首先它们可以实现 content-based/location-based 的相关操作,也因此就可以模拟 Focus/Attention 的效果——于是就可以用 content addressing 实现查找 similar data(content-based)。Content addressing 之后,interpolation,提供的是 gate 机制;convolutional shift 提供的是 location-based addressing。有了上面这些模块,NTM 就可以模拟图灵机,实现一些算法。不仅如此,NTM 是 end-to-end differentiable 的。


从 NTM 的两个 motivation 出发,就可以看出NTM 的两个 goal:(1)NTM 是为了增强 RNN 的学习能力,那么它也应该像 RNN 一样能 solve problems;(2)NTM 是模拟图灵机,是否有可能学习出内部算法?基于这两个 goal,这篇工作中设计了很多种 tasks,比如 copy,比如 priority sort,同时横向对比了三种架构,NTM with LSTM, NTM with feedforward, standard LSTM。

 

 

 

 Deep Generative Image Models Using A Laplacian Pyramid Of Adversarial Networks

这个工作虽然知名度不那么大,但是也已经被广泛引用和改进。同样是来自 NYU 和 Facebook AI team 的合作(这次 DL Symposium 中入选的很多篇都出自他们)。工作的思想上很像之前推荐过很多次的 Google DeepMind 的DRAW(可以回复代码【GH022】查看),就是说,我们在 generate 图片时,不要强迫 model 一步到位,而是让它一步步来。

这篇工作中的 model 叫做 Laplacian Generative Adversarial Networks(LAPGAN),由 conditional GAN 和 Laplacian pyramid 结构组成。前者,conditional GAN 是 GAN 的一种改造,而 GAN 是由一个用于生成 sample 的 generative model(G) 和 一个用于比较 G 生成的 sample 和真实 training data 的 discriminative model(D)构成的框架。那么 conditional GAN 就是在此基础上,再增加上 additional information,比如 sample class/label。后者,Laplacian pyramid 则是一种层次化的图像特征表达,主要体现的图像不同 scale 之间的差异。具体公式可以见 Equation (3)-(4)。那么这篇工作就是将这两点结合起来,使得 GAN 也变成一种层次化的 framework,变成了 multi-scale 的。


个人理解,这样的 LAPGAN 有两个好处:(1)是 unsupervised,这是 GAN 的优势。可以直接从 finest/highest-scale/level 的图像,一直利用 Adversial Network 逐步进行 training;(2)就像 DRAW 一样,LAPGAN 的核心思想就是把 generation 的过程给“分解”了,变成了一种逐步的“refinement”,所以降低了网络每次需要记忆的内容量,也同时就提高了网络的 capacity 和 scalability。反过来,这样的网络也有一个劣势,就是它抛弃了图像的 global feature 和 representation,缺少了对于一个 image 的 probability,所以也就在进行 evaluate 时,需要用一些特殊的技巧(比如这篇文章中采用的 Gaussian Parzen window)。

 

Breaking the generation into successive refinements is the key idea in this work. Note that we give up any “global” notion of fidelity; we never make any attempt to train a network to discriminate between the output of a cascade and a real image and instead focus on making each step plausible. Furthermore, the independent training of each pyramid level has the advantage that it is far more difficult for the model to memorize training examples – a hazard when high capacity deep networks are used.

 

 

 

 Natural Neural Networks

这篇论文的 motivation 也很 fundamental,是说 SGD 这样基于 point gradient 的优化方法,在日趋复杂的 NN 架构上越来越无力。另一方面,distribution gradient 的方法则还有很多值得探索的空间。毕竟 distribution 在优化的过程中,是一直可被捕捉的(见今天的另一篇论文《Early stopping is nonparametric variational inference》)。Distribution gradient 的求解就需要 KL divergence measurement 和 Fisher matrix。然而,Fisher matrix 的求解计算量非常大(matrix size 大,且包括逆运算等等),使得过去想用 Fisher matrix 的工作都不太 scalable

基于这个 distribution gradient (也许)可以帮助提高 convergence 效率的想法,这篇工作开始探究 Fisher matrix 的性质。最终通过假设和实验,设计出了一种基于特定 Fisher matrix 的 NN(给 Fisher matrix 加了一些限定条件,并忽略了一些 interaction)。在这种 NN 下,它们的优化算法与更有名的 Mirror Descent 很像。

个人认为这篇工作很直观的贡献是,过去的一些 NN tricks,比如 batch normalization (before non-linearity),zero-mean activations 等等,在这个框架下,都可以有一些理论上的解释。也算是 theoretical Deep Learning的一种进展吧。

 

 

 Early stopping is nonparametric variational inference

这篇文章很推荐,是一篇优化相关的工作。出发点是,我们除了去优化 training loss,我们也可以优化 marginal likelihood。这样有很多优势,首先,我们就不需要哪些基于 validation set 的 trick 了(比如 early stopping),我们可以直接用 marginal likelihood estimator 去 evaluate performance

那么如何实现这件事呢,这篇工作给优化过程找了一些 Bayesian 的解释:优化过程中,每一步都会“生成”一个 distribution。这样,整个优化过程中,就会产生一个 distribution sequence。这个 sequence 从 Bayesian 的角度,可以看成是被某个 true posterior distribution 不断 sample 出来的,sample 的样本数 N,也就是优化的迭代次数,就可以被看成是 variational parameter。有了这样一个解释,作者进一步就把 early stopping 这个 trick 解释成了对 varitional lower bound 的优化;ensembling random initializations 就可以看成是 ensembling various independent variational samples.

上面所说的,就是这篇论文的第一个贡献(也是论文的标题)。除此以外,本文利用这样的解释,进一步去构造了 marginal likelihood estimator,并用这个 estimator 去做了 training stop 选择,model selection capacity 选择和 model hypermeter 选择。

 

之所以推荐这篇文章,并不是说它给出的这种优化方法就比以前 SGD 等等优化 training loss 的好;而是基于两个原因:(1)首先,它里面提到了非常多对于优化的思考。比如 training loss 和 marginal likelihood 两个“指标”,到底应该更“相信”哪个?varational lower bound 这个东西越高,是否真的代表 model 的 accuracy 越准?它和 validation error/test error 指标相反的时候该怎么理解?这些是很有趣的。(2)对于优化过程中 distribution sequence 的解释我个人觉得很有用,现在 variational sequence learning 的工作也越来越多,但是被优化方法局限。这个工作也是一个启发。

 

 

 

 Dropout as a Bayesian approximation: Representing model uncertainty in deep learning

这篇论文从 Bayesian 角度,解释了 why dropout works。虽然在2013年,也有人试图解释过 dropout,但当时是从 sparse regularization 的角度解释的,有一定局限性。这篇工作更 general,更 provoking

首先作者论证了 dropout 在理论上,是等价于一种 Gaussian Process 的 Bayesian approximation 的。这个证明过程很简单,大家可以去看一下。个人感觉,这个解释其实和dropout as noise regularization 很相似,毕竟 approximation 也在引入 noise。只不过它们这种解释更数学化。

随后,有了这样一种解释,就可以从使用了 dropout 的 NN 中,得到 model uncertainty。这个 uncertainty 其实才是作者的 motivation(当然也是 Bayesian 学派的 motivation)。比如现在的 NN,有一个 softmax layer 去 output 出一个 prediction,比如就是预测一个 label 吧,这个 output 只是对这个 label 的 propability,但是并不包含它对于自己这个 prediction 的 certainty 程度。设想一种情况,我们一直用 dog 的图像去 train 一个网络,最后让这个网络预测的全是 cat 的图片;最后很可能它预测的 probability 有些比较高,但其实 uncertainty 应该更高。以前的框架下,都无法很好地涵盖这种 uncertainty as output。现在,有了 dropout as approximation 的解释,就可以通过 moment-matching 的技术,从 NN 中得到这种 uncertainty 了。

得到这种 uncertainty 后,可以把它用于 regression, classification 甚至是 reinforcement learning 的各种任务上。从实验结果来看,增加了 uncertainty 之后,各种 task 都有提升。

另外可以想到,这样的 Bayesian 解释,有助于提高 model interpretation 的能力,也算是一个非常大的 motivation。最后,如果觉得论文读起来比较枯燥,可以去作者主页找他相关的 slides,看起来非常生动。主页上还有他自己写的一篇 blog,详细地展示了他的 motivation。这次 DL Symposium 中的另外两篇,《Stochastic backpropagation and approximate inference in deep generative models》和《Scalable Bayesian optimization using deep neural networks》也和这个工作非常相似,就不单独介绍了。

 

 

 

至此,NIPS 2015 Deep Learning Symposium 就总结到这里。下次暂时准备总结 RAM workshop 和 main conference 中的一些 ML-related oral paper。大家有什么推荐的文章可以在本文下方【写评论】给我。

 

相关网站:http://mp.weixin.qq.com/s?__biz=MzAwMjM3MTc5OA==&mid=401673360&idx=1&sn=a39b7d1aa90422bab9d46bb523065967&scene=20#rd

转载于:https://www.cnblogs.com/Yiutto/articles/5048260.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值