Coursera Deeplearning.ai「深度学习」课程笔记L5.W1循环序列模型

1 - 序列模型数学符号

给定这样的输入数据 x x x,假如想要一个序列模型输出 y y y

  • x ⟨ t ⟩ x^{\langle t \rangle} xt y ⟨ t ⟩ y^{\langle t \rangle} yt:用 t t t来索引序列中的位置
  • T x T_{x} Tx:输入序列的长度
  • T y T_{y} Ty:输出序列的长度。 T x T_{x} Tx T y T_{y} Ty可以有不同的值。
  • x ( i ) ⟨ t ⟩ x^{\left(i \right)\langle t \rangle } x(i)t:第 i i i个训练样本的序列中的第 t t t个元素
  • T x ( i ) T_{x}^{(i)} Tx(i):第 i i i个训练样本的输入序列长度。
  • y ( i ) ⟨ t ⟩ y^{\left( i \right) \langle t \rangle} y(i)t:第 i i i个训练样本的序列中的第 t t t个元素,
  • T y ( i ) T_{y}^{(i)} Ty(i):第 i i i个训练样本的输出序列的长度。
符号含义符号含义
x ⟨ t ⟩ x^{\langle t \rangle} xt t t t来索引序列中的位置 y ⟨ t ⟩ y^{\langle t \rangle} yt t t t来索引序列中的位置
T x T_{x} Tx输入序列的长度 T y T_{y} Ty输出序列的长度
x ( i ) ⟨ t ⟩ x^{\left(i \right)\langle t \rangle } x(i)t i i i个训练样本序列中第 t t t个元素 y ( i ) ⟨ t ⟩ y^{\left( i \right) \langle t \rangle} y(i)t i i i个训练样本序列中第 t t t个元素
T x ( i ) T_{x}^{(i)} Tx(i) i i i个训练样本的输入序列长度 T y ( i ) T_{y}^{(i)} Ty(i) i i i个训练样本的输出序列的长度

2 - 循环神经网络模型(Recurrent Neural Network, RNN)

2.1 - 图形表示

png

Figure 1. 循环神经网络RNN图示(引自DeepLearning.ai)

2.2 - 符号表示

t t t时刻,

(1) a ⟨ t ⟩ = g 1 ( W a a a ⟨ t − 1 ⟩ + W a x x ⟨ t ⟩ + b a ) a^{\langle t \rangle} = g_{1}(W_{aa}a^{\langle t - 1 \rangle} + W_{ax}x^{\langle t \rangle} + b_{a})\tag{1} at=g1(Waaat1+Waxxt+ba)(1)

(2) y ^ ⟨ t ⟩ = g 2 ( W y a a ⟨ t ⟩ + b y ) \hat y^{\langle t \rangle} = g_{2}(W_{{ya}}a^{\langle t \rangle} + b_{y})\tag{2} y^t=g2(Wyaat+by)(2)

矩阵下标 W ax W_{\text{ax}} Wax,第二个下标 x _x x 意味着 W ax W_{\text{ax}} Wax要乘以某个 x x x 类型的量,然后第一个下标 a _a a 表示它是用来计算某个 a a a 类型的变量。同样的, W ya W_{\text{ya}} Wya乘上了某个 a a a类型的量,用来计算出某个 y ^ \hat {y} y^ 类型的量。

简化符号:
(3) a ⟨ t ⟩ = g ( W a [ a ⟨ t − 1 ⟩ , x ] + b a ) a^{\langle t \rangle} =g(W_{a}\left\lbrack a^{\langle t-1 \rangle},x^{} \right\rbrack +b_{a})\tag{3} at=g(Wa[at1,x]+ba)(3) (4) y ^ ⟨ t ⟩ = g ( W y a ⟨ t ⟩ + b y ) \hat y^{\langle t \rangle} = g(W_{y}a^{\langle t \rangle} +b_{y})\tag{4} y^t=g(Wyat+by)(4)

  • [ W a a ⋮ W a x ] = W a [ {{W}{aa}}\vdots {{W}{ax}}]=W_{a} [WaaWax]=Wa,即 W a W_{a} Wa是将矩阵 W a a W_{aa} Waa和矩阵 W a x W_{{ax}} Wax水平并列放置。
  • [ a ⟨ t − 1 ⟩ , x ⟨ t ⟩ ] \left\lbrack a^{\langle t - 1 \rangle},x^{\langle t \rangle}\right\rbrack [at1,xt] 表示将这两个向量堆叠在一起。
  • W y W_{y} Wy表明它是计算 y y y类型的量的权重矩阵,而 W a W_{a} Wa b a b_{a} ba表示它们用来计算 a a a类型或激活值。

