python - 使用 NumPy 写下分段函数?
问题描述
我是 NumPy 的新手,想弄清楚如何写下分段定义的函数。我有一个使用 ReLU 作为激活函数的 MSE_Loss 函数的导数:
我有我需要的所有参数。我的问题是:如何使用 NumPy 处理分段函数(最好不使用循环)?
已编辑:例如,我可以使用 NumPy 以下方式写下以下函数:
def loss_derivative(X, y, w, b):
n = len(y)
sigma = sigmoid(X @ w + b)
return (X.T @ ((sigma - y) * sigma * (1 - sigma))) / n
如何为上面的分段公式实现具有相同输入的函数?
解决方案
我认为此示例最简单的方法是使用条件乘数,如下所示(并非函数中的所有元素都在您的问题中定义,所以我猜测它们。但是,如果不是这种情况,您可以轻松修复它):
def loss_derivative(X, y, w):
n = len(y)
return X.T @ (((X @ w - y) / n) * ((X @ w) > 0))