Hallo und herzlich willkommen im Statoil und beim Reden haben wir die Karte initialisiert.
Und jetzt ist es an der Zeit für die aufregenden Sachen, dass wir das Auto schaffen und das natürlich mit einer Klasse.
Sie werden sehen, dass die Klasse sehr praktisch ist, um einige Dinge zu erstellen, die viele Eigenschaften
haben, da nicht nur einige Variablen aus meinem Auto gefunden werden, sondern auch einige Funktionen, die natürlich
dazu führen, dass das Auto in die links nach rechts oder geradeaus.
Wir haben also einige Variablen, die wichtig sind, um die Umgebung zu
beschreiben, beispielsweise den Winkel, der der Winkel zwischen der x-Achse und der Achse der Fahrzeugrichtung ist.
Dann haben wir die Rotation, bei der es sich um die letzte Rotation handelt, die entweder 0 Grad 20 Grad oder
minus 20 Grad ist.
Dann haben wir die Geschwindigkeit, die x-Koordinate des Geschwindigkeitsvektors und die y-Koordinate des
Geschwindigkeitsvektors.
Und dann der Vektor der Koordinatengeschwindigkeit x und der Geschwindigkeit Y, dann haben wir die Sensoren und die Signale.
Und das ist sehr wichtig. Der Anruf, den wir tätigen, wird drei Sensoren haben, einen Sensor zwei und
drei Sensoren, und ein Sensor erkennt, ob es Sinn macht, vor dem Auto zu sein.
Dann ist der Sensor 2 der Sensor, der erkennt, ob links von dem Fahrzeug ein Gefühl vorliegt, und der Sensor 3 ist
der Sensor, der erkennt, ob ein Gefühl auf der rechten Seite des Fahrzeugs vorliegt.
Und von diesen drei Sensoren erhalten wir die Signale, die die Signale von den einzelnen Sensoren erhalten.
Signal Eins ist also das Signal, das vom Sensor 1 empfangen wird, das Signal, das vom Sensor 2 empfangen wird, und Signal 3
ist das einzige Signal, das von den Sensoren 3 empfangen wird.
Und wie funktioniert das?
Signal 1 ist die Dichte des Sensors um ein Signal. Die Dichte des Zentrums um den Sensor. Signal 3
ist die Dichte der um die Empfindlichkeit gesendeten Signale und wie wird diese Sanddichte berechnet.
Das ist sehr einfach.
Wir nehmen einige große Quadrate um jeden Sensor.
Dies sind eigentlich Quadrate von 200 durch 200, und für jedes der Quadrate teilen wir die Anzahl der Einsen in
das Quadrat durch die Gesamtzahl der Zellen in dem Quadrat, dh 22 und 20 = 400.
Und das gibt uns die Dichte von Sand, weil die der Mitte entsprechen.
Wir machen das für jeden Sensor und das gibt uns die Sanddichte um jeden Sensor.
Das sind die Signale.
Okay, jetzt haben wir alles, um den Sensor zu erkennen, und dann haben wir die Bewegungsfunktion.
Und natürlich ist es die Move-Funktion, die es dem Kern ermöglicht, nach links zu gehen, geradeaus zu gehen oder nach
rechts zu gehen.
Lasst uns das schnell durchgehen.
Wir haben hier die Aktualisierung der Position des Autos mit seiner letzten Position, die selbst der Durchgang
und der Geschwindigkeitsvektor ist.
Dank des Geschwindigkeitsvektors wird die Position also in Richtung des Geschwindigkeitsvektors aktualisiert.
Dann bekommen wir die Rotation, die wir hier im Code weiter unten finden.
Rotation entspricht Aktion mit Rotation.
Er wählt die Aktion aus und wechselt dann in die Rotation.
Dieser Selbstschutz bedeutet also Rotation hier.
Durch diese Drehung erfahren wir, wie wir das Auto drehen müssen, das nach links
oder rechts fährt.
Dann aktualisieren wir den Winkel, an den ich mich erinnere, der Winkel zwischen der x-Achse und der Achse der
Richtung des Autos.
Und dann, wenn sich das Auto bewegt hat, müssen wir die Sensoren und das Signal aktualisieren, da
natürlich das Auto gerade gedreht wurde, während sich die Sensoren ebenfalls gedreht haben, und daher müssen wir sie
mithilfe der Rotationsfunktion drehen und zu denen wir hinzufügen die neue Position.
Und warum haben wir diesen Vektor von 30 0.
Das ist einfach so, weil 30 die Entfernung zwischen dem Auto und dem Sensor ist.
Sie wissen, ist die Entfernung zwischen dem Auto und dem, was das Auto erkennt.
Und dann, wenn die Sensoren aktualisiert wurden. Nun, es ist Zeit, die Signale zu aktualisieren.
Und hier machen wir genau das, was ich Ihnen Computersignale erklärt habe.
Wir geben die x-Koordinaten unseres Sensors an, dann bringen wir alle Zellen von Manston bis plus 10, dann
machen wir dasselbe für die y-Koordinate, alle Zellen von Madison bis plus 10.
Daher erhalten wir das Quadrat von 20 x 20 Pixeln, das den Sensor umgibt, und innerhalb des Quadrats haben wir
einige ältere.
Im Grunde also bei einigen Zellen, weil die Zellen 0 oder 1 enthalten und da in einem 20 x 20-Quadrat
20 mal 20 gleich 400 Zellen sind.
Nun, wir teilen es durch 400, um die Dichte von Einsen innerhalb des Quadrats zu erhalten. Auf diese Weise erhalten wir das Signal der
Dichte der Zentren um den Sensor und wir tun dasselbe für den zweiten Sensor und den dritten Sensor, um das zweite
Signal und das Signal zu erhalten drittes Signal.
OK.
Das ist also der Sensor und dann sind diese drei Codezeilen hier sehr wichtig.
Wir möchten auch, dass wir zu unserem Auto gelangen möchten, wenn es einen der Ränder der Karte
erreicht.
Sie wissen, wir wollen nicht, dass das Auto in einige Wände eilt, und deshalb möchten wir es bestrafen, um es
zu bestrafen, wenn es zu nahe an Wall kommt, und deshalb machen wir das hier.
Wenn der erste Sensor größer als länger minus 10 ist, ist dies größer als hier, da länger dieser Abstand hier ist, also
ist länger minus 10 hier richtig.
Wenn also der Sensor größer ist als länger Manison betrifft, sind alle Punkte hier.
Dies ist der Fall, wenn das Auto näher an den rechten Rand der Karte kommt oder wenn der Zellsensor
niedriger als 10 ist. Dies ist der Fall, wenn das Auto näher an den linken Rand der Karte kommt
oder der Sensor Y größer als 10 ist Dies ist die Oberkante der Karte und wenn das selbstzensierte Y unter 10
liegt, ist dies die Unterkante der Karte.
Wenn also der Sensor eine dieser vier Flanken erreicht, werden wir das Signal des Sensorsignals setzen, wenn
das Signal eins sendet.
Wir werden es eins setzen.
Und was bedeutet das.
Das bedeutet vollen Klang wie die volle Sanddichte.
Es ist wie das Schlimmste und du könntest bekommen.
Es gibt so viel Sinn, dass es dein Auto stoppen wird.
Das Signal wird also eins sein und daher wird das Auto eine schrecklich schlechte Belohnung bekommen.
Gut.
Und dann machen wir dasselbe auch für das Signal.
Gut.
Und dann erstellen wir die Spielklasse, also ist dies im Grunde die Klasse, die das Spiel erstellt, weil wir
bisher nur das Auto erstellt haben und jetzt natürlich die Karte erstellen müssen.
Wir müssen das Spiel selbst erstellen.
Wir werden also nicht das Spiel spielen, es ist unsere KI, die das Spiel spielen wird, und das
Spiel soll eigentlich die Hindernisse umgehen und vom Flughafen in die Innenstadt und umgekehrt gehen.
In dieser Spielklasse müssen wir einige Objekte wie das Auto erstellen und dann die Aktualisierungsfunktion
definieren.
Das ist das Wichtigste, und wir werden uns jetzt auf das konzentrieren, denn
in dieser Update-Funktion wird die Aktion ausgewählt, die das Auto ausführen muss, und jedes Mal, um sein Ziel zu erreichen.
Und diese Aktion ist genau das Ergebnis unseres neuronalen Netzwerks.
Der neue Wille ist die Arbeit, die im Herzen unserer künstlichen Intelligenz liegen wird.
Und so wird diese Aktion vom Gehirn des Autos zurückgegeben, das das Objekt unserer menschlichen Klasse bleibt, das
in unserer KI-Datei erstellt wird.
Und dieses Objekt hat eine Methode, die als Update bezeichnet wird und das letzte Wort und das letzte Signal
als Eingabe verwendet.
Das letzte Wort ist also natürlich das letzte Wort, das das
Auto erreicht hat, und das letzte Signal ist natürlich das letzte Signal der drei
Sensoren.
Aber ich füge noch zwei weitere Eingaben hinzu, nämlich die Orientierung des Autos in Bezug auf das Ziel.
Wenn zum Beispiel das Auto auf das Ziel zusteuert, ist die Orientierung gleich Null.
Wenn es etwas nach rechts geht, liegt die Orientierung nahe bei 45 Grad.
Wenn es etwas nach links geht, liegt die Orientierung nahe bei minus 45 Grad.
Das ist also die Krafteingabe unserer Eingabezustände.
Und dann gibt es eine Unterrichtsstunde mit negativer Orientierung.
Daher sind die Eingänge des neuronalen Netzwerks normalerweise unabhängig. Es gibt keine Multicollinearität, aber es ist nicht wirklich wichtig, ob
wir dies sind, weil das neuronale Netzwerk das nur mit den Gewichten behebt.
Aber ich bemerke immer noch, dass durch die Hinzufügung dieser negativen Orientierung das Auto die
Beschleunigung des Fahrzeugs stabilisieren kann.
Sie wissen, dass wir dies tun, ist, dass die KI nicht immer in dieselbe Richtung geht, indem sie diese
negative Orientierung hinzufügt.
Wir stellen sicher, dass es in beide Richtungen rechts oder links erkundet wird.
Und so sind dies die drei Signale. Plus die Orientierung und die Minus-Orientierung sind die fünf
Eingänge unseres kodierten Vektors, die in das Netzwerk gehen werden, und der Eingangsvektor, der in das Netzwerk
gehen wird, und nachdem er in das Netzwerk gelangt ist ist die Aktion zu spielen.
Und jedes Mal und die Ausgabe wird von dieser Aktualisierungsfunktion zurückgegeben, die das Netzwerk selbst und die
Ausgabe des Netzwerks enthält. Deshalb müssen wir das letzte Signal eingeben, das den Eingangsstatus
darstellt, und auch das letzte Wort, weil die Aktion auch abgespielt wird hängt vom letzten Wort ab.
Alles klar und dann aktualisieren wir die Hauptpunktzahl der Wörter. Wir aktualisieren die Rotation. Wir verwenden die Verschiebungsfunktion,
um das Auto entsprechend der ausgewählten Aktion zu drehen.
Wir nehmen die Entfernung des Autos zur Straße und wir bekommen die Positionen der Sensorbälle eine Kugel zwei in
beiden Rieker-Reaktionen auf die Kugeln, die die Sensoren auf der Karte darstellen.
Sie werden das sehr schnell sehen.
Und dann ist dieser Teil sehr wichtig, weil wir das Auto damit bestrafen, wenn es
in einen gewissen Sinn geht, denn wie Sie sehen, bedeutet dies, dass das Auto verlangsamt ist, wenn das Auto auf einem Sinn ist.
Hier reduzieren wir die Geschwindigkeit.
Sie wissen, dass die Geschwindigkeit normalerweise 6 beträgt, wie Sie hier sehen können.
Und wenn es sich bis zu einem gewissen Sinn fortsetzt, wird es einer sein, der auf 1 verlangsamt wird.
Sie werden sehen, wie das Auto verlangsamt wird, wenn es in einen gewissen Sinn kommt.
Es geht also langsamer.
Und außerdem bekommt es eine schlechte Belohnung, die wir wollen.
Und das ist eigentlich die schlimmste Belohnung, die man bekommen kann.
Die beste Belohnung ist eine, die schlechteste, die wir sagen, ist minus eins und die Belohnung liegt zwischen minus 1 und plus 1.
Und dann anders.
Und das Auto steht nicht auf etwas Sand.
Nun, es behält seine gewohnte Geschwindigkeit beim Sex und dann fügen wir noch etwas hinzu.
Wenn es dem Ziel näher kommt, erhält es eine leicht positive Belohnung.
Und wenn es weiter vom Ziel entfernt ist Nun, es wird eine leicht negative Belohnung minus 0. 2
Und dann zuletzt.
Bedingungen, die sich auf die Belohnung beziehen.
Das ist, wenn das Auto zu nahe an eine der Kanten kommt, wie wir vorher gesagt haben.
Denken Sie daran, als wir über den Kraftstoffsensor gesprochen haben.
Wenn das Auto zu nahe an den linken Rand der Karte kommt, wird es minus ein Wort, wenn es zu nahe an
den rechten Rand der Karte kommt, wird es minus eins belohnt.
Und wenn es zu nahe an den unteren Rand der Karte kommt, erhalten Sie oder minus eins.
Und wenn es zu nahe an die obere linke Ecke der Karte kommt, erhält es Belohnungen minus eins.
Das ist also eine schreckliche Strafe.
Und so werden Sie sehen, wie es voll und schnell ist, nicht zu etwas anderem zu stürzen.
In Ordnung, und dann ist das Ziel zu aktualisieren.
Sie wissen also, wenn das Auto den Flughafen erreicht, der erste ist, dann befindet sich die obere linke Ecke
der Karte.
Während das Ziel in die rechte untere Ecke der Karte wechselt, ist die Innenstadt.
Und genau das tun wir hier, wir aktualisieren die x-Koordinate der Crow und die
weißen Koordinaten des Anrufs und aktualisieren dann die Entfernung vom Auto zum Auto.
Gut.
Und das ist dann weniger wichtig.
Das ist nur eine Klasse, die die Malwerkzeuge hinzufügt, die Sie kennen, damit Sie Straßen oder Hindernisse auf der Karte
malen können, die mehr mit K zusammenhängen. V. Wenn Sie möchten, kann ich mir die
komprimierte Version dieses Codes zur Verfügung stellen, und ich werde ein paar Hinweise geben, wenn Sie mit Skivvy
ausführlicher vorgehen möchten.
Aber wir kommen immer weiter von künstlicher Intelligenz, so dass ich nicht weiter auf Details eingehen werde.
Und das gleiche gilt für den letzten Codeabschnitt mit der Autoklasse, die genauso wie die API-Schaltflächen gelöscht und
geladen werden.
Also machen wir das hier.
Klare Leinwand sicher.
Und das ist wirklich sehr wichtig, damit wir den Tag, den ich kenne, retten können, um das Gehirn
zu retten, so dass Sie es später wiederverwenden können, indem Sie die Ladefunktion verwenden, die wir auf der Karte hinzufügen, um
das Gehirn des Autos so zu laden ist, den Speicher des Autos zu laden, wie man in der Karte navigiert.
Und dann haben wir endlich den letzten Code-Abschnitt, der die gesamte Sache ausführt, die
die Karte und die KI selbst ausführt.
Und genau das werden wir jetzt tun.
Schauen wir uns alles an, was wir in diesem Code gemacht haben.
Die KI ist also momentan nicht implementiert.
Der Code wird also eine sehr zufällige Bewegung haben.
Es wird tatsächlich wie ein Insekt aussehen, aber machen Sie sich keine Sorgen, wir werden das beheben.
Normalerweise trainieren wir es, um sich wie ein richtiges Auto zu bewegen, und trainieren, um auf einigen Straßen zu navigieren
und Hindernissen auszuweichen.
Lass uns das machen.
Ich werde alles auswählen und ausführen.
Und hier ist die Karte.
Und hier ist das Auto.
Gut.
Das ist das Kleine, was Sie hier sehen, das in unserem Auto wie ein Insekt aussieht.
Wie ich Ihnen gesagt habe, sind die Aktionen völlig zufällig.
So wählt das Auto jedes Mal zufällig eine Aktion aus, ob direkt nach links oder nach rechts gefahren werden soll.
Deshalb macht es einige unsinnige Bewegungen und deshalb sieht es aus wie ein Insekt.
Wir werden das natürlich beheben.
Und da die KI aktiviert ist, geht es natürlich nicht um das Ziel, den Flughafen hier oder in
die Innenstadt rechts unten auf der Karte.
Wir werden das alles beheben, indem wir die KIs machen, die die KI in dieses Auto oder dieses Insekt implementieren, so dass Sie
die drei Kugeln hier sehen können, die gelben die rote und die weiße.
Das sind unsere drei Sensoren.
So werden wir es erkennen.
Es duftet etwas herum.
Und wenn wir von Duft sprechen, lass uns etwas werfen.
Um dies zu tun, muss ich nur einen Klick hier links machen und Sie wissen in gewissem Sinne, dass ich immer noch unterrichte.
Jetzt füge ich etwas Sand hinzu, wir können noch etwas hinzufügen.
Jedes Mal in verrückter Weise kann man sehen, dass das Senden eines Arrays in das mittlere Array
zu 00 Koordinaten des Ursprungs ist.
Und hier gibt es viele.
Und wie Sie gut sehen können, ist es gut, das Auto zu sehen.
Wir gingen einfach weiter und waren langsam.
Wie Sie jetzt sehen können, ist es sehr langsam, weil es in den Sand geht.
Und jetzt versucht es zu fliehen.
Und so wissen Sie, was wir tun werden: Wir zeichnen einige Straßen und ziehen einige Straßen vom Flughafen in die Innenstadt.
Wir werden das Auto trainieren, um auf der Straße zu bleiben und die Hindernisse zu umgehen.
Gut.
Und wie Sie sehen können, gibt es die Clear-Taste zum Löschen des Sandes, und die Save-Taste zum Speichern
des Gehirns des Autos.
Und tatsächlich gibt es diese Kernkurve, von der wir sprachen, dass diese Sicherheit Ihrem Modell tatsächlich das Gehirn
Ihres Autos erspart, und dann können Sie wissen, wann Sie Ihre Erkältung verlassen oder Ihren Computer ausschalten und Sie möchten
noch einmal darauf zurückgreifen.
Sie können den Ladeknopf verwenden, um Ihren Modus zu laden, dh das Gehirn zu laden und die Züge der
Züge Ihres Autos zu erhalten.
In Ordnung, also kann ich es kaum erwarten, mit der KI zu beginnen.
Das wird viel Spaß machen.
Wir machen unser neuronales Netzwerk und bestrafen das Auto, sobald es nicht das tut, was wir wollen.
Also machen wir das ab dem nächsten Tutorial.
Und bis dahin genießen Sie eine.