生成模型初认识

news/2024/10/22 4:33:40/

生成模型初认识

参考学习资料:李宏毅-机器学习

以下为课程过程中的简易笔记

生成模型

  • 为什么要用生成模型?——创造力:同一个输入,产生不同的输出(distribution),有一定概率发生某种随机事件
  • 输入:X;从简单分布中随机sample出的向量z;
  • 输出:distribution

AE

自编码器

原始输入特征是有大量冗余的,要重建出原图不需要那么多特征,只要用low dim的中间特征就可以了

image-20241009115046481

VAE

  • 在AE的decoder的输入中增加噪声,噪声的方差是 e σ e^\sigma eσ,其中 σ \sigma σ也是由神经网络学习到的
  • 因为原始的AE不存在噪声,它的预测是不可理解的,满月和弦月的内插不一定得到比弦月满,比满月弦;但是VAE中加了噪声后,因为噪声的存在,就要求满月和弦月之间内插的点既和满月接近,又和弦月接近,因此就会产生比弦月满,比满月弦的结果
  • VAE和GAN不一样,VAE说白了就是要不断地重建出训练数据集中有的样本,最多是训练集中样本的组合,是一个不断提高模仿力的过程,要产生和训练集中的样本相像的图像,最好能一模一样,这样重建错误就会最小;但是GAN是要生成以假乱真的图片,产生的新图像并不是要和训练集图片一模一样,而是要产生图像的分布和训练集图像的分布尽可能接近

在这里插入图片描述
image-20241009111444553

GAN

Unconditional GAN

image-20241009113439067

无条件生成,只输入从简单分布sample的向量z

  • 问:Divergence用于衡量2个分布的距离,然而 P G P_G PG P D a t a P_{Data} PData的formulation(公式)都不知道,怎么计算Divergence?

  • GAN:只要能分别从 P G P_G PG P D a t a P_{Data} PData两个分布中进行sample(也就是分别从Generator产生的数据和收集到的真实训练数据中做sample),就可以利用Discriminator估算出2者的Divergence

image-20241009095701250

公式理解:

  • 要找一个G,让红框里面的值越小越好(代表 P G P_G PG P D a t a P_{Data} PData两个分布的Divergence越小,两个分布越像);
  • 然而由于两个分布的Divergence的公式并不能直接计算,所以把 P G P_G PG P D a t a P_{Data} PData两个分布的Divergence转化为另一个优化问题,通过引入一个Discriminator,在Generator给定的情况下,想要找到一个D,让V(G,D)越大越好

Conditional GAN

有条件生成

image-20241009113507882

image-20241009114353637

Latent Diffusion Model

主要创新:

Difussion Model是在pixel space进行加噪和去噪,训练成本高昂,Latent Diffuion Model将加噪和去噪都搬到了latent sapce,训练成本减少,能接受的condition也变多了

组成部分:

  1. Autoencoder:包括encoder和decoder
  2. Denoiser:将encoder的输出加噪后,还原成decoder的输入
  3. Conditioning Encoder:可以是任意产生一个序列tokens的encoder

3个部分可以分开训


http://www.ppmy.cn/news/1540974.html

相关文章

(31)oracle数据泵导出

/u01/app/data2 sqlplus UVMP_USER/UVMP_USER as sysdba --使用UVMP_USER用户登录即可 create directory test_out as /u01/app/data2; grant read,write on directory test_out to UVMP_USER; expdp UVMP_USER/UVMP_USER dumpfileorcl.dmp logfileexpdp.log directoryt…

今年双十一最值得入手的好物有哪些?双十一值得选购的好物盘点!

在这个全民狂欢的购物盛宴——双十一,每一个角落都弥漫着诱人的优惠与不可错过的精品。从科技潮品到生活必需品,从时尚尖货到家居好物,无数精选商品在这一季集中绽放,等待着慧眼识珠的你将它们带回家,今年的双十一&…

go语言使用websocket

go后端代码 安装模块 go get "github.com/gorilla/websocket"main.go代码如下: package mainimport ("fmt""github.com/gorilla/websocket""net/http" )var upgrader websocket.Upgrader{CheckOrigin: func(r *http.Re…

横板营业执照提取生成

前言 有一段时间没发博客了&#xff0c;今天分享下几个月前做的营业执照提取器UI 预览图 框架 b-ui很好用&#xff0c;这个前端框架作者 发布的插件我都会用&#xff0c;鱿鱼助手也是基于这个框架开发的 代码 html <template><view><template><view…

Lua 语言中的注释详解

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 引言 在编程中&#xff0c;注释是代码的重要组成部分&#xff0c;它帮助开发者理解和维护代码。Lua&#xff0c;作为一种轻量级的脚本语言&#xff0c;也提…

laravel-admin后台子账号菜单配置详解

最近在使用laravel-admin做后台开发&#xff0c;在使用到子账号菜单配置时遇到问题。通过和大牛沟通再加上自己一番摸索&#xff0c;终于探索出门道&#xff0c;在此记录备用。 走&#xff0c;上干货&#xff01; 登录admin账号做如下操作&#xff1a; 1、添加操作权限(Perm…

fastadmin框架素材一键迁移脚本

<?php // 需要迁移的数据库 $hostname 127.0.0.1; $database fastadmin; $username fastadmin; $password fastadmin; $hostport 3306; $prefix fa_;// 之前能访问的素材域名 $domain https://fastadmin.xxxx.com;// 连接数据库 $conn new mysqli($hostname, $user…

Qt与下位机通信时,如何等待下位机回复和超时处理

在C或Qt中实现与下位机&#xff08;例如嵌入式设备、传感器等&#xff09;的通信&#xff0c;并且需要等待对方回复&#xff0c;如果几秒后没有收到回复则执行下一步动作&#xff0c;可以使用多种方法来实现这种超时机制。以下是几种常见的实现方式&#xff1a; 1. 使用 QTime…