天天看点

神经网络图灵机DAY2

学习论文Memory Networks。Memory Networks又一个记忆数组和4个组件构成。其中记忆数组类似于Neuron Turing Machines中的external memory一样,也是用额外的内存来增强整个网络的能力。四个组件分别是:

I(输入特征映射):对原始数据预处理部分并将处理转化后的数据特征传给下一个组件,比如对图像的模糊化之类的,当然最简单的就是不做任何处理,直接将原始数据传给下一个组件。

G(更新记忆):在从I步骤得到数据特征后,基于此更新记忆数组,最简单的方式就是直接将得到的输入特征存入记忆数组,原论文中也有基于数据更新整个记忆数组的方法。

O(输出):基于最新的记忆和输入特征映射,得到初步的输出,也就是得到一个o = O(I(x),m),其中o为输出、O为输出函数、I(x)为输入特征映射、m为更新后的记忆。原论文给出o1=O1(x,m)=argmax(O(I(x),mi)),这里的意思就是遍历整个记忆数组,得到是的O(I(x),mi)最大的一个作为o输出,注意这里我们可以有多个输出,也就是说可以输出o1、o2…。这里o2一般为o2=O2(x,m)=argmaxO([I(x),mo1],mi)而这里(I(x)变成了[I(x),mo1],也就是说我们之前得到的记忆要考虑在内。

R(响应):基于o获得我们最后想要的输出,我们的o得到的是与问题最相关的记忆,我们是从最相关的记忆再来得出最后的输出,这就是R,r=R([x,mo1,mo2],w)最后输出r,这里的R和O一样都是基于一定条件(这里是[x,mo1,mo2])来比对我们的输出集合W中的内容(注意这个架构我们所有的输出必定存在于输出集合内),并将最匹配的那个w作为最终的输出。

神经网络图灵机DAY2

这是最后的loss function,其中我们可以发现这里的优化需要O、R部分参与,且对于监督学习我们必须同时提供O、R的标签,这在实际应用中显然不现实,我们很难给出O这个中间过程的标签,接下来的End-to-End将解决这个问题。

继续阅读