# Lecture 1:概括与基础
和 supervised learning 的区别:
* 强化学习是Sequential data作为input,每次输入并不是独立同分布
* 没有ground truth, learner不会被告知什么action是正确的。需要不断去尝试
* Trail-and-error exploration(balance between explioration and exploitation)
* reward signal是延迟的
rollout:sample actions
Full observation: $O_t=S_t^e=S_t^a$
Partial observation: Partially observation Markov decision process(POMDP)
Agent: Policy, Value function, Model(agent对世界的理解)
Stochastic policy: $/pi (a|s)=P[A_t=a|S_t=s]$
Deterministic policy:$a*=/mathop{/arg/max}_{a}/pi(a|s)$
Value-function:
$$v_{/pi}(s)/equiv/mathbb{E}_{/pi}[G_t|S_t=s]=/mathbb{E}_{/pi}[/sum/limits_{k=0}^{/infty}/gamma^kR_{t+k+1}|S_t=s], s/in/mathcal{S}$$
Q-function:
$$q_{/pi}/equiv/mathbb{E}_{/pi}[G_t|S_t=s, A_t=a]=/mathbb{E}_{/pi}[/sum/limits_{k=0}^{/infty}/gamma^kR_{t+k+1}|S_t=s, A_t=a]$$
## Model
预测下一步环境将会怎么做
$$/mathcal{P}_{ss’}^{a}=/mathbb{P}[S_{t+1}=s’|S_t=s, A_t=a]$$
$$/mathcal{P}_{s}^a=/mathbb{E}[R_{t}| S_t=s, A_t=a]$$
## 不同的表征:
* Value-based agent: 显式输出value,隐式输出policy
![](Image/2022-01-16-09-31-22.png)
* Policy-based agent: 显式输出policy, 没有value function
* Actor-Critic agent:策略函数和价值函数都学习了
* Model based: 显式学习model
* Model free:没有model,显式学习value和policy function
![](Image/2022-01-16-09-33-01.png)
![](Image/2022-01-16-09-44-50.png)
# Lecture2: Markov
## Markov Property
state历史:$h_t=/{s_1, s_2, …, s_t/}$
称一个 $s_t$ 是Markovian,当且仅当:$$p(s_{t+1}|s_t)=p(s_{t+1}|h_t)$$$$p(s_{t+1}|s_t, a_t)=p(s_{t+1}|h_t,a_t)$$
## Markov Process/Markov Chain
* 使用状态转移矩阵$P$来描述: $P_{s,s’}(s_{t+1}=s’|s_t=s)$
![](Images/2022-05-28-04-54-55.png)
* 思考:如何通过sample一些trajectory来还原$P$?直接根据出现频率计算即可(利用Markov Property)
## Markov Reward Process
* 奖励是state的函数
* 随波逐流的小船
* Horizon:一个episode中最大的步数(可以是$/infty$)
* Return:$$G_t=R_{t+1}+/gamma R_{t+2}+…+/gamma^{T-t-1}R_T$$
为什么用折扣因子?
(1)防止有环
(2)未来有不确定性,尽可能尽快获得奖励
(3)对人来说,也是希望尽可能尽快收获奖励
(4)当然也可以设置成0或者1
* Value Function:$$V_t(s)=/mathbb{E}[G_t|s_t=s]$$
Bellman equation:$$V(s)=R(s)+/gamma /sum/limits_{s’/in S}P(s’|s)V(s’)$$![](Image/2022-01-16-21-10-09.png)
如何计算?
(1)蒙特卡洛:直接sample足够多的trajectory
(2)动态规划:不断迭代Bellman方程直到收敛
## Markov Decision Process
* MDP可以由确定。加入action之后的变化:
$$P(s_{t+1}=s’|s_t=s,a_t=a)// R(s,a)=R(s_t=s,a_t=a)=/mathbb{E}[r_t|s_t=s,a_t=a]$$
* 策略和MDP是独立的,是属于agent的一部分。因此,给定一个MDP:$(S,A,P,R,/gamma)$ 和 $/pi$,就可以将MDP转化为Markov Reward Process:$(S,P^{/pi},R^{/pi},/gamma)$,其中:$$P^{/pi}(s’|s)=/sum/limits_{a/in A}/pi(a|s)P(s’|s,a)// R^{/pi}(s)=/sum/limits_{a/in A}/pi(a|s)R(s,a)$$
* 加入action之后,相当于状态转移加入了agent的行为,因此在计算期望时的采样也会受到策略的影响,因此:$$v^/pi(s)=/mathbb E_/pi[G_t|s_t=s]// q^/pi(s,a)=/mathbb E_/pi[G_t|s_t=s,A_t=a]// v^/pi(s)=/sum/limits_{a/in A}/pi(a|s)q^/pi(s,a)$$
* Backup:当前状态是下一状态的线性组合
$$v^/pi(s)=/sum/limits_{a /in A}/pi(a|s)R(s,a)+/gamma/sum/limits_{a /in A}/pi(a|s)P(s’|s,a)v^/pi(s’) // q^/pi(s,a)=R(s,a)+/gamma/sum/limits_{s’/in S}P(s’|s,a)/sum/limits_{a’/in A}/pi(a’|s’)q^/pi(s’,a’)$$
#### Policy Evaluation(Prediction):根据 $/pi$ 求 $v^/pi$
> $/textbf{Synchronous backup}$
$$v_{t+1}=/sum/limits_{a/in /mathcal{A}}/pi(a|s)R(s,a)+/gamma /sum/limits_{s’/in/mathcal{S}}/pi(a|s)P(s’|s,a)v_t(s’)$$不断迭代直到收敛
[动态演示](https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_dp.html)
#### Control: 输入MDP,输出最优价值函数和最优policy
$$/pi^*(a|s)=/left/{
/begin{array}{lll}
1 & a=/argmax/limits_{a/in/mathcal{A}}q^*(s,a) //
0 & else
/end{array}
/right.$$
> $/textbf{Value Iteration Algorithm}$
Initialize $k=1$ and $v_0(s)=0$ for all state s
$For/ k=1:H$
$/ / / / / For/ each/ state/ s:$$$q_{k+1}(s,a)=R(s,a)+/gamma/sum/limits_{s’/in/mathcal{S}}P(s’|s,a)v_k(s’)//v_{k+1}(s’)=/max/limits_{a}q_{k+1}(s, a)$$
$/ / / / / k/larr k+1 $
To get optimal policy:$$/pi(s)=/argmax/limits_{a}R(s, a)+/gamma/sum/limits_{s’/in/mathcal{S}}P(s’|s,a)v_{k+1}(s’)$$
# 第三讲 无模型的价值函数估计和控制
前提:不知道MDP的模型
什么是已知MDP?已知R和P
### Monto-Carlo算法:
##### 特点:
* 不需要知道reward和转移概率,只需要sample足够多的trajectory然后进行平均来估计价值函数。
* booststrap:一种非参数统计方法:
在原有样本中通过重抽样(有放回的抽取,完全独立同分布)抽取一定数量的新样本,每次得到一个统计量,将这些统计量进行平均即可近似算出总体的参数估计值
* no bootstrapping(DP用的就是bootstrapping)
* 不假设是MArkov的
* 使用empirical mean return而不是expected return
* 只能应用于episodic MDPs(each episode terminates)
##### Empirical Mean:
* $/mu_t = /frac{1}{t}/sum_i x_i=/frac{1}{t}(x_t+/sum_{i=0}^{t-1} x_i)=/frac{1}{t}(x_t+(t-1)/mu_{t-1})=/mu_{t-1}+/frac{1}{t}(x_t-/mu_{t-1})$
##### 算法:
![](Images/2022-06-22-00-23-50.png)
##### Running Mean
忘记old带来的影响
$v(S_{t})=v(S_t)+/alpha(G_t-v(S_t))$
$/alpha$越大新的带来的影响越大,大于$/frac{1}{n}$将会有遗忘效果
### Temporal-Difference(TD)Learning
特点:
* 直接从trajectory经验中学习
* model-free:不需要知道R和P
* 可以从incomplete episodes中学习,通过bootstrapping
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/270305.html