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

Python Maxout激活函数-在NumPy中实现正向和反向传播,python,numpy,neural-network,activation-function,Python,Numpy,Neural Network,Activation Function,我正在使用NumPy从头开始构建一个普通的神经网络,并测试不同激活函数的模型性能。我特别希望看到“Maxout”激活功能如何影响我的模型性能 在做了一些搜索之后,我无法在NumPy中找到一个实现,除了它们的定义()。前向传播的公式很清楚,我取最大值(Z)(其中Z=w.T*x+b)。但是,我将在反向传播中使用的它们的导数对我来说并不清楚 在此上下文中,j=argmax(z)是什么意思?我如何在NumPy中实现它 任何帮助都将不胜感激!谢谢大家! 稍微更改任何非最大值都不会影响输出,因此其梯度为零。

我正在使用NumPy从头开始构建一个普通的神经网络,并测试不同激活函数的模型性能。我特别希望看到“Maxout”激活功能如何影响我的模型性能

在做了一些搜索之后,我无法在NumPy中找到一个实现,除了它们的定义()。前向传播的公式很清楚,我取最大值(Z)(其中Z=w.T*x+b)。但是,我将在反向传播中使用的它们的导数对我来说并不清楚

在此上下文中,j=argmax(z)是什么意思?我如何在NumPy中实现它


任何帮助都将不胜感激!谢谢大家!

稍微更改任何非最大值都不会影响输出,因此其梯度为零。梯度从下一层传递到只有达到最大值的神经元(在您提供的链接中梯度=1)。请参阅以下答案:

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

您可以使用
np.argmax
numpy
中实现此功能