Math NN中ReLU的导数

Math NN中ReLU的导数,math,neural-network,Math,Neural Network,假设存在两层网络 Input (N*D matrix) -> W1 (D*H matrix) -> ReLU -> W2 (H*C matrix) -> Output (N*C matrix) 当我试图在反向传播中计算导数时。在我看来,W2的导数应该是HC矩阵。然后我计算ReLU的局部导数,它应该是一个NH矩阵,与ReLU的输入相同。ReLU的最终导数应该是N*H*HC=NC矩阵链规则。但我认为结果是不对的。我想应该是N*H矩阵。你能告诉我通过ReLU反向传播的正确方

假设存在两层网络

Input (N*D matrix) -> W1 (D*H matrix) -> ReLU -> W2 (H*C matrix) 
-> Output (N*C matrix)

当我试图在反向传播中计算导数时。在我看来,W2的导数应该是HC矩阵。然后我计算ReLU的局部导数,它应该是一个NH矩阵,与ReLU的输入相同。ReLU的最终导数应该是N*H*HC=NC矩阵链规则。但我认为结果是不对的。我想应该是N*H矩阵。你能告诉我通过ReLU反向传播的正确方法吗?谢谢

如果x<0,则ReLU forward为0,否则为x

其导数为:如果x<0,则为0,否则为1


这意味着在反向传播过程中,保持正值不变,并将负值乘以0。矩阵的形状不变。

是的。我知道。假设输入是NH矩阵,ReLU的局部梯度也是NH矩阵。所以在反向传播过程中,我应该直接用这个局部梯度乘以之前的梯度矩阵吗?非常感谢。在输入值为正的位置,将局部梯度与输入相乘。@Andreylukyanko这是否意味着ReLU在向前和向后传递过程中都会杀死神经元?