Reinforcment Learning (RL) in PyTorch - habe ich einen Denkfehler?

Guten Tag allerseits.

Ich möchte mittels PyTorch und RL ein neuronales Netzwerk (NN) trainieren und ich komme gerade nicht weiter. Das NN soll ein Strategiespiel (Meta-Tic-Tac-Toe) lernen. Das Spiel ist deterministisch und zwei Spieler wechseln sich ab und platzieren auf ein großes Feld X und O. Das NN erhält als Input das Feld (wo ist X, wo ist O, wo ist leer) und soll als Output den besten Zug für X und den besten Zug für O in der gegebenen Situation vorhersagen.

Mein Training soll so aussehen:
1) Das NN schätzt einen Zug, anhand der Spielfeldinformationen
2) Ist der Zug valide, so wird die Belohnung berechnet. Ist der Zug nicht valide, so wird die negative Belohnung (Bestrafung) berechnet.
3) Es wird eine "learn"-Methode des NNs aufgerufen, die folgende drei Parameter hat: [Spielfeldinformationen, geschätzter Zug und Belohnung]. Das NN soll mit diesen Parametern Backpropagation machen und sich verbessern.
4) War der Zug nicht valide, so soll wieder bei Schritt 1 angefangen werden (bis ein valider Zug herauskommt). War der Zug valide, wird dieser in das Spiel eingetragen und man beginnt wieder mit Schritt 1, diesmal aber mit dem aktualisierten Spielfeld (bis das Spiel endet).

So soll das NN sehr häufig gegen sich selbst spielen und seine X-Präzision und O-Präzision verbessern.

Mein Problem ist die learn-Methode.
Online finde ich jede Menge Algorithmen, die viele Spiele spielen und die Spielfeldinformationen, geschätzten Züge und Belohnungen speichern und erst später auswerten. Das will ich ungerne machen, da ich das unintuitiv finde, da man ja bei jedem Zug lernt.
Chat-GPT will mir ständig eine learn-Methode aufdrücken, die die Backpropagation lediglich mit den Parametern "geschätzter Zug" und "Belohnung" machen will, ohne den Spielfeldzustand zu berücksichtigen. Das ergibt für mich keinen Sinn, da man ja Züge anhand des Spielfelds macht.

Eine für mich angepasste learn-Methode finde ich nicht, obwohl ich denke gelesen zu haben, dass mein Lernprinzip auch funktionieren soll.

Ich nutze Adam als optimizer.

Deswegen frage ich mich, ob ich einen Denkfehler habe und ob mein Algorithmus nicht funktionieren kann. Das ist mein erstes RL-Projekt, ich kenne mich also nicht aus.

Falls also jemand einen Denkfehler findet, wäre es nett mich darauf hinzuweisen :)

Wenn jemand eine learn-Methode mit den 3 Parametern kennt, wäre es nett sie mir zu teilen.

künstliche Intelligenz
Kann man eine Portable SSD mit USB-Anschluss sinnvoll als Linux Betriebssystem für verschiedene Geräte nutzen?

Guten Tag liebe Gutefrage-Mitglieder!

Da mich das Programmieren auf Windows zusehends nervt, würde ich mir gerne Linux als Betriebssystem zum Programmieren zulegen. Ich will allerdings nicht mein Windows für Gaming und Alltaganwendungen verlieren. Also habe ich mir überlegt, dass ich mir doch eine 250 GB SSD mit USB-Anschluss/Adapter kaufen könnte, da Linux draufpacke und wenn ich programmiere da reinboote.

Das habe ich auch schon häufig mit internen SSDs oder USB-Sticks gemacht, aber bei USB-Sticks habe ich blöde Erfahrung mit Speicher gehabt und bei internen SSDs stört mich, dass ich diese dann ja nur auf dem einen PC nutzen kann.

Mein Plan ist, dass ich diese externe SSD mit Linux an ein beliebiges Gerät anschließen kann (meinen PC und Laptop) und dann, wen ich programmieren will, alles auf einem Haufen habe.

Da ich mich mit den ganzen Boot-Sachen nicht wirklich auskenne, sind folgendes meine Fragen:

1) Wenn ich zuerst mit dem PC reinboote und dann später mit dem Laptop, kann es da Komplikationen mit der Speicherverwaltung oder ähnlichem geben, da da ganz unterschiedliche Prozessoren, Arbeitsspeicher und Mainboards am laufen sind?
2) Gehe ich größeres Risiko ein, dass das Linux irgendwie Probleme bei Windows verursacht, wenn ich nach dem Programmieren ins Windows zurückboote?

Ich allen Lesern und Helfern dieser Frage einen schönen Tag :)

Windows, Linux, BIOS, booten
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.