flow model
时间: 2023-11-15 22:17:40 浏览: 142
流模型是一种建立原始分布与简单分布之间映射关系的方法,通过对更简单的分布建模来绕开后验过于复杂无法求解的问题。其中一种流模型叫做Autoregressive Flow (ARFlow),它使用了重要的change of variables theorem来建立映射关系,并通过变化后的目标函数和梯度求解方法进行优化。ARFlow可以通过PixelCNN的Mask方法得到条件密度函数(CDF)分布的参数,并计算CDF得到变量z,并通过PDF计算Jacobian矩阵的行列式。另一种流模型是RealNVP,类似于Autoregressive Model,但不同之处在于RealNVP通过MLP获得用于计算CDF的对应分布的参数,然后根据这些参数计算变量z,并通过log_prob()方法得到概率密度函数。最后,如果处理离散数据,如图像中的像素值,连续方法可能会导致性能下降。因此,在流模型中可以给原始数据添加噪音来提高对离散数据的拟合性能。对于离散数据的建模,可以使用Gaussian Mixture Model (GMM),通过PyTorch的Distribution库计算GMM模型,其中每个数据的每个component的权重通过logits进行softmax计算。在ARFlow中,可以使用GMM的CDF计算概率,如果要进行采样,可以通过计算GMM的CDF的逆函数。采样过程类似于从GMM中采样一个数,可以先根据logits选择Gaussian component,然后从所选的Gaussian中采样得到最终的样本。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文