多人强化学习

Gradient

Counterfactual multi-agent policy gradients

这里有个后面流传很广的算法:COMA(counterfactual multu-agent)
文中有提到最简单的policy gradient的形式是Reinforce,公式如下:
θ J(θ) = Eτ~πθ [∑t=0Tθ log πθ(at | st) Gt ]

  • θ J(θ): 这是 objective function J(θ) 对 policy 参数 θ 的 gradient。 Objective function 通常就是 expected cumulative discounted reward,说白了就是agent期望获得的总回报。
  • Eτ~πθ: 这是对 trajectories τ 的 expectation,这些 trajectories 是根据 policy πθ sample 出来的。Trajectory 就是 agent 和 environment 交互过程中的一串 states, actions, and rewards。
  • t=0T: 这是对 trajectory里所有 time steps t 的 summation,从 initial time step 0 到 final time step T。
  • θ log πθ(at | st): 这是 policy πθ 在 state st 采取 action at 的 log probability 的 gradient。这个term capture了 policy parameters 是如何 influence action selection 的。
  • Gt: 这是 return,也就是从 time step t 开始的 cumulative discounted reward。 计算公式是 Gt = ∑k=0 γk rt+k+1, γ 是 discount factor (0 < γ ≤ 1),决定了 future rewards 的重要性。

它用 Monte Carlo sampling 来 estimate expected return,所以 gradient estimates 的 variance 会比较高

传统的 Actor-Critic:

  • 一个 shared critic 给所有 agents 提供 value function。
  • 所有 agents 的 actions 都会影响这个 shared critic。

Independent Actor-Critic (IAC):

  • 每个 agent 都有自己的 critic,只evaluate 自己的 actions。

  • Critic 不受其他 agents 的 actions 影响,更 focused,学习效率更高。

  • 避免了 “credit assignment” 问题, 每个 agent 的贡献更容易被 evaluate。
    优点:

  • 学习效率高:每个 critic 只关注自己的 agent,学习起来更 focused,更快。

  • Scalability 好:适用于 large-scale multi-agent systems,agents 多了也不怕。

  • Robustness 强:一个 agent 坏了,不会影响其他 agents 的 learning。
    缺点:

  • 可能会忽略 agents 之间的 cooperation:因为每个 agent 只顾自己,可能会导致 overall performance 不 optimal。

  • 有些情况下,shared critic 反而更有利于学习 complex interactions。

  • 总的来说,IAC 是一种很 practical 的 multi-agent reinforcement learning 方法,特别适合那些 agents 之间 interaction 比较少,或者 scalability 很重要的场景。

COMA:

它用一个 centralized critic 来评估所有 agents 的 actions。
然后,它用 “反事实基线” 来计算每个 agent 的 advantage function。这个 “反事实基线” 就是假设这个 agent 不存在,其他 agents 行动不变,最终得到的 reward。
通过比较 agent 的实际 reward 和 “反事实基线”,就能更准确地评估 agent 的贡献,从而更好地更新 policy。

  • Centralized Critic: COMA 使用一个 centralized critic 来估计 Q-function。这个 critic 可以观察到所有 agents 的状态和动作,从而更准确地估计 Q-function。

  • Counterfactual Baseline: COMA 使用一个 “反事实基线” 来计算 advantage function。这个基线是假设某个 agent 不存在,其他 agents 的 actions 不变的情况下,得到的 expected return。

  • Monte Carlo Estimation: COMA 使用 Monte Carlo 方法来估计 Q-function 和 “反事实基线”。

    • policy network可以根据当前状态输出一个概率分布,然后从这个分布中采样 action (To be dived…)
  • Advantage Function: COMA 计算每个 agent 的 advantage function,用于更新 policy。

Hmmm… CNN & Transformer 再看一眼

# 论文:An Impartial Take to the CNN vs Transformer Robustness Contest

CNN 在 OoD 检测方面与 Transformer 表现相当: 与一些人的预期相反,CNN 在检测 OoD 样本方面可以与 Transformer 一样有效。架构差异不是 OoD 性能的唯一决定因素

AUROC is preferred over AUPR: 在 OoD 检测的背景下,如果没有想凸显重点监测某个class的话,AUROC 提供了比 AUPR 更稳定和平衡的评估指标,因为 AUPR 对类别不平衡很敏感,本来你不要凸显的但这个指标会强迫让你注意,就不是我们要的。

Transformers are not immune to biases: 虽然 Transformer 拥有强大的自注意力机制,但它们仍然会受到影响 CNN 的相同偏差的影响,例如简单性偏差、背景偏差和纹理偏差。这表明仅仅拥有自注意力机制并不能保证对这些偏差的鲁棒性。

Accuracy doesn’t imply calibration: 实现高精度的模型不一定经过良好校准,Calibration measures how well a model’s confidence scores align with its actual accuracy.

Misclassification detection is important: 分析错误分类检测对于理解模型的可靠性至关重要,尤其是在模型对 OoD 数据表现出过度自信但显示低校准误差的情况下。这突出了多方面评估方法的必要性。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JuMP.jl】非线性规划

[JuMP] 03 非线性规划 非线性规划模型 非线性规划问题是线性规划问题的自然推广&#xff0c; 在实际的工程问题中&#xff0c;优化问题中的目标函数与约束不会总是线性函数&#xff0c;因此非线性规划的求解功能是必要的。 min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤…

力扣面试题 30 - 最小高度树

题目&#xff1a; 给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 示例&#xff1a; 给定有序数组: [-10,-3,0,5,9],一个可能的答案是&#xff1a;[0,-3,9,-10,null,5]&#xff0c;它可以表…

【从0带做】基于Springboot3+Vue3的场馆预约系统

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的场馆预约系统&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 项目演示视频和教程视频 https://ww…

mysql json整数数组去重 整数数组精确查找并删除相应数据

都是针对整数数组 。低版本可用。懒得去查找资料的可以参考下。 json整数数组查找具体数据修改或者删除&#xff1a; update saas_new_tms.eda_logistics_limit set service_attribute json_remove(service_attribute,json_unquote(json_search(replace(service_attribute,…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息&#xff1a;公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中&#xff0c;勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分&#xff1a;由所有连接在互联网上的主机组成&#xff0c;是用户直接使用的部分。 2、核心部分&#xff0c;由大量网络和路由器组成&#xff0c;为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…

【MySQL 进阶之路】索引的使用

5.索引的使用规则 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略&#xff0c;以提高数据库的查询性能和降低资源消耗。以下是一些关键的索引使用规则&#xff1a; 1. …

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别&#xff1a; disp函数与fprintf函数的区别 输出格式的灵活性 disp函数&#xff1a;输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组&#xff0c;会按照行列形式展示&#xff1b;对于字符串&#xff0c;直接原样输出并换行。例如…

【数据中心建设资料】数据中心安全建设解决方案,数据中心整理解决方案,数据中心如何做到安全保障,数据中台全方案(Word全原件)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏系统 1.3.8…

Go学习:变量

目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息&#xff0c;变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中&#xff0c;变量名的命名规则 与其他编程语言一样&#xff0c;都是由字母、数…

使用ensp搭建内外互通,使用路由跨不同vlan通信。

1.网络拓扑图 2.规则 &#xff08;1&#xff09;允许 &#xff08;自己&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以. &#xff08;2&#xff09; 允许&#xff08;电信&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以 &#xff08;时间问题不做…

slam学习笔记6---样例展示雅可比手推过程

背景&#xff1a;一直在使用模板、自动化求导&#xff0c;对于背后雅可比推导只剩一个基本概念&#xff0c;有必要好好梳理巩固一下。本人水平有限&#xff0c;若推导过程有误&#xff0c;欢迎评论区提出。 假设一个二维slam问题&#xff0c;使用欧式距离观测模型&#xff0c;…

基于Vue实现的移动端手机商城项目 电商购物网站 成品源码

&#x1f4c2;文章目录 一、&#x1f4d4;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站演示 &#x1f4f8;部分截图 &#x1f3ac;视频演示 五、⚙️网站代码 &#x1f9f1;项目结构 &#x1f492;vue代码预览 六、&#x1f527;完整…

使用 postman 传递 binary 类型的图片到后端接口遇到的坑

使用 psotman 传 binary 类型图片报错&#xff1a; -2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required r…

SQL 优化经历:从 30248.271s 到 0.001s

今天分享一篇SQL优化的文&#xff0c;带你深入了解如何提升查询效率、降低系统负载。 无论你是数据库管理员还是开发者&#xff0c;都不能错过这份关于SQL性能优化的实用指南。让我们一起穿越数据库迷宫&#xff0c;发现隐藏在代码背后的优化黄金点&#xff01; 场景 用的数据…

开发者如何使用GCC提升开发效率Opencv操作

看此篇前请先阅读 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144216351?spm=1001…

JavaCV中openCV的拉普拉斯滤波器处理

1、javacv 1.5.10版本 package com.example.demo.ffpemg;import lombok.SneakyThrows; import org.bytedeco.javacv.CanvasFrame; import org.bytedeco.opencv.opencv_core.Mat;import javax.swing.*; import java.awt.image.BufferedImage;import static org.bytedeco.openc…

PyQt 中的无限循环后台任务

在 PyQt 中实现一个后台无限循环任务&#xff0c;需要确保不会阻塞主线程&#xff0c;否则会导致 GUI 无响应。常用的方法是利用 线程&#xff08;QThread&#xff09; 或 任务&#xff08;QRunnable 和 QThreadPool&#xff09; 来运行后台任务。以下是一些实现方式和关键点&a…

项目集成篇:springboot集成redistemple实现自定义缓存,并且可以设置过期时间

在Spring Boot中集成Redis并使用RedisTemplate实现自定义缓存功能&#xff0c;同时能够设置缓存项的过期时间&#xff0c;可以通过以下步骤来完成。我们将创建一个服务层方法&#xff0c;该方法将使用RedisTemplate直接与Redis交互&#xff0c;并为每个缓存项设置特定的过期时间…

node.js实现分页,jwt鉴权机制,token,cookie和session的区别

文章目录 1. 分⻚功能2. jwt鉴权机制1.jwt是什么2.jwt的应用3.优缺点 3. cookie&#xff0c;token&#xff0c;session的对比 1. 分⻚功能 为什么要分页 如果数据量很⼤&#xff0c;⽐如⼏万条数据&#xff0c;放在⼀个⻚⾯显⽰的话显然不友好&#xff0c;这时候就需要采⽤分⻚…