【GAN入门】生成 AI的概念

2023-09-13 11:41:44

一、说明

        GAN是生成对抗网络(Generative Adversarial Network)的缩写,是一种无监督学习算法,由Goodfellow等人于2014年提出。GAN由一个生成器网络和一个判别器网络组成,通过二者之间的对抗来训练生成器网络生成与真实样本相似的假样本。生成器和判别器互相对抗,不断改善自己的性能。GAN广泛应用于图像、语音、自然语言等领域中的生成任务。

二、生成 AI & GAN概述

        GAN 是一类机器学习,可以使用用于训练模型的原始数据集生成新示例。这里有两个神经网络:生成器和鉴别器。在这里,代理人以零和博弈的形式相互对抗,一个代理人的胜利是另一个代理人的损失。生成器的目标是创建与真实数据一样逼真的假数据,而鉴别器的目标是从真实数据中识别假数据。两个网络玩猫捉老鼠的游戏,直到生成器创建鉴别器无法与真实数据区分开来的数据

         人工智能(AI)不再是一个未来主义的概念——它正在改变我们今天生活的世界。它使机器能够执行通常需要人类智能的任务,例如识别语音,做出预测和解决问题。它帮助我们做出更明智的决策,并自动执行重复和乏味的任务;更有效地优化运营。

        尽管存在许多AI算法,但一种在行业中引起轰动的AI是生成AI。随着 ChatGPT 和 Midjourney 等生成式 AI 工具的日益普及,用户现在可以比以往更快地生成新的想法、内容和解决方案。

2.1 什么是生成人工智能?

        生成人工智能是人工智能的一个子领域,利用无监督和半监督机器学习技术。生成式 AI 描述了可用于创建全新内容的算法和模型,包括音频、视频、文本,甚至模拟等。

        它具有大量的实际用途,从提高图片分辨率和创建新的商业模式到用于开发医学领域的新药。

        与其他形式的 AI 不同,例如经过训练以进行预测或对数据进行分类的预测或分类模型,生成 AI 模型旨在创建类似于原始输入数据的新数据。

2.2 生成人工智能的模型?

        生成人工智能的一些突出框架或模型是:

  1.         1. 生成对抗网络
    1.         2. 基于变压器的模型
      1.         3. 变速自动编码器
        1.         4. 伯特
          1.         5. 自回归模型

三、生成对抗网络 (GAN)

3.1 了解 GAN的组分

        生成对抗网络 (GAN) 是机器学习和深度学习中的一种人工神经网络架构,由生成器和鉴别器两个神经网络组成,它们在竞争过程中一起训练。生成器尝试生成与真实数据无法区分的数据(例如图像、文本或音频),而鉴别器的任务是区分真实数据和生成的数据。这种对抗性训练过程有助于生成器不断提高其创建越来越逼真的数据的能力。

        想象一下,你想创作逼真的风景画。您决定为此目的使用 GAN。

  1. 生成器(艺术家):生成器就像一个从空白画布开始的艺术家。最初,它会随机生成一个根本不像风景的图像。
  2. 鉴别器(艺术评论家):鉴别器就像艺术评论家。它显示了真实的风景画(来自数据集)和生成器创建的假风景。一开始,鉴别器在区分真画和假画方面很糟糕,因为生成器的工作太糟糕了。
  3. 培训流程:
  • 生成器创造了一个虚假的景观。
  • 鉴别器对其进行评估。如果它检测到它是假的,它会向生成器提供反馈。
  • 生成器使用此反馈来尝试创建更令人信服的景观。
  • 此过程在循环中重复。随着时间的推移,生成器在制作逼真的风景方面变得更好,而鉴别器在分辨真假方面变得更加熟练。

        最终结果:经过多次迭代,生成器变得非常擅长创建风景,以至于鉴别器几乎无法区分真实和生成的绘画。您现在有一个可以制作高度逼真的风景画的 GAN!

3.2 FAN的架构。

        GAN 是一种深度学习架构,由两个协同工作的神经网络组成:生成器和鉴别器。生成器和鉴别器在一个称为对抗训练的过程中一起训练。在训练期间,生成器将随机噪声作为其输入,并将该噪声转换为有意义的输出,即类似于真实数据的假数据。

        至于鉴别器,它接受生成器的输出和真实数据作为输入,如果输入是真的还是假的,则输出概率分数。两个网络一起训练。生成器从鉴别器接收概率分数,作为有关如何提高生成数据质量的反馈,并且循环继续。使用反向传播训练鉴别器以调整其权重和偏差,以最大程度地减少其分类误差。随着生成器的改进,鉴别器性能会下降,因为它不容易区分数据。

        当鉴别器无法确定数据是来自生成器还是实际数据集时,则达到最佳阶段。

