概述
学习强化学习《Reinforcement Learning An Introduction》,2.3节,做了个Matlab的仿真。
问题描述:the 10-armed bandit problem
这是一个重复做选择的问题。一共有10个选择,重复选择1000次。
每次选择都会有奖励,奖励是符合固定的正态分布的。
所以做不同的选择,获得的奖励不同;每次做的选择,尽管选择相同,但奖励也不同。
你的目的是,连续做了1000次选择后,得到的回报总和越高越好。
这个图是一个特殊的 10-armed bandit problem。特殊之处在于 q ⋆ ( a ) q_star (a) q⋆(a)的值。
重要:10-armed bandit problem是一个系列问题的总称,每个特殊的10-armed bandit problem之间的不同之处在于 q ⋆ ( a ) q_star (a) q⋆(a)的值的不同。选择选项 a a a后,获得奖励是符合正态分布的 N ( q ⋆ ( a ) , 1 ) N(q_star(a),1) N(q⋆(a),1)。
算法1: ϵ − g r e e d y epsilon-greedy ϵ−greedy algorithm
你是不知道 q ⋆ ( a ) q_star(a) q⋆(a)的具体值的,所以首先要对每个选择的行为值做个估计,因为这个估计值是在不断更新的,所以定义为 Q t ( a ) Q_t( a ) Qt(a),意思是在 t t t时刻,选择行为 a a a后,估计得到的奖励值。
这个算法的大概步骤是:每次选择执行的行为是估计值最大的行为,小概率的情况下,随机选择其他的行为。
算法步骤如下:
-
初始化:将 Q ( a ) Q(a) Q(a)全部初始化为 0 0 0;将 N ( a ) N(a) N(a)全部初始化为0; R t o t a l ( t ) = 0 R^{total}(t)=0 Rtotal(t)=0;
-
for t = 1~1000
-
A = arg max a Q t ( a ) A=argmax_a Q_t(a) A=argmaxaQt(a) with probability 1 − ϵ 1-epsilon 1−ϵ;
A = A= A= a random action with probability ϵ epsilon ϵ;
-
计算回报 R ( t ) = b a n d i t ( A ) = N ( q ⋆ ( A ) , 1 ) R(t)=bandit(A)=N(q_star(A),1) R(t)=bandit(A)=N(q⋆(A),1);
-
计算总回报 R t o t a l ( t ) + = R ( t ) R^{total}(t)+=R(t) Rtotal(t)+=R(t);
-
N A + = 1 N_A+=1 NA+=1;
-
Q ( A ) = Q ( A ) + 1 N ( A ) [ R − Q ( A ) ] Q(A)=Q(A)+dfrac{1}{N(A)}[R-Q(A)] Q(A)=Q(A)+N(A)1[R−Q(A)];
-
仿真
因为存在不确定性,每次的回报都是服从一个正态分布,所以每次做实验的结果也是不一样的。为了说明问题,我们做2000次仿真实验,每次仿真实验都是,然后取平均值。
对于某一$epsilon $的仿真步骤如下:
- for i = 1:2000
- 初始化 q ⋆ ( a ) q_star(a) q⋆(a)为 N ( 0 , 1 ) N(0,1) N(0,1)的分布,由此确定了一个10-armed bandit problem;
- 对刚刚特殊化的问题,运行三次
ϵ
−
g
r
e
e
e
d
y
epsilon-greeedy
ϵ−greeedy算法;
- for j = 1~3
- ϵ ( j ) = 0 ; 0.01 ; 0.1 epsilon(j)=0;0.01;0.1 ϵ(j)=0;0.01;0.1
- 运行 ϵ − g r e e e d y epsilon-greeedy ϵ−greeedy算法
- 得出 R i j t o t a l ( t ) R^{total}_{ij}(t) Rijtotal(t)
- for j = 1~3
- for t = 1:1000
- for i = 1:2000
- 对 i i i求均值 R ˉ j t o t a l ( t ) bar{R}_j^{total}(t) Rˉjtotal(t);
- for i = 1:2000
- 作图,在一个图中,画出三个 R ˉ j t o t a l ( t ) bar{R}_j ^{total}(t) Rˉjtotal(t)与时间的曲线图
最后
以上就是懵懂水杯为你收集整理的强化学习入门: the 10-armed bandit problem,e-greedy 算法问题描述:the 10-armed bandit problem算法1: ϵ − g r e e 的全部内容,希望文章能够帮你解决强化学习入门: the 10-armed bandit problem,e-greedy 算法问题描述:the 10-armed bandit problem算法1: ϵ − g r e e 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复