Минимизация и максимизация потерь - PullRequest
0 голосов
/ 12 ноября 2018

Я бы хотел обучить автоэнкодеру таким образом, чтобы при некоторых наблюдениях ошибка восстановления была низкой, а при других - высокой.

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 голосов
/ 09 декабря 2018

Если вы установите вес образца в отрицательные числа, то его минимизация фактически приведет к максимизации его абсолютного значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...