2019/6/4CS231n课程笔记(反向传播和神经网络)

反向传播

课程回顾

2019/6/4CS231n课程笔记(反向传播和神经网络)

2019/6/4CS231n课程笔记(反向传播和神经网络)

简单线性关系的反向传播过程

2019/6/4CS231n课程笔记(反向传播和神经网络)

所以所谓的反向传播过程就是在一步一步地叠乘每一步的导数,最后算的对于输入权值的导数。也就是绿色前向传播得到output,利用output经过红色的反向传播算回去~

2019/6/4CS231n课程笔记(反向传播和神经网络)

一个稍复杂的例子:把不同颜色阅读顺序如下:1   2   3   4   5以蓝红黑紫黄的顺序进行回顾

2019/6/4CS231n课程笔记(反向传播和神经网络)

1、当存在max门时该如何处理呢?

对于选择出的大的一方附以1的local权值,另一个为0。

2019/6/4CS231n课程笔记(反向传播和神经网络)

2、当一个中间node和下面的两个node相连接时,该如何处理中间node的权值呢?如下图的情况

2019/6/4CS231n课程笔记(反向传播和神经网络)

后面两个node计算出来的local梯度累加起来为中间node的梯度。表达式如下:

2019/6/4CS231n课程笔记(反向传播和神经网络)

向量形式的反向传播

3、当不是简单的线性关系而是传递一维向量的时候又是怎么处理的呢?

这时候的梯度矩阵的维数是n*m,n为输入的向量个数,m为输出的,该矩阵是雅克比矩阵,即每一项都是输出对于输入求骗到的结果。

2019/6/4CS231n课程笔记(反向传播和神经网络)

4、这个雅克比矩阵有什么特点?

是个对角矩阵,因为所做的运算是max,所以只有一个输入元素对应于输出元素起作用。(能明白是一个元素起作用,但为什么是对角阵没想通……)

2019/6/4CS231n课程笔记(反向传播和神经网络)

2019/6/4CS231n课程笔记(反向传播和神经网络)

注:保证算的梯度矩阵的大小和原输入的大小相同,检查对错的关键。

2019/6/4CS231n课程笔记(反向传播和神经网络)

在计算的时候貌似图中框选的两项做了转置……,而且

在算W的梯度矩阵的时候使用矩阵3乘矩阵2的转置结果

0.088=0.44*0.2

0.104=0.52*0.2

0.176=0.44*0.4

0.208=0.52*0.4

在计算X的梯度的时候使用矩阵1的转置结果乘矩阵3

-0.112=0.1*0.44+(-0.3)*0.52

0.636=0.5*0.44+0.8*0.52

(两个矩阵相乘竟然颠倒了顺序,也没有明白,迷醉)

神经网络

2019/6/4CS231n课程笔记(反向传播和神经网络)

其中的h=max(0,W1x)

2019/6/4CS231n课程笔记(反向传播和神经网络)