CS231N-4-Neural Networks

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

Recap

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

Backpropagation 反向传播

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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:
这里写图片描述
这是高数多元微积分的内容。雅可比矩阵,处理多元函数的梯度。神经网络唯一的理论难点。

这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述

Neural Network

这里写图片描述
我们从简单的线性函数起步,叠加RELU层激活函数配上另一个线性函数,就多了一层,如此构成深度神经网络233. 当然这是无脑做法。

这里写图片描述

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

但是,老师也坦言,真正生物上的NN远非是人工神经网络… 只是loose analogy 很弱的类比
这里写图片描述
这里写图片描述
以上即为神经网络的基本架构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都是多元微分学知识,向量函数的求导加上矩阵运算搭配链式法则的求和是最难点了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值