数据挖掘Homework3

关于RNN和LSTM

请注意,本文编写于 2011 天前,最后修改于 2011 天前,其中某些信息可能已经过时。

Homework 3

Exercise 1:

(a)

假设 $y=\sigma(Wx)$,且 $y\in \mathbb{R} {^n}, x\in\mathbb{R}^d,W\in\mathbb{R}^{n\times d}$,要证明

$$ \frac{\partial{y}}{\partial x}=diag(\sigma {'})W \in \mathbb{R} ^{n\times d} $$

通过向量求导的定义可得

$$ \frac{\partial y}{\partial x}= \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \cdots & \frac{\partial y_1}{\partial x_d} \\ \vdots & \ddots & \vdots\\ \frac{\partial y_n}{\partial x_1} & \cdots & \frac{\partial y_n}{\partial x_d} \end{bmatrix} $$

并且

$$ \begin{align*} Wx &{}=\begin{bmatrix} w_{11} & \cdots & w_{1d} \\ \vdots & \ddots & \vdots\\ w_{n1} & \cdots & w_{nd} \end{bmatrix}\times \begin{bmatrix} x_1\\ \vdots\\ x_d \end{bmatrix}\\ &{}=\begin{bmatrix} w_{11}*x_1+w_{12}*x_2+\cdots +w_{1d}*x_d\\ \vdots\\ w_{n1}*x_1+w_{n2}*x_2+\cdots +w_{nd}*x_d \end{bmatrix}\\ &{}=P \end{align*} $$

即是设 $P_i=w_{i1}*x_1+w_{i2}*x_2+\cdots +w_{id}*x_d,i<n$

则证明如下:

$$ \begin{align*} \frac{\partial y}{\partial x} =&{}\frac{\partial\sigma(Wx)}{\partial x}\\ =&{}\frac{\partial \sigma(P)}{\partial x}\\ =&{}\begin{bmatrix} \frac{\partial \sigma(P_1)}{\partial x_1} & \cdots & \frac{\partial \sigma(P_1)}{\partial x_d} \\ \vdots & \ddots & \vdots\\ \frac{\partial \sigma(P_n)}{\partial x_1} & \cdots & \frac{\partial \sigma(P_n)}{\partial x_d} \end{bmatrix} \end{align*} $$

又因为

$$ \sigma(Pi)=\frac{1}{1+exp(Pi)}=\frac{1}{1+exp(w_{i1}*x_1+w_{i2}*x_2+\cdots +w_{id}*x_d)} $$

那么根据 $sigmoid$ 函数性质 $\sigma{'(z)}=\sigma{(z)}(1-\sigma(z))$ 可得

$$ \frac{\partial\sigma(P_i)}{\partial x_j}=\sigma(P_i)(1-\sigma(P_i))*w_{ij} $$

则有

$$ \begin{align*} \frac{\partial y}{\partial x} =&{}\begin{bmatrix} \sigma(P_1)(1-\sigma(P_1))w_{11} & \sigma(P_1)(1-\sigma(P_1))w_{12} & \cdots & \sigma(P_1)(1-\sigma(P_1))w_{1d} \\ \sigma(P_2)(1-\sigma(P_2))w_{21} & \sigma(P_2)(1-\sigma(P_2))w_{22} & \cdots & \sigma(P_2)(1-\sigma(P_2))w_{2d}\\ \vdots & \ddots & \ddots & \vdots\\ \sigma(P_n)(1-\sigma(P_n))w_{n1} & \sigma(P_n)(1-\sigma(P_n))w_{n_2} & \cdots & \sigma(P_n)(1-\sigma(P_n))w_{nd} \end{bmatrix} \end{align*} $$

再看等式右边,又有

$$ \begin{align*} diag(\sigma')W =&{}{diag(\sigma'(Wx))}W\\ =&{}diag(\sigma(Wx)(1-\sigma(Wx)))W\\ =&{}diag(\sigma(P)(1-\sigma(P)))W\\ =&{}\begin{bmatrix} \sigma(P_1)(1-\sigma(P_1)) & \cdots & 0 \\ \vdots & \ddots & \vdots\\ 0 & \cdots & \sigma(P_n)(1-\sigma(P_n)) \end{bmatrix}\times \begin{bmatrix} w_{11} & \cdots & w_{1d} \\ \vdots & \ddots & \vdots\\ w_{n1} & \cdots & w_{nd} \end{bmatrix}\\ =&{}\begin{bmatrix} \sigma(P_1)(1-\sigma(P_1))w_{11} & \sigma(P_1)(1-\sigma(P_1))w_{12} & \cdots & \sigma(P_1)(1-\sigma(P_1))w_{1d} \\ \sigma(P_2)(1-\sigma(P_2))w_{21} & \sigma(P_2)(1-\sigma(P_2))w_{22} & \cdots & \sigma(P_2)(1-\sigma(P_2))w_{2d}\\ \vdots & \ddots & \ddots & \vdots\\ \sigma(P_n)(1-\sigma(P_n))w_{n1} & \sigma(P_n)(1-\sigma(P_n))w_{n_2} & \cdots & \sigma(P_n)(1-\sigma(P_n))w_{nd} \end{bmatrix} \end{align*} $$

因此证明等式成立

(b)

要证明

$$ \frac{\partial L}{\partial W}=\sum_{t=0}^{T}\sum_{k=1}^{t}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W} $$

那么只需要证明

$$ \frac{\partial L_t}{\partial W}=\sum_{k=1}^{t}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W} $$即可,根据链式求导法则以及 $h_t=\sigma(Wh_{t-1}+Ux_t)$,且 $\sigma(z)=\frac{1}{1+exp(z)}$,并有性质 $\sigma '(z)=\sigma(z)(1-\sigma(z))$

