循环神经网络RNN与LSTM

1. 神经网络与循环神经网络

  • 背景: 传统神经网络包括CNN,输入和输出都是相互独立的
    • 图像上的猫和狗是分割开的,但有些任务,后续的输出和之前的内容是相关的
    • “我是中国人,我的母语是__”
  • RNN 引入"记忆"的概念
    • 循环2字来源于其中每个元素都执行相同的任务
    • 但是输出依赖于"输入"和"记忆"
1.1 强大的功能
1.2 层级结构
  • 把序列按时间展开

在这里插入图片描述

  • X t X_t Xt是时间t处的输入
  • S t S_t St是时间t处的"记忆", S t = f ( U X t + W S t − 1 ) S_t=f(UX_t+WS_{t-1}) St=f(UXt+WSt1),f可以是tanh等
  • O t O_t Ot是时间t时的输出,比如是预测下个词的话,可能是softmax输出的属于每个候选词的概率
  • 可以把隐状态 S t S_t St视作当前的"记忆体",捕捉了之前时间点上的信息
  • 输出 O t O_t Ot由当前时间及之前所有的"记忆"共同计算得到
  • 很可惜,在实际应用中, S t S_t St并不能捕捉和保留之前所有信息(记忆有限)
  • 不同于CNN,这里的RNN其实整个神经网络都共享一组参数(U,V,W),极大减小了需要训练和预估的参数量
  • 图中的 O t O_t Ot在有任务下是不存在的,比如文本情感分析,其实只需要最后的output结果就行
1.3 多种RNN
  • 双向RNN
    • 有些情况下,当前的输出不只依赖于之前的序列元素,还可能依赖之后的序列元素
    • 比如从一段话踢掉部分词,让你补全
    • 直观理解:2个RNN叠加
  • 深层双向RNN
    • 和双向RNN的区别是每一步/每个时间带你我们设定多层结构

2. LSTM

2.1 长时间依赖问题
2.2 "记忆细胞"与状态

3. LSTM变体

3.1 GRU等

词向量可以体现两个词之间的距离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值