最大化keras模型的MSE

问题描述 投票:-1回答:1

我有一个生成对抗性网络,在该网络中,使用MSE将鉴别符最小化,并将生成器最大化。因为两者都是追求相反目标的对手。

generator = Sequential()
generator.add(Dense(units=50, activation='sigmoid', input_shape=(15,)))
generator.add(Dense(units=1, activation='sigmoid'))
generator.compile(loss='mse', optimizer='adam')

generator.train_on_batch(x_data, y_data)

为了获得可从高MSE值中获利的生成器模型,我必须适应什么?

python tensorflow keras neural-network maximize
1个回答
0
投票

这个问题对我来说不是很清楚。我想您想在使用MSE的标准时最大化而不是最小化。

您可以实现自己的自定义损失函数,该函数将计算-MSE;翻转损失的符号,从而实现梯度下降方向的翻转。

def negative_mse(y,yhat): 
    return - K.mean(K.sum(K.square(y-yhat)))

model.compile(loss=negative_mse, optimizer='adam')

[另一种选择是简单地提供否定的学习步骤-但我不确定Keras允许您这样做。值得一试。


-2
投票

大损失,即错误率-这里是MSE-导致模型中的输入值大,损失越小,优化器的值就越大。优化器将通过学习率来调整更新的范围。

© www.soinside.com 2019 - 2024. All rights reserved.