【发布时间】:2019-04-22 03:48:29
【问题描述】:
我目前正在使用 python 3.7 和 numpy 编写我的第一个多层神经网络,但我在实现 softmax 时遇到了麻烦(我打算使用我的网络进行分类,因此拥有一个有效的 softmax 实现非常重要)。我从另一个线程复制了这段代码:
def softmax(x):
return exp(x) / np.sum(exp(x), axis = 0)
我想我对softmax函数的预期功能有了基本的了解;也就是说,取一个向量并将其元素转换为概率,使其总和为1。如果我错了,请纠正我的理解。我不太明白这段代码是如何完成这个功能的,但是我在多个其他线程上发现了类似的代码,所以我相信它是正确的。请确认。
不幸的是,在这些线程中,我都找不到 softmax 函数导数的清晰实现。我理解它比大多数激活函数更复杂,并且需要更多的参数而不仅仅是 x,但我不知道如何自己实现它。我正在寻找对这些其他参数的解释,以及 softmax 函数的导数的实现(或数学表达式)。
【问题讨论】:
标签: python neural-network softmax