首页 > 其他分享 >NLP 之二:循环神经网络

NLP 之二:循环神经网络

时间:2024-01-17 14:23:47浏览次数:23  
标签:NLP bm odot 之二 神经网络 tilde gate LSTM sigma

我们已经预训练了词向量,接下来考虑设计神经网络解决更具体的问题。

自然语言不同于图像信息,例如子结构并不具有连续性等等。诸多困难使得CNN难以沿用,一个代替的方法是RNN。

循环神经网络(RNN)

一个单隐藏层的MLP形如:$$\bm H=\phi(\bm{XW}+\bm{b})$$

即输入 \(\bm{X}\),经过全连接的线性操作 \(\bm{XW}+\bm{b}\) 和激活函数 \(\phi\) 得到输出 \(\bm{H}\)。

在一些例子中,例如文本预测。我们如果简单的让 \(\mathbf{X}\) 是上一个单词(或者之前的若干个单词,但复杂度骤升),期望输出是下一个单词,难以体现出更之前的单词之间的关系,已经训练好的参数也被浪费了。

RNN主要思想就是,按时间顺序,将之前的输出同时作为下一次的输入(即 \(\bm{H}_{t-1}\bm{W}_{hh}\) 一项):

\[\bm H_t=\phi(\bm{X}_t\bm{W}_{xh}+\bm{H}_{t-1}\bm{W}_{hh}+\bm{b}_h) \]

注意 \(\bm{W}_{xh},\bm{W}_{hh},\bm{b}_h\) 使用的是一套参数。

在RNN中,当需更新梯度的位置距离当前过久,容易出现梯度消失或梯度爆炸。为此,GRU和LSTM是两个优秀的解决方案。

门控循环单元(GRU)

GRU引入了重置门(reset gate)\(\bm{R}\) 和更新门(update gate) \(\bm{Z}\)。(\(\sigma\) 是 sigmoid函数)

\[\bm{R}_t=\sigma(\bm{X}_t\bm{W}_{xr}+\bm{H}_{t-1}\bm{W}_{hr}+\bm{b}_r) \]

\[\bm{Z}_t=\sigma(\bm{X}_t\bm{W}_{xz}+\bm{H}_{t-1}\bm{W}_{hz}+\bm{b}_z) \]

计算候选隐藏状态

\[\bm{\tilde{H}}_t=\tanh(\bm{X}_t\bm{W}_{xh}+(\bm{R}_t\odot\bm{H}_{t-1})\bm{W}_{hh}+\bm{b}_h) \]

可以通过将 \(\bm{R}_t\) 某些位置变为较小的值,遗忘之前的信息。

\[\bm{H}_t=\bm{Z}_t\odot\bm{H}_{t-1}+(1-\bm{Z}_t)\odot\bm{\tilde{H}}_t \]

可以通过将 \(\bm{Z}_t\) 某些位置变为较大的值,继承之前的信息。

长短期记忆(LSTM)

LSTM引入了输入门(input gate)\(\bm{I}\)、遗忘门(forget gate)\(\bm{F}\) 和输出门(output gate)\(\bm{O}\),以及与隐藏状态形状相同的记忆细胞 \(\bm{C}\)。

\[\bm{I}_t=\sigma(\bm{X}_t\bm{W}_{xi}+\bm{H}_{t-1}\bm{W}_{hi}+\bm{b}_i) \]

\[\bm{F}_t=\sigma(\bm{X}_t\bm{W}_{xf}+\bm{H}_{t-1}\bm{W}_{hf}+\bm{b}_f) \]

\[\bm{O}_t=\sigma(\bm{X}_t\bm{W}_{xo}+\bm{H}_{t-1}\bm{W}_{ho}+\bm{b}_o) \]

计算候选记忆细胞

\[\bm{\tilde{C}}_t=\tanh(\bm{X}_t\bm{W}_{xc}+\bm{H}_{t-1}\bm{W}_{hc}+\bm{b}_c) \]

计算记忆细胞

\[\bm{C}_t=\bm{F}_t\odot\bm{C}_{t-1}+\bm{I}_t\odot\bm{\tilde{C}}_t \]

计算隐藏状态

\[\bm{H}_t=\bm{O}_t\odot\tanh(\bm{C}_t) \]

