神经网络里的信息存储在哪里?
神经元的活性和神经元之间的权重都存储了重要信息,有没有更好的存储方式呢?如何向生物记忆学习呢?
这篇论文带了一些思考:
一 首先是洪亮劼(http://weibo.com/hongliangjieml)对论文的解读:
这篇文章的作者整容堪称豪华,有来自多伦多大学的Jimmy Ba、来自Google DeepMind的Volodymyr Mnih、Joel Leibo以及Catalin Ionescu,外加Geoffrey Hinton坐镇。那么,这篇文还在那个的主要内容讲了什么呢?其实是讲了一个比较直观的想法,但是整篇文章其实还有一丝仿生学思辨的味道。
文章一开始就讲明了现在的问题,那就是在传统的Recurrent Neural Networks(RNN)领域,有两种形式的Memory。这两种Memory形式有不一样的结构、目的和容量(Capacity)。Short-Term Memory直接通过Hidden Vector来存放信息,容量是O(H),这里H是Hidden Units的数量。而另一方面,Long-Term Memory,通过现在的输入信息和Hidden Vector,来得到下一步的输出信息以及新的Hidden Vector,总共的容量是O(H^2)+O(IH)+O(HO),这里I和O是输入单元以及输出单元的数量。另外一种比较传统的Long Short-Term Memory Networks(LSTM)依然只拥有O(H)的处理Short-Term Memory的能力。
于是这篇文章的核心就是想提出一种能够更加有效得提供记忆的机制。当然,文章用了一小节从生理学的角度来讲如何有这样的启发,不过这恐怕主要是想把文章的立意拔高,其实和后面的主要模型部分并没有直接的联系。
简单说来,这篇文章提出的模型基于传统的RNN进行了这样的改进:
那么怎么理解这个Fast Weights呢?直观来说,这个Fast Weights就是一个Attention机制,把现在的Hidden Vector和过去的任意Hidden Vector进行比较,通过Outer Product的结果来决定Attention的强度。有了这么一种Attention机制,整个模型就能够对过去类似的记忆进行回忆,产生一个可以对近期的信息进行综合反应的效果。
在稳定Fast Weights的目的下,文章还使用了Layer Normalization的技术,这里就不复述了。
文章的一些实验结果惊人,比如在一个人造的数据集上,提出的模型的效果能够很容易达到0错误率。而在MNIST的数据上做Visual Attention,提出的模型也能有非常不错的效果。
二 个人论文标注笔记
本文由zdx3578推荐。