Estoy entrenando una red neuronal $D$ para la clasificación binaria utilizando la pérdida de entropía cruzada binaria (donde $y_i$ es 1 o 0, y $D(x)$ produce un valor en $[0,1]$ ):
$$-y_i\log(D(x_i)) - (1 - y_i)\log(1 - D(x_i))$$
Al principio del entrenamiento, cuando el rendimiento de la clasificación es relativamente malo, esta función de pérdida da buenos gradientes. Sin embargo, a medida que el rendimiento aumenta, los gradientes empeoran progresivamente. Para un discriminador D que tenga un buen rendimiento, la siguiente función de pérdida produce mejores gradientes:
$$y_i\log(1-D(x_i)) + (1 - y_i)\log(D(x_i))$$
Obsérvese que ambas funciones de pérdida tienen su mínimo en el mismo valor de $D(x)$ .
Mi pregunta es:
- Una vez $D$ alcanza un determinado rendimiento, ¿puedo cambiar las funciones de pérdida para obtener mejores gradientes?
- ¿Se ha hecho esto antes?
- ¿Merecerá la pena?