【保姆级】生成式网络模型基础知识(图像合成/语音合成/GPT)

生成式模型基础知识

初步接触生成任务

生成任务,顾名思义就是要去生成一个东西,比如生成图片/音频/文字等等。

大家接触最多比如chatGPT、stable diffusion、还有一些语音合成相关的东西。

那么问题来了,具体生成步骤是什么样的?

一、生成任务的流程

我们注意到一件事情,生成一张图片也好、一段文字也好,它们不总是唯一的

比如我希望生成一张鸡的图片,将**[一只鸡]** 这段文字送入模型让它去生成相应的图片,它生成的不总是同一个鸡,可能是一只有中分头的鸡,也可能是一个穿背带裤的鸡,但总的来说它们都符合文字的描述。

这就和其他任务比如分类任务有着很大的区别了,因为答案不唯一,甚至我们自己都不能枚举出所有的答案,你能想象到“一只鸡”这三个字可以对应到一张穿着背带裤打篮球的鸡的图片吗?

那么如何实现这种不唯一性呢?

我们要将一个值的思路转换为一个分布。这样每次去生成鸡的图片的时候就是从一个鸡的分布中随机采样一个结果,它们的结果不相同但又都符合鸡这个范围。

在这里插入图片描述

1. 生成一张图片

如上图所示,假设我要生成一张鸡的图片,如上图所示,首先我们在一个高斯分布(即正态分布)中随机取一个z作为我们的“种子”,可以说我们的所有不确定性都来自于这里。之后将这个“种子”送到一个神经网络模型中,输出一个结果 x x x,这个x满足一个分布 P θ ( x ) P_θ(x) Pθ(x)。当然,最开始的没训练网络的时候这个分布就是依托答辩,干啥啥不行。

而我们希望网络可以实现:“无论我从高斯分布中取什么样的值,他的输出都属于鸡的分布 P d a t a ( x ) P_{data}(x) Pdata(x)”,换句话说就是将高斯分布映射到鸡的分布 P d a t a ( x ) P_{data}(x) Pdata(x)上。

2. 训练网络

最右面的 P d a t a ( x ) P_{data}(x) Pdata(x)是我们真实的数据分布,也就是我们用来训练的数据集(里面装满了各种鸡的图片)。

我们现在要做的就是训练一个神经网络模型θ,让它生成的图片所满足的分布 P θ ( x ) P_θ(x) Pθ(x)和数据集的分布 P d a t a ( x ) P_{data}(x) Pdata(x)尽可能地相似,当模型训练完成之后,我从高斯分布中任意取一个z,他都会输出一个对应的x,这个x服从分布 P θ ( x ) P_θ(x) Pθ(x),同时也完全服从数据集的分布 P d a t a ( x ) P_{data}(x) Pdata(x)。换句话说,输出的x都是鸡的图片了。

3. 任务完成

有了训练好的模型,现在输入一段文字和一个从高斯分布中取的随机值z,比如“一只在打篮球的鸡”和z=1145141输入到模型中,它就会输出一个对应的图片,当输入不同的z时,就会产生不同的鸡在打篮球的图片,可能是一只穿背带裤的公鸡在打篮球,可能是中分头的母鸡在打篮球…

过程看起来很简单,现实却很x蛋。就好像考研的时候觉得:无非就是刷题嘛,按部就班地刷网课刷习题做模拟卷,最后考个120那不轻轻松松,结果学到最后模拟卷均分只有110,考研成绩一出来尼玛才考了90多分。

上述的想法很好,但是问题在于我们怎么去训练模型让分布 P θ ( x ) P_θ(x) Pθ(x)和数据集的分布 P d a t a ( x ) P_{data}(x) Pdata(x)尽可能地相似?

二、训练优化模型

看得懂英语的小伙伴一定看到了上图的标题:最大似然估计(Maximum Likelihood Estimation),忘了没关系,你只要知道它可以通过随机抽取的样本反向的去求得原始分布就够了。

1. 怎么去训练模型让分布 P θ ( x ) P_θ(x) Pθ(x)和数据集的分布 P d a t a ( x ) P_{data}(x) Pdata(x)尽可能地相似?

