RL,总体思想就是learning from interaction
还是有点没理解,什么是rl?定义的3个内容怎么理解?
rl和监督学习/非监督学习都不一样,监督学习是有label,无监督学习是想从数据中找到隐藏的结构,rl是专注于最大化激励
只在rl中出现的challenge:delimma between exploration and exploitation,既需要放弃已知的reward,而去explore more about env,又需要exploit已知的reward获得激励
一个比较新奇的点,rl让machine更有“常识”
rl是个典型的马尔可夫过程
policy、reward signal、value function、model
reward侧重短期的,value function侧重长期,action是基于value的,但是知道value比知道reward要难
rl和evolutionary methods不同,rl learn while interacting with the env, while evolutionary methods don’t。rl非常依赖stat,也就是依赖useful info from history to take action
主要介绍rl和evolutional method的区别、rl的概念,没太看懂
这部分是stat & action spaces都能写成array或者table,能找到最优解
rl和其他学习方式的不同点在于:training data不是用来“指导”下一步该干什么,而是用来“引导”下一步干什么。引导是这样:告诉你做的这一步有多好/有多差,而不是告诉你这是最好/最差的做法。指导是这样:在你没干之前就告诉你正确的做法是什么。
k-armed bandit problem含义:你面临多个选择题,每个选择题有k个选项,每选择一次后都有概率获得reward,你的目的就是最大化n次选择后的reward总额
假设你不知道每次选择获得的reward大小,但你对reward大小有个基本猜测,如果每次你都选择猜测值最高的选择,那么可以看作是一种贪心策略,这种行为是1.1中提到的exploit,反之,如果不选择猜测reward最高的选项,就是explore,因为这种选择可以帮助你更好的猜测选择reward
平衡exploration和exploitation是rl的一个难点,考虑的因素通常包括:对reward的估测值、不确定性、剩余选择次数等等,比较复杂,本书不详细考虑这个。
action-value methods含义:评估action value,并且利用value行动的方法
定义:在t时间采取a行动的value为 Q t ( a ) Q_t(a) Qt(a),具体定义如下:
Q t ( a ) = 在 t 之 前 采 取 a 行 动 的 r e w a r d 之 和 在 t 之 前 采 取 a 行 动 的 次 数 之 和 Q_t(a) = \frac{在t之前采取a行动的reward之和}{在t之前采取a行动的次数之和} Qt(a)=在t之前采取a行动的次数之和在t之前采取a行动的reward之和
Q t ( a ) Q_t(a) Qt(a)的定义不是唯一的,还有其他的定义,不再赘述
如何用 Q t ( a ) Q_t(a) Qt(a)帮助选择action呢?
最简单的方法:贪婪策略,选择最高 Q t ( a ) Q_t(a) Qt(a)的action
贪婪策略的缺点在于:全部精力用来exploit,没有explore,所以提出一个改进的 ϵ − g r e e d y \epsilon-greedy ϵ−greedy策略,即每回有 ϵ \epsilon ϵ的概率不走贪婪策略,而是随机从现有的action中抽出1个走,这样可以稍微平衡一下explore和exploit
2.1:如果当前只有2个action可选, ϵ = 0.5 \epsilon=0.5 ϵ=0.5,则选中greedy action的概率是多少?
答案
和bandit problem不同的是,bandit problem的value是 q ∗ ( a ) q_*(a) q∗(a),即value仅和action有关。在MDP中,value是 q ∗ ( s , a ) q_*(s,a) q∗(s,a),即value同时和action、stat有关。
MDP的过程其实就是:
S 0 , A 0 , R 0 , S 1 , A 1 , R 1 , … S_0, A_0, R_0, S_1, A_1, R_1, \dots S0,A0,R0,S1,A1,R1,…
即agent处于 S 0 S_0 S0,采取了action A 0 A_0 A0,获得了reward R 0 R_0 R0,然后环境变为 S 1 S_1 S1,再继续下去……有限MDP就是这个过程是有限的,MDP就是当前状态仅与前一个状态有关,定义存在下面这样的转移概率 p p p:
p ( s ′ , r ∣ s , a ) = P r { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } = ∑ r ∈ R p ( s ′ , r ∣ s , a ) p(s^{'}, r | s, a) = P_r\{S_t = s^{'}, R_t = r | S_{t-1} = s, A_{t-1} = a\} = \sum_{r \in R} p(s^{'}, r | s, a) p(s′,r∣s,a)=Pr{St=s′,Rt=r∣St−1=s,At−1=a}=r∈R∑p(s′,r∣s,a)
设置的reward决定了agent会做什么事,设置的reward应该是你希望agent 做到 的事情,而不是agent 怎样 做到这件事。比如如果希望agent下棋赢,那么应该设置赢了reward + 1,而不能设置走哪一步reward + 1
关注总回报,也即return G:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_t = R_{t+1} + \gamma R_{t+2} + \gamma ^ 2 R_{t+3} + \dots = \sum_{k=0}^\infty \gamma^kR_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+⋯=k=0∑∞γkRt+k+1
比之前增加了 γ \gamma γ变量, γ \gamma γ是discount, γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ∈[0,1], γ \gamma γ决定了未来能获得的value现在就被获得后值得的价值。也就是说:如果这个reward在k个时间点后获得,那么如果现在立刻获取它,现在它的价值只有 γ k − 1 ∗ v a l u e \gamma^{k-1} * value γk−1∗value
为啥提前获取value会导致value下降啊?
提前获取value导致value下降的原因(在课程视频里讲到)为:
1. 数学上方便
2. avoid 在小圈圈里不停赚value
3. 模拟未来不确定性
4. 如果reward是经济上的,往往先获得比后获得好(吃利息!)
5. 动物/人类的行为都更偏好眼前value,if all sequence terminates, 有时可以用undiscounted Markov,即γ=1 .
如果 γ = 0 \gamma=0 γ=0, 代表我们完全不关心未来,只看当下的value,策略就变为最大化 R t + 1 R_{t+1} Rt+1。反之,如果 γ = 1 \gamma=1 γ=1, 则表示most farsighted strategy
各个time step之间的return相互影响,原因是:
G t = ∑ k = 0 ∞ γ k R t + k + 1 = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … = R t + 1 + γ ( R t + 2 + γ R t + 3 + γ 2 R t + 4 + … ) = R t + 1 + γ G t + 1 \begin{aligned} G_t &= \sum_{k=0}^\infty \gamma^kR_{t+k+1} \\ &= R_{t+1} + \gamma R_{t+2} + \gamma ^ 2 R_{t+3} + \dots \\ &= R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \gamma^2R_{t+4} + \dots) \\ &= R_{t+1} + \gamma G_{t+1} \end{aligned} Gt=k=0∑∞γkRt+k+1=Rt+1+γRt+2+γ2Rt+3+…=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+…)=Rt+1+γGt+1
注意
3.8 Suppose γ = 0.5 , R 1 = − 1 , R 2 = 2 , R 3 = 6 , R 4 = 3 , R 5 = 2 , T = 5 \gamma = 0.5, R_1 = -1, R_2 = 2, R_3 = 6, R_4 = 3, R_5 = 2, T = 5 γ=0.5,R1=−1,R2=2,R3=6,R4=3,R5=2,T=5,求 G 0 , G 1 , … , G 5 G_0, G_1, \dots, G_5 G0,G1,…,G5
答案
3.9 假设 γ = 0.9 , R 1 = 2 \gamma = 0.9, R_1 = 2 γ=0.9,R1=2, R 1 R_1 R1后是infinite sequence of rewards, 每个reward都是7, 求 G 1 , G 0 G_1, G_0 G1,G0
答案
3.10 证明:当reward为常数+1时,无限序列的 G t = 1 1 − γ G_t = \frac {1}{1 - \gamma } Gt=1−γ1
答案
前一章提到了有finite reward sequence和infinite reward sequence,这里把两者统一起来。可以把finite reward sequence停止的部分,看作是一个absorbing stat,即该节点无限循环reward = 0,此时,可以把 G t G_t Gt写为:
G t = ∑ k = t + 1 T γ k − t − 1 R k G_t = \sum_{k = t + 1}^{T} \gamma^{k - t - 1}R_k Gt=k=t+1∑Tγk−t−1Rk
这里T可以取 ∞ \infty ∞(代表此时是infinite), γ \gamma γ可以取1(代表此时是undiscount),但是两者不能同时取
定义:
记在stat S 下采取policy π \pi π的value function为 v π ( s ) v_\pi (s) vπ(s), 对stat-value function v π ( s ) v_\pi(s) vπ(s)有:
v π ( s ) = E π ( G t ∣ S t = s ) = E π ( ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ) , f o r a l l s ∈ S v_\pi(s) = E_\pi(G_t | S_t = s) = E_\pi ( \sum_{k = 0}^\infty \gamma ^k R_{t + k + 1} | S_t = s), for \; all \; s \in S vπ(s)=Eπ(Gt∣St=s)=Eπ(k=0∑∞γkRt+k+1∣St=s),foralls∈S
类似地有action-value function q π ( s , a ) q_\pi(s,a) qπ(s,a):
q π ( s , a ) = E π ( G t ∣ S t = s , A t = a ) = E π ( ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ) q_\pi(s, a) = E_\pi(G_t | S_t = s, A_t = a) = E_\pi ( \sum_{k = 0}^\infty \gamma ^k R_{t + k + 1} | S_t = s, A_t = a) qπ(s,a)=Eπ(Gt∣St=s,At=a)=Eπ(k=0∑∞γkRt+k+1∣St=s,At=a)
由bellman equation,可以将 v π ( s ) v_\pi(s) vπ(s)及 q π ( s , a ) q_\pi(s,a) qπ(s,a)写为和自身t+1相关的形式,即:
v π ( s ) = E π ( R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ) q π ( s , a ) = E π ( R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ) \begin{aligned} v_\pi(s) &= E_\pi(R_{t+1} + \gamma v_\pi(S_{t+1}) | S_t = s) \\ q_\pi(s, a) &= E_\pi(R_{t+1} + \gamma q_\pi(S_{t+1}, A_{t+1}) | S_t = s, A_t = a) \\ \end{aligned} vπ(s)qπ(s,a)=Eπ(Rt+1+γvπ(St+1)∣St=s)=Eπ(Rt+1+γqπ(St+1,At+1)∣St=s,At=a)
对stat-value function v π ( s ) v_\pi(s) vπ(s),写为matrix form有: v π = R π + γ P π v π v_\pi = R^\pi + \gamma P^\pi v_\pi vπ=Rπ+γPπvπ,进一步有 v π = ( I − γ P π ) − 1 R π v_\pi = (I - \gamma P^\pi)^{-1}R^\pi vπ=(I−γPπ)−1Rπ
解决rl问题其实就是找到能够获得最大value的policy,定义policy之间的比较规则如下:
π ≥ π ′ i f v π ( s ) ≥ v π ′ ( s ) , ∀ s \pi \geq \pi^{'} \; if \;v_\pi(s) \geq v_{\pi^{'}}(s), \;\forall s π≥π′ifvπ(s)≥vπ′(s),∀s
即policy1 better than policy2,当且仅当任意stat下该policy的stat-value funciton都大
定理:
1. 在任意MDP中,至少存在一个optimal policy
2. 存在optimal stat-value function(可能存在多个optimal policy,all optimal policy share same optimal stat-value function)
3. 存在optimal action-value function(可能存在多个optimal policy,all optimal policy share same optimal action-value function)
由于算力、内存的限制,求出最优解是不现实的。RL选择在频繁出现的stat中作出较好选择,不管那些不怎么经常出现的stat,这一点也是RL和其他解决MDP的方法的区别之一
没什么好说的了
2.1
P = 0.5 ∗ 0.5 + 0.5 ∗ 1 = 0.75 P=0.5 * 0.5 + 0.5 * 1 = 0.75 P=0.5∗0.5+0.5∗1=0.75
分2种情况,当explore时(0.5走explore之路),选中greedy action的概率是0.5,当exploit(0.5走exploit之路)时,选中greedy action的概率是100%,两个相加就能算出来了
3.8
由定义有: G 5 = 0 G_5 = 0 G5=0,对其他 G G G,有:
G 4 = R 5 + γ G 5 = 2 + 0.5 ∗ 0 = 2 G 3 = R 4 + γ G 4 = 3 + 0.5 ∗ 2 = 4 G 2 = R 3 + γ G 3 = 6 + 0.5 ∗ 4 = 8 G 1 = R 2 + γ G 2 = 2 + 0.5 ∗ 8 = 6 G 0 = R 1 + γ G 1 = − 1 + 0.5 ∗ 6 = 2 \begin{aligned} G_4 &= R_5 + \gamma G_5 = 2 + 0.5 * 0 = 2 \\ G_3 &= R_4 + \gamma G_4 = 3 + 0.5 * 2 = 4 \\ G_2 &= R_3 + \gamma G_3 = 6 + 0.5 * 4 = 8 \\ G_1 &= R_2 + \gamma G_2 = 2 + 0.5 * 8 = 6 \\ G_0 &= R_1 + \gamma G_1 = -1 + 0.5 * 6 = 2 \end{aligned} G4G3G2G1G0=R5+γG5=2+0.5∗0=2=R4+γG4=3+0.5∗2=4=R3+γG3=6+0.5∗4=8=R2+γG2=2+0.5∗8=6=R1+γG1=−1+0.5∗6=2
利用 G t G_t Gt的公式即可
3.9
序列从t = 2开始infinite,故 G 2 = 7 ∗ 1 1 − γ = 7 ∗ 1 0.1 = 70 G_2 = 7 * \frac {1}{1 - \gamma} = 7 * \frac {1}{0.1} = 70 G2=7∗1−γ1=7∗0.11=70,再向前计算 G 1 , G 0 G_1, G_0 G1,G0:
G 1 = R 2 + γ ∗ G 2 = 7 + 0.9 ∗ 70 = 70 G 0 = R 1 + γ ∗ G 1 = 2 + 0.9 ∗ 70 = 65 \begin{aligned} G_1 &= R_2 + \gamma * G_2 = 7 + 0.9 * 70 = 70 \\ G_0 &= R_1 + \gamma * G_1 = 2 + 0.9 * 70 = 65 \end{aligned} G1G0=R2+γ∗G2=7+0.9∗70=70=R1+γ∗G1=2+0.9∗70=65
3.10
证明:
G t = ∑ k = 0 ∞ γ k R t + 1 + k = ∑ k = 0 ∞ γ k = ∑ k = 0 ∞ γ k ( 1 − γ ) 1 − γ = ∑ k = 0 ∞ γ k − γ k + 1 1 − γ = lim k → ∞ 1 − γ k 1 − γ = 1 1 − γ \begin{aligned} G_t &= \sum_{k = 0}^\infty \gamma ^k R_{t+1+k} = \sum_{k = 0}^\infty \gamma ^k \\ &= \sum_{k = 0}^\infty \frac {\gamma ^k ( 1 - \gamma)}{1 - \gamma} \\ &= \sum_{k = 0}^\infty \frac {\gamma ^k - \gamma ^{k+1}}{1 - \gamma} \\ &= \lim_{k\to\infty} \frac {1 - \gamma ^k}{1 - \gamma} = \frac {1}{1 - \gamma} \end{aligned} Gt=k=0∑∞γkRt+1+k=k=0∑∞γk=k=0∑∞1−γγk(1−γ)=k=0∑∞1−γγk−γk+1=k→∞lim1−γ1−γk=1−γ1
注意,若reward是常数C,则类似地: G t = C ∗ ∑ k ∞ γ k = ⋯ = C ∗ 1 1 − γ G_t = C * \sum _k^\infty \gamma ^k = \dots = C * \frac {1}{1 - \gamma} Gt=C∗∑k∞γk=⋯=C∗1−γ1