2019/6/4CS231n课程笔记(反向传播和神经网络)
反向传播
课程回顾
简单线性关系的反向传播过程
所以所谓的反向传播过程就是在一步一步地叠乘每一步的导数,最后算的对于输入权值的导数。也就是绿色前向传播得到output,利用output经过红色的反向传播算回去~
一个稍复杂的例子:把不同颜色阅读顺序如下:1 2 3 4 5(以蓝红黑紫黄的顺序进行回顾)
1、当存在max门时该如何处理呢?
对于选择出的大的一方附以1的local权值,另一个为0。
2、当一个中间node和下面的两个node相连接时,该如何处理中间node的权值呢?如下图的情况
后面两个node计算出来的local梯度累加起来为中间node的梯度。表达式如下:
向量形式的反向传播
3、当不是简单的线性关系而是传递一维向量的时候又是怎么处理的呢?
这时候的梯度矩阵的维数是n*m,n为输入的向量个数,m为输出的,该矩阵是雅克比矩阵,即每一项都是输出对于输入求骗到的结果。
4、这个雅克比矩阵有什么特点?
是个对角矩阵,因为所做的运算是max,所以只有一个输入元素对应于输出元素起作用。(能明白是一个元素起作用,但为什么是对角阵没想通……)
注:保证算的梯度矩阵的大小和原输入的大小相同,检查对错的关键。
在计算的时候貌似图中框选的两项做了转置……,而且
在算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
(两个矩阵相乘竟然颠倒了顺序,也没有明白,迷醉)
神经网络
其中的h=max(0,W1x)