反向传播
计算复杂函数的解析梯度,(每个变量的导数指明了整个表达式对于该变量的值的敏感程度)
利用计算图这个框架
圆形节点表示运算,也被叫做门(gate)
复杂函数梯度根据链式法则反向递归得到,每个圆形节点可得到局部梯度
下面是一个例子,为了方便理解
更复杂的情况是,各个变量,比如上面局部梯度的x,y,z是向量的时候,局部梯度就变成了雅可比矩阵
但是当维数太大以及一次需要同时处理很多输入的时候,计算雅可比矩阵不太现实
如果节点处的计算是取最大值,那么可以通过分析,知道雅可比矩阵是个对角矩阵,直接计算填入
乘法的向量化梯度计算时候可以通过梯度的维度回推哪个矩阵在前,哪个矩阵该转置,梯度总是和变量一样的维度比较好确认。但是比如说2*2就很难判断是不是转置过了的
这里通过具体看改变了某个x是如何影响q的,可以看出来是变化了一列W,要和q这个列向量相乘需要转置
在线性分类器中,权重和输入是进行点积
,这说明输入数据的大小对于权重梯度的大小有影响。例如,在计算过程中对所有输入数据样本乘以1000,那么权重的梯度将会增大1000倍,这样就必须降低学习率来弥补。这就是为什么数据预处理关系重大,它即使只是有微小变化,也会产生巨大影响。前向后向程序运行:
来源:CSDN
作者:就叫荣吧
链接:https://blog.csdn.net/qq_29843303/article/details/103668834