AI大模型学习笔记之四:生成式人工智能(AIGC)是如何工作的?

OpenAI 发布 ChatGPT 已经1年多了,生成式人工智能(AIGC)也已经广为人知,我们常常津津乐道于 ChatGPT 和 Claude 这样的人工智能系统能够神奇地生成文本与我们对话,并且能够记忆上下文情境。

GPT-4

Midjunery和DALL·E 这样的AI绘图软件可以通过Prompt 输入文本提示生成多张令人惊艳的美图,看起来相当神奇。

Midjunery V6

但是,你有没有想过,生成式人工智能(AIGC)究竟是怎么运作的呢?在这篇文章里,我们就来简单了解一下生成式人工智能技术(AIGC)的基本原理,看看它到底能做些什么,还有啥时候你可能不太想依赖它。

一、从有监督学习到生成式人工智能

大多数传统类型的人工智能(如判别式人工智能)都是为了对现有数据进行分类或归类而设计的。相反,生成式人工智能模型的目标是生成前所未见的完全原创的人工制品。

在今天,有监督学习(Supervised Learning)和生成式人工智能(Generative Artificial Intelligence)是当今人工智能领域的两个最重要领域,其重点是创建算法和模型,以便从训练数据集生成与模式相似的新的真实数据。
在这里插入图片描述

生成式人工智能模型经过训练,可以从庞大的数据集中学习其中的潜在模式,并使用该知识生成与原始数据集相似但不相同的全新样本或数据。

在这里插入图片描述

例如,在人类或者猫狗的图像数据集上训练的生成式人工智能算法可以生成全新的人类图像或者猫和狗的图像,这些图像看起来与原始数据集中的图像相似,但不是精确的复制品。因此,"生成 "一词被用来描述它。

生成式人工智能(Generative AI)的涌现标志着人工智能技术的重大进步。

1.1 有监督学习的局限性与挑战

在2010年左右,随着大规模有监督学习逐渐成为主流,人们开始寄希望于大数据能够为AI模型的性能带来质的飞跃。

然而,从那时起,AI 科学家们开始观察到一个令人困扰的问题:尽管我们有大量的数据可供使用,但即使我们向小型AI模型继续提供更多的数据,它们的性能改善并不明显。例如,在构建语音识别系统时,尽管AI接受了数千乃至数十万小时的训练数据,但其准确性与仅使用少量数据的系统相比并无显著提高。这一现象引发了人们对监督学习有效性的怀疑。

监督学习的基本流程

进一步的研究表明,仅靠大规模监督学习和大数据集并不能无限地提升 AI 模型的准确性。

这是因为:

  • 首先,大规模数据集可能存在着标签噪声或错误,导致模型学习到了不准确的模式。

  • 此外,数据可能存在偏差,导致模型在面对新颖数据时表现不佳。

  • 其次,随着数据量的增加,模型的容量可能变得不足以有效地利用数据。即使有更多的数据可用,模型也可能因其结构或参数的限制而无法充分利用这些信息。

  • 再次,大规模监督学习通常依赖于端到端的训练方法,其中模型直接从输入到输出进行训练。这种方法可能会导致模型在理解数据背后的真实机制方面缺乏深入的抽象能力,从而限制了其性能。

1.2 生成式人工智能的出现

随着人们对监督学习的限制和挑战有了更深入的认识,研究人员开始寻求其他方法来克服这些问题。
在这个过程中,生成式人工智能(Generative Artificial Intelligence)应运而生,并逐渐成为人工智能领域的重要组成部分。

生成式人工智能(AIGC)与传统的机器学习算法不同,它不仅仅局限于对已有数据的分类或预测,而是可以通过学习数据的分布,创造出全新的、以前从未见过的内容,它能够像一座神奇的创意工厂一样,通过Prompt 提示词不断地生产出令人惊叹的全新数据、图像、音频和文本内容。

生成式人工智能与其他类型人工智能之间的另一个关键区别是,生成式人工智能模型通常使用无监督和半监督机器学习算法。

无监督学习的基本流程

这意味着它们不需要对学习的数据进行预先标记,这使得生成式人工智能在结构化或组织数据稀缺或难以获取的应用中特别有用。

  • 这些生成式人工智能系统通常基于深度学习模型构建,这些模型能够从大量的训练数据中学习数据的统计结构和语义信息。

  • 其次,生成式模型具有更强的表达能力,能够捕捉数据中的复杂结构和分布。相比之下,传统的监督学习方法可能会受到数据标签的限制,无法完全表达数据的多样性和复杂性。

  • 此外,生成式人工智能还为解决监督学习中的标签噪声和数据偏差问题提供了新的途径。通过学习数据的潜在表示,生成式模型可以更好地理解数据背后的真实机制,从而提高模型对噪声和偏差的鲁棒性。

