我目前正在尝试训练Keras模型以使其损失函数最大化。由于内置的Optimizers选择将损失降到最低,我想知道是否有可能使用Keras进行梯度上升。
我尝试使用负损失函数,但操作失败。
关于如何解决此问题的任何想法?
当前尝试:
loss = -K.log(other_parameter_input)
grad = K.gradients(loss, self.model.trainable_weights)
self.get_gradients = K.function(inputs=[self.price_vector_input,
self.prev_weight_input, self.cash_bias_input, mu, y,
self.model.output], outputs=grad)
updates = [self.learning_rate * g for g in grads]
modelWeights = self.model.get_weights()
updateWeights = [np.add(wT, uT) for (wT, uT) in zip(modelWeights, updates)]
self.model.set_weights(updateWeights)
答案 0 :(得分:1)
简单地使用乘法逆,所以像loss = 1 / -K.log(other_parameters)
之类的东西突然又成为最小化问题了……
不要成为使损失最大化的人。