3.3  GAN 的生成器和评判器

GAN的体系结构

        在每个GAN中,您提供一个随机噪声种子或潜在向量,它可以是作为噪声作为输入发送到生成器的维度或二维数组。生成器网络放大此阵列以创建伪造的二维图像。现在,假图像和真实图像都被发送到鉴别器网络,该网络经过训练以对真实和虚假图像进行分类。

        根据生成器损耗和鉴别器损耗,对最大周期数进行微调。

3.4 实现 GAN 的 5 个步骤

  • 根据应用定义GAN架构
  • 训练鉴别器区分真假
  • 训练生成器伪造数据,这可以欺骗鉴别器并看起来逼真
  • 继续对多个时期进行鉴别器和生成器训练。
  • 保存生成器模型以创建新的假数据。

        在生成器的训练期间,将鉴别器值保持为常量,而训练鉴别器将生成器值保持为常量。每个人都应该在静态对手下接受训练。

应用

  • 生成假数据以增强其他机器学习算法
  • 生成人脸
  • 图像到图像转换
  • 文本到图像的翻译
  • 超分辨率:获得更高分辨率的图片。

四、GAN的应用。

        GAN 具有广泛的应用,包括以下内容:

1.图像和视频:GAN可以创建逼真的视频和图像,可用于图形和动画。

2. 图像超分辨率:使用超分辨率生成对抗网络 (SRGAN) 提高图像的分辨率

3. 文本到语音转换:GAN 可用于使用 GAN-TTS(文本到语音的生成对抗网络)从提供的文本生成语音

        生成对抗网络是AIML中的强大工具,它彻底改变了机器与数据交互的方式。随着GAN的不断发展和进步,它们将对塑造AI的未来和推动创新产生更大的影响。生成式AI的增长证明了GAN的巨大潜力和影响。

五、表格 GAN(生成 AI)

        表格 GAN 是一种生成对抗网络 (GAN),专门设计用于生成合成表格数据。与图像数据不同,表格数据通常表示为要素矩阵,其中每行表示一个实例或观测值,每列表示一个要素或属性。

        表格 GAN 使用更适合表格数据的架构,例如多层感知器 (MLP) 或带有 1D 过滤器的卷积神经网络 (CNN)。生成器网络将随机噪声向量作为输入,并生成合成表格数据集作为输出。鉴别器网络试图通过输出二元分类分数来区分真实数据和合成数据。

        表格 GAN 的训练过程涉及以对抗方式更新生成器和鉴别器网络,其中生成器尝试生成可以欺骗鉴别器的合成数据,鉴别器尝试正确区分真实数据和合成数据。生成器的目标是最小化鉴别器对合成数据的损失,而判别器的目标是最大化合成数据的损失,最小化真实数据的损失。

        表格 GAN 具有多种应用,例如生成用于数据增强的合成数据集、插补数据集中的缺失值以及生成用于测试和验证目的的数据。但是,它们也有一些局限性,例如,如果训练数据不能代表真实总体,则存在生成有偏见或不切实际的数据的风险。

        #GANs #GenerativeAI

六、生成式 AI:GAN 的验证技术

        生成对抗网络 (GAN) 有几种验证技术,用于评估生成样本的质量和性能。GAN的一些最常见的验证技术是:

  1. 初始分数 (IS):此技术使用预先训练的初始模型来计算用于测量生成图像的多样性和质量的分数。分数是根据生成的图像与真实图像在类分布和视觉质量方面的相似性计算的。
  2. Frechet Inception Distance(FID):该技术还使用预先训练的Inception模型,但计算高维特征空间中真实图像和生成图像的特征表示之间的距离。较低的FID分数表示生成的图像与真实图像更相似。
  3. 精度和召回率(PR):该技术评估生成的样本相对于真实样本的精度和召回率。精度测量与实际样本相似的生成样本的百分比,而召回率测量与生成样本相似的实际样本的百分比。
  4. 目视检查:该技术涉及目视检查生成的样品并将其与真实样品进行比较。这是一种主观技术,但可以为生成的样本的视觉质量和多样性提供有价值的见解。
  5. 用户研究:该技术涉及进行用户研究,以评估生成样本的感知质量和多样性。这种技术更加主观,可能会根据参与者的偏好和偏见而有所不同。

