【469】RNN, LSTM参考博客
参考:【推荐】ML Lecture 21-1: Recurrent Neural Network (Part I)
参考:Illustrated Guide to Recurrent Neural Networks
参考:Illustrated Guide to LSTM’s and GRU’s: A step by step explanation
参考:Understanding LSTM Networks
参考:Recurrent Neural Networks | MIT 6.S191 —— YouTube
参考:The Unreasonable Effectiveness of Recurrent Neural Networks
参考:Anyone Can Learn To Code an LSTM-RNN in Python (Part 1: RNN)
参考:The Unreasonable Effectiveness of Recurrent Neural Networks
RNN
feed forward
- input1 -> hidden layer1 -> output1
- (hidden layer1 + input2) -> hidden layer2 -> output2
- (hidden layer2 + input3) -> hidden layer3 -> output3
- (hidden layer3 + input4) -> hidden layer4 -> output4
back propagation(橙色是权重更新)
- W_hy4 -> W_xh4
- W_hy3 -> W_xh3
- W_hy2 -> W_xh2
- W_hy1 -> W_xh1
RNN形式
下面以 many to one RNN 举例说明
参考:https://victorzhou.com/blog/intro-to-rnns/
The Plan
- 可以理解为一段文本,然后判断文本的sentiment
- 每一个 xi 表示文本中每个单词的 one-hot 编码向量
- 输出 y 是一个二维向量,分别为 positive 和 negative
The Forward Phase
公式如下:
ht=tanh(Wxhxt+Whhht−1+bh)
yt=Whyht+by
- 初始化 3 个权重矩阵和 2 个偏置向量
- Whh: [hidden_size, hidden_size],公式里面权重值在前
- Wxh: [hidden_size, input_size],公式里面权重值在前
- Why: [output_size, hidden_size],公式里面权重值在前
- bh: [hidden_size, 1]
- by: [output_size, 1]
- 初始化 h,赋值为全 0 的矩阵,直接用来计算 h0,因为它前面是没有 h 的
- 循环,将 xi 的值循环传递到 hi,再传递到 yi
- 整个过程中,Whh、Wxh、Why、bh、by 的值是保持不变的
- 最后 y 通过 softmax 函数获得概率值
The Backward Phase
- loss function: cross-entropy loss
- 记录 hi 的所有值
- 【479】cross-entropy与softmax的求导
- 求出了L 对于 yi 的偏导数
- 再求 yi 对于 Why 的偏导数
- y=Whyhn+by
LSTM
一个 layer,用来获取 forget gate 的比例,激活函数是 sigmoid。用来计算前一个 cell 有多少部分被保留了。
两个 layer
- 左边为 input gate 的比例(sigmoid),说明有多少比例可以被输入
- 右边为从 xt 输入数据的部分(tanh)
- 两者相乘,表示有多少 xt 被输入进去
- 左边为上面所说的 forget gate 与前一个 cell state (Ct−1) 的乘积,表示保留的部分
- 右边为 input gate 与输入的信息的乘积,表示输入的部分
- 两者再相加,表示新的 cell state (Ct) 的结果
- 一个 output gate 的 layer(sigmoid),用来计算多少部分可以被输出
- 将前面算到的 cell state 做个 tanh 转黄,再与 output gate 的比例相乘
- 最终输出结果为 ht
gif
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2018-06-15 【318】C# 学习笔记
2016-06-15 【206】Firefox 扩展收集