机器学习笔记之生成模型综述(五)重参数化技巧(随机反向传播)

news/2024/5/3 1:19:29/文章来源:https://blog.csdn.net/qq_34758157/article/details/129025131

机器学习笔记之生成模型综述——重参数化技巧[随机反向传播]

  • 引言
    • 回顾
      • 神经网络的执行过程
      • 变分推断——重参数化技巧
    • 重参数化技巧(随机反向传播)介绍
      • 示例描述——联合概率分布
      • 示例描述——条件概率分布
    • 总结

引言

本节将系统介绍重参数化技巧

回顾

神经网络的执行过程

上一节比较了概率图模型神经网络结构,介绍了它们的各自特点。神经网络(这里指前馈神经网络结构)本质上是一个 函数逼近器

  • 基于一个复杂函数Y=f(X)\mathcal Y = f(\mathcal X)Y=f(X),可通过神经网络进行学习,并对该函数进行近似描述。
    生成模型综述-神经网络结构逼近复杂函数
  • 根据具体任务以及输出信息Y\mathcal YY的性质,去构建对应策略(目标函数/损失函数):
    例如线性回归(Linear Regression\text{Linear Regression}Linear Regression)任务中,使用最小二乘估计预测结果WTx(i)\mathcal W^Tx^{(i)}WTx(i)真实标签y(i)y^{(i)}y(i)之间的关联关系进行描述:
    这里省略了偏置信息bbb,并且(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i))是数据集合中的一个样本。
    L(W)=∑i=1N∣∣WTx(i)−y(i)∣∣2\mathcal L(\mathcal W) = \sum_{i=1}^N ||\mathcal W^Tx^{(i)} - y^{(i)}||^2L(W)=i=1N∣∣WTx(i)y(i)2
  • 在确定目标函数后,使用梯度下降(Gradient Descent,GD\text{Gradient Descent,GD}Gradient Descent,GD)方法配合反向传播算法(Backward Propagation,BP\text{Backward Propagation,BP}Backward Propagation,BP)对神经网络内部权重、偏置参数进行学习与更新。

变分推断——重参数化技巧

