0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你了解RNN、LTSM、Seq2Seq、Attention机制

智能生物识别说 来源:快商通AI 作者:快商通AI 2021-09-27 18:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上一章我们详细介绍了小样本做文本分类中的胶囊网络,那么这一章我们就来看看RNN(循环神经网络)。大神们准备好了吗,我们要发车了~

首先就是我们为什么需要RNN?

举个简单的例子,最近娱乐圈顶流明星吴亦凡又出新瓜,大家都吃了咩?(反正小编吃的很饱哈)那么就以我 吃 瓜为例,三个单词标注词性为 我/nn 吃/v 瓜/nn。

那么这个任务的输入就是:

我 吃 瓜 (已经分词好的句子)

这个任务的输出是:

我/nn 吃/v 瓜/nn(词性标注好的句子)

很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测“瓜”的时候,由于前面的吃是一个动词,那么很显然“瓜”作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。

所以为了更好的处理序列的信息,解决一些这样类似的问题,我们的RNN就诞生了。

rnn的结构和原理

看完初步的概念我们来深入一点看看RNN的结构和原理。rnn的结构和原理

pYYBAGC4meiAAdlHAABjM2jJoEw935.jpg

刚开始看到这幅图的同学会不会有一点懵懵?没关系,我们来带着解释一遍~

首先通过这副图,就能明白RNN的意义就是每个输出的状态都只由前一时刻的状态和当前时刻的输入来决定。从等式左边的一个环绕箭头就能明白参数是共享的。

一个序列的每个词就是每个时间步,每个词都会对应得到一个hidden_state,并将这个隐藏层状态输入下一个时间步。

最终会得到output和hidden,output是每一步运算的输出,因此output=(seqence_len, batch_size, hidden_size)。hidden_state是每一步的输出,当然有参数来控制可以取最后一步的输出,所以RNN中一般output=hidden。

lstm的结构和原理

聊完一圈RNN之后,我们来看看它的变种兄弟-LSTM吧!

别慌,我说的不是变种成僵尸的那种东东,Lstm为长短期记忆,是在RNN的基础上引入了细胞状态,根据细胞状态可决定哪些状态应该保留下来,哪些状态应该被遗忘,可以在一定程度上解决梯度消失问题。

那么为了能够学习序列关系的长期依赖,Lstm的输出和rnn一样都包含output和hidden,除此之外还有一个cell_state,这个就是学习序列信息lstm与rnn的差异。

在lstm里面理解的就是用“门”结构,来选择信息通过,关键是用了$sigmoid(\cdot)$函数来区分趋于0的和趋于1的特征数据。

遗忘门:通过$f_t=\sigma(W_f \cdot[h_{t-1},x_t] + b_f)$ 来判断隐藏层信息的取舍。

输入门:

poYBAGC4meWADv9WAAAccVYUC9w682.jpg

通过$\tanh(\cdot)$,来将隐藏层状态映射到(-1,1)最后来更新$C_{t-1}$ 到$C_t $

输出门:

pYYBAGC4meyAMy7aAAAWL7NbiQI218.jpg

会发现$f_t、i_t、o_t$的构成是一致的。但是通过不同的权重来学习。因此优化lstm是将遗忘门和输入门合并成了一个更新门,这就是GRU:

可以理解为主要分为两部分,第一部分:

pYYBAGC4me2AOoxXAAASZqSshqY694.jpg

$z_t$表示更新向量,$r_t$表示重置向量,于是在接下来就能够考虑$r_t$与$h_{t-1}$的相关性来去对部分数据进行重置,也就相当于舍弃。实现遗忘门的效果。

第二部分:

poYBAGC4meiAGOzMAAAd9tihyU0202.jpg

很好理解,就可以通过筛选得到的有效的隐藏层信息$\tilde{h}t$和更新向量来获取最终的输出结果$(1-z_t) * h{t-1}$表示对当前一时刻隐藏层状态选择性“遗忘”。$z_t * \tilde{h}_t$就表示对当前序列信息的“记忆”。

sequence-to-sequence的结构和原理

也叫做Encoder-Decoder结构,在encoder和decoder中也都是用序列模型,就是将数据先encode成一个上下文向量context vector,这个context vector可以是1)最后一个隐藏层状态,2)可以是完整的隐藏层输出,3)也可以是对隐藏层输出做激活或者线性变换之后的输出。

之后在decoder中,将context vector作为前一时刻初始化的状态输入从而将语义按监督信息的需要解码。或者将context vector作为decoder每一个时间步的输入。因此会发现seq2seq并不限制输入和输出的序列长度,这就表示应用范围可以很广。

Attention

会发现context vector并不能够包含长句的所有信息,或者说会造成信息的丢失,因此attention机制就是能够向decoder的每一个时间步输入不同的文本信息,提升语义的理解能力。

因为lstm会得到完整的包含每一个时间步的输出得到的ouput和hidden,因此$h_i$和$C_j$的相关性就能够表示在decode第$j$步序列时最关心的文本是那一步的 $h_i $,用 $\alpha_{ij}$来表示。

每一个encoder的hidden单元和每一个decoder的hidden单元做点乘,得到每两个单元之间的相关性,在lstm/rnn之后用attention就是计算hidden和ouput的每个单元之间的相关性,然后做一步$softmax$得到encoder的hidden或者说是lstm的hidden每个单元的attention weights。因此:Attention 无非就是这三个公式:

poYBAGC4meqAKxjvAAAT3nJUrlE172.jpg

从常规的(Q,K,V)的角度来理解,可以如图所示:

pYYBAGC4mfCAE2pwAAApg85OSxU468.jpg

