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

news/2024/11/3 4:26:01/

生成式模型基础知识

初步接触生成任务

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

大家接触最多比如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.ppmy.cn/news/1461885.html

相关文章

学习疲劳(科普)

由于长时间进行学习,在生理和心理方面产生了怠倦,致使学习效率下降,甚至到了不能继续学习的状况。疲劳现象有各种形态,主要可分为生理的(或身体的)疲劳和心理的疲劳。学习既包括身体的活动,也包括精神的活动…

【SpringBoot篇】基于Redis分布式锁的 误删问题 和 原子性问题

文章目录 🍔Redis的分布式锁🛸误删问题🎈解决方法🔎代码实现 🛸原子性问题🌹Lua脚本 ⭐利用Java代码调用Lua脚本改造分布式锁🔎代码实现 🍔Redis的分布式锁 Redis的分布式锁是通过利…

iOS 学习资料

git权威指南 git权威指南 iOS编程实战 iOS编程实战 Objective-C高级编程 iOS和OS X的多线程和内存管理 Objective-C高级编程 iOS和OS X的多线程和内存管理 Effective Objective-C 2.0 编写高质量iOS和OS X代码的52个有效方法 Effective Objective-C 2.0 编写高质量iOS和OS X代码…

Jsp+Servlet实现图片上传和点击放大预览功能(提供Gitee源码)

前言:在最近老项目的开发中,需要做一个图片上传和点击放大的功能,在Vue和SpringBoot框架都有现成封装好的组件和工具类,对于一些上世纪的项目就没这么方便了,所以需要自己用原生的代码去编写,这里分享一下我…

Android 蓝牙实战——蓝牙电话通话状态同步(二十四)

前面分析了蓝牙电话通话状态的广播,我们可以在蓝牙电话中实时监听蓝牙电话的状态,但如果是其他音乐类 APP 呢,在播放的时候也需要知道当前是否有通话正在进行,但是有完全没必要实时监听电话的状态,这就需要一个获取通话状态的方法。 一、通话状态处理 1、CallsManager …

暴利的副业兼职,抖音蓝海赛道,批量复制这个项目,1年200个

在有小孩的家庭中,父母都非常重视孩子的教育,并愿意为此投入大量资金。根据之前的新闻报道,有些父母会毫不犹豫地为孩子花费数千甚至上万元报名参加各种培训课程。尤其是在独生子女家庭中,家长更注重培养孩子的各方面能力。 周周近…

五丰黎红引领新营销模式:布局一物一码数字化营销,提高调味品销量和复购率

调味品行业的销售渠道主要有餐饮、家庭消费和食品加工,按销售额的占比约为6:3:1,餐饮行业是调味品行业的供需主力。在餐饮行业中,“大厨”这一角色具有十分重要的地位。因此,借助大厨的力量成为了许多调味品…

软考中级-软件设计师 (十一)标准化和软件知识产权基础知识

一、标准化基础知识 1.1标准的分类 根据适用的范围分类: 国际标准指国际化标准组织(ISO)、国际电工委员会(IEC)所制定的标准,以及ISO所收录的其他国际组织制定的标准。 国家标准:中华人民共和…