使用深度Q网络控制登月舱降落
强化学习简介
什么是强化学习
- 机器学习的一个分支
- 机器学习按学习方式划分为:
- 监督学习
- 无监督学习
- 强化学习🌟
- 机器学习按学习方式划分为:
- 研究如何基于对环境的观测作出决策,以最大化长期回报
强化学习发展历史
- 最早在20世纪60年代开始出现在工程文献中,其中明斯基(Marvin Minsky)于1961年发表的论文《Steps Toward Artificial Intelligence》中提出的强化学习一词影响最大。
- 来源:心理学中的动物学习和最优控制的优化理论。
- 1989年,Chris Watkins提出了Q Learning的模型,它是时间差分与最优控制的结合。也将之前不同强化学习发展的路径统一到了一起。
- 无法解决状态过多的问题
- 1992年,Watkins和Dayan分析了Q学习的收敛。
- 1992年,林龙吉提出了经验回放。
- 2006年,Coulom.R提出了蒙特卡洛树搜索算法。
- 每一次模拟分为四个步骤:选择、扩展、求值、回溯
- 2013年,DeepMind的Mnih等人提出了基于深度学习的强化学习模型,即Deep Q Network,并在2015年发表了改进版本。
- 2015年, 基于MCTS(蒙特卡洛树搜索)的AlphaGo战胜欧洲围棋冠军,2016年战胜李世石。
- 一种基于模型的强化学习方法
强化学习基本概念
智能体与环境
- 智能体(Agent)
- 强化学习构建的计算机程序被称为智能体,智能体输出决策。
- 环境
- 要解决的决策问题
- 智能体(Agent)
马尔可夫决策过程(Markov decision process,MDP)
- 在一个时序过程中,如果t+1时刻的状态仅取决于t时刻的状态,与之前的任何状态都无关时,则认为t时刻的状态具有马尔科夫性(Markov Property)
- 马尔科夫决策过程由是由<S, A, P, R, γ>构成的一个元组,其中:S是一个有限的状态集合;A是一个有限的动作集合;P是状态转移概率;R是基于状态和动作 的奖励函数;γ是在[0, 1]内的衰减因子。
状态、动作、奖励
- 状态(State):每个时刻,环境有一个状态,可以理解为对当前时刻环境的概括
- 状态空间(State Space):所有可能存在的状态的集合
- 动作(Action):智能体基于当前状态所做出的决策
- 动作空间(Action Space):所有可能动作的集合
- 奖励(Reward):智能体执行一个动作之后,环境返回给智能体的一个数值
- 回报(Return):从当前时刻开始到本回合结束所有奖励的总和
- 强化学习的目标正是最大化回报。
状态转移
- 智能体从当前
t
时刻的状态s
转移到下一个时刻的状态s'
的过程
- 智能体从当前
策略
- 如何根据观测到的状态做出决策
动作价值函数
- 价值函数用来估计回报的期望,反映出现状的好坏。
- 动作价值函数是通过观测的状态s和选中的动作a来得到一个条件期望
- 最优动作价值函数是假设此刻之后每次都只选择最优的策略生成动作,得到最后的期望值
- 是一个上界
任务与模型介绍
Q-Learning
-
DQN
Deep Q Networks, 深度Q网络
核心思想是通过深度神经网络学习最优动作价值函数
- 使用神经网络代替了Q-Learning算法的Q表格
TD算法(Temporal Difference,时间差分)
- 有多种TD算法,DQN使用的是Q学习算法
经验回放(Experience Replay)
解决样本间关联度高的问题
将时序问题转化成可能使用监督学习来训练的问题
GYM
- OpenAI开源的一个用于强化学习的虚拟环境库
- 提供了简洁的API用于学习算法和环境的交互
- 2021年停止更新,转移给了Gymnasium项目
LunarLander
- 动作空间
- 无动作
- 点燃左引擎
- 点燃主引擎
- 点燃右引擎
- 观测空间(状态空间)
- 位置坐标
- 速度
- 角速度
- 奖励
- 侧发动机点火每帧-0.03
- 主发动机点火每帧-0.3
- 每个起落架落地+10
- 坠毁-100
- 落地+100
- 200以上视为成功解决
- 结束条件
- 坠毁
- 跑出视角
- 着陆
代码展示
相关资料和文献
- 《深度强化学习图解》米格尔 莫拉莱斯著
- 《深度强化学习》王树森、黎彧君、张志化著
- 《EASY RL 强化学习教程》
- OpenAI Spinning Up in RL 深度强化学习资料
- Learning from delayd rewards 提出Q学习算法
- Play atari with deep reinforment learning 提出DQN
- Reinforcement learning for robots using neural networks 提出经验回放
- Efficient selectivity and backup operators in monte-carol tree search 提出蒙特卡洛树搜索算法
使用深度Q网络控制登月舱降落
https://wellt.cn/2023/07/05/deep-q-network-for-lunar-lander/