生成式人工智能的出现为人工智能领域带来了新的思路和解决方案,克服了传统监督学习方法的一些限制和挑战。通过结合生成式方法和传统的监督学习技术,我们可以更好地利用数据,提高模型的性能和泛化能力。

二、生成式人工智能的思想

2.1 生成式人工智能的基本工作原理:

生成式人工智能的基本工作原理是通过学习数据的分布特征,从而能够生成与原始数据相似的新数据。其核心思想是从训练数据中学习数据的概率分布,并使用学习到的分布模型来生成新的数据样本。

生成式人工智能通常采用生成对抗网络(GANs)或变分自编码器(VAEs)、Transformer 等模型来实现。

就拿生成对抗网络(GANs)来说,GANs 模型包括两个主要组成部分:

生成对抗网络(GANs)

1. 生成器(Generator): 生成器是一个神经网络模型,用来接收一个随机噪声向量或其他形式的输入,并将其映射到数据空间。生成器的目标是通过根据用户输入的分析数据模式来创建新数据。通过不断调整生成器的参数,使得生成的样本尽可能地接近真实场景中的数据分布。

2. 判别器(Discriminator): 判别器也是一个神经网络模型,其任务是对生成器生成的样本与真实数据进行区分,估计样本来自于训练数据的概率。它接收来自生成器产生的样本和真实数据的输入,并尝试将它们分类为真实或伪造。判别器的目标是最大化正确地将真实数据分类为真实样本,同时将生成的样本正确分类为伪造样本。

每当有用户输入时,生成器就会生成新的数据,判别器将分析它的真实性。来自判别器的反馈使算法能够调整生成器参数并不断地重新调整和细化输出。

在数学上可以证明,在任意函数的生成器(G)和判别器(D)空间中,存在唯一的解决方案,使得生成器(Generator)生成的内容可以重现真实训练数据的分布,也就是当判别器 D=0.5 时,生成器 G 产生的信息与输入的信息达到平衡。

生成对抗网络的工作过程

通过训练生成器和判别器的对抗过程,生成式人工智能模型不断地提高生成样本的质量,使得生成的样本更加逼真,并且与真实数据的分布更加接近。这种对抗性训练的过程使得生成器和判别器之间达到一种平衡,最终这个过程一直持续到生成器产生与输入信息无法区分的数据为止。

2.2 生成式人工智能的工作过程

生成式人工智能的工作过程通常如下:

生成式AI的工作过程

  1. 学习数据分布:生成式模型首先通过大量的训练数据学习输入数据的分布。这些数据可以是图像、文本、音频等形式。模型通过学习数据的特征和统计分布来理解输入数据的内在规律。

  2. 生成新数据:一旦生成式模型学习到了数据的分布,它就可以通过随机采样或输入特定的条件来生成新的数据。生成的数据可能具有与训练数据相似的统计特性和结构,但通常是全新的、之前未见过的数据。

  3. 优化过程:生成式模型的训练通常涉及到一个优化过程,通过最小化生成数据与真实数据之间的差异来调整模型参数。对抗性生成网络(GANs)中使用了对抗训练的思想,包括生成器和判别器两个部分,它们相互竞争并共同提高模型的性能。

  4. 控制生成过程:一些生成式模型允许用户在生成新数据时提供一些条件或控制参数,以影响生成结果。例如,在生成图像时可以指定生成的图像类别或风格,或者在生成文本时可以指定生成的主题或情感。

  5. 评估生成结果:生成式模型通常需要经过一定的评估和调优来确保生成的数据质量和多样性。这可能涉及到定量指标如生成数据的多样性、真实度等,以及定性评估如人工评价生成数据的质量和逼真度。然后通过一个称为 "推理 "的过程来完善输出。在推理过程中,模型会调整其输出,以更好地匹配所需的输出或纠正任何错误。这样就能确保生成的输出更加逼真,更符合用户希望看到的效果。

三、如何评估生成式人工智能模型

选择正确的模型对于某些特定的任务至关重要,因为每个任务都有其独特的需求和目标,而不同的生成式人工智能模型也各有其优缺点。比如,某一些模型可能比较擅长生成高质量的图像内容,而另一些模型则更擅长生成顺畅连贯的文本内容。

因此在选择时,需要重视对生成模型进行评估以确定最适合特定任务的模型。这种评估不仅有助于选择正确的模型,还有助于确定需要改进的方面。通过这种方式,可以完善模型并增加实现预期结果的可能性,从而提高人工智能系统的整体成功率。

在评估模型时,通常需要考虑三个关键要素:

