Ho creato una rete neurale artificiale in Python usando la funzione di ottimizzazione scipy.optimize.minimize (gradiente coniugato).
Ho implementato il controllo del gradiente, ricontrollato tutto ecc. E sono abbastanza sicuro che funzioni correttamente.
L'ho eseguito un paio di volte e raggiunge "Ottimizzazione terminata correttamente", tuttavia quando aumento il numero di livelli nascosti, il costo dell'ipotesi aumenta (tutto il resto viene mantenuto lo stesso) dopo che è terminato con successo.
Intuitivamente sembra che il costo dovrebbe diminuire all'aumentare del numero di livelli nascosti, in quanto è in grado di generare un'ipotesi più complessa che può adattarsi meglio ai dati, tuttavia ciò non sembra essere il caso.
Sarei interessato a capire cosa sta succedendo qui, o se ho implementato la rete neurale in modo errato?