CS224N WINTER 2022反向传播神经网络依存分析(附Assignment2答案)

Posted 囚生CY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224N WINTER 2022反向传播神经网络依存分析(附Assignment2答案)相关的知识,希望对你有一定的参考价值。

CS224N WINTER 2022(一)词向量(附Assignment1答案)
CS224N WINTER 2022(二)反向传播、神经网络、依存分析(附Assignment2答案)
CS224N WINTER 2022(三)RNN、语言模型、梯度消失与梯度爆炸(附Assignment3答案)
CS224N WINTER 2022(四)机器翻译、注意力机制、subword模型(附Assignment4答案)
CS224N WINTER 2022(五)Transformers详解(附Assignment5答案)

序言


文章目录


lecture 3 反向传播与神经网络

本节内容属于基础的机器学习与深度学习知识。

slides

[slides]

  1. 矩阵(向量)链式求导中的计算技巧:slides p.39

    假定一个神经网络的运算步骤如下所示:
    x ( input ) → z = W x + b → h = f ( z ) → s = u ⊤ h (3.1) x(\\textinput)\\rightarrow z=Wx+b\\rightarrow h=f(z)\\rightarrow s=u^\\top h\\tag3.1 x(input)z=Wx+bh=f(z)s=uh(3.1)
    则计算网络参数 W W W b b b的参数时:
    ∂ s ∂ W = ∂ s ∂ h ∂ h ∂ z ∂ z ∂ W ∂ s ∂ b = ∂ s ∂ h ∂ h ∂ z ∂ z ∂ b (3.2) \\frac\\partial s\\partial W=\\frac\\partial s\\partial h\\frac\\partial h\\partial z\\frac\\partial z\\partial W\\quad\\frac\\partial s\\partial b=\\frac\\partial s\\partial h\\frac\\partial h\\partial z\\frac\\partial z\\partial b\\tag3.2 Ws=hszhWzbs=hszhbz(3.2)
    可以定义局部误差信号(local error signal):
    δ = ∂ s ∂ h ∂ h ∂ z = u ⊤ ∘ f ′ ( z ) (3.3) \\delta=\\frac\\partial s\\partial h\\frac\\partial h\\partial z=u^\\top\\circ f'(z)\\tag3.3 δ=hszh=uf(z)(3.3)
    则可以使得计算 ( 3.2 ) (3.2) (3.2)式的更加简单,事实上进一步计算可以发现:
    ∂ s ∂ W = ∂ s ∂ h ∂ h ∂ z ∂ z ∂ W = δ ∂ z ∂ W = δ ⊤ x ⊤ ∂ s ∂ b = ∂ s ∂ h ∂ h ∂ z ∂ z ∂ b = δ ∂ z ∂ b = δ (3.4) \\beginaligned \\frac\\partial s\\partial W&=\\frac\\partial s\\partial h\\frac\\partial h\\partial z\\frac\\partial z\\partial W=\\delta\\frac\\partial z\\partial W=\\delta^\\top x^\\top\\\\ \\frac\\partial s\\partial b&=\\frac\\partial s\\partial h\\frac\\partial h\\partial z\\frac\\partial z\\partial b=\\delta\\frac\\partial z\\partial b=\\delta \\endaligned\\tag3.4 Wsbs=hszhWz=δWz=δx=hszhbz=δbz=δ(3.4)
    此时我们称 x x x局部输入信号(local input signal)。

    这就是反向传播高效的原因,事实上只需要在神经网络的每条传播路径上存储两端节点变量的偏导值(如神经网络中节点 z z z指向节点 h h h,则存储 ∂ h / ∂ z \\partial h/\\partial z h/z),即可快速计算任意两个节点变量之间的偏导值。

  2. 广义计算图中的反向传播(General Computation Graph):slides p.77
    ∂ z ∂ x = ∑ i = 1 n ∂ z ∂ y i ∂ y i ∂ x (3.5) \\frac\\partial z\\partial x=\\sum_i=1^n\\frac\\partial z\\partial y_i\\frac\\partial y_i\\partial x\\tag3.5 xz=i=1nyizxyi(3.5)
    其中 y 1 , y 2 , . . . , y n \\y_1,y_2,...,y_n\\ y1,y2,...,yn x x x指向的所有节点。

notes

[notes]

  1. 神经网络中的常用技巧:notes p.8-18