【强化学习】SARSA强化学习(Matlab实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

 一、引言

在机器学习领域,强化学习是让智能体在与环境的交互中,通过不断尝试不同行为,学习如何做出最优决策以获取最大奖励的重要方法。SARSA(State - Action - Reward - State - Action)算法作为强化学习中的经典算法,在机器人控制、游戏、自动化决策等众多领域发挥着关键作用。它能使智能体在复杂的环境中逐步摸索出有效的行动策略,不断适应环境变化,实现目标。

二、基本概念

SARSA 算法基于马尔可夫决策过程(MDP)。在这个过程中,智能体所处的环境有一系列状态,智能体可以采取不同的动作。当智能体在某个状态下采取一个动作后,环境会发生变化,进入一个新的状态,同时给予智能体一定的奖励。奖励可以是正向的,鼓励智能体多采取类似动作;也可以是负向的,提示智能体避免该动作。智能体的目标就是通过不断地与环境交互,学习到一种策略,使得在长期内获得的累积奖励最大。

三、算法原理

SARSA 算法的核心在于“在线学习”,即智能体在每一次与环境的交互中都在不断更新自己的策略。智能体在行动过程中,会记住自己当前所处的状态、采取的动作、获得的奖励以及进入的新状态,还会考虑在新状态下要采取的下一个动作。然后,它会根据这些信息来调整自己对每个状态下不同动作的价值判断。 智能体维护一个“动作价值表”,用来记录在不同状态下采取各个动作的价值。一开始,这个表中的值是随机设定的。随着智能体不断地与环境交互,它会根据每次交互得到的奖励和后续状态的情况,更新这个表中的值。如果某个动作带来了很好的奖励,那么智能体就会认为在相应状态下采取这个动作的价值较高,以后更有可能再次选择这个动作;反之,如果某个动作带来了较差的结果,智能体就会降低该动作在对应状态下的价值。

四、算法流程

1. 初始化:智能体开始时,会将动作价值表中的值随机初始化,同时设定一些学习参数,如学习速度和对未来奖励的重视程度等。然后,智能体被放置在环境的初始状态。 2. 选择动作:智能体根据当前的动作价值表和一定的策略(如以一定概率随机选择动作,以探索新的可能性;或者选择当前认为价值最高的动作),从当前状态下的可选动作中挑选一个动作执行。 3. 执行动作并获取反馈:智能体执行选定的动作后,环境会发生变化,进入一个新的状态,并给予智能体相应的奖励。智能体接着根据新状态和动作价值表,再次选择下一个动作。 4. 更新动作价值表:智能体根据当前状态、采取的动作、获得的奖励、新状态以及新状态下选择的动作,对动作价值表进行更新,使它更准确地反映每个动作的价值。 5. 循环迭代:智能体将新状态作为当前状态,重复上述选择动作、执行动作、获取反馈和更新动作价值表的过程,直到满足停止条件,如达到预定的学习次数或成功完成任务。

五、优势

1. 实时适应性强:由于是在线学习,SARSA 算法能够在环境不断变化的情况下,实时根据新的情况调整策略。例如,在机器人探索未知环境时,遇到障碍物或者环境布局改变,它能迅速学习新的路径规划策略。 2. 无需环境模型:与一些需要精确了解环境模型的算法不同,SARSA 算法不需要事先知道环境的详细信息,如状态转移的概率等。它可以直接通过与环境的交互来学习,这使得它在很多复杂且难以建模的环境中都能应用,如在自然生态环境中的监测任务。 3. 探索与利用平衡:通过合理的动作选择策略,SARSA 算法能够在探索新的动作和利用已有的经验之间找到平衡。它既会尝试一些新的动作,以发现可能带来更高奖励的策略,又会利用已经学习到的较好的动作,保证在一定程度上的稳定性。

六、局限性

1. 状态空间扩展性差:当环境的状态空间非常大时,动作价值表会变得极其庞大,需要大量的存储空间和计算资源。例如,在复杂的游戏场景中,可能存在数以百万计的状态,这会使算法的效率大大降低。 2.收敛速度慢:在复杂环境中,SARSA 算法可能需要进行大量的尝试和学习才能收敛到一个较好的策略。这意味着它需要花费较长的时间来学习,对于一些需要快速做出决策的场景,可能不太适用。

七、改进与应用拓展

为了克服这些局限性,研究人员提出了许多改进方法。例如,可以使用神经网络来代替动作价值表,通过神经网络的强大学习能力来处理大规模的状态空间,这就是深度强化学习的思路。还可以采用一些加速学习的技巧,如调整学习参数、引入经验回放等。 SARSA 算法及其改进版本在很多领域都有广泛的应用。在游戏领域,它可以让智能体学会玩各种复杂的游戏,如围棋、扑克等。在工业自动化中,它可以用于机器人的路径规划和任务调度。在金融领域,它可以帮助投资者制定最优的投资策。

八、结论

ARSA 强化学习算法为智能体在复杂环境中学习最优策略提供了一种有效的方法。虽然它存在一些局限性,但通过不断的改进和优化,它在各个领域都有着广阔的应用前景。随着技术的不断发展,SARSA 算法有望在更多的实际场景中发挥更大的作用,推动人工智能技术的进一步发展。

📚2 运行结果

主函数部分代码:

clear all;clc;

% n => Size of the maze
n=8;

maze=-50*ones(n,n);

% Randomly Generating Path/Links
for i=1:(n-3)*length(maze)
    maze(randi([1,n]),randi([1,n]))=1;
end

% Starting Node
maze(1,1)=1;

% Goal
maze(n,n)=10;

%Plot of the MAZE
figure
matrixPlot(maze)

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]于凯泽.基于强化学习的电动网约车充电决策和订单指派联合优化[D].电子科技大学,2024.DOI:10.27005/d.cnki.gdzku.2024.005849.

[2]李贇.基于Sarsa强化学习算法的类集成测试序列生成方法研究[D].中国矿业大学,2024.

🌈4 Matlab代码实现

图片

您可以使用引用提供的示例代码来在Matlab实现强化学习。该代码利用Q学习算法完成了自主路径寻优的简单示例,并进行了可视化。您可以将代码保存为.m文件,然后在Matlab上运行。这个示例代码是供大家交流学习使用的,您可以根据需要进行修改和改进。请注意,该示例代码的Q学习部分参考了其他链接中的内容。 实现的内容很简单,存为.m文件可以直接在Matlab上运行,就是利用Q学习(Q learning)完成自主路径寻优简单示例,并进行可视化,Q学习部分参考了如上链接中的内容,供大家交流学习使用,请多提宝贵意见。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化](https://blog.youkuaiyun.com/rocachilles/article/details/87918654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于多动作深度强化学习的柔性车间调度研究(Matlab代码实现)](https://blog.youkuaiyun.com/weixin_61181717/article/details/128994943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值