我有一个损失函数,我想尝试,并尽量减少:我可以实现任意凸失效函数的梯度下降吗?
def lossfunction(X,b,lambs):
B = b.reshape(X.shape)
penalty = np.linalg.norm(B, axis = 1)**(0.5)
return np.linalg.norm(np.dot(X,B)-X) + lambs*penalty.sum()
梯度下降,或者类似的方法,可能是有用的。我无法以分析方式计算此函数的梯度,所以我想知道如何以数字方式计算此损失函数的梯度以实现下降方法。
Numpy具有gradient
函数,但它需要我在预先确定的点处传递一个标量字段。