Implicitly-Defined Neural Networks for Sequence Labeling

关注公众号【算法码上来】,每日算法干货马上就来!

论文链接:P17-2027

摘要


这篇论文介绍了一种新奇的、隐式定义神经网络,并且描述了计算它的方法。

1 介绍


传统的双向RNN只能单独计算两个方向的隐含层,现在介绍一种新的机制,将两个方向的信息直接结合起来计算。

2 INN


2.1 传统的RNN

经典的RNN给定一个输入序列$[{\xi _1},{\xi _2}, \ldots ,{\xi _n}]$和初始隐含层状态${h_s}$,然后迭代产生后续的隐含层状态:
<!–swig2–>LSTM、GRU和其他的相关变体计算方法也都类似,都是像下图这样线性计算,每一时刻的状态只依赖于当前输入和前一时刻的状态。

2.2 改进结构

这篇论文中这样计算隐含层状态:
<!–swig3–>这样整个隐含层状态序列的等式就是隐式的,记为:
<!–swig4–>在这个神经网络中,定义如下变量:数据$X$、标签$Y$、参数$\theta$,定义如下函数:
输入层变换:
<!–swig8–>隐式隐含层:
<!–swig9–>损失函数:
<!–swig10–>定义${h_s}$和${h_e}$为边界状态,$n$为输入序列长度,$F$函数构造出了一系列非线性等式:
<!–swig15–>INN结构如下图:

2.3 计算前向传播

为了计算等式$H = F(H)$,采用拟牛顿法。
令$G = H - F(H)$,转化为计算等式$G = 0$。
<!–swig19–>注意到$(I - {\nabla _H}F)$是一个稀疏矩阵,所以采用Krylov子空间方法,具体是稳定双共轭梯度法(BICG-STAB)算法来计算。

2.4 梯度

为了训练模型,采用随机梯度下降,定义损失函数:
<!–swig21–>其中
<!–swig22–>所以
<!–swig23–>所以整个梯度就是
<!–swig24–>

2.5 转换函数

回忆在GRU中,有如下转换函数:
<!–swig25–>其中在GRU中${ {\hat h}_t} = {h_{t - 1}}$,在INN中做一个替代:
<!–swig27–>

3 实验


序列标注

如下图所示,这个模型的效果甚至比标准的序列标注器还要好!

4 结论


介绍了一种隐式定义神经网络,应用到了序列标注任务上,效果比双向LSTM、双向GRU等还要好。
还有一些工作可以改进,比如可以在双向LSTM上面改造INN,加速计算${(I - {\nabla _H}F)^{ - 1}}$等等。


赏

   转载规则


《Implicitly-Defined Neural Networks for Sequence Labeling》 由 韦阳 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Transfer Learning for Sequence Tagging with Hierarchical Recurrent Networks Transfer Learning for Sequence Tagging with Hierarchical Recurrent Networks
关注公众号【算法码上来】,每日算法干货马上就来! 论文链接:链接 摘要 探索一种神经序列标注的迁移学习方法,适用于源任务有大量标注标签,但是目标任务标注标签很少的情况,主要有三个方面:跨领域、跨应用、跨语言。 1 介绍 序列标注任务的
2017-11-13
下一篇 
Semi-supervised sequence tagging with bidirectional language models Semi-supervised sequence tagging with bidirectional language models
关注公众号【算法码上来】,每日算法干货马上就来! 论文链接:P17-1161 摘要 从未标注文本中学习到的预训练词向量已经成为NLP任务神经网络结构的重要组成部分。但是大多数情况下,现在的循环神经网络还是从极少的标注数据中学习上下文相
2017-10-03
  目录