From 2ba42d51fa939b3afd2f59d061812ed4f4374120 Mon Sep 17 00:00:00 2001 From: PatrickG1014 Date: Wed, 19 Apr 2023 23:16:23 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20main=20from=20@=20PatrickG1014?= =?UTF-8?q?/notablog-starter@a5431b3bc0d79d7324f4f6bd4d72b4dc89549007=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dad.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dad.html b/dad.html index a794f7e..2f7aad4 100644 --- a/dad.html +++ b/dad.html @@ -157,7 +157,7 @@

深度适应性设计 DAD

\end{aligned}">dLTdϕ=E[(logp(hTθ0,πϕ)=0Lp(hTθ,πϕ))ddϕlogp(hTθ0,πϕ)ddϕlog=0Lp(hTθ,πϕ)](16)\begin{aligned} \frac{d\mathcal{L}_T}{d\phi}=\mathbb{E}\left[\left(\log\frac{p(h_T|\theta_0,\pi_\phi)}{\sum_{\ell=0}^Lp(h_T|\theta_\ell,\pi_\phi)}\right)\frac{d}{d\phi}\log p(h_T|\theta_0,\pi_\phi) -\frac{d}{d\phi}\log\sum_{\ell=0}^L p(h_T|\theta_\ell,\pi_\phi)\right]\tag{16} -\end{aligned}

其中期望是在 θ0,hTp(θ,hTπ)\theta_0,h_T\sim p(\theta,h_T|\pi) 上取的,θ1:Lp(θ)\theta_{1:L}\sim p(\theta) 且使用样本也可以得到无偏估计。这个梯度适用于广泛的现有方差减小方法,例如控制变量。然而在我们的实验中,我们发现标准分数函数梯度的方差足够小。完整的梯度推导见附录 C。

4.3 架构

最后,我们讨论用于 πϕ\pi_\phi 的深度学习架构。为了训练有效且高效,我们考虑 BOED 问题的一个关键的置换不变性,如下面的结果所示(证明见附录 A)。

定理 3(置换不变性)考虑一个置换 σSk\sigma\in S_k 作用于一个历史 hk1h_k^1,得到 hk2=(ξσ(1),yσ(1)),,(ξσ(k),yσ(k))h_k^2=(\xi_{\sigma(1)},y_{\sigma(1)}),\dots,(\xi_{\sigma(k)},y_{\sigma(k)})。对于所有这样的 σ\sigma,我们有

E[t=1TIht1(ξt)hk=hk1]=E[t=1TIht1(ξt)hk=hk2]\mathbb{E}\Bigg[\sum_{t=1}^TI_{h_{t-1}(\xi_t)}\Bigg|h_k=h_k^1\Bigg]=\mathbb{E}\Bigg[\sum_{t=1}^TI_{h_{t-1}(\xi_t)}\Bigg|h_k=h_k^2\Bigg]

使得 EIG 在置换下不变。进一步,开始于 hk1h_k^1hk2h_k^2 的最优策略相同。

这个置换不变性是一个许多机器学习问题重要的且充分研究的性质。一个系统表现出置换不变性的知识可以在神经网络架构设计中被利用可以进行重要的参数共享。一个常见的方式就是池化,包括求和或其他把多个输入的表示合并成一个对它们的顺序不变的表示。

使用这个思路,我们用一个固定维度的表示表示历史 hth_t,该表示由对历史的不同设计-结果对的表示进行池化形成

R(ht)k=1tEϕ1(ξk,yk),(17)R(h_t)\coloneqq\sum_{k=1}^tE_{\phi_1}(\xi_k,y_k),\tag{17}

其中 Eϕ1E_{\phi_1} 是一个神经网络编码器,具有要学习的参数 ϕ1\phi_1。注意这个池化表示如果我们重新排序标签 1,,t1,\dots,t 是相同的。按照惯例,空序列的和是 0。

