PyTorch RNN的原理及其手写复现。
- 记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM
- 模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环
- 优缺点
- 应用场景
- 具体公式
 
- 代码实现
记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM
模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环

 
 既能看到过去又能看到未来。
优缺点
优点:
- 可以处理变长序列(权重在每一时刻共享)
- 模型大小与序列长度无关
- 计算量与序列长度呈线性增长
- 考虑历史信息(隐含层)
- 便于流式输出
- 权重时不变
缺点:
 1.串行计算比较慢
 2.无法获取太长的历史信息 (Transformer可以)
应用场景
-  AI诗歌生成(one2many) 
  
-  文本情感分类(many2one)  
-  词法识别(many2many) 
  
-  机器翻译(many2many)seq2seq有编码器和解码器中间有attention帮助解码器 
  
-  语音识别/合成 
-  语言模型 
具体公式

 可以看作是对输入 
     
      
       
        
        
          x 
         
        
          t 
         
        
       
      
        x_t 
       
      
    xt和前一个隐含层的状态 
     
      
       
        
        
          h 
         
         
         
           t 
          
         
           − 
          
         
           1 
          
         
        
       
      
        h_{t-1} 
       
      
    ht−1的一个线性层。权重加偏置,然后就是一个非线性层tanh或者ReLU。
代码实现
RNN的手写算法在这个链接里面,包括调用api和自己写。
 https://drive.google.com/file/d/1ph2dN92gnzYcAFxWrqEYY9vopznoldP4/view?usp=sharing
 官方教程在:
 https://pytorch.org/docs/stable/generated/torch.nn.RNN.html#torch.nn.RNN
主要参考自
 https://www.bilibili.com/video/BV13i4y1R7jB/?spm_id_from=333.999.0.0&vd_source=5413f4289a5882463411525768a1ee27



















