基于Transformer的决策智能 第一篇 Decision Intelligence初探

自从特斯拉证明在自动驾驶场景端到端的深度学习模型能够替代人进行决策,一场巨大的技术变革将要到来。我想通过一些实验来建立自己对决策智能的初步认知。

说一下我对决策智能的理解:

智能体能感知到状态S(包括环境状态和自身状态),为了达到设定的目标,需要作出决策A。智能体在执行决策A后,有可能获得奖励R。其中决策通常又可以称为动作。

奖励R通常由人工设计,用于引导智能体更快地达到目标。奖励可以为负值,表示惩罚。

通常智能体需要经过多步决策A才能达到目标,在t时刻,记状态为 <math xmlns="http://www.w3.org/1998/Math/MathML"> S t S_{t} </math>St,智能体在执行决策 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t A_{t} </math>At后,有可能获得奖励 <math xmlns="http://www.w3.org/1998/Math/MathML"> R t R_{t} </math>Rt。

模型的输入是 <math xmlns="http://www.w3.org/1998/Math/MathML"> S t S_{t} </math>St,以及t时刻前的任意状态S/决策A/奖励R。 由于奖励R的设计比较复杂,在本文中我们先取消奖励R,同时为了降低计算量,我们只需要考虑部分t时刻前的状态S/决策A/奖励R。

仍以《基于Transformer的路径规划》一文中的场景为例,

黑色表示障碍物、红色表示智能体的当前位置、蓝色表示目标点。智能体每次只能执行以下4个动作之一:

  • 向上移动一格
  • 向下移动一格
  • 向左移动一格
  • 向右移动一格

智能体每执行一次动作A后,状态S会发生改变,直到智能体的位置与目标点重合。

这次不用GPT模型,改用BERT模型来预测动作A,其实就是多层Transformer Encoder构成的分类模型。模型的输入是状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> S t S_{t} </math>St以及 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t − 1 A_{t-1} </math>At−1,输出是决策 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t A_{t} </math>At,共4个类别:上、下、左、右。为什么要加入 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t − 1 A_{t-1} </math>At−1呢?因为我希望智能体能够尽量保持先前的运动方向,减少转弯。如果不存在 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t − 1 A_{t-1} </math>At−1,可以用0填充。是否需要输入 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t − 2 A_{t-2} </math>At−2、 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t − 3 A_{t-3} </math>At−3等更早的决策?这个还需要通过实验验证。

先定义词汇表:

sql 复制代码
"-": 用于将输入序列补到固定的长度
"0":FREE SPACE, 无障碍区域       
"1":OBSTACLE, 有障碍区域   
"+":CURRENT POSITION, 当前位置
"x":GOAL POSITION, 目标位置
"U": UP,向上移动一格
"D": DOWN,向下移动一格
"L": LEFT,向左移动一格
"R": RIGHT,向右移动一格

模型的输入可表示为:

0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 + 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 
0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 
0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 0 0 x 0 0 
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
D - - - - - - -

只需对《基于Transformer的路径规划 - 第二篇 合成数据》中的训练样本稍作修改即可用于本实验,原始的一条样本被拆成多条样本。

接下来就是训练模型了。如果有读者做过类似的实验,欢迎在评论区留言。


下一篇:基于Transformer的决策智能 第二篇 BERT IS BETTER?

相关推荐
云卓SKYDROID25 分钟前
除草机器人算法以及技术详解!
算法·机器人·科普·高科技·云卓科技·算法技术
袁牛逼12 小时前
电话语音机器人,是由哪些功能构成?
人工智能·自然语言处理·机器人·语音识别
TsingtaoAI13 小时前
2024.10|AI/大模型在机器人/自动驾驶/智能驾舱领域的最新应用和深度洞察
机器人·自动驾驶·ai大模型·具身智能·智能驾舱
不是AI15 小时前
【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》
人工智能·自然语言处理·机器人
鱼会上树cy16 小时前
【机器人学】2-2.六自由度机器人运动学逆解-奇异位形分析【附MATLAB代码】
机器人
北京搜维尔科技有限公司18 小时前
搜维尔科技:【煤矿虚拟仿真】煤矿企业、高校、科研单位-多语言支持、数字孪生、交互式学习体验
科技·机器人·vr
Matlab程序猿小助手18 小时前
【MATLAB源码-第208期】基于matlab的改进A*算法和传统A*算法对比仿真;改进点:1.无斜穿障碍物顶点2.删除中间多余节点,减少转折。
开发语言·嵌入式硬件·算法·matlab·机器人
高登先生20 小时前
京津冀自动驾驶技术行业盛会|2025北京自动驾驶技术展会
大数据·人工智能·科技·机器人·自动驾驶
不是AI2 天前
【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第1章、《系统、环境》
人工智能·自然语言处理·机器人
北京搜维尔科技有限公司2 天前
搜维尔科技:Manus VR数据手套-人形机器人的远程操作和机器学习
科技·机器人·vr