跳到主要内容

循环神经网络

在处理序列数据(如时间序列、自然语言等)时,数据之间存在时序依赖关系。例如,天气预报中明天的天气往往受前几天天气影响,自然语言中词语的含义也依赖于上下文。传统的前馈神经网络无法有效建模这种序列依赖关系。循环神经网络(RNN)通过引入循环连接,能够保持和利用历史信息,特别适合处理序列数据。

介绍

  1. 核心公式
  • 隐藏状态更新: ht = tanh(Whh h(t-1) + Whx xt + bh)
    • ht: 当前时刻隐藏状态
    • h(t-1): 上一时刻隐藏状态
    • xt: 当前输入
    • Whh,Whx: 权重矩阵
    • bh: 偏置项
  • 输出计算: yt = Why * ht + by
    • yt: 当前时刻输出
    • Why: 输出权重矩阵
    • by: 输出偏置项
  1. 网络特点
  • 引入循环连接,使网络具有"记忆"能力
  • 参数共享:各时刻使用相同的权重矩阵
  • 能够处理变长序列输入
  • 适合建模序列数据的时序依赖关系

代码

https://github.com/Hao-yiwen/deeplearning/blob/master/pytorch/week3/practise_7_char_rnn.ipynb