Ich baue aus Spaß ein ferngesteuertes, selbstfahrendes Auto. Ich verwende einen Raspberry Pi als Bordcomputer. und ich benutze verschiedene Plug-Ins, wie eine Himbeer-Pi-Kamera und Abstandssensoren, um Rückmeldung über die Umgebung des Autos zu erhalten. Ich benutze OpenCV, um die Video-Frames in Tensoren umzuwandeln, und ich benutze TensorFlow von Google, um ein verschlungenes neuronales Netzwerk aufzubauen, um Straßengrenzen und Hindernisse zu lernen. Meine Hauptfrage ist, ob ich das Fahren mithilfe von überwachtem Lernen unterrichten oder ob ich Ziele und Strafen festlegen und das Fahren verbessern soll (dh, ich komme so schnell wie möglich zu Punkt B, ohne etwas zu treffen und innerhalb der Straßengrenzen zu bleiben). Unten finden Sie eine Liste der Vor- und Nachteile, die ich mir ausgedacht habe.
Betreute Lernprofis:
- Die Eingaben zum Lernalgorithmus sind ziemlich einfach. Das Auto lernt, die Abstände von Videorahmen-Tensor und Sensor mit Vorwärts-, Rückwärts- und Winkelradverschiebung zu verknüpfen
- Ich kann dem Auto mehr oder weniger beibringen, genau so zu fahren, wie ich will (natürlich ohne Überanpassung)
- Ich habe schon unzählige überwachte Lernprobleme gemacht, und dieser Ansatz scheint gut zu meinen vorhandenen Fähigkeiten zu passen
Betreutes Lernen Nachteile:
- Es ist nicht klar, wie man Geschwindigkeit lernt, und die richtige Geschwindigkeit ist ziemlich willkürlich, solange das Auto nicht so schnell fährt, dass es von der Straße abweicht. Ich denke, ich könnte während des Trainings schnell fahren, aber das scheint eine grobe Herangehensweise zu sein. Vielleicht könnte ich während des Trainings manuell eine konstante Variable hinzufügen, die der Geschwindigkeit für diese Trainingseinheit entspricht, und dann, wenn der Lernalgorithmus bereitgestellt wird, diese Variable entsprechend der gewünschten Geschwindigkeit einstellen?
Verstärkung Lernprofis:
- Wenn ich mein Auto mit dem speziellen Ziel baue, im Rennen gegen die selbstfahrenden Autos anderer Leute zu fahren, scheint das Lernen der Verstärkung die natürliche Methode zu sein, um meinem Auto zu sagen, dass es "so schnell wie möglich dorthin kommen soll".
- Ich habe gelesen, dass RL manchmal für autonome Drohnen verwendet wird, daher sollte es theoretisch in Autos einfacher sein, weil ich mich nicht um Auf und Ab kümmern muss
Nachteile des Verstärkungslernens:
Ich bin der Meinung, dass das Erlernen der Verstärkung viele zusätzliche Sensoren erfordern würde, und ehrlich gesagt, hat mein fußlanges Auto nicht so viel Platz, wenn man bedenkt, dass es auch eine Batterie, den Raspberry Pi und ein Steckbrett aufnehmen muss
Das Auto wird sich zunächst sehr unregelmäßig verhalten, so dass es sich vielleicht selbst zerstört. Das Erlernen kann auch unangemessen lange dauern (z. B. Monate oder Jahre).
- Ich kann später keine expliziten Regeln einführen, z. B. bei einer Spielzeug-Ampel anhalten. Mit überwachtem Lernen könnte ich zahlreiche SL-Algorithmen (z. B. einen Haar Cascade-Klassifikator zum Identifizieren von Ampeln) in eine konfigurierbare Regel-Engine integrieren, die zwischen den einzelnen Videoframes ausgewertet wird. Die Regel-Engine könnte somit den Fahr-SL-Algorithmus außer Kraft setzen, wenn sie eine rote Ampel sehen würde, obwohl die Ampel möglicherweise nicht Teil des Trainings des Fahr-Algorithmus gewesen wäre. RL scheint zu kontinuierlich zu sein, um dies zu tun (dh nur am Endzustand anhalten)
- Ich habe nicht viel Erfahrung mit angewandter Bestärkung, obwohl ich es auf jeden Fall trotzdem lernen möchte
quelle
Antworten:
Ich würde Ihnen vorschlagen, einen hybriden Ansatz zu versuchen:
quelle