Die übliche Art, ein Netzwerk zu trainieren:
Sie möchten ein neuronales Netzwerk trainieren, um eine Aufgabe (z. B. Klassifizierung) für einen Datensatz (z. B. eine Reihe von Bildern) auszuführen. Sie beginnen das Training, indem Sie die Gewichte nach dem Zufallsprinzip initialisieren. Sobald Sie mit dem Training beginnen, werden die Gewichte gewechselt, um die Aufgabe mit weniger Fehlern (dh Optimierung) auszuführen. Sobald Sie mit den Trainingsergebnissen zufrieden sind, speichern Sie die Gewichte Ihres Netzwerks irgendwo.
Sie möchten nun ein Netzwerk trainieren, um eine neue Aufgabe (z. B. Objekterkennung) an einem anderen Datensatz auszuführen (z. B. auch Bilder, die nicht mit den zuvor verwendeten identisch sind). Anstatt zu wiederholen, was Sie für das erste Netzwerk getan haben, und mit dem Training mit zufällig initialisierten Gewichten zu beginnen, können Sie die Gewichte, die Sie aus dem vorherigen Netzwerk gespeichert haben, als anfängliche Gewichtungswerte für Ihr neues Experiment verwenden. Das Initialisieren der Gewichte auf diese Weise wird als Verwenden eines vorab trainierten Netzwerks bezeichnet. Das erste Netzwerk ist Ihr vortrainiertes Netzwerk. Das zweite ist das Netzwerk, das Sie optimieren.
Die Idee hinter dem Vortraining ist, dass die zufällige Initialisierung ... nun ja ... zufällig ist. Die Werte der Gewichte haben nichts mit der Aufgabe zu tun, die Sie zu lösen versuchen. Warum sollte eine Menge von Werten besser sein als eine andere Menge? Aber wie würden Sie sonst die Gewichte initialisieren? Wenn Sie wissen, wie man sie richtig für die Aufgabe initialisiert, können Sie sie auch auf die optimalen Werte einstellen (leicht übertrieben). Sie müssen nichts trainieren. Sie haben die optimale Lösung für Ihr Problem. Das Pre-Training verschafft dem Netzwerk einen Vorsprung. Als hätte es die Daten schon einmal gesehen.
Was ist vor dem Training zu beachten?
Die erste Aufgabe, die zur Vorbereitung des Netzwerks verwendet wird, kann mit der Feineinstellungsphase identisch sein. Die Datensätze, die für das Pre-Training im Vergleich zur Feinabstimmung verwendet werden, können ebenfalls identisch, aber auch unterschiedlich sein. Es ist wirklich interessant zu sehen , wie vor dem Training auf einem anderen Aufgabe und andere Daten - Set kann noch werden übertragen auf einen neuen Datensatz und neue Aufgabe, die etwas anders. Die Verwendung eines vorab geschulten Netzwerks ist im Allgemeinen sinnvoll, wenn beide Aufgaben oder beide Datensätze etwas gemeinsam haben. Je größer die Lücke, desto weniger effektiv ist das Vortraining. Es ist wenig sinnvoll, ein Netzwerk für die Bildklassifizierung vorzubereiten, indem es zunächst auf Finanzdaten trainiert wird. In diesem Fall besteht eine zu große Trennung zwischen den Phasen vor dem Training und der Feinabstimmung.