感觉GRU和LSTM很玄学,只能把公式罗列在这里

标签:NLP,bm,odot,之二,神经网络,tilde,gate,LSTM,sigma
From: https://www.cnblogs.com/xcyle/p/17967748

相关文章

  • 神经网络优化篇:详解动量梯度下降法(Gradient descent with Momentum)
    动量梯度下降法还有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新的权重。例如,如果要优化成本函数,函数形状如图,红点代表最小值的位置,假设从这里(蓝色点)开始梯度下降法,如果......
  • 神经网络优化篇:详解指数加权平均的偏差修正(Bias correction in exponentially weighte
    指数加权平均的偏差修正\({{v}_{t}}=\beta{{v}_{t-1}}+(1-\beta){{\theta}_{t}}\)在上一个博客中,这个(红色)曲线对应\(\beta\)的值为0.9,这个(绿色)曲线对应的\(\beta\)=0.98,如果执行写在这里的公式,在\(\beta\)等于0.98的时候,得到的并不是绿色曲线,而是紫色曲线,可以注意到紫色曲线......
  • R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化
    全文链接:https://tecdat.cn/?p=34827原文出处:拓端数据部落公众号在房地产市场中,准确地预测房屋价格是至关重要的。过去几十年来,随着数据科学和机器学习的快速发展,各种预测模型被广泛应用于房屋价格预测中。而R语言作为一种强大的数据分析和统计建模工具,被越来越多的研究者和从业......
  • 神经网络优化篇:理解指数加权平均数(Understanding exponentially weighted averages)
    理解指数加权平均数回忆一下这个计算指数加权平均数的关键方程。\({{v}_{t}}=\beta{{v}_{t-1}}+(1-\beta){{\theta}_{t}}\)\(\beta=0.9\)的时候,得到的结果是红线,如果它更接近于1,比如0.98,结果就是绿线,如果\(\beta\)小一点,如果是0.5,结果就是黄线。进一步地分析,来理解如何计......
  • 神经网络训练中的欠拟合、过拟合问题
    神经网络训练中的问题神经网络在数据之海中打捞规律,自成模型。这个过程全权由电脑完成,也因此我们担心它是否是一种泛化的模式,在其它「海域」继续工作时,它能否也能得到正确的结果?如何发现可以泛化的模式是机器学习的根本问题。过拟合与欠拟合我们的数据通常分成3份:训练数......
  • Linux文件IO之二 [补档-2023-07-21]
    8-5linux系统IO函数:open函数:​函数原型:intopen(constchar*pathname,intflags,mode_tmode);​功能:打开一个文件并返回文件描述符。与c库中的fopen差不多​参数:pathname:要打开的文件路径名。flags:打开文件的标志O_RDONLY(只读)O_WRONLY(只写)O_RD......
  • Yolov5 + Siamese 孪生神经网络 or CNN 图像分类训通杀点选验证码
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!前......
  • [NLP复习笔记] Transformer
    1.Transformer概述1.1整体结构\(\text{Transformer}\)主要由\(\text{Encoder}\)和\(\text{Decoder}\)两个部分组成。\(\text{Encoder}\)部分有\(N=6\)个相同的层,每层包含一个\(\text{Muti-HeadAttention}\)(多头注意力机制,由多个\(\text{Self-Attention}\)组成......
  • 神经网络优化篇:理解mini-batch梯度下降法(Understanding mini-batch gradient descent)
    理解mini-batch梯度下降法使用batch梯度下降法时,每次迭代都需要历遍整个训练集,可以预期每次迭代成本都会下降,所以如果成本函数\(J\)是迭代次数的一个函数,它应该会随着每次迭代而减少,如果\(J\)在某次迭代中增加了,那肯定出了问题,也许的学习率太大。使用mini-batch梯度下降法,如果......
  • 【LLM 】7个基本的NLP模型,为ML应用程序赋能
    在上一篇文章中,我们已经解释了什么是NLP及其在现实世界中的应用。在这篇文章中,我们将继续介绍NLP应用程序中使用的一些主要深度学习模型。BERT来自变压器的双向编码器表示(BERT)由JacobDevlin在2018年的论文《BERT:用于语言理解的深度双向变压器的预训练》中首次提出。BERT模型的主......