scipy.optimize.minimize:或者针对两个参数优化损失函数

时间:2017-11-30 18:00:05

标签: python numpy optimization scipy minimize

我有一个损失函数E(v,c),其中v,c是向量。

def loss(v,c,a):
    ...
    return loss_value

在第一步中,我希望最小化矢量v,然后在第二步中通过使用前一步骤中的最小化矢量v_hat来最小化矢量c。 例如:

v_hat.x = minimize(loss,v,args = (c,a))
c_hat.x = minimize(loss,c,args = (v_hat.x,a)) ###error

问题是scipy.optimize.minimize按顺序获取输入参数,即它知道它总是丢失函数参数中的第一个参数,必须最小化。如果我想最小化第二个参数,我要么必须在第一个位置写第二个参数的另一个损失函数:like

def loss_2(c,v,a):
    ...
    return loss_value

现在我可以通过更改损失函数的名称来编写第二个语句。但这是一种笨拙的方式,任何以更好的方式做到这一点的方法?

0 个答案:

没有答案