循环神经网络RNN以及LSTM的推导和实现

本文介绍了循环神经网络RNN及其改进版LSTM的基础概念和工作原理。首先从传统的神经网络谈起,阐述了RNN解决序列问题的特性,接着详细推导了RNN的计算过程,并探讨了RNN的梯度消失问题。然后,重点讲解了LSTM的结构,包括遗忘门、输入门、输出门和细胞状态的计算,展示了如何通过LSTM克服RNN的问题。最后,讨论了LSTM的误差反向传播和参数求导。文章提供了LSTM的代码实现链接,帮助读者更好地理解和应用RNN与LSTM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 从神经网络谈起

了解神经网络的都知道,神经网络作为一种非线性模型,在监督学习领域取得了state-of-art的效果,其中反向传播算法的提出居功至伟,到如今仍然是主流的优化神经网络参数的算法. 递归神经网络、卷积神经网络以及深度神经网络作为人工神经网络的"变种",仍然延续了ANN的诸多特质,如权值连接,激励函数,以神经元为计算单元等,只不过因为应用场景的不同衍生了不同的特性,如:处理变长数据、权值共享等。

为了介绍RNN,先简单的介绍ANN. ANN的结构很容易理解,一般是三层结构(输入层-隐含层-输出层). 隐含层输出 o j o_j oj 和输出层输出 o k o_k ok如下。其中 n e t j net_j netj为隐含层第 j j j个神经元的输入, u u u为输入层和隐含层的连接权值矩阵, v v v为隐含层和输出层之间的连接权值矩阵.

$ \begin{align} o_j & = f(net_j) \
o_k & = f(net_k) \
net_j & =\sum_i(x_{i}u_{i,j})+b_j \
net_k & =\sum_j(o_{j}v_{j,k})+b_k \end{align} $$

定义损失函数为 E p = 1 2 ∑ k ( o k − d k ) 2 E_p=\frac{1}{2}\sum_k (o_k - d_k)^2 Ep=21k(okdk)2 ,其中 p p p为样本下标, o k o^k ok为第 k k k个输出层神经元的输出, d k d^k dk为样本在第 k k k个编码值。然后分别对参数 v j , k v_{j,k} vj,k u i , j u_{i,j} ui,j 进行求导,可得:

KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \frac{\partial…

KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \frac{\partial…

从对 ∂ E p ∂ u i ,

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值