我们现在神经网络θ输出的所有内容都是满足 P θ ( x ) P_θ(x) Pθ(x)的对吧? P θ ( x ) P_θ(x) Pθ(x)的意思就是在分布 P θ ( x ) P_θ(x) Pθ(x)中得到x的概率值,既然我们要让 P θ ( x ) P_θ(x) Pθ(x) P d a t a ( x ) P_{data}(x) Pdata(x)尽可能相似,那么我们肯定希望能通过神经网络θ输出数据集中的原图,假设原图们是 x 0 x_0 x0, x 1 x_1 x1,…, x n x_n xn,那么只要让 P θ ( x 0 , 1 , . . . , n ) P_θ(x_{0,1,...,n}) Pθ(x0,1,...,n)最大就行了,也就是输出原图的概率越大越好

标准一点的写法就是 θ ∗ = a r g max ⁡ θ ∏ i = 1 n P θ ( x i ) \theta^*=arg\max_\theta\prod_{i=1}^nP_\theta(x^i) θ=argmaxθi=1nPθ(xi),其中的 θ ∗ \theta^* θ就是我们希望得到的最大概率值,使用最大似然估计,也就是找出满足输出原图概率最大的那个分布,就可以确定分布 P θ ( x ) P_θ(x) Pθ(x)中的参数了。

说了一大堆,就会有人问,为什么输出原图的概率越大,这两个分布就越相似,就单凭感觉?

2. 理性理解分布之间“相似”
(1) KL散度

首先我们引入一个衡量分布之间相似度的标准,KL散度

以下引用GPT的答案

如果我们有两个离散型概率分布 P 和 Q,其概率质量函数分别为 p(x) 和 q(x),KL 散度可以定义为:

D K L ( P ∥ Q ) = ∑ x p ( x ) log ⁡ ( p ( x ) q ( x ) ) D_{KL}(P\|Q)=\sum_xp(x)\log\left(\frac{p(x)}{q(x)}\right) DKL(PQ)=xp(x)log(q(x)p(x))

如果是连续型概率分布,则 KL 散度可以表示为积分形式:

D K L ( P ∥ Q ) = ∫ − ∞ ∞ p ( x ) log ⁡ ( p ( x ) q ( x ) ) d x D_{KL}(P\|Q)=\int_{-\infty}^\infty p(x)\log\left(\frac{p(x)}{q(x)}\right)dx DKL(PQ)=p(x)log(q(x)p(x))dx

KL 散度的值通常是非负的,且当且仅当两个概率分布完全相同时取得最小值 0。当 P 和 Q 之间的差异越大时,KL 散度的值也越大。

知道了KL散度可以衡量分布之间的相似度,我们希望PQ之间差异尽可能小 => 让KL散度尽可能小 => 让似然函数尽可能大。那么如果KL散度公式和似然函数相等,那不就有联系了,也就代表我们的感觉是正确的了?

废话不多说,直接开推!

(2)推理

S a m p l e { x 1 , x 2 , … , x m } f r o m P d a t a ( x ) θ ∗ = a r g max ⁡ θ ∏ i = 1 m P θ ( x i ) = a r g max ⁡ θ l o g ∏ i = 1 m P θ ( x i ) = a r g max ⁡ θ ∑ i = 1 m l o g P θ ( x i ) ≈ a r g max ⁡ θ E x ∼ P d a t a [ l o g P θ ( x ) ] = a r g max ⁡ θ ∫ x P d a t a ( x ) l o g P θ ( x ) d x − ∫ x P d a t a ( x ) l o g P d a t a ( x ) d x = a r g max ⁡ θ ∫ x P d a t a ( x ) l o g P θ ( x ) P d a t a ( x ) d x = a r g min ⁡ θ K L ( P d a t a ∣ ∣ P θ ) \begin{align} &\mathsf{Sample}\left\{x^{1},x^{2},\ldots,x^{m}\right\}\mathsf{from}P_{data}(x) \\ &\theta^{*}=arg\operatorname*{max}_{\theta}\prod_{i=1}^{m}P_{\theta}\bigl(x^{i}\bigr) =arg\operatorname*{max}_{\theta}log\prod_{i=1}^{m}P_{\theta}\bigl(x^{i}\bigr) \\ &=arg\max_{\theta}\sum_{i=1}^{m}logP_{\theta}\bigl(x^{i}\bigr) \approx arg\max_{\theta}E_{x\sim P_{data}}\bigl[logP_{\theta}(x)\bigr] \\ &=arg\max_{\theta}\int_{x}P_{data}(x)logP_{\theta}(x)dx\quad-\int_{x}P_{data}(x)logP_{data}(x)dx \\ &=arg\max_{\theta}\int_{x}P_{data}(x)log\frac{P_{\theta}(x)}{P_{data}(x)}dx =arg\min_{\theta}KL(P_{data}||P_{\theta}) \end{align} Sample{x1,x2,,xm}fromPdata(x)θ=argθmaxi=1mPθ(xi)=argθmaxlogi=1mPθ(xi)=argθmaxi=1mlogPθ(xi)argθmaxExPdata[logPθ(x)]=argθmaxxPdata(x)logPθ(x)dxxPdata(x)logPdata(x)dx=argθmaxxPdata(x)logPdata(x)Pθ(x)dx=argθminKL(Pdata∣∣Pθ)

(2) 我们要求的是最大值,取log单调性不变

(3) 最大化 l o g P θ ( x ) logP_{\theta}\big(x\big) logPθ(x)们的累加等同于最大化 l o g P θ ( x ) logP_{\theta}\big(x\big) logPθ(x)的期望(x服从 P d a t a ( x ) P_{data}(x) Pdata(x)分布)

(4) 第一项期望 E ( X ) = ∫ x f ( x ) d x E(X)=\int xf(x)dx E(X)=xf(x)dx,其中 x x x看作是 l o g P θ ( x ) logP_{\theta}\big(x\big) logPθ(x),第二项只与数据集分布 P d a t a ( x ) P_{data}(x) Pdata(x)有关,而数据集都是已知的,所以可以看作是减了个常数项,不影响单调性

(5) 上一步减的常数项就是为了凑这个 l o g P θ ( x ) P d a t a ( x ) log\frac{P_{\theta}(x)}{P_{data}(x)} logPdata(x)Pθ(x)的形式,而整个式子也就是KL散度的定义式。

至此我们得出,最大化θ等同于最小化KL散度,也就是尽可能让分布 P θ P_\theta Pθ P d a t a P_{data} Pdata之间差异更小,证明完毕。

三、理想很丰满、现实就是一坨

恭喜你看到这里,估计你已经感觉自己无敌了:“生成模型也就这么回事嘛。”

然而很遗憾的告诉你,我们之前讲的东西都基于一个条件:假设分布 P θ ( x ) P_θ(x) Pθ(x)可求

我们本科期间做的一些最大似然估计的题目都是假设满足泊松分布,xxx分布,它们都有固定的参数值,自然可以通过偏导来计算参数。

然而谁能想象出一个充满了鸡的图片的数据集的分布长什么样?它又有哪些参数?

所以直接去求 P θ ( x ) P_θ(x) Pθ(x)是不太可行的(除非精心设计整个模型,那就十分的复杂了)。

不过别灰心,至少已经入门了,有很多文章去解决了这个问题

下期我会讲讲VAE, DDPM(扩散模型)是如何解决这个问题的(前提是有下一期)

至于是否还有下一期就请大家多多支持啦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iOS plist文件增删改查

一. plist简介 plist文件,即属性列表文件,全名是Property List,这种文件的扩展名为.plist,因此,通常被叫做plist文件。它是一种用来存储串行化后的对象的文件,在iOS开发中通常用来存储用户设置&#xff0c…

【leetcode面试经典150题】-26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 快慢双指针 1 题目介绍 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新…

Google:站长移除无效网址

当您的网址不需要呈现在Google站长中时,您可以在站长工具中移除网址 操作步骤:登录Google站长,绑定网站完成后,点击左侧删除 >> 输入网址 如果遇到一些网址,可以找寻网址间的规律,比如说&#xff0…

幻兽帕鲁Palworld服务器手动+docker部署方法+备份迁移

目录 帕鲁部署官方文档帕鲁手动安装法手动安装steamcmd通过steamcmd安装帕鲁后端 docker容器一键部署幻兽帕鲁绿联云NAS机器部署幻兽帕鲁客户端连接附录1:PalServer.sh的启动项附录2:配置文件游戏存档保存和迁移 关于阿里云计算巢 帕鲁部署官方文档 htt…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

SpringCloudAlibaba5.2sentinel配置流控

概述 简介 监控应用流量的QPS或并发线程数,当达到指定的阈值时对流量进行控制 规则 1.资源名:请求路径 2.针对来源:配置该规则微服务,一般填写调用方的微服务名称,多个用","分割 3.阈值类型:二…

C++ | Leetcode C++题解之第92题反转链表II