评估模型的三要素

  1. Quality 质量:生成式模型的输出质量至关重要,尤其是在直接与用户交互的应用程序中。例如,在文本生成模型中,前言不搭后语的文本可能会让人感觉一团糟,在语音生成模型中,低质量的语音可能会让人听不懂;而在图像生成模型中,生成的图像最好是能够做到浑然天成,和真实的图像无法区分。

  2. Diversity 多样性:优秀的生成式模型应该能够捕获数据分布中的各种模式,而不会降低生成的质量。这种多样性有助于减少模型中不必要的偏差。

  3. Speed 速度:许多交互式应用程序需要快速生成结果,例如实时图像编辑,以支持内容创建的工作流程。因此,在评估生成模型时,生成的速度也是一个重要的考量因素。

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

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

相关文章

ERROR: Could not build wheels for roslz4

Python bugs 最近在安装python的rosbag包时出现了诸多问题,特别记录下。 python版本:3.11 系统版本:Windows10 x86_64 使用conda虚拟环境进行包管理。 运行命令 pip3 install roslz4 --extra-index-url https://rospypi.github.io/simple…

奇异值分解(SVD)的应用——图像压缩

SVD方法是模型降阶的一类重要方法,本征正交分解(POD)和平衡截断(BT)都属于SVD类方法。 要想深入了解模型降阶技术,我们可以先从SVD的应用入手,做一个直观的了解。 1. SVD的定义和分类 我们想寻找…

【学网攻】 第(25)节 -- 帧中继(多对一)

系列文章目录 目录 系列文章目录 文章目录 前言 一、帧中继是什么? 二、实验 1.引入 实验目标理解帧中继在广域网中的原理及功能; 实验背景 技术原理 实验步骤 实验设备 实验拓扑图​编辑 实验配置 实验验证 文章目录 【学网攻】 第(1)节…

华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例

目录 组网需求: 配置思路: 操作步骤: 配置文件: 组网需求: 如 图 2-14 所示,用户网络 1 和用户网络 2 通过 LSW 与 Switch 相连, Switch 连接 LSW 的接口为GE0/0/1 。用户网络 1 和用户网络 2 分别属于 VLAN10 和 V…

c++之说_14|左值引用与右值引用

提起左右值引用我就头疼 左值: 1、在内存中开辟了空间的便叫左值 2、左值不一定可以赋值 如字符串常量 3、左值可以取地址 右值: 1、在内存中没有开辟空间的 2、右值无法取地址 如: 立即数(1,2,3…

前后端分离nodejs+vue动态网站的图书借阅管理系统35ih5

读者模块 1)注册:读者输入账号、密码、确认密码、姓名、手机、身份证、邮箱,点击注册按钮,完成注册。 2)登录:普通读者成功输入读者账号和密码,点击登录按钮。 3)读者主页面:读者登录成功后,选择…

React - 分页插件默认是英文怎么办

英文组件的通用解决方案 这里以分页插件为例: 大家可以看到,最后的这个页面跳转提示文字为Go to,不是中文,而官网里面的案例则是: 解决方案: import { ConfigProvider } from antd; import zhCN from an…

【Linux】信号概念与信号产生

信号概念与信号产生 一、初识信号1. 信号概念2. 前台进程和后台进程3. 认识信号4. 技术应用角度的信号 二、信号的产生1. 键盘组合键2. kill 命令3. 系统调用4. 异常(1)观察现象(2)理解本质 5. 软件条件闹钟 一、初识信号 1. 信号…

【MySQL】MySQL表的增删改查(进阶)

MySQL表的增删改查(进阶) 1. 数据库约束1.1 约束类型1.2 NULL约束1.3 UNIQUE:唯一约束1.4 DEFAULT:默认值约束1.5 PRIMARY KEY:主键约束1.6 FOREIGN KEY:外键约束:1.7 CHECK约束(了解) 2. 表的设…

python健身房管理系统 django健身课程预约系统

系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看首页、健身课程、留言板、个人中心、后台管理等,根据自己的需求可以进行查看健身课程,这样既能节省用户的时间,不用在像传统的…

H12-821_35

35.如图所示,SWA、SWB、SWC都运行RSTP,SWB上的GEO/O/2端口和SWC上的GEO/0/1端其端口角色为? A.backup端口.Alternative端口 B.Alternative端口、Backup端口 C.Root端口、Designate端口 D.Backup端口、Root端口 答案:A 注释: 一个链路(冲突域…

Bean 的生命周期

Bean 的生命周期 ⽣命周期指的是⼀个对象从诞⽣到销毁的整个⽣命过程,我们把这个过程就叫做⼀个对象的⽣命周期. Bean 的⽣命周期分为以下 5 个部分: 1. 实例化(为Bean分配内存空间) 2. 属性赋值( Bean 注⼊和装配,⽐如 AutoWired ) 3. 初始化 a. 执⾏各种通知,如 BeanNameA…