自学内容网 自学内容网

神经网络通俗理解学习笔记(4) 深度生成模型VAE、GAN

什么是生成式模型

判别式和生成式模型
判别式:CNN/RNN/transformer;生成式:AE/VAE/GAN
判别式模型学习类别边界,生成式学习数据分布

生成式模型以判别式模型为基础,通过一种组合得到的更复杂的模型

在这里插入图片描述

蒙特卡洛方法

用于求解复杂数学问题
或者实际生活中模拟概率事件
简单说就是求解概率分布问题的近似方法
目的就是估计数据的概率分布

采样 sampling
采样可以减小积分等计算量,便于各种统计推断和模型优化
蒙特卡洛采样:从概率分布中抽出样本,从而得到分布的近似

在这里插入图片描述

Importance Sampling
用于估计难以采样的分布的期望值
用易于采样的参考分布生成样本,然后用权重系数调整估计

在这里插入图片描述
马尔科夫链蒙特卡洛方法
Markov Chain Monte Carlo (MCMC)
生成系列状态来代表概率分布,不需要在整个分布空间中均匀采样

变分推断Variational Inference

参数估计
MLE:最大似然估计
最大后验估计MAP:
贝叶斯估计:直接推断后验概率分布

问题定义
Evidence通常是不可积的多重积分,导致后验分布无解析解
MCMC算法计算较慢,变分推断更适合求解大规模近似推断

算法思路
在这里插入图片描述

KL散度
用于衡量两个分布之间的距离
6个常见熵:信息熵、交叉熵、相对熵、联合熵、条件熵、互信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现对后验分布的估计

与MCMC方法对比
计算效率方面

  • MCMC:时间复杂度高,不易扩展到大规模数据集和高维数据集上·
  • 变分推断VI:计算速度快,迭代次数少, 可以处理大规模数据集和高维数据集
    准确度方面
  • MCMC: 无需对后验分布进行近似,更准确
  • VI:需要对后验分布形式进行假设,只能得到一个近似值

MCMC适合小规模数据集
变分推断适合大规模和高维度数据集

变分自编码器VAE

降维思想
减少描述数据的特征数量的过程,例如主成分分析(PCA)方法
编码器-解码器结构也可以实现降维思想

在这里插入图片描述
压缩表示可以捕捉原始数据的重要特征
同时减少噪声和冗余信息

自编码器(Autoencoder
输入层和输出层具有相同的大小,隐藏层的大小通常小于二者
最小化输入数据和解码数据之间的重构误差来学习参数

在这里插入图片描述
确保只有重要的数据能够通过并且重建

自编码器(Autoencoder)
编码器和解码器都是深度非线性时,自动编码器降维能力更强
编解码器有足够的自由度时,甚至可以将任何初始维度减少到1

在这里插入图片描述
自编码器(Autoencoder)
要尽量将数据主要的结构信息保留在简化的表示中
仔细控制和调整潜空间的大小和自编码器的“深度

在这里插入图片描述

器的局限自编码
自编码器训练,以最小损失为目标,而不管潜空间如何组织
受制于严重的过拟合问题,:很难直接用于内容生成任务

在这里插入图片描述

VAE基本思想
引入正则化来避免过拟合,输入编码不再是点,而是概率分布

概率生成模型
正则化:求MLE最大似然改求最大后验估计MAP

在这里插入图片描述
积分 形式 无解析解

怎么求?

所以引入变分

变分推理
设置一个参数化分布族,并在该族中寻找目标分布的最佳近似

通过最小化KL散度用q逼近p(真实的概率分布)

在这里插入图片描述

变分推理
损失函数:尽量无损重构+正则项

正则项使浅空间规则化

在这里插入图片描述

潜在空间可视化
鼓励隐变量分布接近高斯先验,但必要时偏离以描述输入特征

在这里插入图片描述
AE 空的地方容易生成无意义数据
只有KL正则项 无法区分

神经网络实现
编码器内共享结构和权重
协方差矩阵简化为对角阵
使用重参数化技巧

在这里插入图片描述

在这里插入图片描述

生成对抗网络Generative Adversarial Network

发展历史和重要意义
对抗学习:生成器+判别器
提供了全新的数据生成方法
推动了深度学习的发展
激发了对于机器创造力的思考

对抗生成思想
通过对抗双方的不断改进,达到一个最优解
生成器生成数据,判别器判别真伪

举一个例子
假设有一个画家和一个鉴赏家,画家要画出逼真画作,鉴赏家要能分辨真假,但是画家并不知道如何让画更逼真,而鉴赏家也没有固定的准则来分辨画的真伪,于是开始对抗学习。
画家先开始画画,鉴赏家不断给出评判看是不是真的, 画家会根据反馈不断改进,鉴赏家也会根据画家画的提高鉴赏标准,来进一步提升画的准不准,通过对抗学习,直到画的足够真实,鉴赏家也能判断真伪

模型结构
生成器输入随机噪声向量,生成一幅手写数字的合成图像
判别器输入包括训练集图像和生成器合成数据,输出为真假判断

在这里插入图片描述

判别器
标准分类器:尝试区分真实数据和生成器创建的数据
训练数据:真实的数据集做正例,虚假数据做负例

在这里插入图片描述
生成器
生成器的输入是随机噪声,损失由由判别器计算决定
损失函数训练期间,判别器是固定的

在这里插入图片描述

训练流程
交替训练:判别器→生成器→判别器→.
生成器不断改进,判别器性能开始变差

在这里插入图片描述

训练流程
黑虚线:真实分布;
蓝虚线:判别器分布;
绿实线:生成分布

在这里插入图片描述

损失函数

在这里插入图片描述
判别器固定的情况下,训练生成器

在这里插入图片描述

无论VAE还是GAN 基本结构都是先前学过的网络,只是把他们重新组合起来,协同训练产生数据生成的效果而已

Diffusion 扩散模型

图像生成上优于GAN模型

模型对比:

  • VAE和GAN潜变量维度降低
  • Diffusion中隐变量和原图像尺寸大小一样
  • Diffusion有两个传播过程:前向传播噪声化+后向传播复原图片

在这里插入图片描述

VAE和GAN都可以看成先把一个高维的图像先降维 得到隐变量Z,然后再上采样扩展维度得到新的输出x‘

diffusion基本思想
马尔科夫链的平稳性:从任何状态开始,最终会达到稳定状态
扩散模型:马尔可夫链每步的转移概率,本质上都是在加噪声

在这里插入图片描述
相当于2种溶液均匀混合

前向过程
通过T次传播不断添加高斯噪声,越来越接近纯噪声

在这里插入图片描述
重参数(reparameterization)
潜变量分布中采样,会导致弟度无法传递,用重参数化解决
基本思想是把随机变量表示为确定性函数和独立噪声项的和

在这里插入图片描述
前向传播
在这里插入图片描述
逆向过程
在这里插入图片描述
逆向过程
利用贝叶斯公式,巧妙地将逆向过程全部变回了前向
在这里插入图片描述

简单说,扩散模型就是先假设前向传播还有逆向传播都是高斯的,然后 沿着时间轴倒腾出均值和方差的迭代公式 。

损失函数
定义交叉熵损失然后用变分推断

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练流程
通过对随机噪声序列的逐步演化来学习分布的参数

在这里插入图片描述
在这里插入图片描述
扩散原理,其实就i是高斯噪声不断向前扩散,然后逆向去噪
损失函数推导最终目的不同时刻高斯噪声间的均方误差

VAE和GAN 代码实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


原文地址:https://blog.csdn.net/applewld/article/details/142302665

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!