文章目录
VAE的纯逻辑推导
一、初始设定
-
为了更具体的逻辑讨论,我们假定表示输入图片的随机变量 X X X(以下简称输入图片),表示编码的随机变量 h h h(以下简称编码),表示得到的重构图片的随机变量 X ^ \hat X X^(以下简称重构图片)
-
对于编码器和解码器,我们用三个变量来表示,{ ϕ \phi ϕ, h h h, X X X},其中 ϕ \phi ϕ表示“器”的所有参数, h h h表示编码, X X X表示图片(对于编码器是输入图片,对于解码器是重构图片)
-
我们所有的假设都是趋于【完美】,所有的假设的根本出发点都是为了设计出能求的算法
-
P ϕ ( X , h ) P_{\phi}(X,h) Pϕ(X,h)表示在给定 ϕ \phi ϕ的参数下, X X X和 h h h的联合分布
-
K L ( P ( x ) ∣ ∣ P ( y ) ) KL(P(x)||P(y)) KL(P(x)∣∣P(y))表示两个分布 x x x, y y y的KL距离
VAE流程
X X X → \rightarrow → Encoder(参数: ϕ \phi ϕ) → \rightarrow → h h h → \rightarrow → Decoder(参数: θ \theta θ) → \rightarrow → X ^ \hat X X^
核心推导
从理想出发
【完美】情况下,我们希望得到一个完全相同的编码器和解码器,即
L o s s ( ϕ , θ , X , h , X ^ ) = K L ( P ϕ ( X , h ) ∣ ∣ P θ ( X ^ , h ) ) = 0 Loss(\phi, \theta,X,h,\hat{X}) = KL(P_{\phi}(X,h)||P_{\theta}(\hat{X},h))=0 Loss(ϕ,θ,X,h,X^)=KL(Pϕ(X,h)∣∣Pθ(X^,h))=0
但是可能得不到,那就尽量减少 K L ( ⋅ ∣ ∣ ⋅ ) KL(\cdot||\cdot) KL(⋅∣∣⋅)吧(KL距离非负):
min L o s s ( ϕ , θ , X , h , X ^ ) = K L ( P ϕ ( X , h ) ∣ ∣ P θ ( X ^ , h ) ) \min \quad Loss(\phi, \theta,X,h,\hat{X}) =KL(P_{\phi}(X,h)||P_{\theta}(\hat{X},h)) minLoss(ϕ,θ,X,h,X^)=KL(Pϕ(X,h)∣∣Pθ(X^,h))
数学知识告诉我们
L o s s ( ϕ , θ , X , h , X ^ ) = K L ( P ϕ ( X , h ) ∣ ∣ P θ ( X ^ , h ) ) = ∑ X , h , X ^ P ϕ ( h , X ) log P ϕ ( h , X ) P θ ( h , X ^ ) = ∑ X , h , X ^ P ϕ ( X ) P ϕ ( h ∣ X ) log P ϕ ( X ) P ϕ ( h ∣ X ) P θ ( X ^ ) P θ ( h ∣ X ^ ) \begin{aligned} Loss(\phi, \theta,X,h,\hat{X}) = &KL(P_{\phi}(X,h)||P_{\theta}(\hat{X},h))\\ =& \sum_{X,h,\hat{X}} P_{\phi}(h,X)\log\frac{P_{\phi}(h,X)}{P_{\theta}(h,\hat{X})} \\ =&\sum_{X,h,\hat{X}} P_\phi(X)P_{\phi}(h|X)\log\frac{P_\phi(X)P_{\phi}(h|X)}{P_{\theta}(\hat{X})P_{\theta}(h|\hat{X})} \end{aligned} Loss(ϕ,θ,X,h,X^)===KL(Pϕ(X,h)∣∣Pθ(X^,h))X,h,X^∑Pϕ(h,X)logPθ(h,X^)Pϕ(h,X)X,h,X^∑Pϕ(X)Pϕ(h∣X)logPθ(X^)Pθ(h∣X^)Pϕ(X)Pϕ(h∣X)
到此为止,能推导的部分已经结束了,在向下就需要做一些假设才能向下推,甚至于有一些假设与原设定相悖,但是没办法,不假设就推不下去GG了
从理想假设 ( A s s u m p t i o n 1 Assumption_1 Assumption1)
【完美】情况下,我们最终得到的 X X X和 X ^ \hat{X} X^应该是一模一样的,所以我们假设重构的 X ^ \hat{X} X^的分布和 X X X一样,所以
L o s s ( ϕ , θ , X , h ) = K L ( P ϕ ( X , h ) ∣ ∣ P θ ( X , h ) ) = ∑ X , h P ϕ