CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

可以看:



作者:zhwhong
链接:https://www.jianshu.com/p/182baeb82c71
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

当你计算某个梯度出现问题时,把它当做是计算图的问题,将其分解成某些部分,然后使用链式法则。

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

这里将f(w,x)分解成上面部分,然后进行求各变量的梯度。分解形式是不唯一的

sigmoid函数导数可求

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

下面这个max gate ,本地梯度一个是0,一个是上一个梯度的值。想象成一个梯度路由器,加法节点回传相同的梯度给进来的两支,然后max将获取梯度,且将其路由到它其中的一个分支。

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

本地梯度是另一变量的值,认为它是一个梯度转换器, 我猜它是一个尺度缩放器,获取上游梯度,然后根据另一个分支的值对其缩放、

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

 

用向量计算梯度呀.... 

 CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

 CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks)

CS231n_Lecture4_介绍神经网络(Backpropagation、Neural Networks) 总结:

1、神经网络将是非常大的:不切实际的手写梯度公式为所有参数

 2、反向传播=递归应用链式法则沿计算图形计算所有梯度

3、implementations maintain a graph structure, where the nodes implement the forward() / backward() API

4、正向:计算一个操作的结果,并在内存中保存梯度计算所需的任何中间值

5、反向:应用链式法则计算损失函数相对于输入的梯度