Nun, die Frage sagt schon alles.
Was ist mit "vor dem Training eines neuronalen Netzwerks" gemeint? Kann das jemand in ganz einfachem Englisch erklären?
Ich kann anscheinend keine dazugehörigen Ressourcen finden. Es wäre toll, wenn mich jemand darauf hinweisen könnte.
neural-networks
pre-training
Machina333
quelle
quelle
Antworten:
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.
quelle
Das Vor-Trainieren / Feineinstellen funktioniert wie folgt:
Dies ist eine Form des Transferlernens. So können Sie einen Teil des Wissens aus Datensatz auf Datensatz . In meinem Glossar zum maschinellen Lernen finden Sie dies und weitere Begriffe, die in wenigen Worten erklärt werden.EIN B
quelle
Die beiden Antworten oben erklären gut. Ich möchte nur eine Kleinigkeit zum Vortraining für Deep Belief Nets (DBN) hinzufügen. Das Vortraining für DBN ist unbeaufsichtigtes Lernen (dh ohne beschriftete Daten) und das anschließende Training wird überwachtes Lernen (dh mit beschrifteten Daten).
quelle