时隔4个多月,暑假去了Stanford同一个教室NVIDIA Auditorium上课,再次回到CS231N的课程,如今已是大三。没有退路。
2017年老师换了,内容也更新了,所以就不听去年的了。
本讲我预计是课程的核心内容,神经网络的介绍。注意Neural Networks包括CNN,RNN,DNN等,所以是个很基础的概念,用到的数学知识就是反向传播的链式法则。

Recap

CS231N-4-Neural Networks
Our objective: L关于W的导数(梯度)。
求梯度两种方式:数值解,不精确,而且慢;解析解,精确又快。
但解析解绝不能暴力计算,对于复杂的神经网络,drive you mad.
要用computational graph的backpropagation算法。
CS231N-4-Neural Networks

Backpropagation 反向传播

CS231N-4-Neural Networks

核心要义就是这张图。先正向传播value,然后反向传播gradient. 由chain rule,每条路径的gradient可以借助upstreaming的gradient值乘以local gradient计算得出。这样我们就能求出最终的结果:函数关于输入变量的gradient.
注意computational graph是一个流程图,我们引入函数的intermediate variable,来简化求导的计算。
常见的算符是加减乘除,取max等,根据求导的法则,下面结论是显然的。

CS231N-4-Neural Networks

但graph可以变化,是自定义的,你可以group一些结点成为一个复杂的结点,如sigmoid gate,而事实上由于sigmoid的求导容易,这并不复杂。这也是我们用自然对数e的原因。

CS231N-4-Neural Networks

一个结点可以连接连接两个结点(从左到右),反向传播求导时相加两个结果即可。

CS231N-4-Neural Networks

Vector’s perspective

Jacobian matrix
Suppose f : ℝn → ℝm is a function which takes as input the vector x ∈ ℝn and produces as output the vector f(x) ∈ ℝm. Then the Jacobian matrix J of f is an m×n matrix, usually defined and arranged as follows:
CS231N-4-Neural Networks
这是高数多元微积分的内容。雅可比矩阵,处理多元函数的梯度。神经网络唯一的理论难点。

CS231N-4-Neural Networks

举了一个例子:注意链式法则对于多个中间变量(qi)时,需要累乘相加求和。在处理时,注意jacobian的维数,以及矩阵向量的表示和运算,即可化简成最漂亮的结果。

CS231N-4-Neural Networks
CS231N-4-Neural Networks

另外,实际framework都把forward() get result & backward() get gradient封装好了,常见的函数如sigmoid都有。

CS231N-4-Neural Networks

Neural Network

CS231N-4-Neural Networks
我们从简单的线性函数起步,叠加RELU层**函数配上另一个线性函数,就多了一层,如此构成深度神经网络233. 当然这是无脑做法。

CS231N-4-Neural Networks

这是常见的**函数Activation function,如今RELU已经取代sigmoid,成为NN的标配。

但是,老师也坦言,真正生物上的NN远非是人工神经网络… 只是loose analogy 很弱的类比
CS231N-4-Neural Networks
CS231N-4-Neural Networks
以上即为神经网络的基本架构architecture.
由代码可以发现,每个hidden layer都是f(np.dot(Wi,hi)+bi) RELU(non-linear)+linear 结合

以上是神经网络的数学原理——chain rule和基本结构hidden layer的stack方式。下节课介绍CNN的卷积处理。

另外,A1布置了2-layer的构造。

Lecture Note

Understanding Backpropagation (BP 算法): [def] computing gradients of expressions through recursive application of chain rule.

understand its subtleties (subtlety 精妙!)

computing the gradient of f at x i.e. f(x). 准确的说,求的是loss function关于W权重的偏导。但关于x输入数据的偏导有时也有用,作为visualisation.

说实话,lecture note都是多元微分学知识,向量函数的求导加上矩阵运算搭配链式法则的求和是最难点了。

相关文章:

  • 2021-08-08
  • 2021-06-02
  • 2021-07-17
  • 2021-10-19
  • 2022-12-23
  • 2022-01-08
  • 2021-06-04
  • 2021-10-08
猜你喜欢
  • 2021-08-15
  • 2022-12-23
  • 2021-09-06
  • 2021-08-28
  • 2021-09-15
  • 2021-05-28
  • 2021-09-04
相关资源
相似解决方案