DQN
Q learning
model free RL algorithm
学习开始之前,Q被初始化为一个可能的任意固定值(由程序员选择)。然后在每个时间t, Agent选择一个动作
a
t
a_t
at,得到一个奖励
R
t
R_t
Rt,进入一个新的状态
S
t
+
1
S_{t+1}
St+1和Q值更新。其核心是值函数迭代过程,即:
α
\alpha
α为学习率,
γ
\gamma
γ为dicounted factor
off policy
On-policy-与Off-policy的区别在于:更新价值所使用的方法是沿着既定的策略(on-policy)抑或是新策略(off-policy)。
exploration and exploitation uses differrent strategies
ϵ
−
g
r
e
e
d
y
\epsilon-greedy
ϵ−greedy versus
m
a
x
a
Q
max_a Q
maxaQ
Temporal-Difference
一定程度上,时间差分算法可以视为Monte Carlo算法的一种发展,Monte Carlo 算法的核心是多次采样求平均的思路,对累计收获的奖励值求平均, G t G_t Gt为t时刻的奖励的值, V t V_t Vt为对应的价值函数
value iteration
V
(
S
t
)
−
>
E
t
[
G
t
]
V(S_t) -> E_t [G_t]
V(St)−>Et[Gt]
这里再加上一个内在的数值关系
R
t
+
1
+
V
(
S
t
+
1
)
=
V
(
S
t
)
R_{t+1} +V(S_{t+1}) = V(S_t)
Rt+1+V(St+1)=V(St)
由此我们得到了
Deep Q learning
利用神经网络近似值函数的方法表示为:
experience replay
这里的指的是,agent 采集自己的轨迹的历史数据,然后进行minibatch的训练
train
我们可以看到,无论是Q-learning还是DQN,我们发现他们的本质都是value-based 的强化学习方法,利用value iteration 进行优化。因此我们也不难知道,问题的核心就在于如何利用gradient descent的方法得到正确的网络。在这里,正确的网络指的是,input是一个observation或者说是state,可以得到一个正确的 Q ( S t ) − > E t [ G t ] Q(S_t) -> E_t [G_t] Q(St)−>Et[Gt]
因此整个过程的核心变为如何确定θ来近似值函数,最经典的做法就是采用梯度下降最小化损失函数来不断的调试网络权重 θ, Loss function定义为:
pseudo code
文章链接
DQN算法与解析
Human-level control through deep reinforcement learning
Playing Atari with Deep Reinforcement Learning
PPO poximal policy optimization
open AI default algorithms
hungyi lee policy gradient
policy gradient
policy is a network that input is a observation, output is a action
maximize expected reward
tip 1 add a baseline b
assign suitable credit
basic component in RL
agent reward env