我们接着构建我们的设计网络基于池化的表示 R(ht)R(h_t) 做出决策,通过设定 πϕ(ht)=Fϕ2(R(ht))\pi_\phi(h_t)=F_{\phi_2}(R(h_t)),其中 Fϕ2F_{\phi_2} 是一个学习的发射器网络。可训练的参数是 ϕ={ϕ1,ϕ2}\phi=\{\phi_1,\phi_2\}。通过以一种对问题的置换不变性敏感的方式组合简单的网络,我们更容易参数共享,其中网络 Eϕ1E_{\phi_1} 为每个输入对和每个时间步 tt 重用的。与被要求学习问题的相关的对称性的网络相比,这将显著提高性能。

5 相关工作

现有的序列 BOED 的方法主要延续 § 2.1 中概述的路线。传统方法中每一步要进行的后验推断已经有使用序列蒙特卡洛、群体蒙特卡洛、变分推断和拉普拉斯近似的方法。

每一步互信息目标的估计已经有嵌套蒙特卡洛、变分界、拉普拉斯近似、比值估计和混合方法。设计上的优化已经有贝叶斯优化、相互作用粒子系统、模拟退火、利用后悔界和老虎机方法。

有一些方法同时估计互信息并优化它,使用一个随机梯度过程。例子包括扰动分析、变分下界和多层蒙特卡洛。

一些最近的工作特别关注具有难解似然的模型。其他工作试图学习一种专注于特定可解情况的非短视的策略。

6 实验

我们现在在一系列实验设计问题上比较 DAD 和一些基线。我们通过扩展 PyTorch 和 Pyro 实现 DAD 来提供从特定问题抽象出来的实现。代码公开在 https://github.com/ae-foster/dad

A 证明

定理 1TT 个实验的序列上对于策略 π\pi 的总期望信息增益为

IT(π)Ep(θ)p(hTθ,π)[t=1TIht1(ξt)](7)\mathcal{I}_T(\pi)\coloneqq\mathbb{E}_{p(\theta)p(h_T|\theta,\pi)}\Bigg[\sum_{t=1}^T I_{h_{t-1}}(\xi_t)\Bigg]\tag{7}

=Ep(θ)p(hTθ,π)[logp(hTθ,π)logp(hTπ)](8)=\mathbb{E}_{p(\theta)p(h_T|\theta,\pi)}[\log p(h_T|\theta,\pi)-\log p(h_T|\pi)]\tag{8}

其中 p(hTπ)=Ep(θ)[p(hTθ,π)]p(h_T|\pi)=\mathbb{E}_{p(\theta)}[p(h_T|\theta,\pi)]

证明 我们首先用信息增益重写 Iht1I_{h_{t-1}}。这与我们在第 2 节中介绍的发展非常相似。通过贝叶斯定理的反复应用,我们得到

其中期望是在 θ0,hTp(θ,hTπ)\theta_0,h_T\sim p(\theta,h_T|\pi) 上取的,θ1:Lp(θ)\theta_{1:L}\sim p(\theta) 且使用样本也可以得到无偏估计。这个梯度适用于广泛的现有方差减小方法,例如控制变量。然而在我们的实验中,我们发现标准分数函数梯度的方差足够小。完整的梯度推导见附录 C。

4.3 架构

最后,我们讨论用于 πϕ\pi_\phi 的深度学习架构。为了训练有效且高效,我们考虑 BOED 问题的一个关键的置换不变性,如下面的结果所示(证明见附录 A)。

定理 3(置换不变性)考虑一个置换 σSk\sigma\in S_k 作用于一个历史 hk1h_k^1,得到 hk2=(ξσ(1),yσ(1)),,(ξσ(k),yσ(k))h_k^2=(\xi_{\sigma(1)},y_{\sigma(1)}),\dots,(\xi_{\sigma(k)},y_{\sigma(k)})。对于所有这样的 σ\sigma,我们有

E[t=1TIht1(ξt)hk=hk1]=E[t=1TIht1(ξt)hk=hk2]\mathbb{E}\Bigg[\sum_{t=1}^TI_{h_{t-1}(\xi_t)}\Bigg|h_k=h_k^1\Bigg]=\mathbb{E}\Bigg[\sum_{t=1}^TI_{h_{t-1}(\xi_t)}\Bigg|h_k=h_k^2\Bigg]

使得 EIG 在置换下不变。进一步,开始于 hk1h_k^1hk2h_k^2 的最优策略相同。

这个置换不变性是一个许多机器学习问题重要的且充分研究的性质。一个系统表现出置换不变性的知识可以在神经网络架构设计中被利用可以进行重要的参数共享。一个常见的方式就是池化,包括求和或其他把多个输入的表示合并成一个对它们的顺序不变的表示。

使用这个思路,我们用一个固定维度的表示表示历史 hth_t,该表示由对历史的不同设计-结果对的表示进行池化形成

R(ht)k=1tEϕ1(ξk,yk),(17)R(h_t)\coloneqq\sum_{k=1}^tE_{\phi_1}(\xi_k,y_k),\tag{17}

其中 Eϕ1E_{\phi_1} 是一个神经网络编码器,具有要学习的参数 ϕ1\phi_1。注意这个池化表示如果我们重新排序标签 1,,t1,\dots,t 是相同的。按照惯例,空序列的和是 0。

我们接着构建我们的设计网络基于池化的表示 R(ht)R(h_t) 做出决策,通过设定 πϕ(ht)=Fϕ2(R(ht))\pi_\phi(h_t)=F_{\phi_2}(R(h_t)),其中 Fϕ2F_{\phi_2} 是一个学习的发射器网络。可训练的参数是 ϕ={ϕ1,ϕ2}\phi=\{\phi_1,\phi_2\}。通过以一种对问题的置换不变性敏感的方式组合简单的网络,我们更容易参数共享,其中网络 Eϕ1E_{\phi_1} 为每个输入对和每个时间步 tt 重用的。与被要求学习问题的相关的对称性的网络相比,这将显著提高性能。

5 相关工作

现有的序列 BOED 的方法主要延续 § 2.1 中概述的路线。传统方法中每一步要进行的后验推断已经有使用序列蒙特卡洛、群体蒙特卡洛、变分推断和拉普拉斯近似的方法。

每一步互信息目标的估计已经有嵌套蒙特卡洛、变分界、拉普拉斯近似、比值估计和混合方法。设计上的优化已经有贝叶斯优化、相互作用粒子系统、模拟退火、利用后悔界和老虎机方法。

有一些方法同时估计互信息并优化它,使用一个随机梯度过程。例子包括扰动分析、变分下界和多层蒙特卡洛。

一些最近的工作特别关注具有难解似然的模型。其他工作试图学习一种专注于特定可解情况的非短视的策略。

6 实验

我们现在在一系列实验设计问题上比较 DAD 和一些基线。我们通过扩展 PyTorch 和 Pyro 实现 DAD 来提供从特定问题抽象出来的实现。代码公开在 https://github.com/ae-foster/dad

由于我们的目的是实时适应设计,我们主要比较那些部署时快速的策略。最简单的基线是随机设计,随机均匀地选择设计。

A 证明

定理 1TT 个实验的序列上对于策略 π\pi 的总期望信息增益为

IT(π)Ep(θ)p(hTθ,π)[t=1TIht1(ξt)](7)\mathcal{I}_T(\pi)\coloneqq\mathbb{E}_{p(\theta)p(h_T|\theta,\pi)}\Bigg[\sum_{t=1}^T I_{h_{t-1}}(\xi_t)\Bigg]\tag{7}

=Ep(θ)p(hTθ,π)[logp(hTθ,π)logp(hTπ)](8)=\mathbb{E}_{p(\theta)p(h_T|\theta,\pi)}[\log p(h_T|\theta,\pi)-\log p(h_T|\pi)]\tag{8}

其中 p(hTπ)=Ep(θ)[p(hTθ,π)]p(h_T|\pi)=\mathbb{E}_{p(\theta)}[p(h_T|\theta,\pi)]

证明 我们首先用信息增益重写 Iht1I_{h_{t-1}}。这与我们在第 2 节中介绍的发展非常相似。通过贝叶斯定理的反复应用,我们得到