Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjim0816 committed Mar 28, 2021
2 parents 6e4d966 + bf96f8c commit 6a92f97
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,27 @@
| [第十三章 AlphaStar 论文解读](https://datawhalechina.github.io/easy-rl/#/chapter13/chapter13) | | |
## 算法实战

<<<<<<< HEAD
[点击](./codes)或者跳转```codes```文件夹下进入算法实战
=======
| 算法名称 | 相关论文材料 | 环境 | 备注 |
| :--------------------------------------: | :---------------------------------------------------------: | ------------------------------------- | :--------------------------------: |
| [On-Policy First-Visit MC](./codes/MonteCarlo) | | [Racetrack](./codes/envs/racetrack_env.md) | |
| [Q-Learning](./codes/QLearning) | | [CliffWalking-v0](./codes/envs/gym_info.md) | |
| [Sarsa](./codes/Sarsa) | | [Racetrack](./codes/envs/racetrack_env.md) | |
| [DQN](./codes/DQN) | [DQN-paper](https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf) | [CartPole-v0](./codes/envs/gym_info.md) | |
| [DQN-cnn](./codes/DQN_cnn) | [DQN-paper](https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf) | [CartPole-v0](./codes/envs/gym_info.md) | 与DQN相比使用了CNN而不是全链接网络 |
| [DoubleDQN](./codes/DoubleDQN) | | [CartPole-v0](./codes/envs/gym_info.md) | 效果不好,待改进 |
| Hierarchical DQN | [Hierarchical DQN](https://arxiv.org/abs/1604.06057) | | |
| [PolicyGradient](./codes/PolicyGradient) | | [CartPole-v0](./codes/envs/gym_info.md) | |
| A2C | | [CartPole-v0](./codes/envs/gym_info.md) | |
| A3C | | | |
| SAC | | | |
| [PPO](./codes/PPO) | [PPO paper](https://arxiv.org/abs/1707.06347) | [CartPole-v0](./codes/envs/gym_info.md) | |
| DDPG | [DDPG Paper](https://arxiv.org/abs/1509.02971) | [Pendulum-v0](./codes/envs/gym_info.md) | |
| TD3 | [Twin Dueling DDPG Paper](https://arxiv.org/abs/1802.09477) | | |
| GAIL | | | |
>>>>>>> bf96f8c2982d0be863e90981caf94da888b1589c
## 贡献者

Expand Down
6 changes: 3 additions & 3 deletions docs/chapter6/chapter6_questions&keywords.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

## 1 Keywords

- **DQN(Deep Q-Network):** 基于深度学习的Q-learninyang算法,其结合了 Value Function Approximation(价值函数近似)与神经网络技术,并采用了目标网络(Target Network)和经验回放(Experience Replay)的方法进行网络的训练
- **DQN(Deep Q-Network):** 基于深度学习的Q-learninyang算法,其结合了 Value Function Approximation(价值函数近似)与神经网络技术,并采用了目标网络(Target Network)和经验回放(Experience Replay)等方法进行网络的训练
- **State-value Function:** 本质是一种critic。其输入为actor某一时刻的state,对应的输出为一个标量,即当actor在对应的state时,预期的到过程结束时间段中获得的value的数值。
- **State-value Function Bellman Equation:** 基于state-value function的Bellman Equation,它表示在状态 $s_t$ 下带来的累积奖励 $G_t$ 的期望。
- **Q-function:** 其也被称为state-action value function。其input 是一个 state 跟 action 的 pair,即在某一个 state 采取某一个action,假设我们都使用 actor $\pi$ ,得到的 accumulated reward 的期望值有多大。
- **Target Network:** 为了解决在基于TD的Network的问题时,优化目标 $\mathrm{Q}^{\pi}\left(s_{t}, a_{t}\right)
=r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右两侧会同时变化使得训练过程不稳定,从而增大regression的难度。target network选择将上式的右部分即 $r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通过改变上式左部分的network的参数,进行regression。也是一个DQN中比较重要的tip
- **Exploration:** 在我们使用Q-function的时候,我们的policy完全取决于Q-function,有可能导致出现对应的action是固定的某几个数值的情况,而不像policy gradient中的output为随机的,我们再从随机的distribution中sample选择action。这样会导致我们继续训练的input的值一样,从而”加重“output的固定性,导致整个模型的表达能力的急剧下降,这也就是`探索-利用窘境(Exploration-Exploitation dilemma)`问题。所以我们使用`Epsilon Greedy``Boltzmann Exploration`等Exploration方法进行优化。
=r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右两侧会同时变化使得训练过程不稳定,从而增大regression的难度。target network选择将上式的右部分即 $r_{t}+\mathrm{Q}^{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通过改变上式左部分的network的参数,进行regression,这也是一个DQN中比较重要的tip
- **Exploration:** 在我们使用Q-function的时候,我们的policy完全取决于Q-function,有可能导致出现对应的action是固定的某几个数值的情况,而不像policy gradient中的output为随机的,我们再从随机的distribution中sample选择action。这样会导致我们继续训练的input的值一样,从而“加重”output的固定性,导致整个模型的表达能力的急剧下降,这也就是`探索-利用窘境难题(Exploration-Exploitation dilemma)`。所以我们使用`Epsilon Greedy``Boltzmann Exploration`等Exploration方法进行优化。
- **Experience Replay(经验回放):** 其会构建一个Replay Buffer(Replay Memory),用来保存许多data,每一个data的形式如下:在某一个 state $s_t$,采取某一个action $a_t$,得到了 reward $r_t$,然后跳到 state $s_{t+1}$。我们使用 $\pi$ 去跟环境互动很多次,把收集到的数据都放到这个 replay buffer 中。当我们的buffer”装满“后,就会自动删去最早进入buffer的data。在训练时,对于每一轮迭代都有相对应的batch(与我们训练普通的Network一样通过sample得到),然后用这个batch中的data去update我们的Q-function。综上,Q-function再sample和训练的时候,会用到过去的经验数据,所以这里称这个方法为Experience Replay,其也是DQN中比较重要的tip。

## 2 Questions
Expand Down

0 comments on commit 6a92f97

Please sign in to comment.