为了账号安全,请及时绑定邮箱和手机立即绑定

Maxout 激活函数 - 在 NumPy 中实现前向和反向传播

Maxout 激活函数 - 在 NumPy 中实现前向和反向传播

慕标5832272 2022-01-18 15:50:20
我正在使用 NumPy 从头开始构建一个普通的神经网络,并试验不同激活函数的模型性能。我特别想看看“Maxout”激活函数将如何影响我的模型性能。在进行了一些搜索之后,除了它们的定义( https://ibb.co/kXCpjKc)之外,我无法在 NumPy 中找到一个实现。前向传播的公式很清楚,我将在哪里取 max(Z)(其中 Z = wT * x + b)。但是,我将在反向传播中使用的它们的导数对我来说并不清楚。j = argmax(z) 在这种情况下是什么意思?如何在 NumPy 中实现它?任何帮助将非常感激!谢谢!
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

稍微改变任何非最大值不会影响输出,因此它们的梯度为零。梯度仅从下一层传递到达到最大值的神经元(您提供的链接中的梯度 = 1)。请参阅此 stackoverflow 答案:https ://datascience.stackexchange.com/a/11703 。

在神经网络设置中,您需要关于每个 x_i 的梯度,因此您需要全导数。在您提供的链接中,您可以看到只定义了一个偏导数。偏导数是一个向量(几乎全是 0 和 1,其中神经元最大),所以全梯度会变成一个矩阵。

您可以在numpyusing中实现这一点np.argmax


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信