更多推荐

四维轻云平台倾斜模型三种加载方式及单体化操作介绍

为了优化倾斜模型浏览效果,「四维轻云」v1.4.1针对倾斜模型新增了三种加载方式;此外,平台还增加了单体化等功能。但很多用户还不会使用这些功能,小编就来向大家介绍一些如何设置倾斜模型的三种加载方式和单体化操作。一、倾斜模型三种加载方式在倾斜模型的编辑窗口中,可设置数据的加载方式,保存后再次加载数据时生效。1、默认方式(

js创建动态key的对象ES6和ES5的方法

前提:有个场景,循环数组,根据每一项的值,往一个数组中push一个新对象,对象的key不同要从数组中获取情况解析:push没有什么问题,问题就是创建一个动态key的对象。下面就说一下如何以参数为key的条件下创建对象错误写法:varkey='name';varobj={key:'张三'}这样并不能得到想要的结果,创建对

刻字机尖角补偿

1刻字机尖角补偿原理刀具切割直线段过渡方法在文章旋转偏心裁切刀切向跟踪及半径补偿已经有过说明。刻字机由于刀具半径的影响,切割直角时会不直会比较圆滑,而且在闭合曲线的下刀点会容易不闭合。使用尖角补偿可以克服这些问题。如上图所示,切割俩条相邻线段AB和BC时,刀心需要走的轨迹是从A'-->B'-->B''-->C'。由于刻

springboot 去掉netflix 禁用Eureka

目录报错解决方法方法一:去掉maven依赖方法二:直接在application配置文件里禁用eureka(偷懒方法)方法三:检查eureka配置的地址是否正确(确实需要使用eureka)报错如果你接手别人的项目,启动的时候会一直报这个错:发现有netflix,eureka相关字眼,2023-09-1316:25:47.

PID控制原理

一.概述开环控制:没有反馈闭环控制:有反馈调节的控制PID控制环节由比例,积分,微分调节三个环节构成,三个环节在控制过程中相互配合,共同对输入输出间的误差进行调控,最终满足控制要求,如下图所示Pid控制完整图示二、各部分说明1.Proportion(比例控制)比例控制就是好每次调节的高度是误差的Kp倍.说明::err是

数据分享|SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林...

全文链接:http://tecdat.cn/?p=31745近几年来,各家商业银行陆续推出多种贷款业务,如何识别贷款违约因素已经成为各家商业银行健康有序发展贷款业务的关键(点击文末“阅读原文”获取完整数据)。相关视频在贷款违约预测的数据(查看文末了解数据免费获取方式)的基础上,探索是否能通过借贷者的数据判断其违约风险,

使用kubasz快速搭建Kubernetes集群

Kubernetes安装Kubernetes也称为K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。使用ansible

Kubernetes (K8s) 解读:微服务与容器编排的未来

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:🛠️全栈技术FullStack:📚MERN/MEAN/MEVNStack|🌐Jamstack|🌍GraphQL|🔁RESTfulAPI|⚡WebSockets|🔄CI/CD|🌐Git&Versio

Kubernetes-01-基础概念篇 基础组件&搭建一个K8S集群

K8S重要技术内容主要涵盖:集群架构、容器化应用部署、ScaleUp/Down、滚动更新、监控检查、集群网络、数据管理、监控与日志一、基础名词1.ClusterCluster是计算、存储、网络资源的集合,利用资源运行各种基于容器的应用2.MasterMaster是Cluster的核心,负责调度、控制。高可用版本,一般至

Kubernetes(K8s)上使用分布式存储(Distributed Storage)

摘要在Kubernetes(K8s)上使用分布式存储(DistributedStorage)是一种常见的方案,它可以为集群中的应用程序提供持久性和可扩展性。以下是在Kubernetes上使用分布式存储的说明:存储类(StorageClass):首先,你需要创建一个Kubernetes的存储类,用于定义分布式存储的属性和

KubeSphere Namespace 数据删除事故分析与解决全记录

作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。前言2023年7月23日在项目上线前夕,K8s生产环境出现故障,经过紧急修复之后,K8s环境恢复正常;另外我们环境引入了KubeSphere云原生平台技术,为了方便研发人员对于K8s权限的细粒度管理,我方手动将K

热文推荐