在神经网络中使用 softmax 函数处理反向传播算法
Working with backpropagation algorithm using softmax function in the neural network
我正在为 MNIST 数据从头开始创建一个神经网络,所以我在输出层中有 10 个 类。我需要执行反向传播,为此,我需要为最后一层计算 dA*dZ
,其中 dA
是损失函数 L
的导数 wrt softmax 激活函数 A
dZ
是 softmax 激活函数 A
对 z
的导数,其中 z=wx+b
。 dA
获得的大小是 10*1
而 dZ
获得的大小是 10*10
。
是否正确?如果是,我乘谁 dA*dZ
因为他们有不同的维度。
你快到了。但是,您需要转置 dA
,例如numpy.transpose(dA)
。
然后,您将拥有 dA
和 dZ
的正确维度来执行矩阵乘法。
我正在为 MNIST 数据从头开始创建一个神经网络,所以我在输出层中有 10 个 类。我需要执行反向传播,为此,我需要为最后一层计算 dA*dZ
,其中 dA
是损失函数 L
的导数 wrt softmax 激活函数 A
dZ
是 softmax 激活函数 A
对 z
的导数,其中 z=wx+b
。 dA
获得的大小是 10*1
而 dZ
获得的大小是 10*10
。
是否正确?如果是,我乘谁 dA*dZ
因为他们有不同的维度。
你快到了。但是,您需要转置 dA
,例如numpy.transpose(dA)
。
然后,您将拥有 dA
和 dZ
的正确维度来执行矩阵乘法。