Skip to content

This is my first Reinforcement Learning Project, where I have build a Self driving Car. This involoves concepts like Exploration & Exploitation, Experience Memory, Rewards etc. Kivy is used to show the simulations of the car.

Notifications You must be signed in to change notification settings

Sudhanshu1304/SELF-DRIVING-CAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SELF DRIVING CAR

LIBRARIES USED


To see the Car In Action visit Click Hear


  • Kivy
  • PyTorch

Sections


About Kivy



Kivy is a free and open source Python framework for developing mobile apps and other multitouch application software with a natural user interface. It is distributed under the terms of the MIT License, and can run on Android, iOS, GNU/Linux, macOS, and Windows

Official Kivy Website Link



About PyTorch



PyTorch is an open source machine learning library based on the Torch library, used for applications such as computer vision and natural language processing, primarily developed by Facebook's AI Research lab. It is free and open-source software released under the Modified BSD license.


Why PyTorch Not TensorFlow ?



In my Opinion whenever we want to have control over the very fundamentals processes link " Having the ability to to call the Back-Prop and Forward Propagation as and when required " This thing may be possible in TensorFlow But it Become too slow for such kind of a project.

Technical difference between TensorFlow and PyTorch on Quora



Project Approach


GUI PART

Kivy Link

For The GUI Part The About Official Example of Kivy Implementation Helped a Lot of It. In Fact Some of the Code Snippet's are so Fundamental That It Provided Direct Help in Making this Project.

AI PART

Reinforcement Learning Link

The Above Link helped me a Lot In Understanding the Key Concepts and how to approach this Project .



Concepts Used In Project


  • Concept is about Exploration

It Is Very Important to know that Unlike in normal Supervised Learning Projects where we have to give the give the correct solution of a particular Input ,here we Do not have any thing before hand so for dealing with such Issue we have to Let the Car play Random Moves and Let the Car To Explore the Environment and Gather Experience


  • Experience Memory

During the Exploration the Car gains Experience ,Practically it means that we have to store the Data Gained like the Reward corresponding to a particular State in a memory cell which can be made using the List Data Structure in Python.

This Memory also has a very Important Role to play i.e Consider the Car is Trained on the Input's of its Present State , Since we are Dealing with the Weights of the Neural Network in the Back ,The Neural Network will soon forget the Experience It had for the States it had been before because It's weights will adjusted it self to the new states it is in.

This Means that the Car wil not learn effectively and every time it comes across the same states as it have been before it will have to Explore that environment again, which makes no sense.

So to deal with this Issue We Train out Neural Net on the Experiential Memory also so that the weights are not lost completely and helps in generalizing Car for Different Environments



REINFORCEMENT LEARNING SCHEMATICS



About

This is my first Reinforcement Learning Project, where I have build a Self driving Car. This involoves concepts like Exploration & Exploitation, Experience Memory, Rewards etc. Kivy is used to show the simulations of the car.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages