冰湖环境(来自gym直接引用)
价值迭代
target_policy: [0. 3. 3. 3. 0. 0. 0. 0. 3. 1. 0. 0. 0. 2. 1. 0.]
blackjack(来自gym的直接引用)
TD(1)
首次访问蒙特卡洛算法
(使用Q_table储存状态动作价值,使用epsilon-greedy探索方法,并且epsilon会随着episode的增多而减少)
gamma=1.0, initial_epsilon=0.1,delta=0.000001
折扣因子:1.0;
初始的epsilon:0.1;
随着episode的增多,epsilon的该变量:0.000001:即episilon=0.1-0.000001*episode
episode次数:100000
gamma=1.0, initial_epsilon=0.1,delta=0.000001,alpha=0.8
折扣因子:1.0;
初始的epsilon:0.1;
随着episode的增多,epsilon的该变量:0.000001:即episilon=0.1-0.000001*episode
变化系数:0.8
episode次数:100000
随着训练的episodes增加,Q表的改变量展示为折线图(|Q_new-Q_old|,当其趋近于0的时候,说明Q表收敛):
我们可以观测到,在episode的次数增大是Q表的改变量开始减少最后趋于零,说明最后Q表收敛。
训练得到Q表后,根据Q表进行测试5000次
the number of win:1402
the number of equal:232
the number of lose:3366
随着训练的episodes增加,Q表的改变量展示为折线图(|Q_new-Q_old|,当其趋近于0的时候,说明Q表收敛):
我们可以观测到,在episode的次数增大是Q表的改变量开始减少最后趋于零,说明最后Q表收敛。
训练得到Q表后,根据Q表进行测试5000次
the number of win:1941
the number of equal:231
the number of lose:2828
Cliffwalking(从已有模块中直接调用,方便修改掉下悬崖的reward)
Q_learning和Sarsa
learning_rate = 0.1,
gamma = 0.9,
epsilon = 0.1
我在训练的过程中,画出了三个图,分别是:
episode数与每次训练的总reward:
episode数与每次训练的step数:
episode数与|Q_new-Q_old|(当其趋于零时,说明Q表收敛):
测试时,我们发现,agent会选择最佳的路线,即沿着悬崖边走的路线,Reward=-13
在将掉下悬崖的reward从-100改为-10或-10000后,agent依然是选择沿着悬崖边走的路线,Reward=-13
经过多次调节Reward后,我们发现,在Q_learning方法下, 掉下悬崖的Reward只要小于零,即使其改变,agent选择的路线(Reward=13)都不会有改变 。Reward=-13
我在训练的过程中,画出了三个图,分别是:
episode数与每次训练的总reward:
episode数与每次训练的step数:
episode数与|Q_new-Q_old|(当其趋于零时,说明Q表收敛):
测试时,我们发现,agent会选择相对安全的一条路走向终点(远离悬崖)Reward=-17;偶尔会得到Reward=-15的相对于危险的路径。
将掉下悬崖的reward从-100改为-10后,agent偏向只会选择靠近悬崖的路线到达终点 Reward=-15;Reward=-13。
经过多次改变调节,我们发现,在Sarsa方法中, 当我们把掉下悬崖的Reward调的越大,agent选择的路径会越来越靠近悬崖 。Reward=-17 ——> Reward=-13
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。