1. 强化学习基础
1.1 Q-learning
Q-Learning里最主要的创造就是一个QTable,我们通过更新QTable来获得QValue最大的值,我们通过最大QValue来确定下一步执行的Action。
1.2 DQN(基于值函数)
DQN延续了Q-Learning的想法,使用神经网络来模拟QTable。因为QTable里存储的值是有限的,因此它的存储的State-Action是离散的。但是使用神经网络来模拟QTable来进行数据的搜索和存储。输出的Action依然是Qvalue最大的Action(基于值函数)。
- DQLearning(英文):let’s play Doom
- DQLearning(中文):let’s play Doom(上)
- DQLearning(中文):let’s play Doom(下)
- 一篇关于TensorFlow实现DQN的博客,但对具体的过程有非常详细的解释,包括一些名词的理解(Experience Replay等等)
1.3 策略梯度
策略一般分为两种,一种是确定的策略,一种是随机策略(部分可测马尔科夫链过程POMDP)。通常来讲确定策略用于确定环境中,而随机策略用于环境不确定的情况下。
策略函数的优点:通常拥有更好的收敛性;在训练连续行动时更有效。
2. Pytorch实现
我发现有些东西确实不太容易想清楚的时候,看代码会清晰起来