RNN(循环神经网络)
RNN (循环神经网络)是专为序列数据设计的循环神经网络,核心通过隐藏状态和循环连接实现时序记忆,捕捉序列的前后依赖关系(即当前输出与历史输入相关)。
基本循环神经网络:
符号表示:
: 第i个训练样本序列中的第t个元素,t为时间序列。
:激活值,
通常是一个零向量。
,
:序列长度。(第i个训练样本)
,
,
:权重矩阵。
表示管理着从
到隐藏层的连接的一系列参数,激活值由
决定,输出结果由
,每个时间步使用的都是相同的参数
,
,
。
,
表示不同的激活函数,
常用tanh/ReLU,
可用sigmoid/sofmax。
上述公式可简化写为:
𝑊𝑎的方式是将矩阵𝑊𝑎𝑎和矩阵𝑊𝑎𝑥水平并列放置,[𝑊𝑎𝑎 ⋮ 𝑊𝑎𝑥] = 𝑊𝑎。([𝑎<𝑡−1>, 𝑥<𝑡>])是将这两个向量堆在一起,即。
下面写的是具有反向传播的循环神经网络:
下图用蓝色箭头表示前向传播,红色箭头表示反向传播。
单个位置单个预测的损失函数:
整个序列的总损失:
以上是多对多结构的RNN。
下面是不同类型的神经网络:
1.一对一(one-to-one)
2.一对多(one-to-many)
3.多对一(many-to-one)
4.多对多(many-to-many)
文中图片来自B站吴恩达老师,以上为个人学习笔记,侵权删。