在变分推断——重参数化技巧中,我们同样介绍过重参数化技巧:

  • 针对难求解的(Intractable\text{Intractable}Intractable)关于隐变量Z\mathcal ZZ后验概率分布P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX),通过变分推断(Variational Inference,VI\text{Variational Inference,VI}Variational Inference,VI)的手段,人为定义一个概率分布Q(Z)\mathcal Q(\mathcal Z)Q(Z)去近似P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)
    需要注意的是,这里的Q(Z)\mathcal Q(\mathcal Z)Q(Z)并非指的关于隐变量Z\mathcal ZZ‘边缘概率分布’,而是条件概率分布Q(Z∣X)\mathcal Q(\mathcal Z \mid \mathcal X)Q(ZX)缩写而成。
    log⁡P(X)=∫ZQ(Z)⋅[P(X,Z)Q(Z)]dZ−∫ZQ(Z)⋅[P(Z∣X)Q(Z)]dZ=ELBO+KL[Q(Z)∣∣P(Z∣X)]\begin{aligned} \log \mathcal P(\mathcal X) & = \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \left[\frac{\mathcal P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z)}\right] d\mathcal Z - \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \left[\frac{\mathcal P(\mathcal Z \mid \mathcal X)}{\mathcal Q(\mathcal Z)}\right] d\mathcal Z \\ & = \text{ELBO} + \text{KL} [\mathcal Q(\mathcal Z)||\mathcal P(\mathcal Z \mid \mathcal X)] \\ \end{aligned}logP(X)=ZQ(Z)[Q(Z)P(X,Z)]dZZQ(Z)[Q(Z)P(ZX)]dZ=ELBO+KL[Q(Z)∣∣P(ZX)]
  • 证据下界(Evidence of Lower Bound,ELBO\text{Evidence of Lower Bound,ELBO}Evidence of Lower Bound,ELBO)看作关于Q(Z)\mathcal Q(\mathcal Z)Q(Z)的一个函数。称作Q(Z)\mathcal Q(\mathcal Z)Q(Z)变分(Variation\text{Variation}Variation)。记作L[Q(Z)]\mathcal L[\mathcal Q(\mathcal Z)]L[Q(Z)]
    ELBO=∫ZQ(Z)⋅[P(X,Z)Q(Z)]dZ=L[Q(Z)]\begin{aligned} \text{ELBO} = \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \left[\frac{\mathcal P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z)}\right] d\mathcal Z = \mathcal L[\mathcal Q(\mathcal Z)] \end{aligned}ELBO=ZQ(Z)[Q(Z)P(X,Z)]dZ=L[Q(Z)]
  • 随机梯度变分推断(Stochastic Gradient Variational Inference, SGVI\text{Stochastic Gradient Variational Inference, SGVI}Stochastic Gradient Variational Inference, SGVI)的思路中,将条件概率分布Q(Z)\mathcal Q(\mathcal Z)Q(Z)视作一个关于参数ϕ\phiϕ的函数形式Q(Z;ϕ)\mathcal Q(\mathcal Z;\phi)Q(Z;ϕ),那么对应变分L[Q(Z)]\mathcal L[\mathcal Q(\mathcal Z)]L[Q(Z)]也可描述成关于ϕ\phiϕ函数形式:
    此时将求解分布Q(Z)\mathcal Q(\mathcal Z)Q(Z)的问题转化为求解最优参数ϕ^\hat \phiϕ^的问题。
    L[Q(Z)]=L[Q(Z;ϕ)]⇒L(ϕ)\mathcal L[\mathcal Q(\mathcal Z)] = \mathcal L[\mathcal Q(\mathcal Z;\phi)] \Rightarrow \mathcal L(\phi)L[Q(Z)]=L[Q(Z;ϕ)]L(ϕ)
    基于L(ϕ)\mathcal L(\phi)L(ϕ)求解最大值,使用梯度上升(Gradient Ascent,GA\text{Gradient Ascent,GA}Gradient Ascent,GA)方法近似求解。对应函数梯度表示如下:
    {ϕ(t+1)⇐ϕ(t)+η∇ϕL(ϕ)∇ϕL(ϕ)=EQ(Z;ϕ){∇ϕlog⁡Q(Z;ϕ)⋅[log⁡P(X,Z)−log⁡Q(Z;ϕ)]}\begin{cases} \phi^{(t+1)} \Leftarrow \phi^{(t)} + \eta \nabla_{\phi} \mathcal L(\phi) \\ \nabla_{\phi} \mathcal L(\phi) = \mathbb E_{\mathcal Q(\mathcal Z;\phi)} \left\{\nabla_{\phi}\log \mathcal Q(\mathcal Z;\phi) \cdot [\log \mathcal P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z;\phi)] \right\} \end{cases}{ϕ(t+1)ϕ(t)+ηϕL(ϕ)ϕL(ϕ)=EQ(Z;ϕ){ϕlogQ(Z;ϕ)[logP(X,Z)logQ(Z;ϕ)]}
  • 在使用蒙特卡洛方法进行采样近似过程中,关于∇ϕlog⁡Q(Z;ϕ)\nabla_{\phi}\log \mathcal Q(\mathcal Z;\phi)ϕlogQ(Z;ϕ)极容易出现高方差现象(High Variance\text{High Variance}High Variance),导致采样出的梯度结果∇ϕL(ϕ)\nabla_{\phi} \mathcal L(\phi)ϕL(ϕ)极不稳定:
    ∇ϕL(ϕ)≈1N∑n=1N{∇ϕlog⁡Q(z(n);ϕ)⏟High Variance[log⁡P(X,z(n))−log⁡Q(z(n);ϕ)]}\nabla_{\phi}\mathcal L(\phi) \approx \frac{1}{N} \sum_{n=1}^N \left\{\underbrace{\nabla_{\phi} \log \mathcal Q(z^{(n)};\phi)}_{\text{High Variance}} \left[\log \mathcal P(\mathcal X,z^{(n)}) - \log \mathcal Q(z^{(n)};\phi)\right]\right\}ϕL(ϕ)N1n=1NHigh VarianceϕlogQ(z(n);ϕ)[logP(X,z(n))logQ(z(n);ϕ)]
    针对已经被视作函数Q(Z;ϕ)\mathcal Q(\mathcal Z;\phi)Q(Z;ϕ),通过重参数化技巧,通过构建一个 随机变量ϵ\epsilonϵ,使得ϵ\epsilonϵ隐变量Z\mathcal ZZ之间存在如下函数关系:
    Z=G(ϵ,X;ϕ)\mathcal Z = \mathcal G(\epsilon,\mathcal X ;\phi)Z=G(ϵ,X;ϕ)
    从而使得ϵ\epsilonϵ对应的概率分布P(ϵ)\mathcal P(\epsilon)P(ϵ)分布Q(Z;ϕ)\mathcal Q(\mathcal Z;\phi)Q(Z;ϕ)之间存在如下关系:
    EQ(Z;ϕ)[f(Z)]=EP(ϵ){f[G(ϵ,X;ϕ)]}\mathbb E_{\mathcal Q(\mathcal Z;\phi)} \left[f(\mathcal Z)\right] = \mathbb E_{\mathcal P(\epsilon)} \left\{f[\mathcal G(\epsilon,\mathcal X;\phi)]\right\}EQ(Z;ϕ)[f(Z)]=EP(ϵ){f[G(ϵ,X;ϕ)]}
    将上述关系带回原式,通过链式求导法则,可以表示成如下形式:
    • 将期望形式化简回积分形式。
    • 牛顿-莱布尼兹公式,将∇ϕ\nabla_{\phi}ϕ提到积分号前,后面再带回去。
    • Z=G(ϵ,X;ϕ)\mathcal Z = \mathcal G(\epsilon,\mathcal X;\phi)Z=G(ϵ,X;ϕ)代入,并将采样分布Q(Z;ϕ)\mathcal Q(\mathcal Z;\phi)Q(Z;ϕ)替换为P(ϵ)\mathcal P(\epsilon)P(ϵ).
      ∇ϕL(ϕ)=EQ(Z;ϕ){∇ϕlog⁡Q(Z;ϕ)⋅[log⁡P(X,Z)−log⁡Q(Z;ϕ)]}=∇ϕ∫ZQ(Z;ϕ)⋅[log⁡P(X,Z)−log⁡Q(Z;ϕ)]dZ=EP(ϵ)[∇ϕ(log⁡P(X,Z)−log⁡Q(Z;ϕ))]=EP(ϵ)[∇Z(log⁡P(X,Z)−log⁡Q(Z;ϕ))⋅∇ϕG(ϵ,X;ϕ)]\begin{aligned} \nabla_{\phi}\mathcal L(\phi) & = \mathbb E_{\mathcal Q(\mathcal Z;\phi)} \left\{\nabla_{\phi}\log \mathcal Q(\mathcal Z;\phi) \cdot [\log \mathcal P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z;\phi)] \right\} \\ & = \nabla_{\phi} \int_{\mathcal Z} \mathcal Q(\mathcal Z;\phi) \cdot \left[\log \mathcal P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z;\phi)\right] d\mathcal Z \\ & = \mathbb E_{\mathcal P(\epsilon)} \left[\nabla_{\phi}(\log \mathcal P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z;\phi))\right] \\ & = \mathbb E_{\mathcal P(\epsilon)} [\nabla_{\mathcal Z}(\log \mathcal P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z;\phi)) \cdot \nabla_{\phi}\mathcal G(\epsilon,\mathcal X;\phi)] \end{aligned}ϕL(ϕ)=EQ(Z;ϕ){ϕlogQ(Z;ϕ)[logP(X,Z)logQ(Z;ϕ)]}=ϕZQ(Z;ϕ)[logP(X,Z)logQ(Z;ϕ)]dZ=EP(ϵ)[ϕ(logP(X,Z)logQ(Z;ϕ))]=EP(ϵ)[Z(logP(X,Z)logQ(Z;ϕ))ϕG(ϵ,X;ϕ)]

通过这种重参数化技巧——将 变量Z\mathcal ZZ简单分布对应变量ϵ\epsilonϵ 之间构建关联关系的方式,仅需要从简单分布P(ϵ)\mathcal P(\epsilon)P(ϵ)中进行采样,也可以采集出∇ϕL(ϕ)\nabla_{\phi}\mathcal L(\phi)ϕL(ϕ)中的样本。

重参数化技巧(随机反向传播)介绍

关于神经网络,可以通过通用逼近定理(Universal Approximation Theorem\text{Universal Approximation Theorem}Universal Approximation Theorem)来逼近任意函数。那么神经网络是否也可以用来 逼近概率分布 呢?
从概率图模型的视角,概率分布P(X)\mathcal P(\mathcal X)P(X)就是概率图模型结构的表示(Representation\text{Representation}Representation)。如果能够直接使用神经网络直接将P(X)\mathcal P(\mathcal X)P(X)描述出来,就称之为随机反向传播(Stochastic Backward Propagation\text{Stochastic Backward Propagation}Stochastic Backward Propagation),也称重参数化技巧(Reparametrization Trick\text{Reparametrization Trick}Reparametrization Trick)。

在上面关于变分推断——重参数化技巧的过程中,关于Z=G(ϵ,X;ϕ)\mathcal Z = \mathcal G(\epsilon,\mathcal X;\phi)Z=G(ϵ,X;ϕ)中的函数G\mathcal GG,同样可以描述成如下结构:
重参数化技巧——神经网络结构