证明如下:

$$ \begin{align*} \frac{\partial L_t}{\partial W} &{}=\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial W}\\ &{}=\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_t}\frac{\partial h_t^+}{\partial W}+\frac{\partial L_t}{\partial h_{t}}\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial W}\\ &{}=\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_t}\frac{\partial h_t^+}{\partial W}+\frac{\partial L_t}{\partial h_{t}}\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial h_{t-1}}\frac{\partial h_{t-1}^+}{\partial W}+\frac{\partial L_t}{\partial h_{t}}\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial h_{t-2}}\frac{\partial h_{t-2}}{\partial W}\\ &{}=\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_t}\frac{\partial h_t^+}{\partial W}+\frac{\partial L_t}{\partial h_{t}}\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}^+}{\partial W}+\frac{\partial L_t}{\partial h_{t}}\frac{\partial h_t}{\partial h_{t-2}}\frac{\partial h_{t-2}}{\partial W} \\ &\cdots \\ &\cdots \\ &{}=\sum_{k=1}^{t}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W} \end{align*} $$

Exercise 2:

(a)
$\frac{\partial L}{\partial W}$ , 当 $T=3$ ,根据 $\frac{\partial L}{\partial W}=\sum_{t=0}^{T}\sum_{k=1}^{t}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}$ 推导如下:$$ \begin{align*} \frac{\partial L}{\partial W}=&{}\sum_{t=0}^{3}\sum_{k=1}^{t}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}\\ =&{}\sum_{k=1}^{1}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}+\sum_{k=1}^{2}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}+\sum_{k=1}^{3}\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}\\ =&{}\frac{\partial L_1}{\partial h_1}\frac{\partial h_1}{\partial h_1}\frac{\partial h_1}{\partial W}+\\ &{}\frac{\partial L_2}{\partial h_2}\frac{\partial h_2}{\partial h_2}\frac{\partial h_2}{\partial W}+\frac{\partial L_2}{\partial h_2}\frac{\partial h_2}{\partial h_1}\frac{\partial h_1}{\partial W}+\\ &{}\frac{\partial L_3}{\partial h_3}\frac{\partial h_3}{\partial h_3}\frac{\partial h_3}{\partial W}+\frac{\partial L_3}{\partial h_3}\frac{\partial h_3}{\partial h_2}\frac{\partial h_2}{\partial W}+\frac{\partial L_3}{\partial h_3}\frac{\partial h_3}{\partial h_1}\frac{\partial h_1}{\partial W} \end{align*} $$
(b)

已知

$$ M=Q\Lambda Q^{-1} $$当 $\lambda_i=\Lambda_{ii}$ , $M_{v_i}=\lambda_iv_i$ $\prod^n_{i=1}M$ 可以表示为 $M^n=Q\Lambda^nQ^{-1}$ 证明如下,首先$$ \begin{align*} &\prod^n_{i=1}M=M\times M\times M\times\cdots\times M\\ ={}& Q\Lambda Q^{-1}\times Q\Lambda Q^{-1}\times\cdots\times Q\Lambda Q^{-1} \end{align*} $$

又因为逆矩阵的性质,可得 $Q^{-1}Q=I$ , 则可证得

$$ \begin{align*} M^n&{}=Q\times \Lambda \times I \times \Lambda\times I\times\cdots\times I\times \Lambda\times Q^{-1}\\ &{}=Q\Lambda^nQ^{-1} \end{align*} $$
(c)

首先可知

$$ W= \begin{bmatrix} 0.58 & 0.24 \\ 0.24 & 0.72 \\ \end{bmatrix} $$$$ W=Q\Lambda Q^{-1}= \begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix} \begin{bmatrix} 0.9 & 0 \\ 0 & 0.4 \\ \end{bmatrix} \begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix} $$

