Как Keras рассчитывает общую потерю многопроцессорного нейрона net? - PullRequest
0 голосов
/ 29 марта 2020

Я относительно новичок в нейронных сетях, но я тренировался с мульти-выходом net, который дает мне два выхода. Я использую Keras и взвесил мои значения потерь на выходе в 0.2 для num_loss и 1. для output_loss.

Когда я тренировался, я видел, что общие потери будут увеличиваться, несмотря на то, что уменьшаются как индивидуальные потери, с выходом одной эпохи:

val_loss: 1.0926 - val_num_loss: 0.3285 - val_output_loss: 1.1055 - val_num_accuracy: 0.8501 - val_output_accuracy: 0.5036

, а эпохой после этого будет:

val_loss: 1.1662 - val_num_loss: 0.3036 - val_output_loss: 1.0861 - val_num_accuracy: 0.8655 - val_output_accuracy: 0.5202

(я не включил вывод обучающего набора, поскольку он не показался уместным, поскольку он не страдает от той же проблемы)

То же самое произошло снова, через несколько эпох, но где общие потери уменьшились, несмотря на увеличение потерь обоих отдельных атрибутов:

val_loss: 1.1662 - val_num_loss: 0.3036 - val_output_loss: 1.0861 - val_num_accuracy: 0.8655 - val_output_accuracy: 0.5202
val_loss: 1.0745 - val_num_loss: 0.3151 - val_output_loss: 1.1212 - val_num_accuracy: 0.8612 - val_output_accuracy: 0.5165

Вероятно, стоит упомянуть, что вывод num_loss не является полностью отдельной ветвью. Он отделяется от основной части, выдает свой вывод и затем возвращает свой результат обратно в основную часть net.

...