Python 在神经网络中使用softmax函数使用反向传播算法
我正在从头开始为MNIST数据创建一个神经网络,所以我在输出层有10个类。我需要执行反向传播,为此,我需要计算最后一层的Python 在神经网络中使用softmax函数使用反向传播算法,python,python-3.x,math,neural-network,backpropagation,Python,Python 3.x,Math,Neural Network,Backpropagation,我正在从头开始为MNIST数据创建一个神经网络,所以我在输出层有10个类。我需要执行反向传播,为此,我需要计算最后一层的dA*dZ,其中dA是损失函数Lwrt的导数,softmax激活函数A,dZ是softmax激活函数Awrt到z的导数,其中z=wx+b。dA获得的大小为10*1,而dZ获得的大小为10*10 对吗?如果是,我应该乘谁,因为他们有不同的维度。你就快到了。但是,您需要转置dA,例如使用numpy.transpose(dA)。 然后,您将拥有正确的dA和dZ维度来执行矩阵乘法。谢谢
dA*dZ
,其中dA
是损失函数L
wrt的导数,softmax激活函数A
,dZ
是softmax激活函数A
wrt到z
的导数,其中z=wx+b
。dA
获得的大小为10*1
,而dZ
获得的大小为10*10
对吗?如果是,我应该乘谁,因为他们有不同的维度。你就快到了。但是,您需要转置
dA
,例如使用numpy.transpose(dA)
。
然后,您将拥有正确的
dA
和dZ
维度来执行矩阵乘法。谢谢,顺便问一下,应用softmax和softmax导数是否正确?是的,没错,但不要忘了用z
相对于w
的导数相乘。以下链接可能对您有所帮助: