cs231n训练营学习笔记(7)

↘锁芯ラ 提交于 2019-12-24 01:41:43

反向传播

计算复杂函数的解析梯度,(每个变量的导数指明了整个表达式对于该变量的值的敏感程度)

利用计算图这个框架

圆形节点表示运算,也被叫做门(gate)

复杂函数梯度根据链式法则反向递归得到,每个圆形节点可得到局部梯度

下面是一个例子,为了方便理解

 

更复杂的情况是,各个变量,比如上面局部梯度的x,y,z是向量的时候,局部梯度就变成了雅可比矩阵

但是当维数太大以及一次需要同时处理很多输入的时候,计算雅可比矩阵不太现实

如果节点处的计算是取最大值,那么可以通过分析,知道雅可比矩阵是个对角矩阵,直接计算填入

 

乘法的向量化梯度计算时候可以通过梯度的维度回推哪个矩阵在前,哪个矩阵该转置,梯度总是和变量一样的维度比较好确认。但是比如说2*2就很难判断是不是转置过了的

这里通过具体看改变了某个x是如何影响q的,可以看出来是变化了一列W,要和q这个列向量相乘需要转置

 

在线性分类器中,权重和输入是进行点积

,这说明输入数据的大小对于权重梯度的大小有影响。例如,在计算过程中对所有输入数据样本

乘以1000,那么权重的梯度将会增大1000倍,这样就必须降低学习率来弥补。这就是为什么数据预处理关系重大,它即使只是有微小变化,也会产生巨大影响。

前向后向程序运行:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!