2.3 - 激活函数

  • 循环神经网络用的激活函数经常是 tanh,不过有时候也会用 ReLU,但是 tanh 是更通常的选择。

2.4 - 损失函数

一个元素损失函数

(5) L ( y ^ , y ) = − y log ⁡ y ^ − ( 1 − y ^ ) l o g ( 1 − y ^ ) L^{}( \hat y^{},y^{}) = - y^{}\log\hat y^{}-( 1-\hat y^{})log(1-\hat y^{})\tag{5} L(y^,y)=ylogy^(1y^)log(1y^)(5)

标准逻辑回归损失函数,也叫交叉熵损失函数(Cross Entropy Loss)

整个序列的损失函数,将 L L L定义为

(6) L ( y ^ , y ) =   ∑ t = 1 T x L ⟨ t ⟩ ( y ^ ⟨ t ⟩ , y ⟨ t ⟩ ) L(\hat y,y) = \ \sum_{t = 1}^{T_{x}}{L^{\langle t \rangle}(\hat y^{\langle t \rangle},y^{\langle t \rangle})}\tag{6} L(y^,y)= t=1TxLt(y^t,yt)(6)

2.5 - 通过(穿越)时间反向传播-backpropagation through time

  • RNN 反向传播示意图:
    png

  • RNN 反向传播公式:

(7) a ⟨ t ⟩ = tanh ⁡ ( W a x x ⟨ t ⟩ + W a a a ⟨ t − 1 ⟩ + b ) a^{\langle t \rangle}=\tanh \left(W_{a x} x^{\langle t \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)\tag{7} at=tanh(Waxxt+Waaat1+b)(7) (8) ∂ tanh ⁡ ( x ) ∂ x = 1 − tanh ⁡ ( x ) 2 \frac{\partial \tanh (x)}{\partial x}=1-\tanh (x)^{2}\tag{8} xtanh(x)=1tanh(x)2(8) (9) ∂ a ⟨ t ⟩ ∂ W a x = ( 1 − tanh ⁡ ( W a x x ⟨ t ⟩ + W a a a ⟨ t − 1 ⟩ + b ) 2 ) x ⟨ t ⟩ T \frac{\partial a^{\langle t \rangle}}{\partial W_{a x}}=\left(1-\tanh \left(W_{a x} x^{\langle t \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)^{2}\right) x^{\langle t \rangle T}\tag{9} Waxat=(1tanh(Waxxt+Waaat1+b)2)xtT(9) (10) ∂ a ⟨ t ⟩ ∂ W a a = ( 1 − tanh ⁡ ( W a x x ⟨ t ⟩ + W a a a ⟨ t − 1 ⟩ + b ) 2 ) a ⟨ t − 1 ⟩ T \frac{\partial a^{\langle t \rangle}}{\partial W_{a a}}=\left(1-\tanh \left(W_{a x} x^{\langle t \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)^{2}\right) a^{\langle t-1 \rangle T}\tag{10} Waaat=(1tanh(Waxxt+Waaat1+b)2)at1T(10) (11) ∂ a ⟨ t ⟩ ∂ b = ∑ b a t c h ( 1 − tanh ⁡ ( W a x x ⟨ t ⟩ + W a a a ⟨ t − 1 ⟩ + b ) 2 ) \frac{\partial a^{\langle t \rangle}}{\partial b}=\sum_{batch}\left(1-\tanh \left(W_{a x} x^{\langle t \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)^{2}\right)\tag{11} bat=batch(1tanh(Waxxt+Waaat1+b)2)(11) (12) ∂ a ⟨ t > ∂ x ⟨ t ⟩ = W a x T ( 1 − tanh ⁡ ( W a x x ⟨ t ⟩ + W a a a ⟨ t − 1 ⟩ + b ) 2 ) \frac{\partial a^{\langle t>}}{\partial x^{\langle t \rangle}}=W_{a x}^{T}\left(1-\tanh \left(W_{a x} x^{\langle t \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)^{2}\right)\tag{12} xtat>=WaxT(1tanh(Waxxt+Waaat1+b)2)(12) (13) ∂ a ⟨ t ⟩ ∂ a ⟨ t − 1 ⟩ = W a a T ( 1 − tanh ⁡ ( W a x x ⟨ t − 1 ⟩ + W a a a ⟨ t − 1 ⟩ + b ) 2 ) \frac{\partial a^{\langle t \rangle}}{\partial a^{\langle t-1 \rangle}}=W_{a a}^{T}\left(1-\tanh \left(W_{a x} x^{\langle t-1 \rangle}+W_{a a} a^{\langle t-1 \rangle}+b\right)^{2}\right)\tag{13} at1at=WaaT(1tanh(Waxxt1+Waaat1+b)2)(13)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值