RNN循环神经网络

MLP

考虑一个只有一个隐藏层的MLP(多层感知机)。如下:

给定数据样本X∈Rn×d\boldsymbol{X} \in \mathbb{R}^{n \times d}XRn×d,其中 nnn 为样本数量,ddd 为特征向量的维度。ϕ\phiϕ 为隐藏层的激活函数,隐藏层的输出为H∈Rn×h\boldsymbol{H} \in \mathbb{R}^{n \times h}HRn×h,其中 hhh 为隐藏层神经元个数, H\boldsymbol{H}H 的计算公式为:
H=ϕ(XWxh+bh) \boldsymbol{H} = \phi(\boldsymbol{X} \boldsymbol{W}_{xh} + \boldsymbol{b}_h) H=ϕ(XWxh+bh)

其中隐藏层权重参数Wxh∈Rd×h\boldsymbol{W}_{xh} \in \mathbb{R}^{d \times h}WxhRd×h,隐藏层偏差参数 bh∈R1×h\boldsymbol{b}_h \in \mathbb{R}^{1 \times h}bhR1×h。若输出层为Linear层,输出个数为 qqq,则隐藏层的H\boldsymbol{H}H作为输出层的输入,输出层的输出为
O=HWhq+bq \boldsymbol{O} = \boldsymbol{H} \boldsymbol{W}_{hq} + \boldsymbol{b}_q O=HWhq+bq

其中输出变量O∈Rn×q\boldsymbol{O} \in \mathbb{R}^{n \times q}ORn×q, 输出层权重参数Whq∈Rh×q\boldsymbol{W}_{hq} \in \mathbb{R}^{h \times q}WhqRh×q, 输出层偏差参数bq∈R1×q\boldsymbol{b}_q \in \mathbb{R}^{1 \times q}bqR1×q

RNN

将上面的网络结果简化为如下:

在该网络加上一个时间维度,如下所示:

此时,给定数据样本Xt∈Rn×d\boldsymbol{X_t} \in \mathbb{R}^{n \times d}XtRn×d是时间步 ttt 的输入。隐藏层的输出为Ht∈Rn×h\boldsymbol{H_t} \in \mathbb{R}^{n \times h}HtRn×h, 此时,Ht\boldsymbol{H_t}Ht 的计算需要使用到上一个时间步的Ht−1\boldsymbol{H_{t-1}}Ht1Ht\boldsymbol{H_t}Ht 的计算公式为:

Ht=ϕ(XtWxh+Ht−1Whh+bh) \boldsymbol{H_t} = \phi(\boldsymbol{X_t} \boldsymbol{W}_{xh} + \boldsymbol{H_{t-1} W_{hh}} + \boldsymbol{b}_h) Ht=ϕ(XtWxh+Ht1Whh+bh)

与多层感知机相比,这里新增了Ht−1Whh\boldsymbol{H}_{t-1} \boldsymbol{W}_{hh}Ht1Whh这一项。由上式中相邻时间步的隐藏变量Ht\boldsymbol{H}_tHtHt−1\boldsymbol{H}_{t-1}Ht1之间的关系可知,这里的隐藏变量能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。
Ot=HtWhq+bq \boldsymbol{O_t} = \boldsymbol{H_t} \boldsymbol{W}_{hq} + \boldsymbol{b}_q Ot=HtWhq+bq

输出与多层感知机类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值