资讯详情

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

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

序言

  • CS224N WINTER 2022课件可从https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1224/下载,也可从以下网盘获取:

    https://pan.baidu.com/s/1LDD1H3X3RS5wYuhpIeJOkA 提取码: hpu3 

    本系列博客的开头还将提供下载链接,总结相应的课件。

  • (Updating):GitHub@cs224n-winter-2022

    • 作者根据自己的情况记录更有用的知识点,并提出少量的意见或扩展延伸,而不是slide内容完整笔注;

    • CS224N WINTER 2022年共五次作业,作者提供自己完成的参考答案,不保证其正确性;

    • 由于CSDN限制博客字数,作者不能在博客中发表完整内容,只能分篇发布,可以从我身上发布GitHub Repository获得完整的笔记,(Updating):

      CS224N WINTER 2022(1)词向量(附)Assignment1答案)

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

      CS224N WINTER 2022(三)RNN、语言模型、梯度消失和梯度爆炸Assignment3答案)

      CS224N WINTER 2022年(4)机器翻译注意力机制subword模型(附Assignment4答案)

      CS224N WINTER 2022(五)Transformers详解(附Assignment5答案)


文章目录

  • 序言
    • lecture 3 反向传播和神经网络
      • slides
      • notes
      • suggested readings
      • additional readings
      • assignment2 参考答案
        • 1. written
        • 2. coding
    • lecture 4 依存分析
      • slides
      • notes
      • suggested readings
      • pytorch tutorial session


lecture 3 反向传播和神经网络

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

slides

[slides]

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

    假设神经网络的操作步骤如下: x ( input ) → z = W x b → h = f ( z ) → s = u ? h (3.1) x(\text{input})\rightarrow z=Wx b\rightarrow h=f(z)\rightarrow s=u^\top h\tag{3.1} x(input)→z=Wx b →h=f(z)→s=u⊤h(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}\tag{3.2} ∂W∂s​=∂h∂s​∂z∂h​∂W∂z​∂b∂s​=∂h∂s​∂z∂h​∂b∂z​(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)\tag{3.3} δ=∂h∂s​∂z∂h​=u⊤∘f′(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) \begin{aligned} \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 \end{aligned}\tag{3.4} ∂W∂s​∂b∂s​​=∂h∂s​∂z∂h​∂W∂z​=δ∂W∂z​=δ⊤x⊤=∂h∂s​∂z∂h​∂b∂z​=δ∂b∂z​=δ​(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}\tag{3.5} ∂x∂z​=i=1∑n​∂yi​∂z​∂x∂yi​​(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

锐单商城 - 一站式电子元器件采购平台