强化学习(一)Q-learning
Q-learning 学习笔记
Q-learning 是一种无模型的强化学习算法,用于学习给定状态下执行某个动作所得到的预期效用。它可以在复杂的环境中寻找最优策略,即在任何给定的状态下选择能获得最高长期回报的动作。下面是一份 Q-learning 的学习笔记,包括基本概念、算法流程和实现步骤。
基本概念
- Agent(智能体):在环境中执行动作的实体。
- Environment(环境):智能体所处并与之交互的外部世界。
- State(状态):环境在任何特定时间点的情况或属性,通常表示为(S)。
- Action(动作):智能体在某状态下可以采取的行动,表示为(A)。
- Reward(奖励):执行一个动作后环境提供给智能体的即时反馈,表示为(R)。
- Policy(策略):从状态到动作的映射,即智能体在某状态下应采取什么动作。
- Q-value(Q值):表示在某状态下采取某动作所期望得到的回报。
算法流程
Q-learning 的目标是学习一个策略,使得对于给定的状态(s)和动作(a),可以获得最大的期望回报。它通过不断更新一个称为 Q-table 的表格来实现,表格中的每个条目(Q(s, a))表示在状态(s)下采取动作(a)的预期效用。
- 初始化:随机初始化 Q-table。
- 探索或利用:使用 ε-greedy 策略决定是探索新动作还是利用已知的最佳动作。
- 执行动作:智能体在当前状态下执行动作,并观察奖励和新的状态。
- 更新 Q-table:使用以下更新公式:
该公式中
其中:
是当前状态-动作对的 Q 值。 是学习率。 是执行动作(a)后获得的即时奖励。 是折扣因子,表示未来奖励的重要程度。 是新状态下所有可能动作的最大 Q 值。
- 重复步骤 2-4,直到策略收敛。
实现步骤
环境设置
首先,需要设置或选择一个环境,常用的环境包括但不限于 OpenAI Gym 提供的环境。
Q-table 初始化
Q-table 可以使用一个二维数组表示,其行数对应状态的数量,列数对应动作的数量。初始时,Q-table 中的所有值可以设为0或随机值。
选择动作
使用 ε-greedy 策略选择动作,即有 ε 的概率随机选择一个动作(探索),有 (1- ε) 的概率选择当前已知的最佳动作(利用)。
更新 Q-table
在执行选定的动作后,根据上述 Q-learning 更新公式更新 Q-table。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下