繁体   English   中英

Softmax函数的导数

[英]Derivative of Softmax function

我正在尝试计算softmax函数的导数。 我有一个二维的numpy数组 ,我正在计算沿轴1的数组的softmax。 我的python代码也是如此:

def softmax(z):

     return np.exp(z) / np.sum(np.exp(z), axis=1, keepdims=True)

现在,我用于计算softmax方程导数的python代码是:

def softmax_derivative(Q):

    x=softmax(Q)
    s=x.reshape(-1,1)
    return (np.diagflat(s) - np.dot(s, s.T))

这是正确的方法吗?

另外,如果我的numpy数组的形状为(3,3),那么softmax派生函数返回的数组的形状是什么? 返回的数组的形状是(9,9)吗?

我会减去z的最大值,然后执行以下操作:

def softmax(z):
     exps = np.exp(z - z.max())
     return exps/np.sum(exps)

以提高稳定性,但是,否则您所做的是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM