生成模型详解

news2024/11/20 0:23:17

一、生成模型的定义

  1. 给定的训练集 X = { x 1 , x 2 , . . . , x n } X =\{x^1,x^2,...,x^n\} X={x1,x2,...,xn}
  2. 隐变量 z z z满足 p ( z ) = N ( 0 , I ) p(z)= \mathcal{N} (0,I) p(z)=N(0,I)
  3. 定义一个条件分布 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz) θ \theta θ可以理解为生成模型的参数
  4. 训练好模型后,采样 z ∼ p ( z ) z{\sim}p(z) zp(z),利用 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz)可以生成 x x x

注: p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz)可以理解为“生成器”,把高斯 z z z映射到数据分布 x x x

二、四种代表生成模型

在这里插入图片描述

1. VAE

注:Diffusion model的部分理论推导和VAE很相似

目的是能够得到真实数据的分布 p ( x ) p(x) p(x),这样就可以随意的生成数据。
借助隐变量 z z z描述 x x x的分布 p ( x ) p(x) p(x) p ( x ) = ∫ p ( x , z ) d z = ∫ p ( x ∣ z ) p ( z ) d z p(x) = \int p(x,z)dz = \int p(x|z)p(z)dz p(x)=p(x,z)dz=p(xz)p(z)dz

目标是最大化似然 p θ ( x ) p_{\theta}(x) pθ(x) p θ ( x ) p_{\theta}(x) pθ(x) = p θ ( z , x ) p θ ( z ∣ x ) \frac{p_{\theta}(z,x)}{p_{\theta}(z|x)} pθ(zx)pθ(z,x)= p θ ( z ) p θ ( x ∣ z ) p θ ( z ∣ x ) \frac{p_{\theta}(z)p_{\theta}(x|z)}{p_{\theta}(z|x)} pθ(zx)pθ(z)pθ(xz)

但是 p θ ( z ∣ x ) {p_{\theta}(z|x)} pθ(zx)是intractable的,通常我们都需要借助variational inference的技巧,采用 q ϕ ( z ∣ x ) {q_{\phi}(z|x)} qϕ(zx)去近似它。

将最大化似然 p θ ( x ) p_{\theta}(x) pθ(x)转化成使得 ELBO(变分下界)最大
模型似然 log ⁡ p θ ( x ) ≥ E L B O \log p_{\theta}(x) \geq ELBO logpθ(x)ELBO,
E L B O = E z ∼ q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) + log ⁡ p ( z ) − log ⁡ q ϕ ( z ∣ x ) ] = E z ∼ q ϕ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) − D K L ( q ϕ ( z ∣ x ) ∣ ∣ p ( z ) ) ELBO = \mathbb{E}_{z\sim q_{\phi}(z|x)} [\log p_{\theta}(x|z) + \log p(z) - \log q_{\phi}(z|x)] = \mathbb{E}_{z\sim q_{\phi}(z|x)} \log p_{\theta}(x|z) - D_{KL}(q_{\phi}(z|x)||p(z)) ELBO=Ezqϕ(zx)[logpθ(xz)+logp(z)logqϕ(zx)]=Ezqϕ(zx)logpθ(xz)DKL(qϕ(zx)∣∣p(z))

p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz)为decoder部分, q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)为encoder部分
模型的优化的loss为 L V A E ( θ , ϕ ) = − E L B O = D K L ( q ϕ ( z ∣ x ) ∣ ∣ p ( z ) ) − E z ∼ q ϕ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) L_{VAE}(\theta,\phi) = -ELBO = D_{KL}(q_{\phi}(z|x)||p(z)) - \mathbb{E}_{z\sim q_{\phi}(z|x)} \log p_{\theta}(x|z) LVAE(θ,ϕ)=ELBO=DKL(qϕ(zx)∣∣p(z))Ezqϕ(zx)logpθ(xz)

第一项为计算两个多元高斯分布的KL散度
第二项为重建误差(reconstruction error),因为正是给定下 z z z生成真实数据的似然,对于一个给定的训练样本 x i x^i xi,我们可以采用蒙特卡洛方法(Monte Carlo method)来估计这个数学期望,即从 q ϕ ( z ∣ x i ) q_{\phi}(z|x^i) qϕ(zxi)多次采样来估计 − E z ∼ q ϕ ( z ∣ x ) log ⁡ p θ ( x i ∣ z ) ≈ − 1 L ∑ l = 1 L log ⁡ p θ ( x i ∣ z ( i , l ) ) - \mathbb{E}_{z\sim q_{\phi}(z|x)} \log p_{\theta}(x^i|z) \approx -\frac{1}{L}\sum^{L}_{l=1}\log p_{\theta}(x^i|z^{(i,l)}) Ezqϕ(zx)logpθ(xiz)L1l=1Llogpθ(xiz(i,l))

2. GAN和Flow-based Model

GAN和Flow-based Model,都是只需要一个“生成器”,先采样高斯噪声,然后用“生成器”把这个高斯噪声映射到数据分布就可以,而且只关心生成。

但是GAN和Flow-based Model也有别的缺陷,比如GAN还需要额外训练判别器,这导致训练很困难;而Flow-based Model需要模型是可逆函数,不能随便用一个图像分类or分割领域的SOTA神经网络,这也导致模型表达能力受限。

3. Diffusion model

只需要训练“生成器”,训练目标函数简单,而且不需要训练别的网络(判别器/后验分布等),并且这个生成器没啥限制,可以随便选表达能力极强的神经网络。

前向和反向是两条马尔可夫链。

  • 前向过程(加噪过程)
    1、前者通常是手工设计的,目的是将任何数据分布转换为简单的先验分布(例如,标准高斯)
    2、定义: q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t |x_{t-1}) = \mathcal{N}(x_t;\sqrt{1- \beta_t}x_{t-1},\beta_t\mathcal{I}) q(xtxt1)=N(xt;1βt xt1,βtI)
    原图 x 0 x_0 x0,通过不断的高斯采样噪声,得到 x t x_t xt。当 t t t趋近无穷, x T x_T xT得到的就是标准的高斯噪声,均值为0,方差为1。
    3、任意时刻的 x t x_t xt能通过 x 0 x_0 x0 β \beta β表示,假设 α t = 1 − β t \alpha_t = 1-\beta_t αt=1βt,并且 α ‾ t = ∏ i = 1 T α i \overline\alpha_t =\prod^T_{i=1}\alpha_i αt=i=1Tαi,展开 x t x_t xt可以得到: x t = α ‾ t x 0 + 1 − α ‾ t z ‾ t x_t=\sqrt{\overline\alpha_t}x_0+\sqrt{1-\overline\alpha_t}\overline{z}_t xt=αt x0+1αt zt

  • 反向过程(去噪过程)
    1、利用 x t x_t xt,使用一个深度学习模型(U-net,参数为 θ \theta θ),去计算出 x t − 1 x_{t-1} xt1
    2、定义: p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , ∑ θ ( x t , t ) ) p_\theta(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t),\sum_\theta(x_t,t)) pθ(xt1xt)=N(xt1;μθ(xt,t),θ(xt,t))

  • 推理过程
    最大化 p θ ( x ) p_{\theta}(x) pθ(x),求解和VAE类似,区别就是 x 0 x_0 x0到隐变量 z z z的后验变成 x 0 x_0 x0 x t − 1 x_{t-1} xt1的后验。和VAE的推导下界类似
    在这里插入图片描述
    完全展开后,优化的目标为
    在这里插入图片描述

    其中由于 q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) q(x_{t-1}|x_t,x_0)=q(x_{t}|x_{t-1},x_0)\frac{q(x_{t-1}|x_0)}{q(x_{t}|x_0)} q(xt1xt,x0)=q(xtxt1,x0)q(xtx0)q(xt1x0),可推导其分布如下:
    在这里插入图片描述

这个推导用于采样生成的噪声计算得到 x t − 1 x_{t-1} xt1的均值

在这里插入图片描述

再看一下优化的目标,没有参数的部分可以直接忽略,即 L T L_T LT。而 L t − 1 L_{t-1} Lt1根据多元高斯分布的KL散度求解等价于下面的式子
在这里插入图片描述
最后把式子(7)的均值代进(8)的左边,将 x t x_t xt通过 x 0 x_0 x0进行表示,可得最终的优化目标
在这里插入图片描述
最后得到的简化后的loss如下:
在这里插入图片描述
可以理解为拉近每一时刻对应的前向和后向两个噪声分布。

  • 训练过程和采样过程(生成数据)
    在这里插入图片描述

上面是discrete model (DDPM) 最先提出的形式

下面是continuous model (SDE) 完善理论框架
首次揭示了diffusion model的连续版本对应的数学背景,并且将统计机器学习中的denoising score matching方法与DDPM中的去噪训练统一起来。
在这里插入图片描述

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

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

相关文章

java高校宿舍费缴纳报修管理系统ssm1561

系统选用B/S模式,应用jsp技术, MySQL为后台数据库。系统主要包括个人中心、学生管理、宿管管理、宿舍信息管理、宿舍预订管理,在线报修管理、费用缴纳管理、投诉建议管理、论坛交流、系统管理等功能模块。 本系统采用从上往下的步骤开发&…

爬虫学习-数据解析三种方式:正则、bs4、xpath,以及一些实例操作

若出现乱码page_text page_text.encode(iso-8859-1).decode(gbk)或者查看源码head里面的说明,设置成相同的即可 数据解析原理概述 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行储存数据解析就是 1、进行指定标签的定位2、标签或者标签对应的属性中…

设计模式之美总结(结构型篇)

title: 设计模式之美总结(结构型篇) date: 2022-12-21 09:59:11 tags: 设计模式 categories:设计模式 cover: https://cover.png feature: false 文章目录1. 代理模式(Proxy Design Pattern)1.1 原理解析1.2 动态代理1.3 应用场景…

排查Java服务CPU使用率高达100%的原因

排查Java服务CPU使用率高达100%的原因 Java服务在服务器运行一段时间,有一天CPU使用率突然高达100%,通过jstack工具分别在CPU使用率为100%时执行了一次堆线程dump和cpu使用率降下来后执行了一次堆线程dump 目录排查Java服务CPU使用率高达100%的原因一、环…

【SQL】一文详解嵌入式SQL(建议收藏)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

SQLMap 扫描利用SQL注入

一、SQLMap介绍 SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Fir…

光伏行业管理亟待变革,数商云供应链系统订单流程自动化流转助力企业降本增效

作为实现“3060”双碳目标的主力军,光伏产业正迎来空前的政策、市场、资本三重加持的红利期。有业内人士预测,到2025年全球新增光伏装机量将达到270-330GW,国内新增光伏装机量将达到90-110GW,十四五期间年均新增光伏装机量将达到7…

用React做一个音乐播放器

介绍 任何正在学习 React 并想使用 React 构建项目的人。有各种博客和文章可以为开发人员指导此类项目。我确实浏览过这些文章,但其中总是缺少一种项目。缺少的项目是音乐播放器和视频播放器。这两个项目都会让您有机会处理音频和视频。您将学到很多东西&#xff0…

Linux学习-97-vmware网络桥接模式配置和vmware快照操作

19.3 vmware网络桥接模式配置 桥接:需要保证Linux虚拟机和本机处在同一个网段! #win平台输入ipconfig查看主机的ip地址Linux也必须要配置到对应的网段 桥接模式:主机ip 和虚拟机ip映射到同一块物理网卡(光纤,无线…

达梦数据库-centos7安装