题目: 题解: class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode *dummyNode new ListNode(-1);dummyNode->next head;ListNode *pre dummyNode;for (i…

24HN逆向部分wp

24H&N逆向部分wp 菜鸡新手师傅wp,Re 5/9,记录一下qaq(好久没写博客了,水一篇hh) 最喜欢的逆向题 64位,进主函数之后直接看,要求输入第5位为i,然后后面依次相等,长…

springboot005学生心理咨询评估系统

springboot005学生心理咨询评估系统 亲测完美运行带论文:获取源码,私信评论或者v:niliuapp 运行视频 包含的文件列表(含论文) 数据库脚本:db.sql其他文件:ppt.ppt论文:开题.doc论文&#xf…

WebRTC实时音视频通话之语音通话设计与实践

一、背景 在移动互联网流量时代,很多业务场景都有音视频通信的需求,比如IM场景,除了文字交流还需要音视频通话进行实时交互。为了帮助58、赶集、安居客等业务线更好的为用户提供服务,节约沟通成本,提升效率&#xff0…

月薪3万,沉迷“薅羊毛”

在网购江湖中,蟹老板是一位拥有十年经验的资深“羊毛党”。 他不仅是位精明的数学家,更是一位高效的“生产线”工人,专注于各大网购平台的优惠机制。每逢618大促,他总能凭借超凡的洞察力和手速,轻松斩获丰厚的“羊毛”…

C语言 | Leetcode C语言题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; int numDecodings(char* s) {int n strlen(s);// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 && ((s[i - 2] - 0) * 10…

Ubuntu22 下配置 Qt5 环境

1. Qt 简介 Qt5 中的新功能&#xff0c;可以看到各个版本的情况Whats New in Qt 5 | Qt 5.15 Qt 源文件网址Index of /archive/qt 2. 安装 Qt Creator cd 到安装包所在目录&#xff0c;进行软件安装。赋予可执行权限&#xff0c;加上 sudo 权限进入安装&#xff0c;这样会安…

Python专题:十六、异常处理(2)

异常的预判和防护 import randomnum random.randint(1, 100) # 获得一个随机数 is_done False # 是否猜中的标记 count 0 # 玩家猜了几次while not is_done:guess int(input(请输入一个[1, 100]的整数&#xff1a;))if guess num:is_done Trueelif guess > num:pr…

公司邮箱是什么?公司邮箱和个人邮箱有什么不同?

公司邮箱是企业用来收发邮件的专业版电子邮箱&#xff0c;不同于个人邮箱的简单功能和有限的存储空间&#xff0c;公司邮箱的功能更加丰富&#xff0c;能够满足企业的日常办公和协作需求。本文将为您详细讲解公司邮箱和个人邮箱的区别&#xff0c;以供您选择更适合自己的邮箱类…

哈希表法快速求解最长连续序列 | 力扣128题详细解析

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

分布式锁:场景和使用方法(通俗讲解)

这里写目录标题 通俗讲解分布式锁&#xff1a;场景和使用方法前言引入业务场景业务场景一出现业务场景二出现&#xff1a;业务场景三出现&#xff1a; 分布式锁的使用场景分布式锁的几种特性分布式锁的几种实现方式一、基于 Mysql 实现分布式锁二、基于单Redis节点的分布式锁三…

Python 机器学习 基础 之 监督学习 [决策树集成] 算法 的简单说明

Python 机器学习 基础 之 监督学习 [决策树集成] 算法 的简单说明 目录 Python 机器学习 基础 之 监督学习 [决策树集成] 算法 的简单说明 一、简单介绍 二、监督学习 算法 说明前的 数据集 说明 三、监督学习 之 决策树集成 1、随机森林 2、梯度提升回归树&#xff08;梯…

HNU-算法设计与分析-作业6

第六次作业【分支限界法】 文章目录 第六次作业【分支限界法】<1> 算法实现题6-2 最小权顶点覆盖问题<2> 算法实现题6-6 n后问题<3> 算法实现题6-7 布线问题 <1> 算法实现题6-2 最小权顶点覆盖问题 ▲问题重述 问题描述&#xff1a; 给定一个赋权无向…

从融媒到智媒,小程序框架可助力传媒企业在AI实践下的服务变现

过去5年&#xff0c;媒体行业一直都在进行着信息化建设向融媒体平台建设的转变。一些融媒体的建设演变总结如下&#xff1a; 新闻终端的端侧内容矩阵建设&#xff0c;如App新闻端&#xff0c;社交平台上的官方媒体等 新闻本地生活双旗舰客户端&#xff0c;兼顾主流媒体核心宣传…