diff --git "a/2023/11/27/go-\345\237\272\347\241\200/index.html" "b/2023/11/27/go-\345\237\272\347\241\200/index.html" index eb1e3a0..d86b248 100644 --- "a/2023/11/27/go-\345\237\272\347\241\200/index.html" +++ "b/2023/11/27/go-\345\237\272\347\241\200/index.html" @@ -26,7 +26,7 @@ - + @@ -211,7 +211,7 @@ - 246 words + 330 words @@ -283,9 +283,13 @@

安装步骤:

1
go env

go env

-

-

go语言没有异常,全部都用ERROR来表示

+

go语言没有异常,全部都用ERROR来表示

+

Go基本语法

+

如何编译并运行一个Go文件

+

对于已经写好的go文件,这里以hello.go作为例子,直接使用以下语句进行编译并运行

1
go run hello.go
+

或者将编译和运行两个过程分开,先编译后运行:

1
2
go build hello.go
./ hello
diff --git a/categories/index.html b/categories/index.html index ce7ea2c..6756d56 100644 --- a/categories/index.html +++ b/categories/index.html @@ -275,22 +275,22 @@
- + 2 -
+
@@ -299,19 +299,19 @@ - - 【多智能体强化学习】基于自动分组的价值函数分解 + 【深度学习】PyTorch使用手册 - - 【多智能体强化学习】Pymarl环境配置 + 【自动驾驶】RSS Model for Autonomous Driving @@ -326,22 +326,22 @@
- + 2 -
+
@@ -350,19 +350,19 @@ - - 【深度学习】PyTorch使用手册 + 【多智能体强化学习】基于自动分组的价值函数分解 - - 【自动驾驶】RSS Model for Autonomous Driving + 【多智能体强化学习】Pymarl环境配置 diff --git a/local-search.xml b/local-search.xml index 61c06f2..feb2ac9 100644 --- a/local-search.xml +++ b/local-search.xml @@ -8,7 +8,7 @@ /2023/11/27/go-%E5%9F%BA%E7%A1%80/ -

学习网站:8小时转职Golang工程师

Go的环境安装

下载官网:

go的官网下载网站,选择合适的系统版本进行安装https://go.dev/dl/

安装步骤:

  1. 下载安装包并按照安装包的指引下载相关的内容

  2. 对于Mac系统会直接配置好环境变量,根据官网的安装手册进行安装 https://go.dev/doc/install

  3. 测试GO的版本

    1
    go version

    go version

  4. 测试GO的环境变量

    1
    go env

    go env

go语言没有异常,全部都用ERROR来表示

1
go run hello.go
1
2
go build hello.go
./ hello
]]>
+

学习网站:8小时转职Golang工程师

Go的环境安装

下载官网:

go的官网下载网站,选择合适的系统版本进行安装https://go.dev/dl/

安装步骤:

  1. 下载安装包并按照安装包的指引下载相关的内容

  2. 对于Mac系统会直接配置好环境变量,根据官网的安装手册进行安装 https://go.dev/doc/install

  3. 测试GO的版本

    1
    go version

    go version

  4. 测试GO的环境变量

    1
    go env

    go env

go语言没有异常,全部都用ERROR来表示

Go基本语法

如何编译并运行一个Go文件

对于已经写好的go文件,这里以hello.go作为例子,直接使用以下语句进行编译并运行

1
go run hello.go

或者将编译和运行两个过程分开,先编译后运行:

1
2
go build hello.go
./ hello
]]>
diff --git a/search.xml b/search.xml index 535ab7e..eec7e8d 100644 --- a/search.xml +++ b/search.xml @@ -1,394 +1,113 @@ - 【多智能体强化学习】基于自动分组的价值函数分解 - /2023/11/22/MARL_%E8%87%AA%E5%8A%A8%E5%88%86%E7%BB%84/ + 【自动驾驶】RSS Model for Autonomous Driving + /2023/10/21/RSS-Model/ -

Automatic Grouping for MARL

-

论文标题:

-

《Vast: Value function factorization with variable agent -sub-teams》

-

《Automatic Grouping for Efficient Cooperative Multi-Agent -Reinforcement Learning》

-

论文代码:https://github.com/zyfsjycc/GoMARL

-

价值函数分解

-

价值函数的提出是为了缓解在传统的中心化训练和去中心化执行中的Critic网络出现的难以训练的问题,同时传统的合作型多智能体强化学习的方法难以解决信用分配的问题,即如何确定某个智能体对于全局任务而言的贡献程度

-

主体研究框架:

-

\[ -Q_{tot} (τ,a)≈Ψ([Q_i (τ_i,a_i)]_{i=1}^N) -\]

-

目的就是学习到这样一个分解算子 \(Ψ\),能够将局部的价值函数 \(Q_i\) 拟合成全局的价值函数 \(Q_{tot}\),而这样的拟合过程学习到的分解算子\(Ψ\)应当满足以下的约束条件: \[ -\underset{\boldsymbol{a}}{\arg \max } Q_{\text {tot -}}(\boldsymbol{\tau}, \boldsymbol{a})=\left(\begin{array}{c} -\operatorname{argmax}_{a_1} Q_1\left(\tau_1, a_1\right) \\ -\vdots \\ -\operatorname{argmax}_{a_N} Q_N\left(\tau_N, a_N\right) -\end{array}\right) -\] -这个公式的本质是希望分解之后的局部和全局的最优动作能够最优一致,才能保证这样的算子分解方法是有效果的。

-
- - -
-

可变子团队的价值函数分解

-

研究动机:

-
    -
  1. 大部分价值函数方法对少量智能体的任务效果好
  2. -
  3. VFF方法过于扁平,存在性能瓶颈,没有考虑群组之间的一个关系,比较朴素且直接
  4. -
  5. 忽略智能体之间关系导致智能体训练信息不足
  6. -
-

朴素的价值函数分解方法自动分组之后的价值函数分解方法

-

因此,为了能够缓解朴素的价值函数分解方法中的缺乏群组信息的缺陷,文中提出能够分组处理多智能体系统的工作VAST,能够动态处理群组划分的算子来给出基于分组的智能体价值函数方法。

-

主要贡献:

-
    -
  1. 基于 \(K ≤ N = |D|\) -的分解子团队值\(Q_{t,k}^G\),线性分解每个子团队成员$jG_{t,k}⊆D -$ 局部值\(Q_j\)
  2. -
  3. 提出了一种分解方式动态并随时间变化,同时保持VFF方法的去中心性执行的特点
  4. -
  5. 提供了元梯度方法来优化子团队分组策略
  6. -
-

实现方法:

-
子团队分组策略:
-

分组策略的本质是学习一个概率分布\(\mathcal{X}(k∣i,τ_(t,i),s_t -)\),概率分布的本质思想是能够通过每个智能体的状态以及历史数据信息给出智能体 -\(i\) 所在的组别 \(k\)

-
元梯度的更新方式:
-

\[ -𝑔=𝐴 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) ∇_𝜃 log⁡𝒳_{MetaGrad} (𝑘∣𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) -\]

+

RSS Model for +Autonomous Driving

+

论文:《On +a Formal Model of Safe and Scalable Self-driving Cars》

+

Contribution:

    -
  • 参考借鉴了强化学习的策略梯度更新的方式
  • -
  • 在多智能体强化学习中利用强化学习的方法学习一个组别的分组器
  • +
  • Safety (RSS model) Reasonable care, Responsibility, agile driving +policy
  • +
  • Semantic (Semantic language) :Defined Q function over the Semantic +space
  • +
  • PAC sensing model:Safety and Comfort of driving ;tied to the Q +function;
-

\[ -𝐴 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )=𝑄 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )−𝑉 ̂(𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) -\]

-

\[ -𝑉 ̂(𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )=∑_(𝑎_{𝑡,𝑖}∈𝒜_𝑖) 𝜋_𝑖 (𝑎_{𝑡,𝑖}∣𝜏_{𝑡,𝑖} ) 𝑄_𝑖 -(𝜏_{𝑡,𝑖},𝑎_{𝑡,𝑖} ) -\]

+

1. Safety Concept

+

Functional versus nominal safety 功能安全与名义安全

+

Functional Safety,FuSa 是指电子电路中操作的完整性

+

名义安全是在假设HW和SW系统运行无差错(即在功能上是安全的)的情况下,AV是否正在做出安全的逻辑决策。

+

Sense,Plan,Act 感知 计划 行动

+

2. +现有的自动驾驶汽车的决策方案

    -
  • 策略梯度更新的方式是基于优势函数的方法进行更新分组器
  • +
  • Miles driven :基于统计的论点,同时需要较大的统计量数据
  • +
  • disengagements(脱离):被定义为人类安全驾驶人因为做出不安全的决定而不得不干预AV的运行,从而导致事故的情况。
  • +
  • simulation:建立虚拟世界模拟器,模拟器和显示世界的差距,无法建模全部的策略
  • +
  • scenario based testing +:枚举现实世界的驾驶场景,过度拟合和泛化的问题
  • +
  • proprietary approaches
-
- - -
-

这里还采用了不同的分组器方法加入实验的对比

-
算法思路
+

3. +RSS(Responsibility-Sensitive-Safety) Model for Multi-agent +Safety

    -
  • 将D 分成\(K= ⌈ηN⌉≤ N = -|D|\)个子团队\(G_{t,k}\) -其中比例\(η ∈ [ -1⁄N,1]\),所有的团队集合 \(G_t=⟨G_{t,1},…,G_{t,K} ⟩\)

  • -
  • 分组:\(G_{t,k}⊆D,G_{t,k}∩G_{t,k′}=∅ -;D=U_{k=1}^K  G_{t,k}\)

  • -
  • 组内联合动作:\(a_{t,k}^G=a{t,j} -_j∈G_{t,k}\)

  • -
  • 选择\(Ψ_{VDN}\)算子分解(满足IGM):

    -

    \[ -Q_{t,k}^G (τ_{t,k}^G,a_{t,k}^G )=Ψ_{VDN} (⋅)=∑_{j∈G_{t,k}} Q_j -(τ_{t,j},a_{t,j}) -\]

  • -
  • 最终的全局联合价值函数近似:

  • -
-

\[ -Q_{tot} (τ_t,a_t )=Ψ(Q_{t,1}^G (τ_{t,1}^G,a_{t,1}^G ),…,Q_{t,K}^G -(τ_{t,K}^G,a_{t,K}^G )) -\] -可变子团队的伪代码

-
IGM条件保持
-

如果以群组为单位的价值函数分解的方式能够保证IGM条件: \[ -argmax_(𝑎_{𝑡,𝑘}^𝐺∈𝒜)⁡〖𝑄_{tot}(𝜏_𝑡,𝑎_𝑡)〗= -⟨argmax_(⟨𝐚_{𝐭,𝐤}^𝐆 ⟩_(𝐺_{𝑡,𝑘}∈𝒢_𝑡 ))⁡𝑄_{𝑡,𝑘}^𝐺 (𝜏_{𝑡,𝑘}^𝐺,𝑎_{𝑡,𝑘}^𝐺 -)⟩_(𝐺_{𝑡,𝑘}∈𝒢_𝑡) -\] 希望能够满足对于局部智能体到全局价值函数的IGM条件的保持 \[ -argmax_(𝑎_𝑡∈𝒜)⁡𝑄_{tot}(𝜏_𝑡,𝑎_𝑡 )= -⟨argmax_(𝑎_{𝑡,𝑖}∈𝒜_𝑖 )⁡𝑄_𝑖 (𝜏_{𝑡,𝑖},𝑎_{𝑡,𝑖})⟩_(𝑖∈𝒟) -\] 推导过程如下: \[ -\begin{aligned} -& Q_{t, k}^G\left(\tau_{t, k}^G, a_{t, k}^G\right)=\sum_{j \in G_{t, -k}} Q_j\left(\tau_{t, j}, a_{t, j}\right) ; \operatorname{argmax}_{a_t -\in G_{t, k}} Q_{t, k}^G\left(\tau_{t, k}^G, a_{t, -k}^G\right)=\left\langle\operatorname{argmax}_{a_{t, i} \in -\mathcal{A}_i} Q_i\left(\tau_{t, i}, a_{t, i}\right)\right\rangle_{i \in -G_{t, k}} \\ -& a_t \stackrel{\Psi}{=}\left\langle a_{t, k}^G\right\rangle_{G_{t, -k} \in \mathcal{G}_t} \stackrel{\Psi_{V D -N}}{=}\left\langle\left\langle\bar{a}_{t, i}\right\rangle_{i \in G_{t, -k}}\right\rangle_{G_{t, k} \in \mathcal{G}_t} -\stackrel{\mathcal{D}=G_{t, 1} \cup \cdots \cup G_{t, -K}}{=}\left\langle\bar{a}_{t, i}\right\rangle_{i \in \mathcal{D}} -\end{aligned} -\]

-

自适应分组的MARL

-

研究动机

