Zhiyuan Liu, Leheng Li, Yuning Wang, Haotian Lin, Zhizhe Liu, Lei He, Jianqiang Wang 通讯作者:王建强,清华大学车辆与运载学院院长 arXiv: 2409.15135
本文是2021年关于MO RL和MO Planning的一篇综述。
MOMDP
MOMDP是一个六元组。其中,是状态空间,是动作空间,是状态转移函数,是折扣因子,是初始状态的概率分布,是vector-valued reward function,是目标数。
MOMDP下,agent执行策略,其Value function定义为
在这种情况下,价值函数是矢量,不像单目标RL那样,最优的定义并不是显而易见的。定义效用函数(utility function / scalarisation function),将价值函数映射到一个标量:
Shuo Feng, Henry X. Liu*, et. al. 22 March 2023 Nature Vol 615
Motivation
- 基于RL的自动驾驶测试方法存在以下困难:
- 奖励非常稀疏,绝大部分经验都没什么用处
- 测试环境不是无偏的,只能产生碰撞场景,无法回答:
- 碰撞场景在现实中发生的可能性有多大
- 测试环境的测试里程能否代替真实世界的测试里程
- 真实世界对AV进行测试需要大量测试里程,在现实中几乎不可能满足 进一步讲,这是一种罕见奖励的强化学习问题,并且不能用传统的稀疏奖励解决方案(那样就有点类似先开枪再画靶)。它的特点是:==只有极少的状态转移才是有意义的,而大量无意义的状态转移,其实际的价值函数可能几乎等于0。==因为这些无用经验的存在,会导致策略梯度的方差非常之大,使得学习过程很容易被误导。密集强化学习就是在保持无偏性的前提下,尽量减小策略梯度的方差。
ASP遵循“失败即否定(negation as failure, NAF)”原则,即尝试推导某个原子失败时,就否定该原子。
Aggregate就是一些在集合上执行的函数,集合通常是依照某些条件构建出来的。
趁着腰伤赋闲在家,把前几天调试STM32的几个BUG给记录一下吧。
0x01 薛定谔的启动模式
在设计FOC驱动模块的时候,我把BLDC的HALL传感器引线和STM32的TIM4 CH1~3连在一起了。本来这个事情很正常,可是问题是我用的是STM32G474CEU6这款MCU,它的TIM4有一个通道和BOOT0是复用的。这个问题本来我没在意,可是当我开始调试的时候,发现有时候复位可以正常进main,有时候却进不去,而且在调试界面看不到代码。这个时候我发现PC的值不是在0x08000000附近,而是在一个奇怪的位置——Bootloader。
仔细一想这个问题很容易解释,在还没有启动的时候,BOOT0脚并没有被我配置成TIM4的输入通道,这个时候它还是BOOT0,所以如果此时转子的位置恰好把这个脚拉到高电平了的话,就无法正常启动了。
本文作为10系自动控制原理课程的Matlab快速入门指南。
最近在写人工智能的大作业,顺手搭一个anaconda的环境出来,顺便记录一下过程,方便没有docker基础的同学参考。
STEP 0x00 安装Docker
docker是一个开源的应用容器引擎,你可以简单地把它理解为虚拟机(其实和虚拟机还是有区别的)。不管你的电脑是windows,linux还是mac,只要使用相同的docker镜像运行一个容器,就可以在容器中运行你的程序,不必担心依赖和兼容性问题。
安装docker的步骤不是本文的重点,可以参考网络上其它教程。windows电脑可能需要开启hyper-v,并且有可能需要在bios中启用虚拟化技术,或者需要安装vbox等虚拟机软件。docker官网:https://www.docker.com/products/docker-desktop