lovesvidon的个人博客分享 http://blog.sciencenet.cn/u/lovesvidon

博文

【RL系列】SARSA算法的基本结构

已有 5339 次阅读 2018-8-3 23:15 |系统分类:科研笔记

SARSA算法严格上来说,是TD(0)关于状态动作函数估计的on-policy形式,所以其基本架构与TD的$v_{\pi}$估计算法(on-policy)并无太大区别,所以这里就不再单独阐述之。

强化学习中的统计方法(包括Monte Carlo,TD)在实现episode task时,无不例外存在着两层最基本的循环结构。如果我们将每一个episode task看作是一局游戏,那么这个游戏有开始也有结束,统计方法是就是一局接着一局不停的在玩,然后从中总结出最优策略。Monte Carlo与TD的区别在于,Monte Carlo是玩完一局,总结一次,而TD算法是边玩边总结。所以这两层基本结构的外层是以游戏次数为循环,内层则是以游戏过程为循环。

SARSA作为TD算法下的on-policy control算法,只需边进行游戏边更新动作值函数和Policy即可,所以SARSA算法的内层可以由TD算法细化为如下结构:

 

 

Windy Grid World

在Markov方法里,曾介绍过Grid World问题,以及使用DP方法求解的过程,具体可以参考:Dynamic programming in Python ,然而如果面对更为复杂的Windy Grid World环境,则Markov方法就很难适用了。在Windy Grid World里,Agent的每一步移动都会受到风的影响,比如正常移动情况下,坐标(1, 1)向右动作会移动到坐标(1, 2),但如若受到由下向上的风影响,则可能移动到坐标(2, 3)。在Windy Grid World中,风速场虽然可以是固定不变的,但却是未知的,对于存在影响状态转换的未知因素的模型是很难构建的,所以这里我们使用统计方法中的SARSA算法在求解最优策略。

先给出环境设定(四周都是围墙,也就是说不可能被风吹出环境之外,实际程序设计中可以使用“异常检测”与设定可能跳出地图之外的格子风速场为0来实现围墙):

给出解决该问题的SRASA算法的代码结构(Matlab)

NumOfGames = 500
while(index < NumOfGames)
    [Q, Policy] = PlayGame(Q, Policy);
end                            

function [Q, Policy] = PlayGame(Q, Policy)
while(1)
    % Begin Game
    while(1)
        Action = ChooseAction(Policy(State));
        NextState = State + Action + windy(State);
        try
            Grid(NextState) % Check for exception
        catch
            break;
        end     
        NextAction = ChooseAction(Policy(NextState));
        Q(State, Action) = Q(State, Action) + alpha*(R + gamma*Q(NextState, NextAction)...
            - Q(State, Action));
        Policy = UpdatePolicy(Policy);
        State = NextState;
        if(State == Target)
            return;
        end    
    end
end

 

给出Windy Grid World的最优Policy(箭头指向为处于每个格子中的最优选择,格子(4, 1)为Start,(4, 8)为Goal,红线表示最优路线15步);




https://blog.sciencenet.cn/blog-3189881-1127452.html

上一篇:【RL系列】强化学习之On-Policy与Off-Policy
下一篇:【RL系列】Q-Learning与SARSA算法的比较
收藏 IP: 36.57.157.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-23 16:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部