Ich frage mich, welche nützlichen Techniken es gibt, um zu überprüfen, ob eine Implementierung eines neuronalen Netzwerks korrekt funktioniert.
Im Folgenden sind einige mir bekannte Schecks aufgeführt. Es würde mich interessieren, mehr davon zu erfahren:
- Zeichnen einiger Metriken (F1-Punktzahl, Genauigkeit, Kosten usw.) im Zug / Test / gültigen Sets gegen die Chargen- oder Epochennummer.
- Betrachtung der Entwicklung der Matrixgewichte über die Epoche hinweg.
- Entfernen Sie bei mehreren Ebenen einige Ebenen und prüfen Sie, ob noch etwas gelernt wird.
- Verwenden des Netzwerks für einige Datensätze, die es lernen sollte (obwohl mir keine gute Liste von Referenzdatensätzen zum Testen neuronaler Netzwerkimplementierungen bekannt ist , die eine wertvolle Ressource darstellen würden, schneller als das Suchen nach Referenzpunkten in der Literatur .)
- Durchführen von Gradienten Prüfung .
- Überprüfen Sie, ob der Farbverlauf nicht explodiert oder verschwindet.
Einige Diagramme, die die vorherigen Überprüfungen veranschaulichen:
- Zeichnungszug / Test / gültiger Satz gegen Epochennummer:
Gut (zwar schnell überpassend, aber zumindest kann das Netzwerk lernen):
Schlecht:
- Betrachtet man die Entwicklung der Matrixgewichte über die Epoche hinweg:
Epoche 0:
Epoche 50:
Schwer zu sagen, ob die Änderungen in der Gewichtsmatrix gut oder schlecht sind (ohne die Kosten zu berücksichtigen), aber zumindest die meisten von ihnen haben sich geändert und sie bleiben nicht bei 0 hängen.