Exercise 1

【数据挖掘导论】HW3
Answer:
【数据挖掘导论】HW3

  1. 证明:

    dy=σ(Wx)(Wdx)=diag(σ(Wx))Wdx)dy=\sigma'(Wx)\bigodot(Wdx)=diag(\sigma'(Wx))Wdx)\bigodot表示尺寸相同的矩阵逐元素相乘

    对照导数与微分的联系,可得:

    yx=(diag(σ(Wx))W)T=WTdiag(σ(Wx))\frac{\partial y}{\partial x}=(diag(\sigma'(Wx))W)^T=W^Tdiag(\sigma'(Wx))

    Jacobi矩阵:yxT=diag(σ(Wx))WRn×d\frac{\partial y}{\partial x^T}=diag(\sigma'(Wx))W\in R^{n\times d}
    diag(σ(Wx))=[(Wx)1000(Wx)2000(Wx)n] diag(\sigma'(Wx))= \left[ \begin{matrix} (Wx)_{1} & 0 & \cdots & 0\\ 0 & (Wx)_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & (Wx)_{n} \end{matrix} \right]

  2. 证明:

    由于hth_t的递推性,hth_t与所有hi,i=1,,th_i,i=1,\dots,t均有联系,所以htW=hththtW+htht1ht1W++hth1h1W=k=1ththkhkW\frac{\partial h_t}{\partial W}=\frac{\partial h_t}{\partial h_t}\frac{\partial h_t}{\partial W}+\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial W}+\dots+\frac{\partial h_t}{\partial h_1}\frac{\partial h_1}{\partial W}=\sum_{k=1}^t\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\partial W}

    根据链式法则,LW=t=0TLtW=t=0TLththtW=t=0TLthtk=1ththkhkW=t=0Tk=1tLthththkhkW\frac{\partial L}{\partial W}=\sum_{t=0}^T \frac{\partial L_t}{\partial W}=\sum_{t=0}^T\frac{\partial L_t}{\partial h_t}\frac{\partial h_t}{\partial W}=\sum_{t=0}^T\frac{\partial L_t}{\partial h_t}\sum_{k=1}^t\frac{\partial h_t}{\partial h_k}\frac{\partial h_k}{\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}

Exercise 2

【数据挖掘导论】HW3【数据挖掘导论】HW3

Answer:

  1. LW=t=03k=1tLthththkhkW=L1h1h1h1h1W+L2h2h2h1h1W+L2h2h2h2h2W+L3h3h3h1h1W+L3h3h3h2h2W+L3h3h3h3h3W\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}=\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_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_3}{\partial h_3}\frac{\partial h_3}{\partial h_1}\frac{\partial h_1}{\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_3}\frac{\partial h_3}{\partial W}

    hthk=htht1ht1ht2hk+1hk=Πj=k+1thjhj1=Πj=k+1tWTdiag(σ)\frac{\partial h_t}{\partial h_k}=\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial h_t-2}\dots\frac{\partial h_{k+1}}{\partial h_k}=\Pi_{j=k+1}^t\frac{\partial h_j}{\partial h_{j-1}}=\Pi_{j=k+1}^tW^Tdiag(\sigma'),所以反向传播n次,矩阵乘法WTdiag(σ)W^Tdiag(\sigma')需要进行n次。

  2. 证明:

    • 当n=1时,M=QΛQ1M=Q\Lambda Q^{-1}成立。

    • 假设当n=k时,Mk=QΛkQ1M^k=Q\Lambda^k Q^{-1}

      则当n=k+1时,Mk+1=MkM=QΛkQ1QΛQ1=QΛkΛQ1=QΛk+1Q1M^{k+1}=M^kM = Q\Lambda^{k} Q^{-1}Q\Lambda Q^{-1}=Q\Lambda^{k} \Lambda Q^{-1}=Q\Lambda^{k+1} Q^{-1}成立。

    • 综上,对于所以nN+n\in N^+Mn=QΛnQ1M^n=Q\Lambda^n Q^{-1}均成立。

  3. W30=QΛ30Q1=[0.80.60.60.8][0.430000.930][0.80.60.60.8] {} W^{30}=Q\Lambda^{30}Q^{-1}= \left[ \begin{matrix} 0.8 & -0.6\\ 0.6 & 0.8\\ \end{matrix} \right] \left[ \begin{matrix} 0.4^{30} & 0\\ 0 & 0.9^{30}\\ \end{matrix} \right] \left[ \begin{matrix} 0.8 & 0.6\\ -0.6 & 0.8\\ \end{matrix} \right]

    • 在求W30W^{30}时仅需要在Λ\Lambda矩阵特征值的位置求幂方,得到Λ30\Lambda^{30}矩阵。
    • W特征值全小于1时,n取较大值时,Λn\Lambda^n趋于0矩阵,求得的WnW^{n}也趋于0矩阵,会造成梯度消失。
    • W特征值全大于1时,n取较大值时,Λn\Lambda^n对角线数值趋于无穷大,求得的WnW^{n}数值极大,会造成梯度爆炸。
    • W特征值全等于1时,无论n取何值,Λn\Lambda^n和W矩阵均为为单位矩阵,梯度为单位矩阵恒不变。

Exercise 3

【数据挖掘导论】HW3

【数据挖掘导论】HW3

Answer:

  1. ftf_t:忘记门,对上一个节点传进来的输入进行选择性忘记。通过计算得到的ftf_t(f表示forget)来作为忘记门控,来控制上一个状态的 Ct1C_{t-1} 哪些需要留哪些需要忘。

    iti_t:输入门,将这个阶段的输入有选择性地进行“记忆”。用于对输入 C^t\hat C_t 进行选择记忆。哪些重要则着重记录下来,哪些不重要,则少记一些。

    oto_t:输出门,将决定哪些将会被当成当前状态的输出。对上一阶段得到的 CtC_t 进行了放缩(通过一个tanh**函数进行变化)后由 oto_t 决定输出。

  2. sigmoid函数将三个门的输入转为[0,1][0,1]数值输出,表示每个部分的通过率。引入的两个tanh层输出的范围为[1,1][-1,1],将tanh层输出与矩阵点乘,虽然等式符号都是相加,但是tanh层输出矩阵中每个元素的符号决定实际的加或减。

  3. CtCk=Πt=k+1tCtCt1=I\frac{\partial C_t}{\partial C_{k}}=\Pi_{t={k+1}}^t\frac{\partial C_t}{\partial C_{t-1}}=I,

    这也是LSTM优于RNN的地方,LSTM的结构天然的可以克服梯度消失的问题。

    梯度消失的原因是CtCk=Πt=k+1tCtCt1\frac{\partial C_t}{\partial C_{k}}=\Pi_{t={k+1}}^t\frac{\partial C_t}{\partial C_{t-1}}部分,如果连乘项数值小于1,则会造成梯度消失。

    LSTM则是通过实现将连乘项CtCt101\frac{\partial C_t}{\partial C_{t-1}}\approx 0|1从而解决了传统RNN中梯度消失的问题。

相关文章:

  • 2021-11-22
  • 2021-05-15
  • 2022-02-09
  • 2022-02-09
  • 2021-12-03
  • 2022-02-09
  • 2021-08-18
猜你喜欢
  • 2022-02-09
  • 2022-02-09
  • 2021-07-29
  • 2021-12-21
  • 2021-06-25
  • 2021-05-20
相关资源
相似解决方案