这里从简单的概率分布开始,观察如何使用重参数化技巧对概率分布进行描述的。

示例描述——联合概率分布

假设某随机变量Y\mathcal YY服从均值为μ\muμ,方差为σ2\sigma^2σ2一维正态分布
P(Y)=N(μ,σ2)\mathcal P(\mathcal Y) = \mathcal N(\mu,\sigma^2)P(Y)=N(μ,σ2)
如果直接从这个分布中进行采样,可能是复杂的。但是如果可以假定一个变量Z\mathcal ZZ服从标准正态分布N(0,1)\mathcal N(0,1)N(0,1),并且Y,Z\mathcal Y,\mathcal ZY,Z之间满足如下关系:
Y=μ+σ×Z\mathcal Y = \mu + \sigma \times \mathcal ZY=μ+σ×Z
那么则有:
该部分推导过程详见:变分推断——重参数化技巧
EP(Y)[f(Y)]=EP(Z)[f(μ+σ×Z)]\mathbb E_{\mathcal P(\mathcal Y)} [f(\mathcal Y)] = \mathbb E_{\mathcal P(\mathcal Z)} [f(\mu + \sigma \times \mathcal Z)]EP(Y)[f(Y)]=EP(Z)[f(μ+σ×Z)]
这种替换采样分布的操作意味着:在给定Z\mathcal ZZ分布的条件下,完全可以通过采样Z\mathcal ZZ分布,得到Y\mathcal YY分布的样本
这里的Z(i),Y(i)\mathcal Z^{(i)},\mathcal Y^{(i)}Z(i),Y(i)分别表示概率分布P(Z),P(Y)\mathcal P(\mathcal Z),\mathcal P(\mathcal Y)P(Z),P(Y)中采集的样本。
{Z(i)∼N(0,1)Y(i)=μ+σ×Z(i)\begin{cases} \mathcal Z^{(i)} \sim \mathcal N(0,1) \\ \mathcal Y^{(i)} = \mu + \sigma \times \mathcal Z^{(i)} \end{cases}{Z(i)N(0,1)Y(i)=μ+σ×Z(i)
重新观察Y=μ+σ×Z\mathcal Y = \mu + \sigma \times \mathcal ZY=μ+σ×Z,这明显就是一个简单的一次函数。从广义的角度观察,可以将Y,Z\mathcal Y,\mathcal ZY,Z之间满足如下函数关系
其中Z\mathcal ZZ在函数中表示变量;μ,σ\mu,\sigmaμ,σ在函数中表示权重参数。
Y=f(Z;μ,σ)\mathcal Y = f(\mathcal Z;\mu,\sigma)Y=f(Z;μ,σ)
这意味着:我们不否认变量Y\mathcal YY具有随机性,只不过变量Y\mathcal YY的随机性由变量Z\mathcal ZZ决定。也就是说,除了Z\mathcal ZZ的随机性,其他变量(这里指的Y\mathcal YY)都是确定性变换,那么完全可以使用神经网络对函数f(Z;μ,σ)f(\mathcal Z;\mu,\sigma)f(Z;μ,σ)进行逼近:

  • 这里的‘确定性变换’是指:当变量Z\mathcal ZZ确定的条件下,那么变量Y\mathcal YY根据函数f(Z;μ,σ)f(\mathcal Z;\mu,\sigma)f(Z;μ,σ)也跟着确定。也就是说Z,Y\mathcal Z,\mathcal YZ,Y之间存在明确的映射关系。
  • 使用神经网络逼近函数,完全不用担心原始函数中的参数μ,σ\mu,\sigmaμ,σ,因为被替代的神经网络权重参数θ\thetaθ本身没有实际意义。
    重参数化技巧——函数拟合联合概率分布
    如果定义J(Y)\mathcal J(\mathcal Y)J(Y)目标函数,在对目标函数求解极值的过程中,对模型参数θ\thetaθ求解梯度。根据链式求导法则梯度∇θJ(Y)\nabla_{\theta}\mathcal J(\mathcal Y)θJ(Y) 可表示为如下形式:
    {J(Y)=J[f(Z;μ,σ)]∇θJ(Y)=∇YJ(Y)⋅∇θf(Z;μ,σ)\begin{cases} \mathcal J(\mathcal Y) = \mathcal J[f(\mathcal Z;\mu,\sigma)] \\ \nabla_{\theta} \mathcal J(\mathcal Y) = \nabla_{\mathcal Y} \mathcal J(\mathcal Y) \cdot \nabla_{\theta}f(\mathcal Z;\mu,\sigma) \end{cases}{J(Y)=J[f(Z;μ,σ)]θJ(Y)=YJ(Y)θf(Z;μ,σ)

示例描述——条件概率分布

假设给定随机变量X\mathcal XX条件下,随机变量Y\mathcal YY的条件概率分布满足如下关系:
P(Y∣X)=N(μ,σ2∣X)\mathcal P(\mathcal Y \mid \mathcal X) = \mathcal N(\mu,\sigma^2 \mid \mathcal X)P(YX)=N(μ,σ2X)
与上面描述对应,可以根据分布N(μ,σ2∣X)\mathcal N(\mu,\sigma^2 \mid \mathcal X)N(μ,σ2X),可以将随机变量Y\mathcal YY与随机变量X\mathcal XX之间描述成如下函数关系:
{Z∼N(0,1)Y=μ(X)+σ(X)×Z\begin{cases} \mathcal Z \sim \mathcal N(0,1) \\ \mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z \end{cases}{ZN(0,1)Y=μ(X)+σ(X)×Z
同样可以使用上述方法,对随机变量Y\mathcal YY与随机变量Z\mathcal ZZ之间的关系进行验证

  • 关键点1:从概率密度函数的角度观察,由于X\mathcal XX是条件,是已知量。因而可以将N(μ,σ2∣X)\mathcal N(\mu,\sigma^2 \mid \mathcal X)N(μ,σ2X)看作是随机变量X\mathcal XX参与的概率密度函数:N[μ(X),σ2(X)]\mathcal N[\mu(\mathcal X),\sigma^2(\mathcal X)]N[μ(X),σ2(X)]
  • 证明期望EP(Y∣X)[f(Y)]\mathbb E_{\mathcal P(\mathcal Y \mid \mathcal X)} [f(\mathcal Y)]EP(YX)[f(Y)]转换成期望EP(Z){f[μ(X)+σ(X)×Z]}\mathbb E_{\mathcal P(\mathcal Z)} \{f[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z]\}EP(Z){f[μ(X)+σ(X)×Z]}的过程实际上是描述Y\mathcal YY被替换成μ(X)+σ(X)×Z\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Zμ(X)+σ(X)×Z后,其采样分布也会由P(Y∣X)\mathcal P(\mathcal Y \mid \mathcal X)P(YX)转换成P(Z)\mathcal P(\mathcal Z)P(Z),而不仅仅是单纯意义上的替换。
  • 关键点2:将Y=μ(X)+σ(X)×Z\mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal ZY=μ(X)+σ(X)×Z代入的过程中,由于是对Z\mathcal ZZ求解偏导,因而有dY=d[μ(X)+σ(X)×Z]=σ(X)dZd\mathcal Y = d[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z] = \sigma(\mathcal X) d\mathcal ZdY=d[μ(X)+σ(X)×Z]=σ(X)dZ

EP(Y∣X)[f(Y)]=∫YP(Y∣X)⋅f(Y)dY=∫Y1σ(X)⋅2πexp⁡{−[Y−μ(X)]22σ2(X)}⏟N[μ(X),σ2(X)]⋅f(Y)dY=∫Z1σ(X)⋅2πexp⁡{−[μ(X)+σ(X)×Z−μ(X)]22σ2(X)}⋅f[μ(X)+σ(X)×Z]⋅σ(X)dZ⏟d[μ(X)+σ(X)×Z]=∫Z12π⋅exp⁡(−Z22)⏟P(Z)=N(0,1)⋅f[μ(X)+σ(X)×Z]dZ=∫ZP(Z)⋅f[μ(X)+σ(X)×Z]dZ=EP(Z){f[μ(X)+σ(X)×Z]}\begin{aligned} \mathbb E_{\mathcal P(\mathcal Y \mid \mathcal X)} [f(\mathcal Y)] & = \int_{\mathcal Y} \mathcal P(\mathcal Y \mid \mathcal X) \cdot f(\mathcal Y) d\mathcal Y \\ & = \int_{\mathcal Y} \underbrace{\frac{1}{\sigma(\mathcal X) \cdot \sqrt{2\pi}}\exp \left\{-\frac{[\mathcal Y - \mu(\mathcal X)]^2}{2\sigma^2(\mathcal X)}\right\}}_{\mathcal N[\mu(\mathcal X),\sigma^2(\mathcal X)]} \cdot f(\mathcal Y) d\mathcal Y \\ & = \int_\mathcal Z \frac{1}{\sigma(\mathcal X) \cdot \sqrt{2\pi}} \exp \left\{-\frac{[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z - \mu(\mathcal X)]^2}{2\sigma^2(\mathcal X)}\right\} \cdot f[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z] \cdot \underbrace{\sigma(\mathcal X) d\mathcal Z}_{d[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z]} \\ & = \int_{\mathcal Z} \underbrace{\frac{1}{\sqrt{2\pi}} \cdot \exp \left(-\frac{\mathcal Z^2}{2}\right)}_{\mathcal P(\mathcal Z) = \mathcal N(0,1)} \cdot f[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z] d\mathcal Z \\ & = \int_{\mathcal Z}\mathcal P(\mathcal Z) \cdot f[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z] d\mathcal Z \\ & = \mathbb E_{\mathcal P(\mathcal Z)} \{f[\mu(\mathcal X) +\sigma(\mathcal X) \times \mathcal Z]\} \end{aligned}EP(YX)[f(Y)]=YP(YX)f(Y)dY=YN[μ(X),σ2(X)]σ(X)2π1exp{2σ2(X)[Yμ(X)]2}f(Y)dY=Zσ(X)2π1exp{2σ2(X)[μ(X)+σ(X)×Zμ(X)]2}f[μ(X)+σ(X)×Z]d[μ(X)+σ(X)×Z]σ(X)dZ=ZP(Z)=N(0,1)2π1exp(2Z2)f[μ(X)+σ(X)×Z]dZ=ZP(Z)f[μ(X)+σ(X)×Z]dZ=EP(Z){f[μ(X)+σ(X)×Z]}
同理,基于上述的神经网络描述,同样也可以随机变量X,Z∼N(0,1)\mathcal X,\mathcal Z \sim \mathcal N(0,1)X,ZN(0,1)为输入,Y\mathcal YY作为输出,学习并逼近函数Y=μ(X)+σ(X)×Z\mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal ZY=μ(X)+σ(X)×Z
重参数化技巧——函数拟合条件概率分布
继续向下观察。从Y=μ(X)+σ(X)×Z\mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal ZY=μ(X)+σ(X)×Z中可以观察到:

  • Y\mathcal YY是关于Z\mathcal ZZ的函数,其中参数是μ(X),σ(X)\mu(\mathcal X),\sigma(\mathcal X)μ(X),σ(X)
  • μ,σ\mu,\sigmaμ,σ均是关于X\mathcal XX的函数。

既然μ,σ\mu,\sigmaμ,σ函数均以随机变量X\mathcal XX作为输入,这里将这两个函数的参数统一描述成θ\thetaθ。即:μ(X;θ),σ(X;θ)\mu(\mathcal X;\theta),\sigma(\mathcal X;\theta)μ(X;θ),σ(X;θ)。这种变换意味着:仅通过学习模型参数θ\thetaθ,就可以将μ(X),σ(X)\mu(\mathcal X),\sigma(\mathcal X)μ(X),σ(X)均给表示出来。上述神经网络结构可细化成如下形式:
其中⊙\odot表示点乘;⊕\oplus表示数学加法。
重参数化技巧——函数拟合条件概率分布(细致划分1)
关于模型参数θ\thetaθ的参数学习过程可以很灵活。关于函数μ(X),σ(X)\mu(\mathcal X),\sigma(\mathcal X)μ(X),σ(X)可以再详细分成不同的模型参数μ(X;θ),σ(X;ϕ)\mu(\mathcal X;\theta),\sigma(\mathcal X;\phi)μ(X;θ),σ(X;ϕ)进行学习:
神经网络仅是一个‘函数逼近器’的作用,如何将模型参数学习的更好,可以有很深的挖掘空间。只不过这里我们事先知道Y\mathcal YY的分布是N(μ,σ∣X)\mathcal N(\mu,\sigma\mid \mathcal X)N(μ,σX),这里的μ,σ\mu,\sigmaμ,σ被赋予了实际意义。但真实情况是,这个条件概率分布Y\mathcal YY可能非常复杂。我们对模型参数组成可能一无所知。
重参数化技巧——函数拟合条件概率分布(细致划分2)
同样可以构建一个目标函数J(Y)\mathcal J(\mathcal Y)J(Y),通过链式求导法则,将对应的模型参数梯度进行求解。
示例:如果通过重参数化技巧产生样本所代表的概率分布Ypred\mathcal Y_{pred}Ypred与真实分布Y\mathcal YY之间的差距(可以看成一个基于分布的回归任务),可以通过最小二乘估计对差距进行描述:

  • 这里以第一种模型结构为例。
  • 其中Ygene(i)\mathcal Y_{gene}^{(i)}Ygene(i)就是图中Y\mathcal YY通过上述模型结构产生的一个样本(幻想粒子),与对应真实分布中的Y(i)\mathcal Y^{(i)}Y(i)样本进行比较。
    J(Ygene;θ)=∑i=1N∣∣Ygene(i)−Y(i)∣∣2\mathcal J(\mathcal Y_{gene};\theta) = \sum_{i=1}^N ||\mathcal Y_{gene}^{(i)} - \mathcal Y^{(i)}||^2J(Ygene;θ)=i=1N∣∣Ygene(i)Y(i)2
    对应梯度∇θJ(Ygene;θ)\nabla_{\theta}\mathcal J(\mathcal Y_{gene};\theta)θJ(Ygene;θ)可表示为:
    ∇θJ(Ygene;θ)=∂J(Ygene;θ)∂Ygene⋅∂Ygene∂μ(X;θ)⋅∂μ(X;θ)∂θ+∂J(Ygene;θ)∂Ygene⋅∂Ygene∂σ(X;θ)⋅∂σ(X;θ)∂θ\nabla_{\theta} \mathcal J(\mathcal Y_{gene};\theta) = \begin{aligned} \frac{\partial \mathcal J(\mathcal Y_{gene};\theta)}{\partial \mathcal Y_{gene}} \cdot \frac{\partial \mathcal Y_{gene}}{\partial \mu(\mathcal X;\theta)} \cdot \frac{\partial \mu(\mathcal X;\theta)}{\partial \theta} + \frac{\partial \mathcal J(\mathcal Y_{gene};\theta)}{\partial \mathcal Y_{gene}} \cdot \frac{\partial \mathcal Y_{gene}}{\partial \sigma(\mathcal X;\theta)} \cdot \frac{\partial \sigma(\mathcal X;\theta)}{\partial \theta} \end{aligned} θJ(Ygene;θ)=YgeneJ(Ygene;θ)μ(X;θ)Ygeneθμ(X;θ)+YgeneJ(Ygene;θ)σ(X;θ)Ygeneθσ(X;θ)

总结

通过上面的描述,通过重参数化技巧构造神经网络去逼近联合概率分布、条件概率分布。关于这种表示方式,对于生成分布Y\mathcal YY是存在约束条件的。即:Y\mathcal YY是一个 连续分布。这才能使∂Ygene∂μ(X;θ),∂Ygene∂σ(X;θ)\frac{\partial \mathcal Y_{gene}}{\partial \mu(\mathcal X;\theta)},\frac{\partial \mathcal Y_{gene}}{\partial \sigma(\mathcal X;\theta)}μ(X;θ)Ygene,σ(X;θ)Ygene有解。

至此,生成模型部分介绍结束,下一节将介绍流模型(Flow-based Model\text{Flow-based Model}Flow-based Model)。

相关参考:
生成模型6-重参数化技巧(随机后向传播)

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

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

相关文章

android 混淆后的异常信息 工具处理

我们可以利用SDK中tools下的proguardgui.bat工具和混淆对应文档进行反混淆处理 D:\Android\sdk\tools\proguard\bin\proguardgui.bat 工具在SDK中的位置,有的SDK版本不同这个工具的具体位置可能有改变,也可以在tools中直接搜索proguardgui.bat&#x…

【并发编程】【2】进程与线程

并发编程 2.进程与线程 2.1 进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管…

MQ技术选型

RocketMQ部署架构图NameServer:主要是对元数据的管理,包括Topic和路由信息的管理,底层由netty实现,是一个提供路由管理、路由注册和发现的无状态节点,类似于ZooKeeperBroker:消息中转站,负责收发…

chatGPT 配合excel /maxscript使用_初试

EXCEL 配合chatGPT方法一:利用excel的開發工具1打開excel的VB编辑器:如果頂部菜單上沒有看到開發工具,需要先按下面步驟打開開發工具:這樣按上面步驟就可以打開excel的開發工具~ 然後點擊VB~ 2让chatGPT帮忙写脚本在chatGPT上提问…

智慧校园人脸识别系统源码

智慧校园人脸识别系统源码 技术架构: 后端:Java 框架:springboot 前端页面:vue element-ui 小程序:小程序原生开发 电子班牌:Java Android 源码有演示,可正常上线运营可授权。 随着智慧校…

对撞双指针(一) 盛水最多的容器

描述 给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水 1.你不能倾斜容器 2.当n小于2时,视为不能形成容器&…

【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢

HashMap中为什么引入红黑树,而不是AVL树呢1. 概述 开始学习这个知识点之前我们需要知道,在JDK1.8 以及之前,针对HashMap有什么不同。 JDK 1.7的时候,HashMap的底层实现是数组 链表JDK1.8的时候,HashMap的底层实现是数…

秒杀项目的消息推送

目录 一、创建消费者 二、创建订单链路配置 1.定义RabbitMQ配置类 2.创建RabbitmqOrderConfig配置类 三、如何实现RabbitMQ重复投递机制 1.开启发送者消息确认模式 2.消息发送确认 ① 创建ConfirmCallBacker确认模式 ② 创建ReturnCallBack退回模式 3.创建生产者 …

零信任-Akamai零信任介绍(6)

​Akamai零信任介绍 Akamai是一家专注于分布式网络服务的公司,它提供了一系列的互联网内容和应用加速服务。关于Akamai的零信任,它指的是Akamai的安全架构中不存在任何一个环节是可以被单独的控制或影响的,因此可以提供更高的安全性。通过使…

Utkuici:一款功能强大的Nessus自动化任务实现工具

关于Utkuici 今天,随着信息技术系统的普及,网络安全领域的投资已大幅增加。各种规模的组织都需要进行漏洞管理、渗透测试和各种分析,以准确确定各自机构受网络威胁的影响程度。通过借助漏洞管理工具的行业领先者Tenable Nessus,我…

ChatGPT提示语编写指南

ChatGPT AI 对话模型自 2022 年 11 月下旬开始可用,此后用户一直在探索聊天机器人的局限性和功能。 然而,OpenAI 也在不断地进行调整,因此 ChatGPT 处于不断变化的状态。 但是我们在这个小指南中描述的提示应该是永恒的。 要获得想要的结果&…

Docker getting started

系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图…

蓝桥杯刷题024——天干地支

2020国赛 题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(w&#xff09…

2月第2周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年2月6日-2月12日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站…

【C语言技能树】浮点数在内存中的存储

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

企业降本增效的催化剂:敏捷迭代

伴随着开源技术的大爆发,新一代的软件技术如雨后春笋般层出不穷。每家企业在硬件及软件开发上都有许多开源技术可选,目的还是在于提高效率,降低开发成本。 本篇文章,带大家了解下促进企业降本增效的重要理念:敏捷迭代…

信息安全工程

信息安全工程信息安全工程信息安全工程概述信息安全工程理论基础支撑信息安全工程的理论基础质量管理基本概念信息安全工程原理ISSE活动中支持认证和认可的活动信息安全工程监理模型信息安全工程能力评估SSE-CMM(系统安全工程能力成熟度模型)SSE-CMM 的安…

Spring入门学习

Spring入门学习 文章目录Spring入门学习Spring概述Spring FrameworkIOCIOC容器DIIOC容器的实现类①FileSystemXmlApplicationContext②ClassPathXmlApplicationContext基于XML管理bean入门案例创建类创建xml在Spring配置文件中配置bean测试Spring概述 Spring 是最受欢迎的企业级…

TortoiseSVN的使用

基本概念 版本库 SVN保持数据的地方,所有的文件都保存在这个库中,Tortoise访问的就是远程服务器上的Subversion版本库。 工作拷贝 就是工作副本,可将版本库的文件拷贝到本地中,可以任意修改, 不会影响版本库。在你…

AcWing语法基础课笔记 第二章 printf语句与C++中的判断结构

第二章 printf语句与C中的判断结构 学习语言最好的方式就是实践&#xff0c;每当掌握一个新功能时&#xff0c;就要立即将这个功能应用到实践中。 ——闫学灿 一、printf输出格式 注意&#xff1a;使用printf 时最好添加头文件 #include <cstdio>。 Int、float、double、…