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

news2024/10/1 7:35:57

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

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

引言

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

回顾

神经网络的执行过程

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

  • 基于一个复杂函数 Y = f ( X ) \mathcal Y = f(\mathcal X) Y=f(X),可通过神经网络进行学习,并对该函数进行近似描述。
    生成模型综述-神经网络结构逼近复杂函数
  • 根据具体任务以及输出信息 Y \mathcal Y Y的性质,去构建对应策略(目标函数/损失函数):
    例如线性回归( Linear Regression \text{Linear Regression} Linear Regression)任务中,使用最小二乘估计预测结果 W T x ( i ) \mathcal W^Tx^{(i)} WTx(i)真实标签 y ( i ) y^{(i)} y(i)之间的关联关系进行描述:
    这里省略了偏置信息 b b b,并且 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))是数据集合中的一个样本。
    L ( W ) = ∑ i = 1 N ∣ ∣ W T x ( i ) − y ( i ) ∣ ∣ 2 \mathcal L(\mathcal W) = \sum_{i=1}^N ||\mathcal W^Tx^{(i)} - y^{(i)}||^2 L(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 Z Z后验概率分布 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 Z Z‘边缘概率分布’,而是条件概率分布 Q ( Z ∣ X ) \mathcal Q(\mathcal Z \mid \mathcal X) Q(ZX)缩写而成。
    log ⁡ P ( X ) = ∫ Z Q ( Z ) ⋅ [ P ( X , Z ) Q ( Z ) ] d Z − ∫ Z Q ( Z ) ⋅ [ P ( Z ∣ X ) Q ( Z ) ] d Z = 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 = ∫ Z Q ( Z ) ⋅ [ P ( X , Z ) Q ( Z ) ] d Z = 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 ( ϕ ) = E Q ( 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 ( ϕ ) ≈ 1 N ∑ n = 1 N { ∇ ϕ 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=1N High Variance ϕlogQ(z(n);ϕ)[logP(X,z(n))logQ(z(n);ϕ)]
    针对已经被视作函数 Q ( Z ; ϕ ) \mathcal Q(\mathcal Z;\phi) Q(Z;ϕ),通过重参数化技巧,通过构建一个 随机变量 ϵ \epsilon ϵ,使得 ϵ \epsilon ϵ隐变量 Z \mathcal Z Z之间存在如下函数关系:
    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;ϕ)之间存在如下关系:
    E Q ( Z ; ϕ ) [ f ( Z ) ] = E P ( ϵ ) { 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 ( ϕ ) = E Q ( Z ; ϕ ) { ∇ ϕ log ⁡ Q ( Z ; ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ; ϕ ) ] } = ∇ ϕ ∫ Z Q ( Z ; ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ; ϕ ) ] d Z = E P ( ϵ ) [ ∇ ϕ ( log ⁡ P ( X , Z ) − log ⁡ Q ( Z ; ϕ ) ) ] = E P ( ϵ ) [ ∇ 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 Z Z简单分布对应变量 ϵ \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 G G,同样可以描述成如下结构:
重参数化技巧——神经网络结构

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

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

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

  • 这里的‘确定性变换’是指:当变量 Z \mathcal Z Z确定的条件下,那么变量 Y \mathcal Y Y根据函数 f ( Z ; μ , σ ) f(\mathcal Z;\mu,\sigma) f(Z;μ,σ)也跟着确定。也就是说 Z , Y \mathcal Z,\mathcal Y Z,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 ) = ∇ Y J ( 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 X X条件下,随机变量 Y \mathcal Y Y的条件概率分布满足如下关系:
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 Y Y与随机变量 X \mathcal X X之间描述成如下函数关系:
{ 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 Y Y与随机变量 Z \mathcal Z Z之间的关系进行验证

  • 关键点1:从概率密度函数的角度观察,由于 X \mathcal X X是条件,是已知量。因而可以将 N ( μ , σ 2 ∣ X ) \mathcal N(\mu,\sigma^2 \mid \mathcal X) N(μ,σ2X)看作是随机变量 X \mathcal X X参与的概率密度函数: N [ μ ( X ) , σ 2 ( X ) ] \mathcal N[\mu(\mathcal X),\sigma^2(\mathcal X)] N[μ(X),σ2(X)]
  • 证明期望 E P ( Y ∣ X ) [ f ( Y ) ] \mathbb E_{\mathcal P(\mathcal Y \mid \mathcal X)} [f(\mathcal Y)] EP(YX)[f(Y)]转换成期望 E P ( 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 Y Y被替换成 μ ( 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 Z Y=μ(X)+σ(X)×Z代入的过程中,由于是对 Z \mathcal Z Z求解偏导,因而有 d Y = d [ μ ( X ) + σ ( X ) × Z ] = σ ( X ) d Z d\mathcal Y = d[\mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z] = \sigma(\mathcal X) d\mathcal Z dY=d[μ(X)+σ(X)×Z]=σ(X)dZ

E P ( Y ∣ X ) [ f ( Y ) ] = ∫ Y P ( Y ∣ X ) ⋅ f ( Y ) d Y = ∫ Y 1 σ ( X ) ⋅ 2 π exp ⁡ { − [ Y − μ ( X ) ] 2 2 σ 2 ( X ) } ⏟ N [ μ ( X ) , σ 2 ( X ) ] ⋅ f ( Y ) d Y = ∫ Z 1 σ ( X ) ⋅ 2 π exp ⁡ { − [ μ ( X ) + σ ( X ) × Z − μ ( X ) ] 2 2 σ 2 ( X ) } ⋅ f [ μ ( X ) + σ ( X ) × Z ] ⋅ σ ( X ) d Z ⏟ d [ μ ( X ) + σ ( X ) × Z ] = ∫ Z 1 2 π ⋅ exp ⁡ ( − Z 2 2 ) ⏟ P ( Z ) = N ( 0 , 1 ) ⋅ f [ μ ( X ) + σ ( X ) × Z ] d Z = ∫ Z P ( Z ) ⋅ f [ μ ( X ) + σ ( X ) × Z ] d Z = E P ( 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 Y Y作为输出,学习并逼近函数 Y = μ ( X ) + σ ( X ) × Z \mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z Y=μ(X)+σ(X)×Z
重参数化技巧——函数拟合条件概率分布
继续向下观察。从 Y = μ ( X ) + σ ( X ) × Z \mathcal Y = \mu(\mathcal X) + \sigma(\mathcal X) \times \mathcal Z Y=μ(X)+σ(X)×Z中可以观察到:

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

既然 μ , σ \mu,\sigma μ,σ函数均以随机变量 X \mathcal X X作为输入,这里将这两个函数的参数统一描述成 θ \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 Y Y的分布是 N ( μ , σ ∣ X ) \mathcal N(\mu,\sigma\mid \mathcal X) N(μ,σX),这里的 μ , σ \mu,\sigma μ,σ被赋予了实际意义。但真实情况是,这个条件概率分布 Y \mathcal Y Y可能非常复杂。我们对模型参数组成可能一无所知。
重参数化技巧——函数拟合条件概率分布(细致划分2)
同样可以构建一个目标函数 J ( Y ) \mathcal J(\mathcal Y) J(Y),通过链式求导法则,将对应的模型参数梯度进行求解。
示例:如果通过重参数化技巧产生样本所代表的概率分布 Y p r e d \mathcal Y_{pred} Ypred与真实分布 Y \mathcal Y Y之间的差距(可以看成一个基于分布的回归任务),可以通过最小二乘估计对差距进行描述:

  • 这里以第一种模型结构为例。
  • 其中 Y g e n e ( i ) \mathcal Y_{gene}^{(i)} Ygene(i)就是图中 Y \mathcal Y Y通过上述模型结构产生的一个样本(幻想粒子),与对应真实分布中的 Y ( i ) \mathcal Y^{(i)} Y(i)样本进行比较。
    J ( Y g e n e ; θ ) = ∑ i = 1 N ∣ ∣ Y g e n e ( i ) − Y ( i ) ∣ ∣ 2 \mathcal J(\mathcal Y_{gene};\theta) = \sum_{i=1}^N ||\mathcal Y_{gene}^{(i)} - \mathcal Y^{(i)}||^2 J(Ygene;θ)=i=1N∣∣Ygene(i)Y(i)2
    对应梯度 ∇ θ J ( Y g e n e ; θ ) \nabla_{\theta}\mathcal J(\mathcal Y_{gene};\theta) θJ(Ygene;θ)可表示为:
    ∇ θ J ( Y g e n e ; θ ) = ∂ J ( Y g e n e ; θ ) ∂ Y g e n e ⋅ ∂ Y g e n e ∂ μ ( X ; θ ) ⋅ ∂ μ ( X ; θ ) ∂ θ + ∂ J ( Y g e n e ; θ ) ∂ Y g e n e ⋅ ∂ Y g e n e ∂ σ ( 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 Y Y是存在约束条件的。即: Y \mathcal Y Y是一个 连续分布。这才能使 ∂ Y g e n e ∂ μ ( X ; θ ) , ∂ Y g e n e ∂ σ ( 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.coloradmin.cn/o/348394.html

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

相关文章

机器视觉----易灵思FPGA

一、机器视觉概述 机器视觉无处不在,产品上如果有了机器视觉,那么这个产品在很大的意义上已经赋予了机器智能。例如机器人、无人机、工业检测,这些都需要机器视觉,但是他们的传感器和算法都不同。我们今天重点讨论工业相机行业的应…

大模型相关技术综述

中文大模型、多模态大模型&大模型训练语料持续迭代大模型演进历史预训练模型word2vecword2vec属于NLP领域无监督学习和比较学习的先祖。精髓在于可以用不带标签的文本语料输入神经网络模型,就可以学习到每个词的带语的词向量表示。它背后原理其实就是人类讲出来…

真实3D地形生成器【免费在线】

Terrain3D是一个免费的在线3D地形生成器,只需指定地球上的坐标,就可以自动生成附近区域的3D地形同时叠加卫星影像,并且可以导出GLTF格式的3D地形模型。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。 使用Terrain3D生成真实世界的3…

字节青训营——秒杀系统设计学习笔记(三)

限流算法 限流顾名思义,就是对请求或并发数进行限制;通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而…

JavaSE学习day7_02 封装和构造方法

4. 封装 面向对象的三大特征: 封装、继承、多态 封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为。 比如人画圆:”画“这个行为应该封装在圆这个类,为什么?因为”画“圆要知道圆…

Pandas基础与实例——人工智能基础

本文目录一、 Series1. 将列表强转为Series2. 将字典强转为Series3. 访问Series中的数据3.1 第一套检索方法3.2 第二套检索方法4. Series常用属性二、Pandas日期类型数据处理1. 将字符串转为datetime类型2. 与1等价的方式3. 单独取出年月日4. 日期运算5. 生成一组日期6. 生成工…

AJAX笔记(二)Fetch和axios

1、Fetch 1.1、XMLHttpRequest的缺陷 1.2、fetch的get写法 1.3、fetch的post写法 1.4、fetch的put写法 1.5、fetch的patch写法 1.6、fetch的delete写法 2、axios 2.1、axios的介绍 2.2、axios的get写法 2.3、axios的post写法(图一json写法和图二三form写法&#x…

Django项目部署-uWSGI

Django项目部署-uWSGIDjango运维部署框架整体部署架构web服务器与web应用服务器的区别部署环境准备安装python3安装mariadb安装Django和相关模块Django托管服务器uWSGI使用uWSGI配置使用Django运维部署框架 整体部署架构 操作系统: Linux 。优势:生态系统丰富&…

NC113 验证IP地址

验证IP地址_牛客题霸_牛客网 描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1&#…

苹果手机怎么下载手机铃声?图文教程,快速学会

很多小伙伴喜欢使用苹果手机,可是苹果手机里的铃声自己并不是很喜欢听,想要下载一些好听的歌曲更换自己的手机铃声。苹果手机怎么下载手机铃声?别着急,今天小编以图文的方式,教教大家如何使用苹果手机下载手机铃声。 苹…

验证码绕过与识别

目录 验证码绕过 前言 删除cookie绕过 未销毁复用验证码 验证码识别 工具 使用流程 验证码绕过 前言 之前pikachu靶场有两道验证码绕过的题目,分别是(on client 前端验证验证码)和(on server 未销毁复用验证码),具体见下面的文章 Pikachu靶场…

IDEA热部署JRebel 插件

JRebel 是什么? 在我们的日常开发工作中,一般是都是 IDEA + Tomcat 部署运行 web 项目。项目运行之后,如果你修改了 Java 代码,想要生效就必须得重启 Tomcat 服务器才行。改一次代码就要重启一次,真的是太麻烦了,这会严重影响我们的开发效率。 那么有没有什么办法让我们不…

c语言入门-4-常量

c-常量正文字面常量1、字面常量2、const修饰的常变量3、#define 定义的标识符常量4、 枚举常量深度解析1 什么是常量2 常变量为什么不能定义数组的长度3 枚举的作用是什么4、C语言为何需要枚举?下一篇正文 变得量叫变量,不变的量叫常量 字面常量 1、字…

1. QSaveFile和QFile的简单使用

1. 说明 QSaveFile和QFile两个类都是用来操作文件的,区别在于QSaveFile在对文件进行写入时有一种保护机制,再写入出错时,不会对源文件中的内容进行操作。该类在执行写操作时,会先将内容写入到一个临时文件中,如果没有…

Flink Checkpoint 中的Aligned Checkpoint 和 Unaligned Checkpoint

文章目录知识点反压CheckpointBarrierAligned CheckpointUnaligned Checkpoint核心思想实现原理UC同步阶段UC异步阶段知识点 反压 反压是流式系统中关于处理能力的动态反馈机制,并且是从下游到上游的反馈,一般是在实时数据处理的过程中,上游…

Java POI导出之数据验证

Java POI导出之数据验证 maven 依赖 这里用的是apache.poi, 没有使用EasyExcel <!-- poi依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency&…

如何运维多集群数据库?58 同城 NebulaGraph Database 运维实践

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SktQW2qn-1676450580889)(https://www-cdn.nebula-graph.com.cn/nebula-website-5.0/images/blogs/58.%20Com%20Inc/58%E5%90%8C%E5%9F%8E_%E7%94%BB%E6%9D%BF%201.jpg)] 图计算业务背景介绍 我们为什…

jsp游戏门户网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 游戏门户网站系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

简单易用的图片缩略图处理库

哈喽&#xff0c;大家好&#xff0c;我是源小北。 最近在工作中&#xff0c;刚好有遇到对图片进行缩放处理的功能。于是&#xff0c;便拿起很久以前使用过的Java原生工具类处理图片&#xff0c;不过在开发过程中也发现了一些问题。 在Java中&#xff0c;原生的处理图片缩略图…

浅聊一下,可中断锁(ReentrantLock)

前言 今天早上上厕所&#xff0c;上的我痔疮犯了&#xff0c;屁股一坐下去就感觉一根针在刺我&#xff0c;得的是外痔&#xff0c;之前还坚持用痔疮膏来着&#xff0c;但是感觉涂药的那个姿势以及位置我实在无法忍受&#xff0c;就把它给断了&#xff0c;到头来还是屁股糟了罪&…