【速览图像生成常见模型】李宏毅2023春机器学习课程笔记
考虑到个人在一些问题上需要李宏毅教授在2023年课程中讲到的内容补充,所以我会把部分李宏毅教授在2023年的课程内容提上来挑着学习,因为是挑着看的,我也不知道会不会全部看完,所以这里就不分EP了。课程的地址:【授权】李宏毅2023春机器学习课程_哔哩哔哩_bilibili。
本次对应2023年的课程是P34的内容,介绍了目前一些常见的图像生成类模型。
比如在condition的模型里面,我们会给一个描述生成图片的提示词x,那图像生成最大的特点就是需要机器的大量脑补。比如今天想要生成一只在奔跑的狗,而这个提示词其实只是对于一张图像的描述里千言万语的一部分。
我们之前在【Transformer】李宏毅2021/2022春机器学习课程笔记EP12(P49-P50) – -TobyKSKGD的个人博客-这一篇博客文章中写过有关自回归(AT)和非自回归(NAT)的内容和区别,如果忘记的话,放了一个传送门在这里。
简单来说AT就是一个一个往外输出内容,NAT就是一次性输出全部的内容。
我们之前说过了AT生成方式的文字生成,就是我们根据前面的输出来决定下一个文字的输出。
影像生成好像也可以用同样的道理。
在影像生成这里就是把输出的文字变成输出最大可能性的颜色,我们把所有输出的颜色拼起来称为一个distribution。这里选择颜色的vector一般256色就够了,也就是在256个颜色里面去选择。
其实GPT也是有一个影像版啦。用到的就是AT的生成方式,输出图像的时候就是一行一行地输出。
用NAT去生成图像会出现问题。
前面说了生成图像的任务没有一个标准的答案,也就是输出会有挺多不同的可能性。机器在选择每个像素点的颜色的时候自然也会有很多想法,我们一次性输出的话,很可能就是一堆有着各自想法颜色的像素点组成的什么的不是的图像。
当然如果只有一个文字的输入是远远达不到输出图像的目的的。我们需要一个Distribution,你可以选择不同的distribution,比如这里用的是Normal DIstribution。如果你不知道什么是distribution的话,看过这篇博客之后你可能会有一点了解,【生成式对抗网络GAN(上):基本概念介绍】李宏毅2021/2022春机器学习课程笔记EP16(P58) – -TobyKSKGD的个人博客-。
我们从distribution中simple出来一个vector,这个vector是一个杂讯,然后加上我们之前的文字x,把这两个当作模型的输入,这样子才能生成出来图像。
那几乎所有有关影像生成的模型都是这样子做的。我们想要把一开始拿来的distribution,通过一些办法扭曲成一堆正确并且符合要求的distribution。这里我们把y作为文字,x作为影像,这个P(x|y)就是文字和影像能对的上的资料,就是正确的一组资料。但是其实正确的P(x|y)是非常复杂的,那怎么把这个distribution扭曲成正确的样子就是我们影像生成模型要做的事情。最后我们把最终得到正确的、符合要求的distribution随机simple出来一张当作我们的影像输出。
本次我们会非常简短的介绍4中目前主流的影像生成模型。
VAE就是把distribution里面simple出来的向量加上限定的文字输入x(这里先省略了)放进decoder里面得到图像的输出。那我们要怎么训练decoder呢,就是反过来,把一张图像放到encoder里面,得到一个和这个图像有关的vector,然后我们加一个额外的限制,强迫向量是Normal distribution,这里我的理解就是把原来distribution里的vector用这里encoder输出的vector给代替了。
接着是Flow-based。这个其实和前面说的VAE差不多,只不过这里把encoder做了一些特殊的处理,就是给这个network做一些限制,让这个encoder变得可逆,也就是既可以输入vector输出图像,也可以输入图像输出vector。
我们训练encoder把图片变成normal distribution里面的向量,然后再生成图像的时候,我们把encoder反过来,让它把vector变成一张图像。
接着我们来简单看一下最近比较火的扩散模型diffusion。
它就是把张图片不断加噪,直到这张图片变成一张我们完全看不出来是什么的噪声图片,然后我们把它变成vector放到distribution里面。然后我们要让机器学习一个denoise,也就是让机器学习去噪,让一个噪声图片能变成一长清晰的图片。
最后这个GAN,我在【生成式对抗网络GAN(上):基本概念介绍】李宏毅2021/2022春机器学习课程笔记EP16(P58) – -TobyKSKGD的个人博客-和【生成式对抗网络GAN(下):理论介绍与WGAN+生成器效能评估与条件生成+Cycle GAN】李宏毅2021/2022春机器学习课程笔记EP17(P59-P61) – -TobyKSKGD的个人博客-这两篇博客里面做过比较详细的笔记,如果有兴趣或者忘记了的可以去看看,这里就不做赘述。
在做图像生成的问题的时候,我们不一定只能用一个模型,这个GAN就像一个万金油一样,可以和很多模型搭配使用产生不错的效果。
以上就速览了图像生成常见的一些模型。