从RNN一步步通俗易懂T理解LSTM

https://blog.youkuaiyun.com/v_JULY_v/article/details/89894058?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

### RNNLSTM 的概念进化过程及其实现原理 #### 一、RNN 基本结构及其局限性 循环神经网络(Recurrent Neural Network, RNN)是一种用于处理序列数据的模型,其核心特点是隐藏层的状态会随着输入的时间步不断更新。然而,在实际应用中,标准的 RNN 存在一个显著的问题——梯度消失或爆炸现象[^1]。当尝试捕捉长时间依赖关系时,误差信号在反向传播过程中逐渐减弱甚至完全丢失,这使得 RNN 很难学习到距离较远的数据之间的关联。 #### 二、LSTM 设计初衷与改进之处 为了克服传统 RNN 中存在的长期依赖问题,Hochreiter & Schmidhuber 提出了长短期记忆网络(Long Short-Term Memory, LSTM)。相比普通的 RNN 结构,LSTM 引入了一个额外的记忆单元称为 **细胞状态** (cell state),并通过三个门控机制来控制信息流动:遗忘门(forget gate)、输入门(input gate)以及输出门(output gate)[^2]。这些设计允许模型选择性地保留重要历史信息或者丢弃无用的部分,从而有效缓解了梯度消失带来的挑战。 #### 三、LSTM 工作流程解析 以下是关于 LSTM 如何运作的一个简化描述: - **Forget Gate Layer**: 这一层决定哪些来自先前时刻的信息应该被舍弃掉。它接收当前输入 \(x_t\) 和上一时序隐藏状态 \(h_{t−1}\), 并通过 sigmoid 函数计算出一个介于0和1之间数值作为权重系数应用于旧有 cell content 上。 - **Input Gate Layer with tanh function**: 此处负责创建新的候选值 \(\tilde{C}_t\). 同样基于当前输入\(x_t\) 及前次隐含态 h(t − 1),先经由sigmoid函数判断需加入多少新资讯;再利用双曲正切激活函数生成潜在新增内容。 - **Cell State Update**: 将上述两部分结合起来完成最终 Cell Content 更新操作。\[ C_t=f*C_(t-1)+i*\tilde{C}_t \] - **Output Gate Layer**: 它决定了下一个隐藏状态 ht 应该是什么样子。首先再次运用 Sigmoid 层评估整个 Cell Status 能贡献多大比例给 Output Vector ,之后乘以前面提到过的 TanH(Cell Status )结果形成最后输出形式\[ o=\sigma(W_o[h_(t-1 ),X_t ]+b_o)\]\[ h_t=o*tanh(C_t)] 以上便是完整的单个时间片内的运算逻辑[^3]. #### 四、总结对比分析 相较于基础版本的 RNN 架构,LSTMs 显著增强了对于远程上下文敏感性的建模能力.尽管如此也付出了更多资源消耗方面的代价比如增加了参数规模等等.[^4].但是考虑到许多现实世界中的任务确实涉及到复杂的跨时段交互模式(如语音识别、机器翻译等领域),这种牺牲往往是值得接受的. ```python import numpy as np def lstm_cell(x_t,h_prev,c_prev,W_f,b_f,W_i,b_i,W_c,b_c,W_o,b_o): forget_gate = sigmoid(np.dot([h_prev,x_t],W_f.T)+b_f) input_gate = sigmoid(np.dot([h_prev,x_t],W_i.T)+b_i) candidate_value =np.tanh(np.dot([h_prev,x_t],W_c.T)+b_c ) c_next=forget_gate *c_prev +input_gate* candidate_value output_gate=sigmoid(np.dot([h_prev,x_t],W_o.T)+b_o) h_next=output_gate*np.tanh(c_next) return h_next ,c_next # Helper functions omitted here... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值