ThinkNet:迄今为止最简单的语言建模网络

创业指导 阅读(1225)
网赌fg电子

ThinkNet:迄今为止最简单的语言建模网络

来自arXiv

作者:杰弗里达斯汀

参与:陈云英,拍摄

这篇简短的论文介绍了一个名为ThinkNet的模型。该模型非常简单,可以应用于语言建模任务,并且可以在某些任务中达到当前最佳水平。

30d991a104f046279543020efc08f44c.jpeg

论文地址:

这篇简短的论文介绍了一种名为Think Again Network(ThinkNet)的抽象,可用于任何与状态相关的函数(例如循环神经网络)。本文展示了网络在语言建模任务中的简单应用,它在Penn Treebank上实现了最低程度的混淆。

ThinkNet

给定任何状态依赖函数F(x,s),其中x是输入,s是状态,ThinkNet可以定义为:

64911205508d4129b4b4f5a32ba1380b.jpeg

其中s是初始状态,t≥1是ThinkNet的时间步长,M([z1; zt?1])是任意混合函数(静态函数或可训练神经网络),混合功能将所有先前的输出组合成新的状态。然后优化函数L(TN(F,T))而不是损失函数L(F(。))。

66bfb48029fc4f9ba0d6245feb4e5927.jpeg

图1:ThinkNet图运行4个时间步(在状态相关函数F(x,s)上实现)。在t=0时,网络初始化为状态s(0)。在t>如图0所示,混合函数M基于前一时间步t,t-1,1生成的所有输出计算下一状态s(t + 1)。最后,在结束时计算损失L.这个过程。

从本质上讲,“Think Again”抽象通过添加额外的循环来扩展任何状态相关的函数。想法是重复运行函数F(x,s)t次(每个ThinkNet时间步长一次)并让混合函数M为下一次执行做好准备。

为此,将M定义为网络之前生?傻乃惺涑龅暮? “再思考”的概念意味着一个人通过多个动作完成一项任务:在处理完手头的问题并更新“心态”之后再次思考问题通常很有用。

从概念上讲,任何问题都可以通过这个框架来解决,就像:人们将在再次解决问题时学会推理所有先前的答案(z1,z2,zt?1)(为此,我们训练自己的“混合函数” M)。

从人类问题解决者和深度学习模型的角度来看,这是有道理的,这可以从处理问题时提前理解问题的内在表现中受益。在语言/序列建模环境中,如果我们事先知道在阅读短语/序列时它将如何结束,我们将受益。

Delta Loss

在定义ThinkNet之后,我们可以简单地计算T个时间步之后的损失。我们做了另一个选择,Delta Loss(?L):

160158abfea54f73a8740f9447581066.jpeg

等式2的第一项是在时间步t和t + 1的后续损失之间的所有差的总和。这样的梯度下降将使模型最大化在每个时间步减少损失的速率。我们鼓励它在每个时间步骤改进其解决方案,而不是让模型在T次迭代后产生令人满意的损失。

我们的假设将促进融合:使用Delta Loss训练的模型应该能够将计算扩展到更多的时间步骤并产生更好的结果。相比之下,仅使用最后一个损失L(TN(F,T))训练的模型可能仅获得较差的中间状态,如果它们在超过t个时间步长之后使用,则相反将导致发散。

公式2中的“微分和”项具有可扩展的有趣属性。除了第一个和最后一个项目,其他项目相互抵消,结果变为L(TN(F,T))? L(TN(F,1))。这使得整个方程更简单,尽管效率低下,因为仍然需要迭代所有损失来计算最大损失项。

当然,该模型可以自由地学习操纵其输入以在某个时间点产生高损耗以减少它并获得大的增量。这可以通过将所有迭代中的最大损失作为等式2的补充来防止。

e939f1cdb59143a8b718b3de8bb4c079.jpeg

图2:使用Delta Loss扩展的ThinkNet。基础设施与图1所示的基础设施相同,但这里我们计算每个ThinkNet时间步t的损失L(t)。计算后续损失之间的Δ?(L(t + 1),L(t)),然后将最终损失定义为所有时间步长的最大损失maxL(t)加上所有ΔP?(L(t +1) ),L(t))。

在语言建模中的应用

给定一系列令牌,语言模型给出下一个可能令牌或Plm(xt | x1,xt?1)的概率分布。当使用诸如LSTM的神经网络对P进行建模时,获得了非常好的结果[10]。在这里,我们在ThinkNet中封装了AWD-LSTM [11]语言模型并评估其性能。

AWD-LSTM编码器Flm(x,s)在观察具有一些先前状态s的一系列标记x之后给出序列表示。将Flm转换为ThinkNet所需的只是一个混合功能。下面我们选择一个简单的函数:

在这里我们找到前两个状态的平均值,其中zt=[(h1,c1); (hL; cL)],每个元组和(hl,cl)的求和除法是以元素为单位计算的。

我们在表1中的结果表明,有10个ThinkNet T3模型可以测试ThinkNet时间步长训练,即使没有连续的缓存指针也能实现最佳性能。如果使用连续缓存指针,则差距会更大。我们也认为它是迄今为止这类模型最简单的模型。值得注意的是,我们没有执行任何超参数调整。

ad9ebcbaccfb4b8da7924878395238ac.jpeg

表1:以上是PTB语言建模的先前最佳技术。以下是我们的模型。所有ThinkNet模型都使用tT=10(测试ThinkNet时间步长)。在没有原始AWDLSTM模型的任何附加参数的情况下,以3个时间步长训练的两个ThinkNet模型大大超过了先前的技术水平。

0496d630b0c84b238424c4ef9d7b14cd.jpeg

图3:在PTB上,以1到10个测试时间步长(tT)评估在1到3个ThinkNet时间步长中训练的模型。但是,正常AWD-LSTM模型(T1)的性能会随着训练的时间步长而降低,但ThinkNet模型将继续改进,直到收敛。

看看更多