使用 MATLAB 进行强化学习
目录
1. 了解基础知识并设置环境
2. 了解奖励和策略结构
3. 了解训练和部署
第 1 部分: 了解基础知识并设置环境
什么是强化学习?
强化学习旨在学习如何做,即如何根据情况采取动作,
从而实现数值奖励信号最大化。学习者不会接到动作
指令,而是必须自行尝试去发现回报最高的动作方案。
—Sutton and Barto,强化学习:简介
强化学习 (RL) 已成功地训练计算机程序在游戏中击败全球最厉
害的人类玩家。
在状态和动作空间较大、环境信息不完善并且短期动作的长期回
报不确定的游戏中,这些程序可以找出最佳动作。
在为真实系统设计控制器的过程中,工程师面临同样的挑战。
另外,强化学习能否帮助解决复杂的控制问题,例如训练机器人
走路或驾驶自动驾驶汽车?
本电子书通过在传统控制问题的语境下解读什么是强化学习,
帮助您了解如何设置和解决 RL 问题。
使用 MATLAB 进行强化学习 | 4
控制目标
从广义上而言,控制系统的目标是确定生成期望的系统行为的正确系统
输入(动作)。
在反馈控制系统中,控制器使用状态观测提高性能并修正随机干扰。工程
师运用反馈信号,以及描述被控对象和环境的模型,设计控制器,从而满
足系统需求。
以上概念表述十分简单;然而,倘若系统难以建模、高度非线性或者状态
和动作空间较大,则很难实现控制目标。
使用 MATLAB 进行强化学习 | 5
控制问题
为了理解此类难题对控制设计问题造成的进一步后果,不妨设想一下开
发步行机器人控制系统的场景。
要控制机器人(即系统),可能需要指挥数十台电机操控四肢的各个关节。
每一项命令是一个可执行的动作。系统状态观测量有多种来源,包括摄像
机视觉传感器、加速度计、陀螺仪及各电机的编码器。
控制器必须满足多项要求:
• 确定适当的电机扭矩组合,确保机器人正常步行并保持躯体平衡。
• 在需要避开多种随机障碍物的环境下操作。
• 抗干扰,如阵风。
控制系统设计不仅要满足上述要求,还需满足其他附加条件,比如在陡峭
的山坡或冰块上行走时保持平衡。
使用 MATLAB 进行强化学习 | 6
控制方案
通常,解决此类问题的最佳方法是将问题分解成为若干部分,逐个击破。
例如,您可以构建一个提取摄像机图像特征的流程。比方说,障碍物的位
置和类型,或者机器人在全局参照系中所处的位置。综合运用这些状态与
其他传感器传回的处理后的观测值,完成全状态估测。
估算的状态值和参考值将馈送至控制器,其中很可能包含多个嵌套控制
回路。外部环路负责管理高级机器人行为(如保持平衡),内部环路用于管
理低级行为和各个作动器。
所有问题都解决了吗?那可未必。
各环路之间相互交互,使得设计和调优变得异常困难。同时,确定最佳的
环路构造和问题分解也并不轻松。
使用 MATLAB 进行强化学习 | 7
强化学习的魅力
不是尝试单独设计每一个组件,而是设想一下将其全部塞进一个函数里,
由该函数负责接收所有观察结果并直接输出低级动作。
毋庸置疑,这可以简化系统方块图,但这个函数会是怎样的结构?你该如
何设计这个函数呢?
创建一个单一的大函数比构建由分段子组件构成的控制系统,看起来难
度要大;不过,强化学习可以助您达成目标。
使用 MATLAB 进行强化学习 | 8