Работа с множественными потерями и их весами в керасах

Обучение модели GAN с использованием train_on_batch с несколькими потерями, могу ли я использовать случайный loss_weights при компиляции модели или есть какая-то конкретная стратегия для использования этих весов потерь, как упоминалось Здесь. В моей проблеме mean_sqaured_error - это функция потерь для сгенерированного_изображения и исходного_изображения, а binary_crossentropy - это функция потери классификации для классов 0 и 1.

model.compile(optimizer=optimizer, loss=['mean_squared_error', 'binary_crossentropy'], loss_weights=[100,1])

person zeeshan nisar    schedule 07.01.2019    source источник


Ответы (1)


Веса - это гиперпараметры, которые необходимо оптимизировать. Обратите внимание, что оптимизировать эти гиперпараметры непросто из-за того, что снижение весов автоматически уменьшит потери (которые мы обычно стремимся минимизировать), но не обязательно создаст лучшую модель. MSE может находиться в диапазоне от [0, бесконечность), если не нормализовано, или, например, [0, 1], если признаки нормализованы между [0,1] (и используется сигмоид). Значения двоичной кросс-энтропии могут находиться в диапазоне [0, бесконечность), что делает процесс не таким простым, как мы думаем. Не зная вашей конкретной проблемы, я сначала попробую использовать веса по умолчанию (по 1).

person ian    schedule 15.01.2019