+
  • 目标:

      -
    • 通过任务分配实现隐式分组的方法仅解决结构清晰的任务,并且需要领域知识或先验设置
    • -
    • VAST 研究子团队对价值分解的影响,但需要先验的组数,ROMA -的学习依赖于智能体观察的动态角色
    • +
    • 做不到绝对安全,需要有Reasonable的响应
    • +
    • 遵循RSS能做到乌托邦Utopia
    • +
    • 敏捷而非防御,不应当过于谨慎而影响其他驾驶
    • +
    • 法律解释的意义
    • +
  • +
  • 形式化的规则:

    +
      +
    1. Do not hit someone from behind.
    2. +
    3. Do not cut-in recklessly.
    4. +
    5. Right-of-way is given, not taken. +道路通行权是给予的而不是占用的
    6. +
    7. Be careful of areas with limited visibility +小心有限可视化的范围
    8. +
    9. If you can avoid an accident without causing another one, you must +do it.
    10. +
  • -

    GoMARL算法的优势

    +
    3.1 Single Land Road +单向道路的情况
      -
    • 算法不依赖先验领域知识
    • -
    • 动态调整:在分组学习过程中根据智能体的表现逐步调整分组划分。利用群体信息来促进策略专业化和高效的团队合作
    • +
    • 不考虑前车倒退的情况,后车撞上前车那么后车负责,后车有责任和前车保持距离

    • +
    • \(c_r\)表示前车,\(c_f\)表示后车,\(\rho\)表示的是前车的反应时间,\(a_{max,break}\)表示的是前车的最大加速度,\(a_{max,accel}\)表示的是最多的加速制动,\(a_{min,break}\)表示的是后车的最小制动加速度来保证不会撞到前车

    • +
    • 同方向行驶的安全距离

      +

      给出最小的安全纵向距离: \[ +d_{min}=max\{v_r\rho+1/2a_{max,accel}\rho^2+((v_r+\rho +a_{max,accel})^2)/2a_{min,break}-v_f^2/2a_{max,break},0\} +\]

    • +
    • + + +
    • +
    • \(t_b\) dangerous time;\([t_b,t_b+\rho]\) 表示一定的反应时间 +在这个范围之内在给定的加速度范围之内 执行proper response

    • +
    • Proper Response +:表示我们允许执行的最大加速度的限制,并取最小值约束保证满足所有的约束

    • +
    • 安全纵向距离和Proper Response取决于参数:\(\rho,a_{max,sccel},a_{min,brake},a_{max,brake}\) +参数保证了对智能体行为的假设,选择适当的参数

    • +
    • Utopia is possible +如果所有智能体车辆都能够遵循合理的响应,那么能归纳证明可以规避事故的发生

    -

    引入群组划分板块的分解方法

    -

    个体与群组关系假设

    +
    3.2 A +Lane-Based Coordinate System 基于车道的坐标系
      -
    • 所有智能体集合:\(A={a_1,…,a_n }\)
    • -
    • 分组集合: \(G={g_1,…,g_m -},1≤m≤n\)
    • -
    • 每个\(g_i\)包含\(n_j -(1≤n_j≤n)\)个不同的智能体,有\(g_i={a_(j_1 ),…,a_(j_(n_j ) -)}\)且有\(g_j∩g_k=∅\)且有\(⋃_jg_j =A,j,k∈{1,2,…,m}\)
    • -
    -

    自动分组实现方法

    -

    自动分组的基本逻辑是学习\(f_g:A↦G\),这样的算子的目标是能够学习到系数权重 -\[ -Q_G^{tot} (s_t,u_t )=E_(s_{t+1:∞},u_{t+1:∞} ) [∑_(k=0)^∞ γ^k -r_{t+k}∣s_t,u_t;G] -\] 让总体的联合动作价值函数的值最大,分组的价值函数为: \[ -𝑄^{𝑔_𝑗}=𝑓(𝑄^{𝑗_1} (𝜏^{𝑗_1},𝑢^{𝑗_1}),⋯,𝑄^{𝑗_{𝑛_𝑗}} (𝜏^{𝑗_(𝑛_𝑗 -)},𝑢^{𝑗_{𝑛_𝑗}};𝑤_1^{𝑔_𝑗}) -\] 学习到的贡献程度为:\(𝑤_1^{𝑔_𝑗}\),训练的目标函数为: \[ -ℒ_𝑔 (𝜃_{w_1})=𝔼_((𝐳,𝐮,𝑟,𝐳′)∼ℬ∑_𝑖(∥𝑓_(w_1)^𝑖 (𝜏^𝑖 (𝑧^𝑖,𝑢^𝑖 );𝜃_(w_1)^𝑖 -)∥_{𝑙_1}) -\] -根据每次在分组中的贡献权重来依次调整智能体的分组,当贡献的权重过小的话,就认为智能体不属于分组中,进入下一轮的分组调整中。

    -
    - - -
    -

    -

    Agent Network的优化

    -
      -
    • 智能体内嵌信息网络获取的群组相关信息\(e_i\)

    • -
    • Similarity-Diversity -objective:来自同一组的智能体的信息是相似的,来自不同群体的智能体信息之间保持多样性: -\[ -\begin{gathered} -\mathcal{L}_{S -D}\left(\theta_e\right)=\mathbb{E}_{\mathcal{B}}\left(\sum_{i \neq j} -I(i, j) \cdot \operatorname{cosine}\left(f_e\left(h^i ; \theta_e\right), -f_e\left(h^j ; \theta_e\right)\right)\right) \\ -\text { where } I(i, j)=\left\{\begin{array}{cc} --1, & a^i, a^j \in g^k \\ -1, & a^i \in g^k, a^j \in g^l, k \neq l -\end{array}\right. -\end{gathered} -\] -很直观的理解,对于合作型的强化学习任务而言,我们希望能够在同一个任务域内强化策略的合作,而不同的任务域内的策略应当保持多样性,能够让多智能体系统探索更多的可能性,防止陷入局部最优的情况。

    • -
    • Agent Network特点

      -
        -
      • 多样化的策略,部分共享参数的策略去中心化
      • -
      • 超网络\(f_d\)将提取的智能体信息e集成到策略梯度中
      • -
    • -
    • 合理性表示: \[ -𝜕𝑄^{𝑡𝑜𝑡}/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 ) (𝜕𝑄^𝑎)/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 -) (𝜕𝑄^𝑎)/(𝜕𝑣_ℎ^𝑎 ) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ )=𝑓_𝑑 (𝑒^𝑎 )⋅(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 -) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ ) -\]

    • -
    -

    Agent Network优化方式

    -

    整体的训练框架

    -
    双层混合网络
    -
      -
    • 群体状态下的群体行动价值信息,将全局的状态分解成局部的状态信息用于训练,这部分的局部状态信息是基于群组划分之后的状态信息

    • -
    • \(s^{g_j}\) 是分组后\(e_t^i (a_i∈g_j -)\)按组别融合,建立分组器映射

      -

      \[ -f_{w_2}(s^g ):s^g→w_2^g -\]

    • -
    • 集中到策略梯度中,内嵌群组状态信息潜在促进组内合作: \[ -𝜕𝑄^{𝑡𝑜𝑡}/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 ) (𝜕𝑄^𝑎)/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 -) (𝜕𝑄^𝑎)/(𝜕𝑣_ℎ^𝑎 ) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ )=𝑓_𝑑 (𝑒^𝑎 )⋅(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 -) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ ) -\]

    • -
    • 按照全文的总共方法的总述可以得到全局分解目标: \[ -ℒ(𝜃)=ℒ_𝑇𝐷 (𝜃)+𝜆_𝑔 ℒ_𝑔 (𝜃_(w_1 ) )+𝜆_𝑆𝐷 ℒ_𝑆𝐷 (𝜃_𝑒 ) -\]

    • -
    -
    - - -
    -

    实验结果

    -

    在星际争霸的环境中的训练结果

    -
    - - -
    -

    消融实验

    -
    - - -
    -

    谷歌足球的训练结果

    -
    - - -
    -]]>
    - - 强化学习 - - - 人工智能 - 深度学习 - 强化学习 - -
    - - 【自动驾驶】RSS Model for Autonomous Driving - /2023/10/21/RSS-Model/ - -

    RSS Model for -Autonomous Driving

    -

    论文:《On -a Formal Model of Safe and Scalable Self-driving Cars》

    -

    Contribution:

    -
      -
    • Safety (RSS model) Reasonable care, Responsibility, agile driving -policy
    • -
    • Semantic (Semantic language) :Defined Q function over the Semantic -space
    • -
    • PAC sensing model:Safety and Comfort of driving ;tied to the Q -function;
    • -
    -

    1. Safety Concept

    -

    Functional versus nominal safety 功能安全与名义安全

    -

    Functional Safety,FuSa 是指电子电路中操作的完整性

    -

    名义安全是在假设HW和SW系统运行无差错(即在功能上是安全的)的情况下,AV是否正在做出安全的逻辑决策。

    -

    Sense,Plan,Act 感知 计划 行动

    -

    2. -现有的自动驾驶汽车的决策方案

    -
      -
    • Miles driven :基于统计的论点,同时需要较大的统计量数据
    • -
    • disengagements(脱离):被定义为人类安全驾驶人因为做出不安全的决定而不得不干预AV的运行,从而导致事故的情况。
    • -
    • simulation:建立虚拟世界模拟器,模拟器和显示世界的差距,无法建模全部的策略
    • -
    • scenario based testing -:枚举现实世界的驾驶场景,过度拟合和泛化的问题
    • -
    • proprietary approaches
    • -
    -

    3. -RSS(Responsibility-Sensitive-Safety) Model for Multi-agent -Safety

    -
      -
    • 目标:

      -
        -
      • 做不到绝对安全,需要有Reasonable的响应
      • -
      • 遵循RSS能做到乌托邦Utopia
      • -
      • 敏捷而非防御,不应当过于谨慎而影响其他驾驶
      • -
      • 法律解释的意义
      • -
    • -
    • 形式化的规则:

      -
        -
      1. Do not hit someone from behind.
      2. -
      3. Do not cut-in recklessly.
      4. -
      5. Right-of-way is given, not taken. -道路通行权是给予的而不是占用的
      6. -
      7. Be careful of areas with limited visibility -小心有限可视化的范围
      8. -
      9. If you can avoid an accident without causing another one, you must -do it.
      10. -
    • -
    -
    3.1 Single Land Road -单向道路的情况
    -
      -
    • 不考虑前车倒退的情况,后车撞上前车那么后车负责,后车有责任和前车保持距离

    • -
    • \(c_r\)表示前车,\(c_f\)表示后车,\(\rho\)表示的是前车的反应时间,\(a_{max,break}\)表示的是前车的最大加速度,\(a_{max,accel}\)表示的是最多的加速制动,\(a_{min,break}\)表示的是后车的最小制动加速度来保证不会撞到前车

    • -
    • 同方向行驶的安全距离

      -

      给出最小的安全纵向距离: \[ -d_{min}=max\{v_r\rho+1/2a_{max,accel}\rho^2+((v_r+\rho -a_{max,accel})^2)/2a_{min,break}-v_f^2/2a_{max,break},0\} -\]

    • -
    • - - -
    • -
    • \(t_b\) dangerous time;\([t_b,t_b+\rho]\) 表示一定的反应时间 -在这个范围之内在给定的加速度范围之内 执行proper response

    • -
    • Proper Response -:表示我们允许执行的最大加速度的限制,并取最小值约束保证满足所有的约束

    • -
    • 安全纵向距离和Proper Response取决于参数:\(\rho,a_{max,sccel},a_{min,brake},a_{max,brake}\) -参数保证了对智能体行为的假设,选择适当的参数

    • -
    • Utopia is possible -如果所有智能体车辆都能够遵循合理的响应,那么能归纳证明可以规避事故的发生

    • -
    -
    3.2 A -Lane-Based Coordinate System 基于车道的坐标系
    -
      -
    • 车道中心是平面上一条平滑有向的曲线 \(r\) ,其中所有部分可以表示为 \(r^{(1)},...,r^{(k)}\) -即可以是线性的,也可以是弧形的

    • -
    • 构造 \(R->R^2\)的变换为 \(\phi\) -就是横纵坐标,从而来保证在逻辑上的前后车辆的关系

    • -
    • 具体的映射的方式可以表示为如下:

      -
      - - -
    • -
    • 横纵速度/加速度 -的计算就可以通过这样的坐标系定义之下得到的一阶/二阶的导数计算得到

    • +
    • 车道中心是平面上一条平滑有向的曲线 \(r\) ,其中所有部分可以表示为 \(r^{(1)},...,r^{(k)}\) +即可以是线性的,也可以是弧形的

    • +
    • 构造 \(R->R^2\)的变换为 \(\phi\) +就是横纵坐标,从而来保证在逻辑上的前后车辆的关系

    • +
    • 具体的映射的方式可以表示为如下:

      +
      + + +
    • +
    • 横纵速度/加速度 +的计算就可以通过这样的坐标系定义之下得到的一阶/二阶的导数计算得到

    3.3 @@ -838,169 +557,450 @@ class="math inline">\(\delta\) class="math inline">\(2 <\)$3 to represent mild, medium, and gross mistakes,表示传感器的错误程度,轻中重 -
    PAC sensing system
    -
      -
    1. - - -
      -

      Probably-Approximately-Correct (PAC) -X表示的是原始的数据与映射的数据域,从期望的角度给出误差率的平均值: -\[ -\mathbb{P}_{(x, s) \sim D}\left[Q(s, \pi(\hat{s}(x))) \geq Q(s, -\pi(s))-\epsilon_i\right] \geq 1-\delta_i +

      PAC sensing system
      +
        +
      1. + + +
        +

        Probably-Approximately-Correct (PAC) +X表示的是原始的数据与映射的数据域,从期望的角度给出误差率的平均值: +\[ +\mathbb{P}_{(x, s) \sim D}\left[Q(s, \pi(\hat{s}(x))) \geq Q(s, +\pi(s))-\epsilon_i\right] \geq 1-\delta_i +\]

      2. +
      3. 通过记录许多人类驾驶员的数据来构建此分布,而不是遵循自动驾驶车辆的特定策略(不切实际),由于任何合理策略对 +D +的影响都很小,通过应用简单的数据增强技术,我们可以构建适当的分布,然后在传感系统的每次重大更新后执行离线验证。

      4. +
      5. 重点关注经常发生的“测量不准确”类型的错误

      6. +
      7. let \(p(o)\)\(\hat{p}(o)\) be the positions of o in the +coordinate system of the host vehicle according to \(s(x)\), \(\hat{s}(x)\) +respectively.分别表示某个对象的真实的位置信息传感器的位置信息

        +

        目标到主车辆的距离为:\(\|p\|\) +,加性误差:\(\|p(o)-\hat{p}(o)\|\),相对误差为 \(\frac{\|p(o)-\hat{p}(o)\|}{\|p(o)\|}\)

      8. +
      9. 对于positions a set of objects \(O\)表示的是一堆对象,要求 \(p(o)\)\(\hat{p}(o)\)之间的相对误差小于一个精确度不妨计作 +$$ ,但是\(\epsilon-ego-accurate\) +的传感状态不能保证PAC传感系统能够满足每个合理的价值函数:当相对误差很小的时候,尽管认为合理了,但是对于实际的情况而言会出现不同的价值函数结果。选择制动or继续前进,横向不能用相对距离

      10. +
      11. 表明\(\epsilon-ego-accurate\) +并不能保证我们的传感系统是PAC。是否还有其他属性足以满足 PAC +传感系统的要求

        +
        + + +
      12. +
      13. + + +
        +

        给出价值函数合理的L-语义-\(Lipschitz\)条件

      14. +
      15. + + +
        +

        判定为PAC传感系统的终极判定

      16. +
      +
      Safety
      +
        +
      • 目标是减少事故发生的概率,存在两类安全情况:

        +
          +
        1. 传感系统认为危险情况是不危险的;
        2. +
        3. 传感器系统认为不危险情况是危险的:当安全的时候突然出现紧急刹车会导致危险
        4. +
      • +
      • 解决的是如何确保和验证safety-critic sensing +mistake足够小,采用的方法是融合多个工程和技术都独立的子系统。多数子系统认为安全才算安全:

      • +
      • 单侧c-近似独立的多个子系统

        +
        + + +
      • +
      • 对于服从单侧-c近似独立的子系统,能够推出:

        +
        + + +
        +

        基于多子系统方案和Corollary 3,为了达到10^-9 +失效率,对sensing系统的验证不再需要10^9 +小时的数据,而是分别对每个子系统验证10^5小时就可以了

      • +
      • 独立假设背后的合理性留给我们去推理。有些传感器对会产生完全不相关的误差;单侧-c近似独立是否成立

      • +
      • 对于安全幽灵而言,当出现至少有两个传感器认为的情况是危险的,才能认为是危险的

      • +
      • Building a scalable sensing +system可扩展的传感器系统

        +
          +
        1. Cameras
        2. +
        3. Road Experience Management (REM),不使用点云,而是一种基于语义的方法 +approach,利用大量的车端detects semantically meaningful objects in the +scene (lane marks, curbs, poles, traffic lights, +etc.),并可以对云端进行更新。以可扩展的方式非常频繁地更新地图。此外,自动驾驶车辆可以通过现有的通信平台(蜂窝网络)接收小型地图数据
        4. +
        5. A complementary radar and lidar +system,能够产生极高的精度;直接测量速度和距离,这进一步提高了乘坐的舒适度
        6. +
      • +
      +]]> + + 深度学习 + + + 人工智能 + 智能安全 + + + + 【基础工具】Anaconda命令集 + /2023/10/22/conda_list/ + +

      Conda 常用命令

      +

      查看conda版本

      +
      conda --version/ conda -V
      +

      查看已有环境

      +
      conda info --envs
      conda env list
      conda info -e
      +

      进退环境

      +
      conda activate  [name]# 重新进入虚拟环境
      conda deactivate # 退出虚拟环境
      +

      创建新的环境

      +
      conda create -n *** python=0
      +

      删除环境

      +
      conda remove -n old_name --all # 删除环境old_name
      +

      激活环境

      +
      conda activate xxxx # 激活xxxx环境
      +

      关闭环境

      +
      conda deactivate # 关闭环境
      +

      克隆环境

      +
      conda create -n [new_name] --clone [old_name]
      +

      升级版本

      +
      conda update -n base conda #update最新版本的conda;
      conda update --all #更新所有包
      +

      Pip管理的常用包

      +
      pip search package_name 
      pip show package_name
      pip uninstall||package_name
      pip list
      +

      删除环境中的包

      +
      conda remove package #删除当前环境中的包
      conda remove -- name env_name package #删除指定环境中的包
      +

      指定环境中安装包

      +
      conda install --name env_name package_name 
      +

      Conda环境的python版本非指定

      +

      指定虚拟环境x的python版本是3.8,base环境是3.11;conda +activate激活x之后python版本仍为3.11。

      +

      原因:在base环境中修改了.zshrc文件中的python只定路径,让每次虚拟环境中的python找到的python都只能按照指定的python路径进行寻找,从而导致conda环境中的python版本不能制定。

      +

      修改方式:

      +
      vim .zshrc
      +

      进入 +.zshrc环境中进行修改,如果发现一类诸如其他python版本指定的路径的话,需要进行删除,只需要保留最原始的关于anaconda的命令初始化,完成之后输入

      +
      source ~/.zshrc
      +

      解决问题

      +

      镜像源安装

      +

      下载使用清华源加上: -i +https://pypi.tuna.tsinghua.edu.cn/simple

      +
      +

      清华:https://pypi.tuna.tsinghua.edu.cn/simple/

      +

      阿里云:http://mirrors.aliyun.com/pypi/simple/

      +

      中国科技大学 +:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

      +

      豆瓣:http://pypi.doubanio.com/simple/

      +
      +]]>
      + + 基础工具 + + + 基础工具 + +
      + + 【多智能体强化学习】基于自动分组的价值函数分解 + /2023/11/22/MARL_%E8%87%AA%E5%8A%A8%E5%88%86%E7%BB%84/ + +

      Automatic Grouping for MARL

      +

      论文标题:

      +

      《Vast: Value function factorization with variable agent +sub-teams》

      +

      《Automatic Grouping for Efficient Cooperative Multi-Agent +Reinforcement Learning》

      +

      论文代码:https://github.com/zyfsjycc/GoMARL

      +

      价值函数分解

      +

      价值函数的提出是为了缓解在传统的中心化训练和去中心化执行中的Critic网络出现的难以训练的问题,同时传统的合作型多智能体强化学习的方法难以解决信用分配的问题,即如何确定某个智能体对于全局任务而言的贡献程度

      +

      主体研究框架:

      +

      \[ +Q_{tot} (τ,a)≈Ψ([Q_i (τ_i,a_i)]_{i=1}^N) +\]

      +

      目的就是学习到这样一个分解算子 \(Ψ\),能够将局部的价值函数 \(Q_i\) 拟合成全局的价值函数 \(Q_{tot}\),而这样的拟合过程学习到的分解算子\(Ψ\)应当满足以下的约束条件: \[ +\underset{\boldsymbol{a}}{\arg \max } Q_{\text {tot +}}(\boldsymbol{\tau}, \boldsymbol{a})=\left(\begin{array}{c} +\operatorname{argmax}_{a_1} Q_1\left(\tau_1, a_1\right) \\ +\vdots \\ +\operatorname{argmax}_{a_N} Q_N\left(\tau_N, a_N\right) +\end{array}\right) +\] +这个公式的本质是希望分解之后的局部和全局的最优动作能够最优一致,才能保证这样的算子分解方法是有效果的。

      +
      + + +
      +

      可变子团队的价值函数分解

      +

      研究动机:

      +
        +
      1. 大部分价值函数方法对少量智能体的任务效果好
      2. +
      3. VFF方法过于扁平,存在性能瓶颈,没有考虑群组之间的一个关系,比较朴素且直接
      4. +
      5. 忽略智能体之间关系导致智能体训练信息不足
      6. +
      +

      朴素的价值函数分解方法自动分组之后的价值函数分解方法

      +

      因此,为了能够缓解朴素的价值函数分解方法中的缺乏群组信息的缺陷,文中提出能够分组处理多智能体系统的工作VAST,能够动态处理群组划分的算子来给出基于分组的智能体价值函数方法。

      +

      主要贡献:

      +
        +
      1. 基于 \(K ≤ N = |D|\) +的分解子团队值\(Q_{t,k}^G\),线性分解每个子团队成员$jG_{t,k}⊆D +$ 局部值\(Q_j\)
      2. +
      3. 提出了一种分解方式动态并随时间变化,同时保持VFF方法的去中心性执行的特点
      4. +
      5. 提供了元梯度方法来优化子团队分组策略
      6. +
      +

      实现方法:

      +
      子团队分组策略:
      +

      分组策略的本质是学习一个概率分布\(\mathcal{X}(k∣i,τ_(t,i),s_t +)\),概率分布的本质思想是能够通过每个智能体的状态以及历史数据信息给出智能体 +\(i\) 所在的组别 \(k\)

      +
      元梯度的更新方式:
      +

      \[ +𝑔=𝐴 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) ∇_𝜃 log⁡𝒳_{MetaGrad} (𝑘∣𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) +\]

      +
        +
      • 参考借鉴了强化学习的策略梯度更新的方式
      • +
      • 在多智能体强化学习中利用强化学习的方法学习一个组别的分组器
      • +
      +

      \[ +𝐴 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )=𝑄 ̂(𝑘,𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )−𝑉 ̂(𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 ) +\]

      +

      \[ +𝑉 ̂(𝑖,𝜏_{𝑡,𝑖},𝑠_𝑡 )=∑_(𝑎_{𝑡,𝑖}∈𝒜_𝑖) 𝜋_𝑖 (𝑎_{𝑡,𝑖}∣𝜏_{𝑡,𝑖} ) 𝑄_𝑖 +(𝜏_{𝑡,𝑖},𝑎_{𝑡,𝑖} ) +\]

      +
        +
      • 策略梯度更新的方式是基于优势函数的方法进行更新分组器
      • +
      +
      + + +
      +

      这里还采用了不同的分组器方法加入实验的对比

      +
      算法思路
      +
        +
      • 将D 分成\(K= ⌈ηN⌉≤ N = +|D|\)个子团队\(G_{t,k}\) +其中比例\(η ∈ [ +1⁄N,1]\),所有的团队集合 \(G_t=⟨G_{t,1},…,G_{t,K} ⟩\)

      • +
      • 分组:\(G_{t,k}⊆D,G_{t,k}∩G_{t,k′}=∅ +;D=U_{k=1}^K  G_{t,k}\)

      • +
      • 组内联合动作:\(a_{t,k}^G=a{t,j} +_j∈G_{t,k}\)

      • +
      • 选择\(Ψ_{VDN}\)算子分解(满足IGM):

        +

        \[ +Q_{t,k}^G (τ_{t,k}^G,a_{t,k}^G )=Ψ_{VDN} (⋅)=∑_{j∈G_{t,k}} Q_j +(τ_{t,j},a_{t,j}) +\]

      • +
      • 最终的全局联合价值函数近似:

      • +
      +

      \[ +Q_{tot} (τ_t,a_t )=Ψ(Q_{t,1}^G (τ_{t,1}^G,a_{t,1}^G ),…,Q_{t,K}^G +(τ_{t,K}^G,a_{t,K}^G )) +\] +可变子团队的伪代码

      +
      IGM条件保持
      +

      如果以群组为单位的价值函数分解的方式能够保证IGM条件: \[ +argmax_(𝑎_{𝑡,𝑘}^𝐺∈𝒜)⁡〖𝑄_{tot}(𝜏_𝑡,𝑎_𝑡)〗= +⟨argmax_(⟨𝐚_{𝐭,𝐤}^𝐆 ⟩_(𝐺_{𝑡,𝑘}∈𝒢_𝑡 ))⁡𝑄_{𝑡,𝑘}^𝐺 (𝜏_{𝑡,𝑘}^𝐺,𝑎_{𝑡,𝑘}^𝐺 +)⟩_(𝐺_{𝑡,𝑘}∈𝒢_𝑡) +\] 希望能够满足对于局部智能体到全局价值函数的IGM条件的保持 \[ +argmax_(𝑎_𝑡∈𝒜)⁡𝑄_{tot}(𝜏_𝑡,𝑎_𝑡 )= +⟨argmax_(𝑎_{𝑡,𝑖}∈𝒜_𝑖 )⁡𝑄_𝑖 (𝜏_{𝑡,𝑖},𝑎_{𝑡,𝑖})⟩_(𝑖∈𝒟) +\] 推导过程如下: \[ +\begin{aligned} +& Q_{t, k}^G\left(\tau_{t, k}^G, a_{t, k}^G\right)=\sum_{j \in G_{t, +k}} Q_j\left(\tau_{t, j}, a_{t, j}\right) ; \operatorname{argmax}_{a_t +\in G_{t, k}} Q_{t, k}^G\left(\tau_{t, k}^G, a_{t, +k}^G\right)=\left\langle\operatorname{argmax}_{a_{t, i} \in +\mathcal{A}_i} Q_i\left(\tau_{t, i}, a_{t, i}\right)\right\rangle_{i \in +G_{t, k}} \\ +& a_t \stackrel{\Psi}{=}\left\langle a_{t, k}^G\right\rangle_{G_{t, +k} \in \mathcal{G}_t} \stackrel{\Psi_{V D +N}}{=}\left\langle\left\langle\bar{a}_{t, i}\right\rangle_{i \in G_{t, +k}}\right\rangle_{G_{t, k} \in \mathcal{G}_t} +\stackrel{\mathcal{D}=G_{t, 1} \cup \cdots \cup G_{t, +K}}{=}\left\langle\bar{a}_{t, i}\right\rangle_{i \in \mathcal{D}} +\end{aligned} +\]

      +

      自适应分组的MARL

      +

      研究动机

      +
        +
      • 通过任务分配实现隐式分组的方法仅解决结构清晰的任务,并且需要领域知识或先验设置
      • +
      • VAST 研究子团队对价值分解的影响,但需要先验的组数,ROMA +的学习依赖于智能体观察的动态角色
      • +
      +

      GoMARL算法的优势

      +
        +
      • 算法不依赖先验领域知识
      • +
      • 动态调整:在分组学习过程中根据智能体的表现逐步调整分组划分。利用群体信息来促进策略专业化和高效的团队合作
      • +
      +

      引入群组划分板块的分解方法

      +

      个体与群组关系假设

      +
        +
      • 所有智能体集合:\(A={a_1,…,a_n }\)
      • +
      • 分组集合: \(G={g_1,…,g_m +},1≤m≤n\)
      • +
      • 每个\(g_i\)包含\(n_j +(1≤n_j≤n)\)个不同的智能体,有\(g_i={a_(j_1 ),…,a_(j_(n_j ) +)}\)且有\(g_j∩g_k=∅\)且有\(⋃_jg_j =A,j,k∈{1,2,…,m}\)
      • +
      +

      自动分组实现方法

      +

      自动分组的基本逻辑是学习\(f_g:A↦G\),这样的算子的目标是能够学习到系数权重 +\[ +Q_G^{tot} (s_t,u_t )=E_(s_{t+1:∞},u_{t+1:∞} ) [∑_(k=0)^∞ γ^k +r_{t+k}∣s_t,u_t;G] +\] 让总体的联合动作价值函数的值最大,分组的价值函数为: \[ +𝑄^{𝑔_𝑗}=𝑓(𝑄^{𝑗_1} (𝜏^{𝑗_1},𝑢^{𝑗_1}),⋯,𝑄^{𝑗_{𝑛_𝑗}} (𝜏^{𝑗_(𝑛_𝑗 +)},𝑢^{𝑗_{𝑛_𝑗}};𝑤_1^{𝑔_𝑗}) +\] 学习到的贡献程度为:\(𝑤_1^{𝑔_𝑗}\),训练的目标函数为: \[ +ℒ_𝑔 (𝜃_{w_1})=𝔼_((𝐳,𝐮,𝑟,𝐳′)∼ℬ∑_𝑖(∥𝑓_(w_1)^𝑖 (𝜏^𝑖 (𝑧^𝑖,𝑢^𝑖 );𝜃_(w_1)^𝑖 +)∥_{𝑙_1}) +\] +根据每次在分组中的贡献权重来依次调整智能体的分组,当贡献的权重过小的话,就认为智能体不属于分组中,进入下一轮的分组调整中。

      +
      + + +
      +

      +

      Agent Network的优化

      +
        +
      • 智能体内嵌信息网络获取的群组相关信息\(e_i\)

      • +
      • Similarity-Diversity +objective:来自同一组的智能体的信息是相似的,来自不同群体的智能体信息之间保持多样性: +\[ +\begin{gathered} +\mathcal{L}_{S +D}\left(\theta_e\right)=\mathbb{E}_{\mathcal{B}}\left(\sum_{i \neq j} +I(i, j) \cdot \operatorname{cosine}\left(f_e\left(h^i ; \theta_e\right), +f_e\left(h^j ; \theta_e\right)\right)\right) \\ +\text { where } I(i, j)=\left\{\begin{array}{cc} +-1, & a^i, a^j \in g^k \\ +1, & a^i \in g^k, a^j \in g^l, k \neq l +\end{array}\right. +\end{gathered} +\] +很直观的理解,对于合作型的强化学习任务而言,我们希望能够在同一个任务域内强化策略的合作,而不同的任务域内的策略应当保持多样性,能够让多智能体系统探索更多的可能性,防止陷入局部最优的情况。

      • +
      • Agent Network特点

        +
          +
        • 多样化的策略,部分共享参数的策略去中心化
        • +
        • 超网络\(f_d\)将提取的智能体信息e集成到策略梯度中
        • +
      • +
      • 合理性表示: \[ +𝜕𝑄^{𝑡𝑜𝑡}/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 ) (𝜕𝑄^𝑎)/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 +) (𝜕𝑄^𝑎)/(𝜕𝑣_ℎ^𝑎 ) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ )=𝑓_𝑑 (𝑒^𝑎 )⋅(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 +) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ ) +\]

      • +
      +

      Agent Network优化方式

      +

      整体的训练框架

      +
      双层混合网络
      +
        +
      • 群体状态下的群体行动价值信息,将全局的状态分解成局部的状态信息用于训练,这部分的局部状态信息是基于群组划分之后的状态信息

      • +
      • \(s^{g_j}\) 是分组后\(e_t^i (a_i∈g_j +)\)按组别融合,建立分组器映射

        +

        \[ +f_{w_2}(s^g ):s^g→w_2^g \]

      • -
      • 通过记录许多人类驾驶员的数据来构建此分布,而不是遵循自动驾驶车辆的特定策略(不切实际),由于任何合理策略对 -D -的影响都很小,通过应用简单的数据增强技术,我们可以构建适当的分布,然后在传感系统的每次重大更新后执行离线验证。

      • -
      • 重点关注经常发生的“测量不准确”类型的错误

      • -
      • let \(p(o)\)\(\hat{p}(o)\) be the positions of o in the -coordinate system of the host vehicle according to \(s(x)\), \(\hat{s}(x)\) -respectively.分别表示某个对象的真实的位置信息传感器的位置信息

        -

        目标到主车辆的距离为:\(\|p\|\) -,加性误差:\(\|p(o)-\hat{p}(o)\|\),相对误差为 \(\frac{\|p(o)-\hat{p}(o)\|}{\|p(o)\|}\)

      • -
      • 对于positions a set of objects \(O\)表示的是一堆对象,要求 \(p(o)\)\(\hat{p}(o)\)之间的相对误差小于一个精确度不妨计作 -$$ ,但是\(\epsilon-ego-accurate\) -的传感状态不能保证PAC传感系统能够满足每个合理的价值函数:当相对误差很小的时候,尽管认为合理了,但是对于实际的情况而言会出现不同的价值函数结果。选择制动or继续前进,横向不能用相对距离

      • -
      • 表明\(\epsilon-ego-accurate\) -并不能保证我们的传感系统是PAC。是否还有其他属性足以满足 PAC -传感系统的要求

        +
      • 集中到策略梯度中,内嵌群组状态信息潜在促进组内合作: \[ +𝜕𝑄^{𝑡𝑜𝑡}/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 ) (𝜕𝑄^𝑎)/(𝜕𝜃_ℎ )=(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 +) (𝜕𝑄^𝑎)/(𝜕𝑣_ℎ^𝑎 ) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ )=𝑓_𝑑 (𝑒^𝑎 )⋅(𝜕𝑄^{𝑡𝑜𝑡})/(𝜕𝑄^𝑎 +) (𝜕𝑣_ℎ^𝑎)/(𝜕𝜃_ℎ ) +\]

      • +
      • 按照全文的总共方法的总述可以得到全局分解目标: \[ +ℒ(𝜃)=ℒ_𝑇𝐷 (𝜃)+𝜆_𝑔 ℒ_𝑔 (𝜃_(w_1 ) )+𝜆_𝑆𝐷 ℒ_𝑆𝐷 (𝜃_𝑒 ) +\]

      • +
      - -
    2. -
    3. - - +src="https://gitee.com/lihaibineric/picgo/raw/master/pic/image-20231122225354328.png" +alt="总体训练框架" /> +
      -

      给出价值函数合理的L-语义-\(Lipschitz\)条件

    4. -
    5. +

      实验结果

      +

      在星际争霸的环境中的训练结果

      +
      - +src="https://gitee.com/lihaibineric/picgo/raw/master/pic/image-20231122225759954.png" +alt="SMAC训练结果" /> +
      -

      判定为PAC传感系统的终极判定

    6. -
    -
    Safety
    -
      -
    • 目标是减少事故发生的概率,存在两类安全情况:

      -
        -
      1. 传感系统认为危险情况是不危险的;
      2. -
      3. 传感器系统认为不危险情况是危险的:当安全的时候突然出现紧急刹车会导致危险
      4. -
    • -
    • 解决的是如何确保和验证safety-critic sensing -mistake足够小,采用的方法是融合多个工程和技术都独立的子系统。多数子系统认为安全才算安全:

    • -
    • 单侧c-近似独立的多个子系统

      +

      消融实验

      - -
    • -
    • 对于服从单侧-c近似独立的子系统,能够推出:

      +src="https://gitee.com/lihaibineric/picgo/raw/master/pic/image-20231122225941711.png" +alt="消融实验对比" /> + + +

      谷歌足球的训练结果

      - +src="https://gitee.com/lihaibineric/picgo/raw/master/pic/image-20231122225826734.png" +alt="GRF的训练结果与可视化" /> +
      -

      基于多子系统方案和Corollary 3,为了达到10^-9 -失效率,对sensing系统的验证不再需要10^9 -小时的数据,而是分别对每个子系统验证10^5小时就可以了

    • -
    • 独立假设背后的合理性留给我们去推理。有些传感器对会产生完全不相关的误差;单侧-c近似独立是否成立

    • -
    • 对于安全幽灵而言,当出现至少有两个传感器认为的情况是危险的,才能认为是危险的

    • -
    • Building a scalable sensing -system可扩展的传感器系统

      -
        -
      1. Cameras
      2. -
      3. Road Experience Management (REM),不使用点云,而是一种基于语义的方法 -approach,利用大量的车端detects semantically meaningful objects in the -scene (lane marks, curbs, poles, traffic lights, -etc.),并可以对云端进行更新。以可扩展的方式非常频繁地更新地图。此外,自动驾驶车辆可以通过现有的通信平台(蜂窝网络)接收小型地图数据
      4. -
      5. A complementary radar and lidar -system,能够产生极高的精度;直接测量速度和距离,这进一步提高了乘坐的舒适度
      6. -
    • -
    ]]> - 深度学习 + 强化学习 人工智能 - 智能安全 - - - - 【基础工具】Anaconda命令集 - /2023/10/22/conda_list/ - -

    Conda 常用命令

    -

    查看conda版本

    -
    conda --version/ conda -V
    -

    查看已有环境

    -
    conda info --envs
    conda env list
    conda info -e
    -

    进退环境

    -
    conda activate  [name]# 重新进入虚拟环境
    conda deactivate # 退出虚拟环境
    -

    创建新的环境

    -
    conda create -n *** python=0
    -

    删除环境

    -
    conda remove -n old_name --all # 删除环境old_name
    -

    激活环境

    -
    conda activate xxxx # 激活xxxx环境
    -

    关闭环境

    -
    conda deactivate # 关闭环境
    -

    克隆环境

    -
    conda create -n [new_name] --clone [old_name]
    -

    升级版本

    -
    conda update -n base conda #update最新版本的conda;
    conda update --all #更新所有包
    -

    Pip管理的常用包

    -
    pip search package_name 
    pip show package_name
    pip uninstall||package_name
    pip list
    -

    删除环境中的包

    -
    conda remove package #删除当前环境中的包
    conda remove -- name env_name package #删除指定环境中的包
    -

    指定环境中安装包

    -
    conda install --name env_name package_name 
    -

    Conda环境的python版本非指定

    -

    指定虚拟环境x的python版本是3.8,base环境是3.11;conda -activate激活x之后python版本仍为3.11。

    -

    原因:在base环境中修改了.zshrc文件中的python只定路径,让每次虚拟环境中的python找到的python都只能按照指定的python路径进行寻找,从而导致conda环境中的python版本不能制定。

    -

    修改方式:

    -
    vim .zshrc
    -

    进入 -.zshrc环境中进行修改,如果发现一类诸如其他python版本指定的路径的话,需要进行删除,只需要保留最原始的关于anaconda的命令初始化,完成之后输入

    -
    source ~/.zshrc
    -

    解决问题

    -

    镜像源安装

    -

    下载使用清华源加上: -i -https://pypi.tuna.tsinghua.edu.cn/simple

    -
    -

    清华:https://pypi.tuna.tsinghua.edu.cn/simple/

    -

    阿里云:http://mirrors.aliyun.com/pypi/simple/

    -

    中国科技大学 -:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

    -

    豆瓣:http://pypi.doubanio.com/simple/

    -
    -]]>
    - - 基础工具 - - - 基础工具 + 深度学习 + 强化学习
    @@ -1066,40 +1066,6 @@ https://pypi.tuna.tsinghua.edu.cn/simple

    后端开发 - - 【后端开发】golang基础 - /2023/11/27/go-%E5%9F%BA%E7%A1%80/ - -

    学习网站:8小时转职Golang工程师

    -

    Go的环境安装

    -

    下载官网:

    -

    go的官网下载网站,选择合适的系统版本进行安装https://go.dev/dl/

    -

    安装步骤:

    -
      -
    1. 下载安装包并按照安装包的指引下载相关的内容

    2. -
    3. 对于Mac系统会直接配置好环境变量,根据官网的安装手册进行安装 https://go.dev/doc/install

    4. -
    5. 测试GO的版本

      -
      go version
      -

      go version

    6. -
    7. 测试GO的环境变量

      -
      go env
      -

      go env

    8. -
    -

    -

    go语言没有异常,全部都用ERROR来表示

    -
    go run hello.go
    -
    go build hello.go
    ./ hello
    -]]>
    - - 后端开发 - - - 后端开发 - -
    【基础工具】Linux指令集 /2023/11/25/linux/ @@ -1556,4 +1522,42 @@ alt="some bug" /> 深度学习 + + 【后端开发】golang基础 + /2023/11/27/go-%E5%9F%BA%E7%A1%80/ + +

    学习网站:8小时转职Golang工程师

    +

    Go的环境安装

    +

    下载官网:

    +

    go的官网下载网站,选择合适的系统版本进行安装https://go.dev/dl/

    +

    安装步骤:

    +
      +
    1. 下载安装包并按照安装包的指引下载相关的内容

    2. +
    3. 对于Mac系统会直接配置好环境变量,根据官网的安装手册进行安装 https://go.dev/doc/install

    4. +
    5. 测试GO的版本

      +
      go version
      +

      go version

    6. +
    7. 测试GO的环境变量

      +
      go env
      +

      go env

    8. +
    +

    go语言没有异常,全部都用ERROR来表示

    +

    Go基本语法

    +

    如何编译并运行一个Go文件

    +

    对于已经写好的go文件,这里以hello.go作为例子,直接使用以下语句进行编译并运行

    +
    go run hello.go
    +

    或者将编译和运行两个过程分开,先编译后运行:

    +
    go build hello.go
    ./ hello
    +]]>
    + + 后端开发 + + + 后端开发 + +