RNN3篇论文总结

RNN论文总结

A Critical Review of Recurrent Neural Networks for Sequence Learning

马尔可夫模型(HMM)

  • 过程中每个状态的转移只依赖于之前的n个状态,n阶马尔可夫模型

  • 将来与过去无关,只与现在有关,不断向前形成这样的过程

  • 一些概念:状态空间(随机变量取值的集合);转移概率(前一时刻某取值下当前时刻取值的条件概率)转移概率矩阵: X m X_m Xm X m + 1 X_m+_1 Xm+1的状态对应的条件概率矩阵

  • 应用:语音识别,词性自动标注,音字转换,概率文法、序列分类

  • 与时序的区别:本质是概率模型,通过转移概率、转移概率矩阵和之前状态联系起来

这里不适用

  • 适当的离散空间,无法长期依赖

RNN

  • 同样取决于前一时间步
  • 时间步有隐藏层:隐藏状态 接受前一隐藏状态和当前值形成新的隐藏状态
输入

输入序列x(1),x(2),...x(T),实值向量

输出序列y(1),y(2),...y(T)

不一定限于时间,序列有定义的顺序即可

概念
  • w j j ′ : w_{jj'}: wjj: from j ′ j' j to j j j

  • j j j 的激活函数: l j l_j lj

  • 在这里插入图片描述

  • 和叫 incoming a j a_j aj

  • 激活函数常见: 1 1 + e − z \frac{1}{1+e^{-z}} 1+ez1 e z − e − z e z + e − z \frac{e^z-e^{-z}}{e^z+e^{-z}} ez+ezezez 还有 m a x ( 0 , z ) max(0,z) max(0,z)

  • k个节点的输出
    在这里插入图片描述

BP(back-propagation反向传播神经网络)

  • 前馈网络:有向图分层,从低到高,学习迭代更新权重来最小化损失函数(当前值与目标值的距离)

    反向传播:梯度下降法调整权重

在这里插入图片描述
η是学习率,根据每个参数对于目标函数的梯度来更新

  • AdaGrad: 缓存梯度的平方和调整学习率,为每个特征步长×缓存值平方根的倒数,大的变小,小的变大

  • Adadelta:滑动窗口,存移动平均,根据这个进行预测学习率,使用指数加权来移动梯度平方和
    在这里插入图片描述

  • 遗传算法

递归神经网络

  • 前馈神经网络,跨越相邻时间步长的边来增强,
    在这里插入图片描述
    ​ h是算隐藏层的
    在这里插入图片描述

在这里插入图片描述

早期循环网络
  • Jordan:1个隐藏层,输出节点->特殊单元(weight=1)->隐藏节点
  • ElmanJordan差不多,它们的区别是:Elman里面隐藏层参与更新自己,Jordan里面隐藏层只参与更新输出层,然后输出回来更新隐藏层
  • 问题:梯度消失和梯度爆炸
训练循环网络
  • 截断时间反向传播(TBPTT):把整个序列划分成子序列,子序列内部是标准的RNN,子序列之间不加权重。这样会牺牲学习长程依赖关系,但是可以改善梯度爆炸和梯度消失问题。
  • GPU,LSTM

现代RNN

​ Long Short-Term Memory by Hochreiter and Schmidhuber(1997)–LSTM

​ Bidirectional Recurrent Nerual Networks ny Schuster and Paliwal(1997)–双向递归

LSTM

在这里插入图片描述

  • g c ( t ) g_c^{(t)} gc(t) :输入节点,从输入层 x ( t ) x^{(t)} x(t) 激活,隐藏层 h ( t − 1 ) h^{(t-1)} h(t1) 激活,激活函数tanh

  • i c ( t ) i_c^{(t)} ic(t) :输入门,和输入节点一样被激活,激活函数sigmoid(0-1),乘输入节点(如果值为0,那么输入节点被切断)

  • f c ( t ) f_c^{(t)} fc(t) :忘记门,和输入门一样,意思是要忘记前一个节点的一些东西

  • s ( t ) s^{(t)} s(t):内部状态, s ( t ) = g ( t ) × i ( t ) + f ( t ) × s ( t − 1 ) s^{(t)}=g^{(t)}\times i^{(t)}+f^{(t)}\times s^{(t-1)} s(t)=g(t)×i(t)+f(t)×s(t1)

  • v ( t ) v^{(t)} v(t):输出门
    在这里插入图片描述

双向递归神经网络BRNN

在这里插入图片描述

z z z 层是反向的隐藏层,同时考虑两个隐藏层

神经图灵机NTM

​ 神经网络+可寻址的外部储存器

应用

自然语言输出
  • 评价系统:BLUE, METEOR

    两个多层LSTM翻译模型

  • 源语一个一个词到编码LSTM,不输出,在结束的时候传输信号给输出LSTM,用已有的源语和翻译训练

    图像字幕

  • 使用卷积神经网络对图像编码,用LSTM解码

    手写识别

  • 双向LSTM

Recurrent neural network based language model

模型描述(RNNLM)

  • 语音识别模型,递归神经网络,任意长度上下文

  • Elman递归神经网络,随机梯度反向传播

  • 输出层 y ( t ) y(t) y(t) 表示给定前一个单词和上下文的下一个单词的概率分布

  • 利用反向传播(BP)更新权重

  • 学习率 α = 0.1 \alpha=0.1 α=0.1 ,没有显著改善时减半,再没有显著改变停止

  • 一些基于问题的优化:把不常用单词拿出来,概率均匀分布

  • softmax函数:把k个输入值转化为和为1的向量,负的小;sigmoid函数:把值映射到0-1的区间

  • 模型正向计算

    • x t = w t + s t − 1 x_t=w_t+s_{t-1} xt=wt+st1

      w w w 是词向量,one-hot编码表示

    • s t j = f ( ∑ i x t i u j i ) s^j_t=f(\sum_{i} x_t^iu_{ji}) stj=f(ixtiuji) f f f 是激活函数

      s s s 状态,较小的值比如0.1

    • y t k = g ( ∑ j s t j v k j ) y^k_t=g(\sum_{j} s_t^jv_{kj}) ytk=g(jstjvkj) g g g 是softmax函数

  • 误差计算

    E t = d e s i r e d t − y t E_t=desired_t-y_t Et=desiredtyt

Recurrent Netural Network Regularization 递归神经网络正则化

Dropout

  • 目的:环节卷积神经网络CNN的过拟合
  • 原理:随机失活 在模型训练向前传播过程中,让某些神经元以一定概率停止工作
  • 由于训练时神经元以概率 p p p 失活,与测试集数据尺度不同,所以测试的时候所有权重参数 w ∗ = ( 1 − p ) w*=(1-p) w=(1p) 。并且在巡礼你的时候Dropout正常工作,测试时要停止工作。
  • 作用:Dropout导致两个神经元不一定每次都在一个网络里面出现,这样权值更新不再依赖于有固定关系的隐含节点的共同作用,这样阻止了某些特征仅仅在其它特征下才有效果的情况。

用LSTM细胞正则化RSS

原LSTM公式

在这里插入图片描述

添加了Dropout的公式

在这里插入图片描述

​ D表示Dropout,在没有循环的时候使用Dropout,这样可以保留LSTM长时间记忆的能力。

一些实验

语言建模、语音识别、机器翻译、图像标题生成 正则化的LSTM都比原来的有改善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于RNN的文本分类是一种利用循环神经网络(Recurrent Neural Network,RNN)来对文本进行分类的方法。RNN是一种具有记忆功能的神经网络,能够处理序列数据。在文本分类任务中,RNN可以对输入的文本序列进行逐步处理,并利用其记忆功能来捕捉文本中的上下文信息。 在基于RNN的文本分类中,通常的做法是将文本序列转化为词嵌入(word embedding)表示,然后将这些词嵌入输入到RNN模型中。RNN模型会逐步处理输入的词嵌入,通过循环的方式将前面的信息传递到后面的步骤中。最后,RNN模型会输出一个固定长度的向量表示,该向量可以用于进行文本分类任务。 在论文《Recurrent Neural Network for Text Classification with Multi-Task Learning》\[1\]中,作者提出了一种基于RNN的多任务学习方法来进行文本分类。该方法通过在RNN模型中引入多个任务,同时学习多个相关的文本分类任务,从而提高了模型的性能。 具体而言,该方法在RNN模型中引入了一个额外的任务,该任务与主要的文本分类任务相关。通过共享RNN模型的参数,多个任务可以共同学习,从而提高模型的泛化能力。此外,该方法还使用了一些技巧,如dropout和L2正则化,来进一步提高模型的性能。 在代码实现方面,可以参考论文中提供的代码框架\[3\]。该代码框架定义了一个RNN类,其中包含了嵌入层、双向LSTM层、全连接层和softmax层。通过实例化该类,并传入相应的参数,可以构建一个基于RNN的文本分类模型。 总结起来,基于RNN的文本分类是一种利用循环神经网络来对文本进行分类的方法。通过逐步处理文本序列并利用记忆功能,RNN能够捕捉文本中的上下文信息。在多任务学习中,可以通过共享RNN模型的参数来同时学习多个相关的文本分类任务,从而提高模型的性能。代码实现方面,可以参考论文中提供的代码框架。\[1\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [【NLP傻瓜式教程】手把手带你RNN文本分类(附代码)](https://blog.csdn.net/fengdu78/article/details/104489295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值