专栏首页人工智能LeadAISRU模型在文本分类中的应用

SRU模型在文本分类中的应用

正文共1927个字,预计阅读时间10分钟。

针对rnn网络训练速度较慢,不方便并行计算的问题,作者提出了一种SRU的网络,目的是为了加快网络的训练。

SRU模型、GRU模型与LSTM模型设计上十分的相似,LSTM包含三个门函数(input gate、forget gate和output gate),而GRU模型是LSTM模型的简化版,仅仅包含两个门函数(reset gate和update gate)。reset gate决定先前的信息如何结合当前的输入,update gate决定保留多少先前的信息。如果将reset全部设置为1,并且update gate设置为0,则模型退化为RNN模型。

SRU模型结构类似于GRU网络,但又与GRU网络有所区别,图1为lstm网络结构,图2为gru网络结构,图三为sru网络结构。从图1和图2可以看出,一次计算需要依赖于上一次的状态s计算完成,因此作者修改网络结构为图3,类似于gru网络,只包含forget gate和reset gate,这两个函数可以在循环迭代前一次计算完成,便于并行计算。

LSTM模型公式

GRU模型公式

SRU模型公式

实验步骤

1:本次实验采用SST2数据。实验之前首先对文本按单词进行分词,然后采用word2vec进行预训练(这里采用按字切词的方式避免的切词的麻烦,并且同样能获得较高的准确率)。

2:由于本次实验对比采用的是定长模型,因此需要对文本进行截断(过长)或补充(过短)。

3:实验建模Input。本次实验采用文本标签对的形式进行建模(text,label),text代表问题,label代表正负情绪标签。

4:将text进行Embedding(batch_size, sequence_len, embedding_size)表示。

5:对text采用双向序列模型计算特征(sequence_len, batch_size, rnn_size)。

SRU代码实现

6:对时序模型特征进行选择,这里采用max-pooling。

7:损失函数采用负对数损失函数。

参数设置:

1:、这里优化函数采用论文中使用的ADAM优化器。

2、学习速率为1e-4。

3、训练100轮,大概需要0.5个小时的时间。

4、这里训练采用dropout=0.5和l2约束防止过拟合。

6、batch_size这里采用256字。

7、rnn_size为200

实验效果对比:

实验效果对比

注:这里分别实验了双向的GUR算法、双向的LSTM算法和双向的SRU算法。单向GRU/LSTM/SRU的算法只能捕获当前词之前词的特征,而双向的GRU/LSTM/SRU算法则能够同时捕获前后词的特征,因此实验采用的双向的序列模型。从实验结果来看,LSTM算法性能优于GRU算法和SRU算法,SRU算法优于GRU算法;但是GRU算法训练速度要比SRU算法、LSTM算法快,实际使用可以根据自己的要求做出权衡。

参考文献

TRAINING RNNS AS FAST AS CNNS(https://arxiv.org/pdf/1709.02755.pdf)

原文链接:https://www.jianshu.com/p/e7e308584b20

本文分享自微信公众号 - 人工智能LeadAI(atleadai)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python调用C函数的方法以及如何编写Python的C扩展

    01 前言 前言属闲聊,正文请转后。 标题比较长,其实“如何用Python调用C的函数”以及“如何编写Python的C扩展”在广义上是同一件事,因为都是用C写底...

    用户1332428
  • 计算机视觉中 RNN 应用于目标检测

    深度学习在计算机视觉领域取得的巨大的发展,最近几年CNN一直是目前主流模型所采取的架构。最近半年RNN/LSTM应用在识别领域逐渐成为一种潮流,RNN在获取目标...

    用户1332428
  • 通俗易懂丨深度学习如何入门

    ? 作者:Jacky Yang(知乎) 关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。 这里有几个原因: 1.深度学习确实需要一定的数学基础...

    用户1332428
  • 100天搞定机器学习|Day7 K-NN

    最近事情无比之多,换了工作、组队参加了一个比赛、和朋友搞了一些小项目,公号荒废许久。坚持是多么重要,又是多么艰难,目前事情都告一段落,我们继续100天搞定机器学...

    统计学家
  • 吴恩达-神经网络和深度学习(第二周神经网络基础)

    双愚
  • C语言密码破解案例,精彩啊!

    现代密码学发展到今天,应该来讲破解密码的可能性已经很低了,而且破解的方法比较单一,因为现在普遍采取不可逆的哈希加密方式(如md5、SHA-1、HMAC-MD5...

    诸葛青云
  • Bi-Weekly | 百度的下一个「手机 AI」时代;纵览2017年全球智能语音交互市场

    机器之心
  • 案例分享:义乌房屋租赁市场分析(1)

    我们将以一个完整案例来操作,从数据的获取,数据的清洗,数据的建模,数据的分析以及数据的展示等整个流程来处理。在案例过程中可能涉及到的函数,命令,操作方式等,也可...

    逍遥之
  • 漫话:将密码明文保存在数据库是真的low!

    挂断电话后,我赶紧登录12306改掉了我的密码,还好我各个网站的密码不一样,这样就能很好的避免被撞库了。

    Java3y
  • 如何给女朋友解释为什么12306会用户信息泄露

    挂断电话后,我赶紧登录12306改掉了我的密码,还好我各个网站的密码不一样,这样就能很好的避免被撞库了。

    帅地

扫码关注云+社区

领取腾讯云代金券