| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> attention与其在RL中的应用 -> 正文阅读 |
|
[人工智能]attention与其在RL中的应用 |
文章目录
前言看到新的有趣文章会更新,也欢迎推荐。 attention介绍attention源于RNN,也就是NLP领域,但是在各个领域都有很大的应用潜力,比如使用self attention的Transformer在各领域开花、甚至成为了通用模型的一部分。 为了区分不同输入对当前输出的重要程度,引入attention机制增强区分度。首先以soft attention为例: 所谓hard attention就是采样一部分,为了实现梯度的反向传播,需要采用蒙特卡洛采样的方法来估计模块的梯度,应该也可以用gumble softmax。global softmax是使用所有的
h
j
h_j
hj?,local softmax则是预测一个source端对齐位置(aligned position)
p
i
p_i
pi?,然后基于此选择一个窗口,用于计算文本向量
c
i
c_i
ci?。 Self Attention会更容易捕获句子中长距离的相互依赖的特征,因为如果是RNN或者LSTM,需要依次序序列计算,对于远距离的相互依赖的特征,要经过若干时间步步骤的信息累积才能将两者联系起来,而距离越远,有效捕获的可能性越小。但是Self Attention在计算过程中会直接将句子中任意两个单词的联系通过一个计算步骤直接联系起来,所以远距离依赖特征之间的距离被极大缩短,有利于有效地利用这些特征。除此外,Self Attention对于增加计算的并行性也有直接帮助作用。不过self attention失去了序列的顺序信息。
建模观察[2015.12.5] Deep Attention Recurrent Q-Network论文链接:https://arxiv.org/abs/1512.01693 soft attention在部分场景效果好。hard attention从L个向量中只采样一个,效果相对较差,这里忽略。 [ICML2016] Control of Memory, Active Perception, and Action in Minecraft论文链接:https://arxiv.org/abs/1605.09128 Q网络输入的是 ( h t , o t ) (h_t,o_t) (ht?,ot?),跟DRQN和DARQN一致。 FRQMN效果很好,泛化性很强。 [ICLR 2019] Relational Deep Reinforcement Learning论文链接:https://arxiv.org/abs/1806.01830 能学习可解释的策略,在样本效率、泛化能力和整体表现都有提高。 [NIPS2018] Relational recurrent neural networks论文链接:https://arxiv.org/abs/1806.01822 相当于对LSTM进行了魔改,将cell变成的memory,其余基本一致,得到推理能力。 下面是 gating 部分,input过一层MLP变成 memory_size,记做
x
t
x_t
xt?,整体流程与LSTM基本一致,只有cell状态变成了memory: 在多个场景下都提升了效果,作者认为是明确建模记忆交互的结果。 [GECCO2020] Neuroevolution of Self-Interpretable Agents论文链接:https://arxiv.org/abs/2003.08165 人类选择性的注意力会忽视一些东西,作者利用这个消除环境中无用的干扰。 效果好,移除特征可以缩小模型,环境微小改动时泛化性很好,但是变化大的时候不行,可以适当增大k缓解。 [AAAI2017] Multi-focus Attention Network for Efficient Deep Reinforcement Learning论文链接:https://arxiv.org/abs/1712.04603 作者认为不能直接输入low-level的感知,而是应该利用entity间的联系。 然后是特征提取,假设 c i c_i ci?是第i个局部状态的特征,作者通过卷积和MLP得到,并拼接了局部特征的index。根据其计算k、v, k i = W k c i k_i=W_k c_i ki?=Wk?ci?, v i = f v ( W v c i ) v_i=f_v(W_v c_i) vi?=fv?(Wv?ci?), f v f_v fv?是leaky ReLU。 接着是attention,有N个,类似多头。selector
a
n
a_n
an?是可学习的向量,用作q,第n个attention产生的权重向量中第i个元素的计算方式为: 最后是Q值计算,每个attention的权重与v加权求和都能得到对应的 h n = ∑ i h i n v i h_n=\sum_i h_i^n v_i hn?=∑i?hin?vi?,拼接后 [ h 1 , ? ? , h N ] [h_1,\cdots,h_N] [h1?,?,hN?]计算Q值。 作者还将其扩展到协作局部可观察多智能体通信场景,与单智能体区别在于:feature extraction时,
a
i
=
W
a
c
i
a_i=W_a c_i
ai?=Wa?ci?,确保每个智能体的不一样;parallel attentions变成了attentive communication: 在单智能体场景下加速训练、提升效果。多智能体场景加速了训练,但因为baseline也达到最优了,难以评价效果提升。主要特点在于q是一个可学习变量。 建模关系[ICML2019] Actor-Attention-Critic for Multi-Agent Reinforcement Learning论文链接:https://arxiv.org/abs/1810.02912 智能体自己的状态和动作经过一层MLP得到 e i e_i ei?,然后自己的作为q,其他的作为k、v进行query。其中v经过共享矩阵V的线性变换后还经过leaky ReLU,然后权值计算类似self attention,同样可以进行多头,最后直接拼接。智能体间共享权重矩阵鼓励共同的embedding空间,作者认为critic参数也可以共享,因为多智能体值函数近似本质上是多任务回归,奖赏对于个体智能体不同但有共同的特征,学习会高效。 critic最小化有熵的损失促进探索: actor做梯度上升: 效果很好,尤其是在依赖其他智能体的场景下。 [AAAI2020] Multi-Agent Game Abstraction via Graph Attention Neural Network论文链接:https://arxiv.org/abs/1911.10715
然后是soft attention: 效果都挺好的。 [AAMAS2020] Learning Transferable Cooperative Behavior in Multi-Agent Teams论文链接:https://arxiv.org/abs/1906.01202 文章解构多智能体环境,从黑盒建模为agent-entity图,即将智能体和实体看做点,边代表彼此之间有通信,对智能体数目和排列变化都不变。在一个episode中,点保持静止,但不同episode可以随机变化。作者考虑距离的受限通信和不受限通信。关系跟观察都建模了,由于建模观察部分与DRRL类似,因此放在建模关系里。 每个智能体只能观察到自己的局部状态
X
i
X^i
Xi,包括位置和速度,然后得到环境编码
U
i
=
f
a
(
X
i
)
U^i=f_a(X^i)
Ui=fa?(Xi)。对于环境的实体
l
l
l,首先得到embedding
e
i
l
=
f
e
(
X
i
l
)
e_i^l=f_e(X_i^l)
eil?=fe?(Xil?),其中
X
i
l
X_i^l
Xil?是相对状态。然后通过self attention更新
e
i
l
e_i^l
eil?,作者称这个过程为entity message passing,最后整合成固定大小的环境embedding
E
i
E^i
Ei。然后将
U
i
U^i
Ui和
E
i
E^i
Ei拼接变成
h
i
h^i
hi,代表智能体对自己状态和环境的理解。 效果很好,并且EMP要比单纯把实体向量拼接效果好,特别是智能体数目多的场景,增加观察空间的大小导致需要更多的样本。Zero shot Generalization中,受限通信会更好。 [ICLR2020] Graph Convolutional Reinforcement Learning论文链接:https://arxiv.org/abs/1810.09202 这个DGN跟上面那个类似,从arxiv的提交时间看这篇提交更早,但上面那个发表更早。DGN在相关工作里说上面那个要显式地label环境里的实体,现实应用中不可行。我觉得有点太死板了吧,明明智能体通信的做法几乎是一样的,大概这就是学术的严谨性吧。跟MAAC也相似,不过MAAC是soft attention,并且只有一轮,论文里也没提。 实验使用DQN,正则项有一点作用,多层卷积很有用。
[2020.6.9] Qatten: A General Framework for Cooperative Multiagent Reinforcement Learning论文链接:https://arxiv.org/abs/2002.03939 严格来说可能不算attention,设计上没有q、k、v,只是借用这个结构。作者先通过推导得到
Q
t
o
t
Q_{tot}
Qtot?与
Q
i
Q^i
Qi之间的关系: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:22:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |