生成式 AI 简介

4cebaace336b0e71c84fdfa96789ffe6.png

What I cannot create, I do not understand. - Richard Feynman

前言

你左拥右抱着 Stable Diffusion 和 MidJourney 创造美轮美奂的图片。

你熟练使用着 ChatGPT 和 LLaMa 创造辞致雅赡的文字。

你来回切换着 MuseNet 和 MuseGAN 创造高山流水的音乐。

毋庸置疑,人类最独特的能力就是创造,但在科技日新月异发展的今天,我们通过创建机器来创造!机器可以给定风格绘制原创艺术品 (draw),可以编写一长篇连贯文章 (write),可以创作悦耳的音乐 (compose),还可以为复杂游戏制定获胜策略 (play)。这个科技就是生成式人工智能 (Generative Artificial Intelligence, GenAI),现在只是 GenAI 革命的开始,现在是学习 GenAI 的最佳时机。

1. 生成和判别模型

GenAI 是一个 buzzword,其背后本质是生成模型 (generative model),它是机器学习的一个分支,目标是训练模型以生成与给定数据集相似的新数据。


假设我们有一个马的数据集。首先,我们可以在此数据集上训练生成模型,以捕获控制马图像中像素之间复杂关系的规则。然后,从此模型中进行采样,以创建原始数据集中不存在的但是逼真的马图像,过程如下图所示。


c3439f3ccafa6e653a524228e63f93a0.png


为了真正理解生成模型的目标和重要性,将其与判别模型 (discriminative model) 进行比较是必要的。其实机器学习里大多数的问题都是由判别模型解决的,看以下例子。


假设我们有一个绘画数据集,一些是梵高画的,一些是其他艺术家画的。有了足够的数据,我们就可以训练一个判别模型来预测一幅给定的画是否由梵高所作,过程如下图所示。


427595e322444ba5832f4b278cf6a28b.png


当使用判别模型时,训练集中每个示例都有一个标签 (label),对于以上二分类问题,通常梵高的画的标签为 1,非梵高的画的标签为 0。上图中模型最后预测的概率是 0.83,那么它很有可能是由梵高所作。和判别模型不同的是,生成模型不需要示例里含有标签,因为它的目标是生成新数据,而不是给数据预测标签。


例子看完,让我们用数学符号来精准定义生成模型和判别模型:


  • 判别模型对 p(y|x) 建模,给定特征 x 来估计标签 y 的条件概率。

  • 生成模型对 p(x) 建模,直接估计特征 x 的概率,从这个概率分布中采样即可生成新的特征。


需要注意的是,即使我们能够建立一个完美来识别梵高的画的判别模型,它仍然不知道如何创作一幅看起来像梵高的画,它只能输出一个概率,即图像是否来自梵高之手的可能性。由此可见,生成模型比判别模型要困难很多。

2. 生成模型的框架


了解生成模型框架之前,让我们先玩一个游戏。假设下图的点是由某种规则产生,我们称该规则为 pdata,现在让你生成一个不同的 x = (x1, x2) 使得这个点看起来是由相同的规则 pdata 产生的。


4d86448616b70c72204243968d75d4a2.png


你会如何生成这个点?你可能利用已给的点在脑海里产生一个模型 pmodel,而这个模型占的位置上都可能生成你想要的点。由此可知,模型 pmodel 就是 pdata 的估计。那么一个最简单的模型 pmodel 如下图的橙色方框,点只可能生成于方框内,而不可能生成于方框外。


e1dca2d275134d659c36bc8d3d28d0cd.png


要生成新的点,我们可以从方框内随机选一个点,更严谨地说,从模型 pmodel 分布中采样 (sampling)。这就是一个极简的生成模型。你从训练数据 (黑点) 中创建一个模型 (橙框),然后你可以从模型中采样,希望生成出来的点和训练集中的点看起来相似。


现在我们可以正式提出生成学习的框架了。


fb6df332ba4c8403ada84ee3e12f9873.png


现在让我们揭示真实的数据生成分布 pdata,并了解如何应用以上框架于此示例。从下图中我们可以看到,数据生成规则 pdata 是点只是在陆地上均匀分布,而不会出现在海洋中。


3669a59c5b6e344fe97cbd7aa8a5ef5a.png


很明显,我们的模型 pmodel 规则 pdata 的一个简化。通过检查上图的 A、B 和 C 点可以帮助我们理解模型 pmodel 是否成功模仿了规则 pdata


  • 点 A 不符合规则 pdata,因为它出现在海里,但可能由模型 pmodel 生成,因为它出现在橙框之内。

  • 点 B 不可能由模型 pmodel 生成,因为它出现在橙框之外,但符合规则 pdata,因为它出现在陆地上。

  • 点 C 由模型 pmodel 生成,而又符合规则 pdata


这个例子展示了生成建模背后的基本概念,虽然现实中用生成模型要复杂很多,但其基本框架是相同。

3. 第一个生成模型


假设你是一家公司的首席时尚官 Chief Fashion Officer (CFO),你的职责是创造新的时髦的衣服。今年你收到 50 个关于时尚搭配的数据集 (如下图),而你需要创造 10 个新的时尚搭配。


b0369597443ad53965c36f9465108e7e.png


虽然你是首席时尚官,但是你也是一个数据科学家,因此你决定用生成模型来解决此问题。看完上面 50 张图片,你决定用五个特征,配件类型 (accessies type)、服装颜色 (clothing color)、服装类型 (clothing type)、头发颜色 (hair color) 和头发类型 (hair type),来描述时尚搭配。


前 10 个图像数据特征如下。


1878abab097ff028cb089bc825f5f4a3.png


每个特征也有不同数目的特征值:


  • 3 种配件类型 (accessories type):

    • Blank, Round, Sunglasses

  • 8 种服装颜色 (clothing color):

    • Black, Blue01, Gray01, PastelGreen, PastelOrange, Pink, Red, White

  • 4 种服装类型 (clothing type):

    • Hoodie, Overall, ShirtScoopNeck, ShirtVNeck

  • 6 种头发颜色 (hair color) :

    • Black, Blonde, Brown, PastelPink, Red, SilverGray

  • 7 种头发类型 (hair type):

    • NoHair, LongHairBun, LongHairCurly, LongHairStraight, ShortHairShortWaved, ShortHairShortFlat, ShortHairFrizzle


这样有 3 * 8 * 4 * 6 * 7 = 4032 种特征组合,所以可以想成样本空间里面包含着 4032 个点。从给出的 50 个数据点可以看出,pdata 对于不同特征会偏好某些特征值。从上表看出图像中白色服装颜色和银灰色头发颜色就比较多。由于我们不知道真实的 pdata,我们只能通过这 50 个数据来建一个 pmodel,使其能够和 pdata 相近。


3.1 极简模型


一个最简单的方法就是给 4032 个特征组合中每个点赋予一个概率参数,那么该模型包含 4031 个参数,因为所有概率参数加起来等于 1。现在我们来一个个检查 50 个数据,然后更新该模型的参数 (θ1, θ2, ...,θ4031),每个参数的表达式为:

ef8180d4063360c3c34e2611fcba7066.png


其中 N 是观测数据的个数即 50,nj 是第 j 个特征组合在 50 个数据中出现的个数。


比如 (LongHairStraight, Red, Round, ShirtScoopNeck, White) 的特征组合 (称为组合 1) 出现了两次,那么


7834881abe82581932c15b91d76f6728.png


比如 (LongHairStraight, Red, Round, ShirtScoopNeck, Blue01) 的特征组合 (称为组合 2) 没有出现,那么


1e5bcab4e339069fb8ec0127ad99b556.png


按照上面的规则,我们将 4031 个组合都计算出一个 θ 值,不难看出有很多 θ 值都是 0,更糟的是我们不可能生成新的没见过的图片 (θ = 0 意味着从未观测到拥有该特征组合的图片)。为了解决此问题,只需在分母加上特征数目的总数 d 和在分子加上 1,该技巧叫做拉普拉斯平滑。


bd29ca1667058bb0bcde7768d342f0b4.png


现在,每个组合 (包括那些不在原始数据集中的组合) 都有非 0 的采样概率,然而这仍然不是一个令人满意的生成模型,因为不在原始数据集中的点的概率是一个常数。如果我们尝试使用这样的模型来生成梵高的画,那么它会以相同概率来操作一下两种画:


1. 梵高原作的复制画 (不在原始数据集)

2. 随机像素拼凑的画 (不在原始数据集)


这显然不是我们想要的生成模型,我们希望它能从数据中学到一些固有的结构,从而能够增加样本空间中它认为更有可能的区域的概率权重,而不是把所有概率权重放在数据集中存在的点上。


3.2 次简模型


朴素贝叶斯模型 (Naive Bayes) 可以将上面特征组合的次数大大减少,根据其模型假设每个特征之间都是相互独立的。回到上面的数据,一个人的头发颜色 (特征 xj) 和其衣服颜色 (特征 xk) 没有联系,用数学表达式表示就是:


74e22b83e6f1620912749a83b5394e68.png


有了这个假设,我们可以计算出

3a87d81afde799870884d62845332b0d.png


朴素贝叶斯模型将原始问题“对每个特征组合做概率估计”简化成对“每个特征做概率估计”,原来我们需要用 4031 (3 * 8 * 4 * 6 * 7) 个参数,现在只需要 23 (3 + 8 + 4 + 6 + 7) 个参数,每个参数的表达式为:


9ec138a1c4772d1ce2cd221818a1735c.png


其中 N 是观测数据的个数即 50,nkl 是第 k 个特征取其下第 l 个特征值的个数。


通过统计 50 个数据,下表给出朴素贝叶斯模型的参数值。


5328d30a86fed839292d70c0908eb95e.png


要计算模型生成某数据特征的概率,只需要连乘上表中的概率, 比如:


9d7d393257aeecae02754999865eb63e.png


以上这个组合没有出现在原始数据集中,但模型仍然为它分配非零的概率,因此它仍然能够被模型生成。因此,朴素贝叶斯模型能够从数据中学习一些结构,并使用它来生成原始数据集中未见过的新示例。下图是模型生成的 10 张新的时尚搭配的图片。


4fcc4c5559df9afc1f280dbaf3049ddc.png


在此问题中,特征只有 5 个属于低维数据,朴素贝叶斯模型假设它们相互独立还算是合理,因此模型生成的结果还不错,下面来看一个模型崩塌的例子。

4. 生成模型的难点


4.1 高维数据


作为首席时尚官,你成功用朴素贝叶斯生成了 10 套全新的时尚搭配,你信心爆棚了,觉得自己的模型无敌,直到遇到下面这套数据集。


ea282204c753fe76452ce20d16ce7a5c.png


该数据集不再是用五个特征来表示了,而是由 32*32 = 1024 个像素来表示,每个像素值可以去 0 到 255 中的一个,0 表示白,255 表示黑。下表列出前 10 张图像像素 1 到 5 的值。


2e724603a4f23798182f81c11359760a.png


用同样的模型生成 10 套全新的时尚搭配,下面是模型生成的结果,每张丑得都很类似,而且无法区分不同的特征,为什么会这样呢?


7e2197bb1d0b4e743a3571d157fb2e59.png


首先,由于朴素贝叶斯模型是独立采样像素,但是相邻像素之间其实非常相似。对于衣服,其实像素应该大致相同,但是模型随机采样,因此得到上图中的衣服都是五颜六色的。其次,高维样本空间中的可能性太多,其中只有一小部分是可识别的。如果朴素贝叶斯模型直接处理这种高度相关的像素值,那么它找到令人满意的值组合的机会非常小。


综上所述,对于低维度而且特征低相关的样本空间,朴素贝叶斯效果通过独立采样的产生的效果很好;但对于高维度而且特征高相关的样本空间,通过独立采样像素来找到有效人脸几乎是不可能的。


这个例子强调了生成模型要想成功必须克服的两个难点:


  1. 模型如何处理高维特征之间的条件依赖关系?

  2. 模型如何从高维样本空间中找到满足条件的极小比例观察结果?


生成模型要想在高维度而且特征高相关的样本空间中成功,必须要利用深度学习模型。我们需要一个可以从数据中推断出相关结构的模型,而不是被告知要提前做出哪些假设。深度学习可以在低维空间中形成自己的特征,而这就是表征学习 (representation learning) 的一种形式。


4.2 表征学习


表征学习就是学习高维数据的表示的含义。


假设你去见一个从未见过面的网友,到达相约地点人很多根本找不到她,你打电话给她描述你的样子。相信你不会说你图像中像素 1 的颜色是黑,像素 2 的颜色是淡黑,像素 3 的颜色是灰等等。相反你会认为网友会对普通人的外貌有一个大概的了解,然后给予这个了解再描述像素组的特征,比如,你有一头乌黑亮丽的短发,戴着一双金光闪闪的眼镜等等。通常不超过 10 个这样的描述,网友就可以从脑海中生成你的图像,该图像可能很粗糙,但不妨碍网友从几百个人中找到你,即便她从来没有见过你。


这个就是表征学习背后的核心思想,不尝试直接对高维样本空间 (high-dimensional sample space) 进行建模,而是使用一些低维潜在空间 (low-dimensional latent space) 来描述训练集中的每个观察结果,然后学习一个映射函数 (mapping function),该函数可以获取潜在空间中的一个点并将其映射到原始样本空间。换句话说,潜在空间中的每个点都表示着高维数据的特征。


上面的话如果不好理解,请看下图由一些灰度罐子图像组成的训练集。


ef022820180bc2a5a0a3ecc3e43bf200.png


不难看出,这些罐子可以仅用两个特征来描述:高度和宽度。因此我们可以图像的高维像素空间转换成二维潜在空间,如下图所示。这样我们可以从潜在空间采样 (蓝点),然后通过映射函数 f 将其转换成图像。


e8141231a07c459ec4a3b0416e506496.png


认识到原始数据集可以用更简单的潜在空间来表示这件事情对于机器来说并不容易,首先机器需要确定高度和宽度是最能描述该数据集的两个潜在空间维度,然后学习映射函数 f 可以在这个空间中取一个点并将其映射到灰度罐图。深度学习使我们能够训练机器,使其无需人类指导即可找到这些复杂的关系。


5. 生成模型的分类


所有类型的生成模型最终都旨在解决相同任务,但它们对密度函数的建模方法都略有不同, 一般来说有以下两类:


  • 对密度函数显式建模 (explicitly modeling),

    • 但以某种方式约束模型,以便计算密度函数,比如标准化流模型(normalizing FLOW model)

    • 但是对密度函数做逼近,比如变分自动编码器 (variational autoencoder, VAE) 和扩散模型 (diffusion model)

  • 对密度函数隐式建模 (implicitly modeling),通过直接生成数据的随机过程。比如生成对抗网络 (generative adversarial network, GAN)

f1d546c908ae33f0fb0b8cf55e5a4d27.png

总结

生成式人工智能 (GenAI) 是一种可用于创建新的内容和想法 (包括文字、图像、视频和音乐) 的人工智能。与所有人工智能一样,GenAI 是由深度学习模型基于大量数据进行预训练的超大型模型,通常被称为根基模型 (foundation model, FM)。有了 GenAI,我们能画出更炫酷的图像,写出更优美的文字,谱出更动人的音乐,但第一步需要我们去了解 GenAI 怎么创造新的东西,正如文头 Richard Feynman 所说的“我不会明白我无法创造的东西”。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何编写AI艺术提示[示例+模板]

有没有觉得制作 AI 艺术提示需要秘密和魔法?当您的所有提示都失败时,所有这些创意专业人士如何在Midjourney和DALL-E等工具中创建令人惊叹的,令人兴奋的视觉效果? 现实情况是,创建很酷的AI艺术提示并不像看起来那么复…

2天300+作品,Midjourney将彻底颠覆食品包装设计!

Midjourney设计的“世界最可爱的零食包装 原本是为了提高效率让短视频团队去研究AI,结果我自己却陷进了Midjourney(AI绘画工具),连玩一周。可以说,Midjourney给我在图片领域带来的震撼,以及它将对设计领域的…

stable-diffusion 安装和使用

安装: 在电脑上安装环境依赖 继续安装 把下面这两个文件复制到stable-diffusion-webui 下面 点击A启动器,启动stable-diffusion,然后点击~运行中~ 然后看到弹出控制台后,等待~ 第一次会等待时间会稍微久一点(这个是单机…

OpenAI DALL·E 绘画机器人

快过年了,在公司也没啥任务,索性尝试使用OpenAI的DALLE生成一些好玩的图片。 OpenAI DALLE 官方介绍: DALLE 是一种由 OpenAI 开发的大型语言模型,其能够通过生成图像和文本来完成各种任务。其名称来源于绘画机器人 WALLE 和艺术家…

2023年最新网络安全面试题合集(附答案解析)

前言 为了拿到心仪的 Offer 之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了各类关于渗透面试题目,里面有我对一些…

AI视频生成工具 抖音短视频剪辑软件

2023全新短视频营销获客系统,支持抖音、快手、视频号、小红书、百家号、西瓜和头条等全网头部短视频平台的矩阵推广。具有自定义视频模板、AI智能混剪、矩阵运营和私域获客消息直达等多种功能。 1、自定义短视频模板、傻瓜式推拽编辑 自定义视频模板功能可以根据用户…

【qq机器人】抖音视频分享

文章目录 前言一.演示二.完整源码前言 前提你已经按照我的 教程 搭建好环境,本插件是很有效结合了爬虫知识。 一.演示 二.完整源码 from nonebot import on_command from nonebot.adapters.cqhttp import Bot, Event, Message import requests, re from nonebot

AI软件视频生成工具 抖音蓝V运营小助手

AI软件视频生成工具为用户提供了智能混剪、批量生成标题文案、智能发布和移动端操作等功能。 海量自定义风格商务模板: AI软件视频生成工具提供了大量专业商务风格的视频模板,模板可根据用户的需求进行自定义风格。 可视化编辑,轻松制作不同场…

ChatGPT----致敬科技工作者

使用ChatGPT生成的一篇致敬科技工作者的小作文 致敬科技工作者 科技工作者是当今社会中不可或缺的重要角色,他们以自己的智慧和技术为社会进步和发展作出了巨大的贡献。无论是在信息技术、人工智能、生物医药还是其他领域,科技工作者们都在默默奉献&am…

MSG企业行 | 6月25日,一起来探索湖南省创新成长企业的发展新模式

随着人工智能技术的不断发展,各种AI产品已经逐步进入了我们的生活,人工智能与人类协作飞速发展,我国越来越多的企业也正因智能化的转型升级而不断发展并从中受益。 1 MSG企业行长沙站 暨昇腾AI大赛路演活动 昇思MindSpore开源社区联合昇腾…

Particle Designer:粒子效果制作器,生成plist文件并在工程中正常使用

使用Particle Designer粒子效果制作器制作粒子效果,并生成plist文件 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 使用软件:Particle Designer 内容概述: 使用P…

(转载)基本粒子群算法及惯性权重分析(matlab实现)

1 理论基础 粒子群算法(particle swarm optimization,PSO)是计算智能领域,除了蚁群算法、鱼群算法之外的一种群体智能的优化算法。该算法最早由Kennedy和Eberhart在1995年提出的。PSO算法源于对鸟类捕食行为的研究,鸟类捕食时,找到食物最简单…

粒子群算法优化的OTSU图像分割

文章目录 1 基本概念2 算法实现3 算法优化举例4 算法构成要素分析5算法优缺点分析6 算法图像分割中应用 1 基本概念 粒子群优化算法(PSO):它是进化算法的一种,它源于鸟群捕食的行为研究,基本思想是通过群体中个体之间…

机器学习(四十三):使用粒子群优化进化神经网络

文章目录 神经网络粒子群优化 (PSO)粒子常数迭代实现构建神经网络神经网络优化函数配置PSO优化PSO可视化K折交叉PSO优化K折查看结果神经网络 神经网络是机器学习算法,它学习如何使用训练示例来完成任务。该算法模拟我们大脑的行为来学习数据中的模式。 我们在神经网络中有三…

生成树与快速生成树(STP、RSTP)原理

STP生成树(IEEE 802.1D) 为什么需要生成树? 链路聚合技术只有线路的冗余,没有设备的冗余,如果要做设备上的冗余,就可以做生成树。表面上看生成树的作用是做设备冗余时,防止成环的一种途径&…

改进粒子群算法,遗传粒子群优化算法GAPSO,混沌粒子群算法CPSO,matlab程序

改进粒子群算法,遗传粒子群优化算法GAPSO,混沌粒子群算法CPSO,matlab程序 ID:91100672404209154专业算法工程师

2021-10-06 粒子群算法记录学习

粒子群算法的寻优算法记录学习(由于时间关系未添加代码) 粒子群算法(PSO)是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法。PSO算法源于对鸟类捕食行为的研究,鸟类捕食时&am…

粒子群算法原理|python实现|参数调优

粒子群算法是比较有名的群体智能算法之一,其他群体智能算法还包括蚁群算法、鱼群算法、人工蜂群算法等。今天学习一下粒子群算法。 文章目录 算法原理(Inspiration)优化过程python实现参数调优w参数的设置参数 c i c_i ci​的设置速度范围的…

STP生成树原理

环路引起的问题 二层交换网络 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余…

系统发育树的美化~Figtree(图文教程)

前言 figtree是一款用于进化生物学的进化树作图软件,常用于进化树的美化,可以设置颜色、名称、样式等参数。官网如下: FigTreehttp://tree.bio.ed.ac.uk/software/figtree/ 一、Figtree的安装 进入figtree的官网后,点击下图箭…