在Attention中$Q$和$K$分别是hidden和output,同样的$V$也是ouput,在self-attention中Q=K=V,并且$\sqrt{d_k}$有些情况下是不会加在attention过程中的。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7349

    浏览量

    95025
  • Gru
    Gru
    +关注

    关注

    0

    文章

    13

    浏览量

    7760
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    带你了解双目深度相机

    在如今的智能化时代,不管是工业车间里的机器人、家里的扫地机器人,还是AR眼镜、自动驾驶汽车,都需要双能“看懂”三维世界的“眼睛”——双目深度相机就是这样款设备。可能有人会问,这东西到底是啥?其实
    的头像 发表于 04-14 14:30 204次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>双目深度相机

    看懂PCIe中断机制

    PCIe 中断机制主要分为两类:类是继承自传统 PCI 的 物理中断线(INTx)中断,通过硬件引脚触发;另类是 MSI(Message Signaled Interrupt)中断,通过向指定内存地址写入数据来通知系统。
    的头像 发表于 03-11 09:35 502次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>看懂PCIe中断<b class='flag-5'>机制</b>

    带你了解卤素

    当你听到“卤素”这个词,是否第时间想到的是汽车前大灯里那种明亮的灯泡?其实,在化学的世界里,卤素代表的是组非常活跃的非金属元素——氟、氯、溴、碘以及放射性元素砹。除了砹因放射性特殊处理外,前四位
    的头像 发表于 03-09 15:42 258次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>卤素

    带你彻底搞懂K8s网络

    说实话,K8s 网络是我见过最让新手头疼的知识点,没有之。记得我刚接触 K8s 那会儿,看着流量在 Pod、Service、Node 之间穿梭,完全是脸懵逼。后来踩了无数坑,熬了无数夜,总算把这套网络模型摸透了。今天这篇文章,我会用最接地气的方式,
    的头像 发表于 02-06 10:15 716次阅读

    用zynq开发ads7865所遇见的问题

    我用fpga开发ads7865芯片时遇见seq寄存器的读取末尾始终为01,而且使用ila抓取的数据与测试使用的波动较大,而且通道对不上。
    发表于 01-04 19:09

    DLP4500无法投影且有轻微声音,黄灯闪烁

    DLP4500开机后观察到黄灯闪烁,连接GUI没问题,进入Seq. Running之后没有投影,且有轻微声音,可能是什么问题
    发表于 12-26 21:29

    搞清 BLE 蓝牙 UUID

    带你搞清楚蓝牙 UUID ...... 矜辰所致
    的头像 发表于 12-18 11:23 4883次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>搞清 BLE 蓝牙 UUID

    读懂LSTM与RNN:从原理到实战,掌握序列建模核心技术

    RNN的核心局限。今天,我们从原理、梯度推导到实践,全面解析这两大经典模型。、基础铺垫:RNN的核心逻辑与痛点RNN的核心是让模型“记住过去”——通过隐藏层的循环连
    的头像 发表于 12-09 13:56 1878次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>读懂LSTM与<b class='flag-5'>RNN</b>:从原理到实战,掌握序列建模核心技术

    TCP的三次握手

    (1)第次握手:Client将标志位SYN置为1,随机产生个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 (2)第二次
    发表于 12-02 07:16

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0软核控制器IP,纯逻辑实现,AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    ,使用NVMe的多队列特性,NVMe AXI4 Host Controller IP支持灵活配置DMA读写的通道个数,按照NVMe队列优先级仲裁(循环仲裁或加权循环仲裁)机制,实现多个DMA通道对同
    发表于 11-14 22:40

    OK3506-S12 Mini开发板开箱和基本使用(飞凌嵌入式)

    OK3506-S12 Mini开发板 图2 OK3506-S12 Mini开发板 开发板简介    RK3506J/RK3506B是款高性能的三核Cortex-A7应用处理器,专为智能语音交互、音频输入/输出
    发表于 11-03 00:57

    带你了解海凌科毫米波雷达

    什么是毫米波雷达?毫米波雷达有什么特点?毫米波雷达有什么作用?海凌科有哪些系列毫米波雷达?带你了解!毫米波的定义毫米波是指频率在30GHz至300GHz之间、波长为1~10毫米的电
    的头像 发表于 08-11 12:04 2022次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>海凌科毫米波雷达

    带你了解什么是机器视觉网卡

    机器视觉网卡通常指的是在机器视觉系统中用于连接工业相机到计算机的以太网卡。它的核心作用是实现高速、稳定、低延迟的图像数据传输。以下是关于机器视觉网卡的关键信息:1.核心功能:高速图像传输:处理来自千兆以太网或万兆以太网相机产生的大量图像数据流。万兆网卡能提供更高的带宽,满足高分辨率、高帧率相机的需求。支持GigEVision协议:这是机器视觉领域最重要的工业
    的头像 发表于 07-09 16:18 860次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>什么是机器视觉网卡

    带你了解电源测试系统的功能!

    在当今电子与电力技术飞速发展的时代,各类电子设备、电力系统以及新能源相关产品的研发、生产和维护过程中,电源测试系统扮演着至关重要的角色。本文将带你了解源仪电子的电源测试系统的功能。
    的头像 发表于 07-02 09:10 1222次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>电源测试系统的功能!

    了解电压谐波

    我们经常会听到谐波,到底什么是谐波,怎么定义的?为什么要关注谐波?什么时候关注谐波?谐波如何计算或标准规定的谐波的算法是怎样的?GB关于电压谐波又是如何评估的?带着诸多的问题,我们一起来了解
    的头像 发表于 06-28 17:23 5241次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>电压谐波