ML-Vehicle
Primary Resources
Run Instructions
Execute 'Build/Vehicle_Project.exe'.
Design Documentation
Unity Project Scripts
- VehiclePhysics.cs: MonoBehaviour that determines some physics characteristics of the vehicle game object. This includes wheel colliders; motor, steering, and braking input; proximity sensors; GUI output; and frame updates.
- VehicleAgent.cs: Extends Agent. Builds vector of observations to send to brain; applies brake, motor torque, and steering on the vehicle based on vector of actions recieved from brain; builds reward signal; resets agent (and goal) on done().
- VehicleAcademy.cs: Simply extends Academy.
- SpawnAreaManager.cs. Used to find safe, random points in the world model to spawn the vehicle and goal on AgentReset().
Hyper Parameters for Vehicle NN (Summary)
- Policy: PPO
- Total training steps: 100,000,000 (1.0e8)
- Number of layers: 3
- Neurons per layer: 512
The actual configuration file laying out all hyper-parameters used during training can be found here.
Training Description
Agent was trained for 7d 14h 40m 43s. Up until around 2d 8h 51m 51s of training, the agent was completely incompetent. It seemed to reach peak performance at 4d 13h 31m 30s -- after that point, additional training yielded no substantial increases in performance (measured by average extrinsic reward). Below is a screen capture of the TensorBoard graphs at the end of training.