最小化和最大化损失

时间:2018-11-12 20:38:44

标签: keras autoencoder maximize loss

我想以这样的方式训练自动编码器:在某些观察结果中,重构误差将很小,而在其他观察结果中,重构误差将很高。

from keras.model import Sequential
from keras.layers import Dense
import keras.backend as K

def l1Loss(y_true, y_pred):
    return K.mean(K.abs(y_true - y_pred))

model = Sequential()
model.add(Dense(5, input_dim=10, activation='relu'))
model.add(Dense(10, activation='sigmoid'))
model.compile(optimizer='adam', loss=l1Loss)

for i in range(1000):
    model.train_on_batch(x_good, x_good) # minimize on low
    model.train_on_batch(x_bad, x_bad, ???) # need to maximize this part, so that mse(x_bad, x_bad_reconstructed is high)

我看到了将???替换为sample_weight=-np.ones(batch_size)的情况,但是我不知道这是否符合我的目标。

1 个答案:

答案 0 :(得分:1)

如果将样本权重设置为负数,则将其最小化实际上会导致其绝对值最大化。