参考官方文档 1.环境 操作系统CPU数据库CentOS7x86_64dm8_20221121_x86_rh6_64.iso 2.安装前准备 2.1 关闭防火墙 或 开放5236端口 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 开放5236端口(推荐使用) firewall-cmd --pe…

TYPE A USB2.0电路设计

TYPE A USB2.0连接器可以分为公座和母座,放在供电端PCB板上的一般是母座, 2.0的母座有四个信号引脚。今天就来和大家分享下TYPE A USB2.0的板级电路设计, 首先来看到 TYPE A USB2.0四个引脚的信号定义,1脚是VBUS,需要…

Kafka系列之入门(荣耀典藏版)

目录 一、为什么要用消息中间件? 1、异步处理 2、应用解耦 3、流量削峰 4、日志处理 二、为什么选择Kafka? 消息中间件的编年史 1、Kafka的外在表现和内在设计 2、市场主流消息中间件对比 三、Kafka中的基本概念 1、消息和批次 2、主题和分区…

【笔记:模拟CMOS集成电路】两级运算放大器设计与仿真(带版图)

【笔记:模拟CMOS集成电路】两级运算放大器设计与仿真(带版图)前言1.电路分析1.1电路结构电路描述:1.2小信号分析1.3公式2指标设计2.1预期设计指标参数2.2参数分析(1)确定gm1、gm6(2)分配电流(3)确定M1尺寸(4)确定M6尺寸(5)共模输入…

学习.NET MAUI Blazor(二)、MAUI是个啥

随着.NET 7的发布,MAUI也正式发布了。那么MAUI是个啥?我们先来看看官方解释: .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。 目录关于MAUIMAUI的工作原理如何开发MAUI该如何选择…

5万字企业数字化运营管理平台软件开发框架项目技术方案

目录 1 项目总体概述 项目总体技术方案保障 系统设计 系统体系结构设计 系统指标保障 系统质量 系统健壮性 系统应具备安全性 系统易用性 系统可维护性 系统完备性 系统可扩展性 系统可测试性 系统可移植性 系统可追踪性 系统易安装性 2 项目技术方案 2.1 系统…

没有的博客1

我虽不善言辞 但关于爱你 我无法掩饰 关于我爱你音频:00:0004:55 | 01 | 愿你们是渣的那一方 背负所有骂名愉快生活 而不是在深夜痛哭 辗转反侧茶饭不思 做一个痛苦的好人 | 02 | 昨晚喜欢的男孩子发了新女友的照片 很难过 做个大人真好啊 十分钟就能让自…

Linux上RabbitMQ安装使用

文章目录安装安装erlang安装rabbitMQ管理指令安装 官网 由于需要对应erlang和rabbitMQ两者版本的关系,先确定好下载哪个版本,版本关系表,以下教程以Erlang 23.3.4.11和RabbitMQ 3.9.14为例 安装erlang 略,进入对应版本下载安装…

【YApi接口管理平台】在Linux上使用Docker搭建YApi (亲测完美运行)

本期目录前言1. 创建MongoDB容器数据卷2. 安装Node.js3. 拉取MongoDB镜像4. 启动Mongo容器5. 拉取YApi镜像6. 初始化YApi7. 运行YApi容器8. 访问前言 博主想在自己的 Linux 虚拟机上使用 Docker 搭建 API 接口管理平台来团队开发一个项目,跟着网上的教程硬是装了好…

Unreal Engine的编译类型和命名规则

目录 编译类型 命名规则 资源命名规则 文件夹命名规则 编译类型 debug game只能调试你的项目,不能调试编辑器项目 多加了一个editor,就可以调试编辑器了。 不同的编译类型可以理解为引擎在不同的类型下的监管程度,用以不同的场景 Te…

树莓派驱动水星无线网卡(MW150UH)教程指南

目录 1.树莓派版本 2.无线网卡 查询无线网卡 1.如果为 Bus 001 Device 005: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch) 2.如果为 Bus 001 Device 007: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapte…