Ich habe ein künstliches neuronales Netzwerk in Python mit der Optimierungsfunktion scipy.optimize.minimize (Gradient konjugieren) aufgebaut.
Ich habe die Gradientenprüfung implementiert, alles doppelt überprüft usw. und bin mir ziemlich sicher, dass es richtig funktioniert.
Ich habe es einige Male ausgeführt und es erreicht "Optimierung erfolgreich beendet". Wenn ich jedoch die Anzahl der ausgeblendeten Ebenen erhöhe, steigen die Kosten der Hypothese (alles andere bleibt gleich), nachdem sie erfolgreich beendet wurde.
Intuitiv scheint es, als sollten die Kosten sinken, wenn die Anzahl der verborgenen Schichten erhöht wird, da eine komplexere Hypothese generiert werden kann, die besser zu den Daten passt. Dies scheint jedoch nicht der Fall zu sein.
Es würde mich interessieren, was hier vor sich geht oder ob ich das neuronale Netz falsch implementiert habe.
quelle
Das Erhöhen der Anzahl versteckter Schichten für ein neuronales Standardnetzwerk verbessert in den meisten Fällen die Ergebnisse nicht. Durch Ändern der Größe der ausgeblendeten Ebene wird.
Diese Tatsache (dass die Anzahl der verborgenen Schichten sehr wenig bewirkt) wurde tatsächlich historisch festgestellt und ist die Motivation hinter dem Bereich des tiefen Lernens. Deep Learning ist eine effektive clevere Methode zum Trainieren mehrschichtiger neuronaler Netze, indem beispielsweise Teilmengen von Merkmalen beim Training verschiedener Schichten isoliert werden.
Gutes Einführungsvideo zu diesem Thema auf YouTube
quelle