Hallo und nochmals herzlich willkommen in unserem Selbstfahrer-Auto Maggio.
In nur einer Frage werde ich also die Umgebung erläutern, in der wir unsere künstliche Intelligenz implementieren werden und in der sich
natürlich das Auto befinden wird, das trainiert, um sich selbst zu fahren und um Hindernisse zu vermeiden und für das einige
Straßen und einige Blöcke für die Strecke entstehen unsere Autos um sie herum zu navigieren.
Wir werden diese künstliche Intelligenz später bauen, um dieses Auto so zu trainieren, dass es auf der Straße fährt, die Sie
kennen, ohne die Grenzen zu überschreiten und einige Hindernisse zu umgehen, die in die Straße hineinragen.
Das ist also eine ziemlich aufregende Herausforderung.
Und tatsächlich gibt es zwei separate Dateien, wie Sie sehen können, gibt es die Spitze und das Geflügel, die künstliche Intelligenz
sind, die das gesamte Training zum Trainieren des Autos, wie man den Antrieb verkauft, tun wird.
Und wir haben eine Karte gefunden, die den Code für diese Umgebung darstellt.
Also hier ist der Code, der 200 Zeilen Code enthält, ein bisschen mehr.
Daher bezieht sich dieser Code normalerweise nicht auf AI.
Es ist nur ein Code, um die Umgebung zur Karte zu machen.
Ich werde daher jeden Abschnitt einzeln durchgehen und erklären, aber wir werden diesen Code
nicht Zeile für Zeile von Grund auf implementieren, da wir uns auf künstliche Intelligenz konzentrieren wollen.
Aber gehen wir trotzdem die Abschnitte einzeln durch, um zu verstehen, was passiert.
Zuerst importieren wir die zentralen Bibliotheken, die für jeden Code geeignet sind.
Wir benötigen einige Bibliotheken, um Aufgaben effizienter auszuführen, als alle Cavy-Pakete importieren.
Das ist nicht sehr wichtig, da dies alles spezifisch für Cavey ist. Wir verwenden Cavy, um die Karte zu erstellen.
Deshalb importieren wir viele Klassen und Objekte, um diese Karte erstellen und einige Werkzeuge zur Karte
hinzufügen zu können.
In Ordnung, dann ist diese Linie wichtig.
Diese Linie ist verwandt, weil im Grunde unser Gehirn das Gehirn des Autos importiert. Dies ist ein weiterer Jet, den Sie in
der Klasse gemacht haben, und der Lehrer in der Klasse.
Ist unsere künstliche Intelligenz selbst.
Sie werden sehen, dass wir den Dequeue in der Klasse in den folgenden Tutorials implementieren werden.
Und wie Sie vielleicht eine Dequeue-Instanz für tiefe Q-Netzwerke erraten haben.
Wir werden also ein Dequeue-Lernnetzwerk implementieren und sobald es fertig ist, importieren wir
es hier mit dieser Zeile von der KI und die Augen sind natürlich eine Python-Datei.
Gut.
Ich kann es kaum erwarten, dies umzusetzen.
Dies wird eine ziemliche Reise sein, aber Sie werden sehen, dass dies sehr aufregend sein
wird, denn dank des I kann das Auto selbst fahren.
Gut.
Und jetzt, bevor ich mit den nächsten Abschnitten fortfahre, müssen wir erklären, wie wir dieses Auto trainieren werden.
Ich werde das neuronale Netz jetzt nicht erklären, aber ich werde die Idee erklären, wie wir
das Auto trainieren können, um selbst zu fahren und Hindernisse zu umgehen.
Sie wissen also im wirklichen Leben, ob Sie ein echtes Auto trainieren möchten, um einige Wände oder Hindernisse zu umgehen.
Was würdest du tun?
Sie würden definitiv keine echten Mauern oder großen Hindernisse nehmen und Ihr Auto darauf einschlagen.
Das würde dich viel Geld kosten.
Eine intelligentere Idee wäre stattdessen, Ihr Auto nicht zu bestrafen, wenn es eine Mauer oder ein Hindernis zerschmettert, sondern
wenn es auf Sand geht.
Es ist also so, als hätten Sie ein Feld.
Dieses Feld hat einige Straßen, auf denen das Auto bleiben muss, und die Straßen sind durch etwas Sand begrenzt.
Jedes Mal, wenn das Auto in die Mitte fährt, ist es, als würde es zu einem Hindernis kommen, denn sobald
das Auto in etwas Sand geraten ist, wird es langsamer und wir werden dafür sorgen, dass das Auto dafür bestraft
wird.
Und das ist ein wesentlicher Punkt der künstlichen Intelligenz.
Das schlechte Wort kommt immer dann, wenn das Auto in einen gewissen Sinn gerät und langsamer wird.
Gut.
Und deshalb füge ich hier den letzten Text ein und deshalb.
Welches sind die Koordinaten des letzten Punktes im Gedächtnis, wenn wir einen Duft auf die Karte zeichnen.
Gut.
Und dann bekommen wir unsere künstliche Intelligenz, die wir Gehirn nennen und die unser neuronales Netzwerk enthält, und wir
werden sie Gehirn nennen, weil dies tatsächlich das Gehirn des Autos ist und unser
Nudel-Netzwerk enthält.
Gut.
Also, in dieser Codezeile, wie Sie sehen können, erstelle ich beim Lehrer im Unterricht Objekte.
Ich werde Sie daran erinnern, dass Klassen und Objekte sind, aber Brennas Objekt entmenschlicht die Klasse und 5:
3 und 0. 9 sind die Eingänge der Klasse.
Das ist also sehr einfach. Fünf entspricht den Zuständen, bei denen Vektoren mit fünf Dimensionen kodiert sind. Wir werden sehen,
was sie perfekt beschreiben, was in der Umgebung auf der Karte passiert.
Dann ist drei die Anzahl der Aktionen. Es gibt drei mögliche Aktionen. Gehen Sie nach links
oder nach rechts und 0. 9 ist wieder ein Parameter im Dequeue-Lernalgorithmus.
Alles klar und dann haben wir die Aktion durch Rotation.
Die Aktion zur Rotation ist also ein Vektor aus drei Elementen.
020 und minus 20.
Und deshalb müssen wir dies tun, weil die Aktionen mit drei Zahlen 0 1 und 2 codiert sind und
dies den Indizes dieses Aktions-Rotationsvektors entspricht.
Wenn zum Beispiel die zum Zeitpunkt t ausgewählte Aktion gleich Null ist.
Well Null entspricht dem Index dieser Aktion, zwei Rotationsvektoren und der Wert von Index 0 ist Null.
Deshalb gehen wir sofort weiter, wenn die gewählte Aktion 1 ist.
Nun, eins entspricht dem Index dieser Aktion zwei zusätzlichen Vektoren und der Wert dieses Vektors,
der einen nächsten hat, ist 20.
20 entspricht also einer Drehung um 20 Grad und das bedeutet, dass der Code um
20 Grad nach rechts geht und dann, wenn die gewählte Aktion gut zu dem Index dieser Aktion zu Rotationsvektor passen soll.
Daher führt der Code eine Drehung von minus 20 Grad aus und geht daher nach links.
In Ordnung, dann führen wir den linken Belohnungs-Voivode ein, da in jeder Phase das letzte Wort erhalten wird.
Denken Sie also daran, dass die Belohnung positiv ist, wenn die Karte keinen Sinn ergibt.
Und wenn der Code einigermaßen sinnvoll ist, erhält er die schlechte Belohnung und jedes Mal, wenn
diese Variable diese Belohnung enthält, erhält sie H20.
Und dann initialisieren wir die Scores, die einen Vektor enthalten, der die Belohnung enthält.
Nicht alle, aber die Belohnung.
Auf ein Schiebefenster, damit Sie wissen, dass wir eine Kurve des Mittelwerts machen können, und die Belohnung in Bezug auf
die Zeit berechnen.
Okay, dann initialisieren wir in diesem Codeabschnitt die Karte, um sie zu initialisieren.
Zum Beispiel die besagte Variable.
Das ist also wichtig.
Die zweite Variable wird tatsächlich ein Array sein, in dem die Zellen die Pixel der Karte sind
und in jeder Zelle eine 1 haben wird.
Wenn eine Null einen Sinn hat, wenn es am Anfang kein Zentrum gibt, werden wir nichts zeichnen.
Es gibt also überhaupt keinen Sinn und daher haben alle Zellen des Center-Arrays eine Null.
Es wird überall Nullen geben, und sobald wir einen Sinn zeichnen, werden die Zellen, auf
die wir den Sinn zeichnen, Eins erhalten, und wir initialisieren das Rennen mit allen Nullen, die hier gleich und Null gesendet werden.
Dann haben wir diese wichtige Sache, die das Ziel ist.
Das Ziel ist also ein Punkt auf der Karte, an dem das Auto trainiert wird.
Es ist also wie ein Ziel.
Also, was soll dieses Ziel sein?
Nun, dies wird die obere linke Ecke der Karte sein, damit alle das Auto trainieren, um zur oberen linken Ecke der
Karte zu gelangen.
Sobald die obere linke Ecke der Karte erreicht ist, tendieren wir zur unteren rechten Ecke
der Karte, sodass wir uns das folgende Szenario vorstellen können.
Die obere linke Ecke der Karte ist der Flughafen einer Stadt und die rechte untere Ecke der Karte
ist die Innenstadt der Stadt.
Und wir werden ein Taxi oder Uber trainieren, um einige Rundfahrten zwischen dem Flughafen und der Innenstadt zu unternehmen.
Natürlich machen wir diesem Taxi die Aufgabe schwer, indem wir immer schwierigere Straßen ziehen und mehr
und mehr Hindernisse auf der Straße hinzufügen, um zu sehen, ob das Taxi noch vom Flughafen in
die Innenstadt fahren kann.
Das wird also Spaß machen.
Deshalb setze ich hier die Koordinaten des ersten Ziels, des Flughafens, der sich oben links auf
dem Bildschirm befindet.
Die Karte wird also wie ein Quadrat aussehen und die Koordinaten des Ursprungs, der die Koordinaten 00
ist, sind hier richtig.
Und dann ist diese Entfernung hier größer.
Die Koordinaten 20 und Najah minus 20 sind also hier in der oberen linken Ecke der Karte.
Und warum habe ich 20 und nicht Null gewählt.
Das ist so, weil wir das Auto trainieren wollen, um nicht in die Wände zu stürzen.
Sie wissen, wir wollen auch in die Wände hinein trainieren, und deshalb ist es nicht gleich Null, weil wir nicht wollen, dass
das Auto die Stelle berührt, an der wir anfahren möchten.
Wir müssen es also hier richtig stellen und dann führe ich nur die letzte Entfernungsvariable ein, die nur die
aktuelle Entfernung vom Auto zur Straße angibt und die ich auf Null initialisiere.
Gut.
Und jetzt Zeit, das Auto und das Spiel zu machen.
Also machen wir zwei Klassen, eine Klasse für das Auto und eine Klasse für das Spiel.
Und innerhalb dieser Klassen werden bereits einige Verbindungen zu unserer KI hergestellt.
Also machen wir das im nächsten Statoil.
Und bis dahin genieße ich