- Value-based:Learning a Critic
- Q-Learning
- DQN(Deep Q Network)
- Policy-based:Learning an Actor
- Module-based
- Actor Critic
- A3C(Asynchronous Advantage Actor-Critic)
- Agent:智能体
- State:环境状态
- Action:在当前环境状态下智能体所能执行的决策
- Reward:执行决策后获得的奖励,奖励可以为负
- 仅探索能很好的估计每种情况的奖赏,却会失去选择最优情况的机会;
- 仅利用不能很好地估计估计每种情况的期望奖赏,很可能经常选不到最优情况。
times(try)=times(use)+times(explore)
探索和利用是矛盾的,因为尝试次数有限,加强了一方则会自然消弱另一方。
算法中一般使用ϵ=times(try)times(explore)或ϵgreedy=times(try)times(use)来平衡探索和利用。
若初始ϵ非常大,则通常让ϵ=times(try)1,即使ϵ随着探索次数的增加而减小。
Flappy Bird
States |
Action1 |
Action2 |
⋯ |
Action∗ |
S0 |
score01 |
score02 |
⋯ |
score0∗ |
S1 |
score11 |
score12 |
⋯ |
score1∗ |
⋮ |
⋮ |
⋮ |
|
⋮ |
S∗ |
score∗1 |
score∗2 |
⋯ |
score∗∗ |
- 在状态Si时,执行Actionj得到的scoreij越高,智能体(Agent)就越大概率地采取这个Action。
- Q表是经过学习之后的结果,学习并不断更新Q表的过程就是Q Learning。
Q(sas′)=(1−η)Q(sas′)+η[R(sas′)+γa′maxQ(s′a′s′′)]
- η:学习速率(learning rate),0<η<1
- γ:折扣因子(discount factor),0<γ<1,对未来奖励的衰减,越大越重视以往经验
- sas′:在State=s下采取Action=a到达State=s′
- Q(⋯):根据历史情况算出的Reward
- R(⋯):根据实际情况得到的Reward
Q-Learning使用表格来存储Q(s,a),但该方法在很多现实问题上是不可行的(状态过多将会导致表格的“维度爆炸”)。
该方法就是为了解决状态空间过大的问题,用一个函数来近似表示Q(s,a)
Q(s,a)=f(s,a,w)
待补充
待补充