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

深度生成模型

    • 什么是生成式模型
    • 蒙特卡洛方法
    • 变分推断Variational Inference
    • 变分自编码器VAE
    • 生成对抗网络Generative Adversarial Network
    • Diffusion 扩散模型
    • 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 代码实现

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

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

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

相关文章

【例题】lanqiao3236 小蓝的零花钱

样例输入 6 3 1 2 3 4 5 6样例输出 2解题思路 在序列中选取一个位置将序列分成两段,要求每一段中偶数和奇数的数量都相等尽可能多地进行这个操作,但每次操作都需要花费代价切割需要花费的代价为切割两端的元素的差的绝对值在他的预算范围内&#xff0…

基于51单片机的智能风扇控制系统Protues仿真设计

目录 一、设计背景 二、实现功能 三、仿真演示 四、源程序(部分) 一、设计背景 在当今这个科技日新月异的时代,家电产品正以前所未有的速度向智能化、自动化迈进,旨在为用户带来更加便捷、舒适的生活体验。电风扇,…

一次RPC调用过程是怎么样的?

注册中心 RPC(Remote Procedure Call)翻译成中文就是 {远程过程调用}。RPC 框架起到的作用就是为了实现,调用远程方法时,能够做到和调用本地方法一样,让开发人员更专注于业务开发,不用去考虑网络编程等细节…

数据库基础(MySQL)

目录 1. 概述 2. MySQL安装准备 3. SQL概述 3.1 什么是SQL 3.2 SQL通用语法 3.3 SQL分类 4. DDL 4.1 操作数据库 4.1.1 C(Create)创建 4.1.2 R(Retrieve)查询 4.1.3 U(Update):修改 4.1.4 D(Delete):删除 4.1.5 使用数据库 4.2 操作表 4.2.1 C(Create):创建 4.2…

苹果已确定9月iPhone 16系列发布会,然而这些产品不会亮相

近日,科技巨头苹果公司正式宣布将于9月举办一年一度的iPhone 16系列发布会。 这场备受瞩目的活动吸引了全球众多科技爱好者的目光。 然而,在发布会前夕,有消息传出,部分备受期待的产品将不会亮相。 究竟哪些产品会惊艳登场&…

QT + WebAssembly + Vue环境搭建

Qt6.7.2安装工具 emsdk安装 git clone https://github.com/emscripten-core/emsdk.git cd emsdk emsdk install 3.1.50 emsdk activate 3.1.50 Qt Creator配置emsdk 效果 参考 GitHub - BrockReece/vue-wasm: Vue web assembly loader Emscripten cmake多版本编译-CSDN博客 …

我的标志:奇特的头像

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>与妖为邻</title><style>figure.log…

【PHP代码审计】 PHP环境搭建

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 安装phpstudy 泥菩萨-CSDN博客 安装vscode 直接去官网下载安装包&#xff0c;然后双击安装即可。官网地址&#xff1a;htt…

re题(27)BUUFCTF-[MRCTF2020]Transform

BUUCTF在线评测 (buuoj.cn) 先到ida&#xff0c;先看一下字符串 找到主函数 int __cdecl main(int argc, const char **argv, const char **envp) {char Str[104]; // [rsp20h] [rbp-70h] BYREFint j; // [rsp88h] [rbp-8h]int i; // [rsp8Ch] [rbp-4h]sub_402230(argc, arg…

Virtuoso配置文件(virtuoso.ini)详解

目录 前言1. Virtuoso ini 文件的作用2. 如何使用 virtuoso.ini3. Virtuoso ini 文件结构详解3.1 数据库相关配置3.2 服务器参数配置3.3 网络设置3.4 内存优化3.5 复制与高可用性配置3.6 SPARQL 查询设置 4. virtuoso.ini文件示例5. 结语 前言 Virtuoso 是一款强大的通用数据集…

深度学习--------------序列模型

目录 序列数据统计工具&#xff08;方案一&#xff09;马尔可夫假设&#xff08;方案二&#xff09;潜变量模型总结 序列模型基于马尔可夫假设方式该部分总代码 单步预测多步预测k步预测该部分总代码 序列数据 实际中数据是有时序结构的。 统计工具 在时间t观察带 x t x_t xt…

git push : RPC failed; HTTP 400 curl 22 The requested URL returned error: 400

git push 出现RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 问题 git push Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 8 threads Compressing objects: 100% (10/10), done. error: RPC …

通用接口开放平台设计与实现——(31)API服务线程安全问题确认与修复

背景 在本系列的前面一篇博客评论中&#xff0c;有小伙伴指出&#xff0c;API服务存在线程安全问题&#xff1a; https://blog.csdn.net/seawaving/article/details/122905199#comments_34477405 今天来确认下&#xff0c;线程是否安全&#xff1f;如不安全&#xff0c;如何…

【AIGC】CFG:基于扩散模型分类器差异引导

摘要 分类器指导是最近引入的一种方法&#xff0c;在训练后在条件扩散模型中权衡模式覆盖率和样本保真度&#xff0c;在精神上与其他类型的生成模型中的低温采样或截断相同。分类器引导将扩散模型的分数估计与图像分类器的梯度相结合&#xff0c;因此需要训练与扩散模型分离的…

C#语言依然是主流的编程语言之一,不容置疑

C#语言是由微软在2000年发布的现代面向对象编程语言。尽管在编程语言市场中的占有率相对较低&#xff0c;但C#依然保持了强大的存在感&#xff0c;并未像一些其他语言那样逐渐被淘汰。C#语言不仅有其存在的独特理由&#xff0c;而且拥有许多令人无法忽视的优势。以下从多个方面…

积分电路和滤波电路的主要区别点和应用场合

文章目录 前言一、滤波电路的分类二、有源滤波器和无源滤波器的优缺点和实用范围三、积分电路3.1 无源积分电路3.2 RC充放电的电路响应3.2.1 RC电路的零状态响应3.2.2 RC电路的零输入响应3.2.3 RC电路的全响应3.2.4 选取合适的时间常数四 、无源RC低通滤波器4.3.1 截止频率推导…

kubernetes技术详解,带你深入了解k8s

目录 一、Kubernetes简介 1.1 容器编排应用 1.2 Kubernetes简介 1.3 k8s的设计架构 1.3.1 k8s各个组件的用途 1.3.2 k8s各组件之间的调用关系 1.3.3 k8s的常用名词概念 1.3.4 k8s的分层结构 二、k8s集群环境搭建 2.1 k8s中容器的管理方式 2.2 k8s环境部署 2.2.1 禁用…

VuePress搭建文档网站/个人博客(详细配置)主题配置-导航栏配置

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

针对国内AIGC市场,国内目前出台了那些法律法规?

针对国内AIGC市场&#xff0c;特别是AI生成与合成内容方面&#xff0c;中国已经出台了一系列法律法规来规范其发展和应用。 图片源自“央视新闻” 以下是一些主要的法律法规&#xff1a; 一、国家层面的法律法规 《中华人民共和国网络安全法》 施行时间&#xff1a;2017年6月…

进程监控与管理详解

一、进程的定义: 进程process是正在运行的程序,包括: 分配的内存地址空间 安全属性、包括所有权和特权 一个或多个线程 进程状态 进程的环境包括: 本地和全局变量 当前调度上下文…