首页 > 其他分享 >一点seq2seq的笔记

一点seq2seq的笔记

时间:2023-02-08 21:47:53浏览次数:65  
标签:输出 RNN sequence seq2seq 笔记 Encoder cell vector 一点

一点 seq2seq 的笔记

Date: 2023-02-08T21:33:00+08:00

毕设,看了点神经网络的内容。

RNN 的输入是 a sequence of vector,感觉 RNN 像在训练一个 cell,喂给 cell 一个 vector,然后它输出一个 hidden vector,把这个 hidden vector 和 next vector in sequence 拼接在一起,再作为 cell 的输入。至于 sequence 里的第一个 vector 和什么拼接在一起,我想可能是随机的,也可能是 \(\vec{0}\)。

这样,每次输入 vector 都会得到一个输出 h,这个 h 就可以去全连接做真正的输出了,比如判定单词的属性:动词、名词啥的。

还可以只保留 sequence 中最后一个 vector 的输出 h,这个 h 可以认为保留了整个 sequence 的信息,可以全连接做别的输出,比如判断一个句子里的感情是积极、消极或者中性。

RNN 的阅读资料可以参考知乎上的这个回答:能否简单易懂的介绍一下 RNN(循环神经网络)? - Peace 的回答

LSTM 是 RNN 的变体,为 RNN 增加了遗忘机制。公式我肯定是记不下来的,目的是为了解决 RNN 梯度消失和梯度爆炸的问题。

LSTM 可以参考这一篇英文资料:Understanding LSTM Networks

我只能记下来每次 cell 要应对的输入有:

  1. 上次 cell 的状态。当然,本次 cell 也要输出自己的状态
  2. 上次 cell 的隐藏层输出,就是 h(idden)。当然本次 cell 也要输出 hidden
  3. 当前这个 step 接受的 vector

门这个东西,是由 \(h_{t-1}\) 和 \(x_{t}\) 决定的,过一次全连接层再激活一下

cell state 需要过 forget gate 遗忘一下,让后加上 input gate 记录现在的东西

hidden 由 \(h_{t-1}\)、\(x_{t}\) 和 cell state 决定。

下面就是 Encoder-Decoder 的内容,可以参考这一篇知乎文章:完全图解 RNN、RNN 变体、Seq2Seq、Attention 机制,它甚至贴心地总结了 attention。

Encoder-Decoder 目的是为了解决输入和输出长度不一致的问题。

输入一个 sequence vector,得到一个 vector,这个 vector 包含了整个 sequence 的信息,我们叫它 \(\vec{c}\),感觉有点像是 compressed,把输入的 sequence 信息“压缩”成了一个向量,这个步骤就是 Encoder,最后需要根据 \(\vec{c}\) Decoder 出新的信息。

怎么 Decoder,就是再接入一个类似 RNN 的结构,这个 RNN 的 初始 \(h_0\) 就是 Encoder 得到的大向量,接受的 sequence of vector 可以是 cell 上一步的输出,也可以不要,也可以是每个 step 都用 \(\vec{c}\)。

最后是 attention,看知乎罢。

至于更加详细的网络和运行过程,可以参考 Bilibili 视频:【深度学习】seq2seq 模型 / Encoder-Decoder 模型及数学原理讲解

标签:输出,RNN,sequence,seq2seq,笔记,Encoder,cell,vector,一点
From: https://www.cnblogs.com/ticlab/p/17103378.html

相关文章

  • 《代码整洁之道》 读书笔记 一、整洁代码
    1.整洁代码1.1要有代码代码不再是问题;我们应当关注模型和需求。代码很快就能自动产出。这种言论是不正确的。因为代码呈现了需求的细节,在某些层面上,这些细节无法被忽......
  • 自我介绍&学习笔记
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2023learning/homework/1......
  • 第三天笔记
    第三天笔记程序控制语句条件控制语句(根据不同的条件进入不同的代码块)循环控制语句(根据循环条件进行多次循环)循环控制语句流程定义初始值设置迭代条件......
  • API对象--Ingress(chrono《kubernetes入门实战课》笔记整理)
    【概念说明】Service的功能和运行机制,主要由kube-proxy控制的四层负载均衡,即根据IP、PORT来做负载均衡。而很多应用都是在7层做均衡更为合理,比如根据主机名、URI、请求......
  • 《分布式技术原理与算法解析》学习笔记Day05
    分布式共识什么是分布式共识?分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。有哪些常见的分布式共识算法?一般有3种分布......
  • MongoDB 笔记
    title:MongoDB笔记date:2023-02-0311:13:35tags:-MongoDB1、MongoDB相关概念库<DataBase>mongodb中的库就类似于传统关系型数据库中库的概念,用来通过不同库......
  • 离线地图的开发笔记(一)
    最近做一个项目,用到离线谷歌地图的开发,而现在谷歌地图在中国的发展不是很完美,导致项目的定项迟迟不能决定。后来制作了一个地图插件mymapw.ocx,完美地解决了Winform窗体里......
  • 算法学习笔记(15): Trie(字典树)
    Trie树Trie(字典树)是一种用于实现字符串检索的多叉树。Trie的每一个节点都可以通过c转移到下一层的一个节点。我们可以看作可以通过某个字符转移到下一个字符串状态,直......
  • MongoDB学习笔记二(插入、更新)
    1、插入 runCommand insert:后面写集合名称ordered:可选,布尔值。如果true,则当插入文档失败时,返回而不插入inserts数组中列出的任何剩余文档。如果false,则当插入一个文......
  • 学习笔记(ResNet)
    1、介绍ResNet,ResNetV2,ResNeXt模型,权值由ImageNet训练而来。ImageNet数据是CV领域非常出名的数据集,ISLVRC竞赛使用的数据集是轻量版的ImageNet数据集。ISL......