Schooling Flappy Bird: A Reinforcement Learning Tutorial
In classical programming, software instructions are explicitly made by programmers and nothing is learned from the data at all. In contrast, machine learning is a field of computer science which uses statistical methods to enable computers to learn and to extract knowledge from the data without being explicitly programmed. In this reinforcement learning tutorial, I'll show how we can use PyTorch to teach a reinforcement learning neural network how to play Flappy Bird. But first, we'll need to cover a number of building blocks. Machine learning algorithms can roughly be divided into two parts: Traditional learning algorithms and deep learning algorithms. Traditional learning algorithms usually have much fewer learnable parameters than deep learning algorithms and have much less learning capacity. Also, traditional learning algorithms are not able to do feature extraction: Artificial intelligence specialists need to figure out a good data representation which is then sent to the learning algorithm. Examples of traditional machine learning techniques include SVM, random forest, decision tree, and $k$-means, whereas the central algorithm in deep learning is the deep neural network. The input to a deep neural network can be raw images, and an artificial intelligence specialist doesn't need to find any data representation--the neural network finds the best representation during the training process. A lot of deep learning techniques have been known for a very long time, but recent advances in hardware rapidly boosted deep learning research and development.
Aug-21-2018, 14:26:41 GMT