然后通过 $M^n=Q\Lambda^nQ^{-1}$,计算 $W^{30}$,得到

$$ \begin{align*} W^{30}&=Q\Lambda^{30} Q^{-1}\\ &=\begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix} \begin{bmatrix} 0.9 & 0 \\ 0 & 0.4 \\ \end{bmatrix}^{30} \begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix}\\ &=\begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix} \begin{bmatrix} 0.9^{30} & 0 \\ 0 & 0.4^{30} \\ \end{bmatrix} \begin{bmatrix} -0.6 & -0.8 \\ -0.8 & 0.6 \\ \end{bmatrix}\\ &=\begin{bmatrix} 0.0153 & 0.0203 \\ 0.0203 & 0.0271 \end{bmatrix} \end{align*} $$

然后发现,如果当 $W$ 的特征值都小于 $1$ 的时候,$W^n$ 的各个元素随着 $n$ 的增加而趋近于 $0$;而如果当 $W$ 的特征值都等于 $1$ 的时候,$W^n$ 的各个元素随着 $n$ 的增加而不会产生变化;如果当 $W$ 的特征值都大于 $1$ 的时候,$W^n$ 的各个元素随着 $n$ 的增加而增大。

Exercise 3:

(a)

LSTM 有通过精心设计的称作为门(gate)的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。

第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取 $h_{t-1}$ 和 $x_t$ ,输出一个在 0 到 1 之间的数值给每个在细胞状态 $C_{t-1}$ 中的数字。$1$ 表示“完全保留”,$0$ 表示“完全舍弃”。

$$ f_t=\sigma(W_f h_{t-1}+U_fx_t) $$

下一步是确定什么样的新信息被存放在细胞状态中。这里包含两个部分。第一,sigmoid 层称 输入门层 决定什么值我们将要更新。然后,一个 tanh 层创建一个新的候选值向量,$\tilde{C}_t$,会被加入到状态中。

$$ i_t=\sigma(W_ih_{t-1}+U_ix_t) $$$$ \tilde{C}_t=tanh(W_ch_{t-1}+U_cx_t) $$

下一步更新细胞状态,$C_{t-1}$ 更新为 $C_t$ 。把旧状态与 $f_t$ 相乘,丢弃掉确定需要丢弃的信息。接着加上 $i_t * \tilde{C}_t$ 。

$$ C_t=f_t\ast C_{t-1}+i_t\odot\tilde{C}_t $$

最终确定输出的值。这个输出将会基于细胞状态,但是也是一个过滤后的版本。首先,运行一个 sigmoid层来确定细胞状态的哪个部分将输出出去。接着,将细胞状态通过tanh进行处理(得到一个在 -1 到 1 之间的值)并将它和sigmoid门的输出相乘,最终会输出需要输出的部分。

$$ o_t=\sigma(W_oh_{t-1}+U_ox_t) $$$$ h_t=o_t\ast tanh(C_t) $$

总结,$f_t$ 将决定从细胞状态中丢弃的信息;$i_t$ 将决定要更新的信息;$o_t$ 将决定最终输出的部分。

(b)

可以看出,$f_t$ , $i_t$ , $o_t$ 都会是正数。因为 $\sigma() $函数的值的范围在 $0,1$之间。

(c)

已知

$$ \frac{\partial C_t}{\partial C_k}=\prod^t_{i=k+1}\frac{\partial C_t}{\partial C_{t-1}} $$令 $f_t=1$ 且 $i_t=0$ 然后使得对于所有的 $t$ ,$C_t=C_{t-1}$ 成立,那么此时 $\frac{\partial C_t}{\partial C_k}$ 会如何?$$ \begin{align*} \frac{\partial C_t}{\partial C_k} &{}=\prod^t_{i=k+1}\frac{\partial C_t}{\partial C_{t-1}}\\ &{}=\frac{\partial C_{k+2}}{\partial C_{k+1}}\times\frac{\partial C_{k+3}}{\partial C_{k+2}}\times \cdots\times\frac{\partial C_{t}}{\partial C_{t-1}}\\ &{}=1\times1\times\cdots\times1\\ &{}=1 \end{align*} $$即可得 $\frac{\partial C_t}{\partial C_k}$ 会等于 $1$ , 而从前面的分析来看,$C_t$ 表示的是细胞状态,而 $f_t$ 表示的将从细胞状态中丢弃的信息,$f_t=1$ 的时候意味着将完全保留,而 $i_t$ 表示要更新的信息,$i_t=0$ 的时候意味着没有值要更新。总的来说就是从头到尾都不会丢弃信息,也不会更新信息,因此 $\frac{\partial C_t}{\partial C_k}$ 为 $1$ 是正确和合理的。

添加新评论

请不要水评论

评论列表