【AI基本模型】简化生成对抗网络 (GAN)

目录

一、说明

二、GAN的工作

三、如何手动计算生成对抗网络(GAN)?✍️

四、GAN的应用


一、说明

        生成对抗网络 (GAN) 是一种机器学习算法,可以生成与现实世界数据几乎无法区分的合成数据。它们的工作原理是让两个神经网络在类似游戏的竞争中相互对抗,每个网络都试图通过智取另一个网络来提高其性能。

赣语

        第一个网络,称为生成器,创建它认为是真实的合成数据。第二个网络称为鉴别器,评估数据并试图确定数据是真实的还是生成的。

        随着生成器生成外观和行为类似于真实数据的数据的能力提高,鉴别器也提高了区分真实数据和生成数据的能力。随着时间的流逝,这两个网络变得越来越复杂和准确,最终达到了人类难以区分真实数据和生成数据的地步。

        GAN 具有广泛的应用,包括生成图像、文本和语音,以及计算机视觉、自然语言处理和机器翻译等领域。它们还被用于生成用于训练机器学习模型的合成数据,从而减少了对大量真实世界数据的需求。

二、GAN的工作

        生成对抗网络 (GAN) 的工作可以被认为是两个神经网络、生成器和判别器之间的博弈。生成器创建它认为是真实的合成数据,而鉴别器评估数据并尝试确定它是真实的还是生成的。

赣语

        发电机网络首先随机生成可能看起来与真实数据不同的数据。然后,鉴别器网络评估这些数据并向生成器提供反馈,指示它认为生成的数据是真实的还是假的。然后,生成器使用此反馈来提高其生成看起来越来越像真实数据的数据的能力。

        同时,鉴别器网络也在提高其区分真实数据和生成数据的能力。它评估真实数据和从生成器生成的数据,并学习在评估中变得更加准确。

        这个过程以迭代方式继续进行,生成器和鉴别器网络并行提高其性能。随着时间的流逝,生成的数据变得如此之好,以至于鉴别器网络很难将其与真实数据区分开来,而生成器网络能够产生与真实数据几乎无法区分的真实数据。

        在总之,GAN使用生成器网络和鉴别器网络之间的类似游戏的竞争,通过迭代提高两个网络的性能,创建与真实世界数据几乎无法区分的合成数据。

三、如何手动计算生成对抗网络(GAN)?✍️

        GAN无需介绍。GAN由Ian Goodfellow于2014年发明,负责开创视觉数据的生成式AI领域。

 目标:从二维噪声中生成逼真的四维数据。

[1] 给定
↳ 4 个 2D 噪声向量 (N)↳ 4D 4D (X)
真实数据向量

[2] 🟩 生成器:第一层
↳ 将噪声向量与权重和偏差相乘,得到新的特征向量

[3] 🟩 生成器:ReLU
↳ 应用 ReLU 激活函数,具有抑制负值的作用。在本练习中,-1 和 -2 被划掉并设置为 0。

[4] 🟩 生成器:第二层
↳ 将特征与权重和偏差相乘,以获得新的特征向量。
↳ 应用 ReLU。但是,由于每个值都是正数,因此没有影响。
↳ 这些新的特征向量是由这个简单的 2 层生成器网络生成的“假”数据 (F)。

[5] 🟦 鉴别器:第一层
↳ 将假数据 (F) 和真实数据 (X) 都提供给第一线性层
↳ 将 F 和 X 与权重和偏差相乘以获得新的特征向量。
↳ 应用 ReLU。但是,由于每个值都是正数,因此没有影响。

GAN计算 

[6] 🟦 鉴别器:第二层
↳ 将特征乘以一组权重和偏差,得到新的特征。
↳ 预期效果是将每个数据向量减少到只有一个特征值。

[7] 🟦 判别器:Sigmoid σ
↳ 使用 Sigmoid 函数
将特征 (Z) 转换为概率值 (Y↳ 1 表示判别器 100% 确信数据是真实的。
↳ 0 表示鉴别器 100% 确信数据是假的。

[8] 🏋️ 训练:🟦判别器
↳ 用 Y — YD 的简单方程计算判别器的损耗梯度。为什么这么简单?因为当我们同时使用乙状结肠和二元熵损失时,数学神奇地简化为这个方程。
↳ YD 是从鉴别器的角度来看的目标预测。鉴别器必须学会预测四个假数据 (F) 的 0 和四个真实数据 (X) 的 1。YD=[0,0,0,0,1,1,1,1]。
↳ 请注意,鉴别器的丢失涉及虚假数据和真实数据。
↳ 通过计算损失梯度,我们可以启动反向传播过程,以更新鉴别器的权重和偏差(蓝色边框)。

[9] 🏋️ 训练:🟩生成器
↳ 通过 Y — YG 的简单方程计算生成器的损耗梯度。
↳ YG 是生成器视角的目标预测。生成器必须欺骗鉴别器,使其预测四个假数据 (F) 的 1。YG=[1,1,1,1]。
↳ 请注意,生成器的丢失仅涉及虚假数据。
↳ 通过计算损失梯度,我们可以启动反向传播过程以更新生成器的权重和偏差(绿色边框)。

四、GAN的应用

        生成对抗网络 (GAN) 在各个领域都有广泛的应用。以下是一些示例:

  1. 图像和视频生成:GAN 通常用于生成合成图像和视频,例如创建逼真的人脸或风景。它们还可用于数据增强,这涉及通过生成现有图像的变体来创建额外的训练数据。
  2. 图像到图像转换:GAN 可用于将一种类型的图像转换为另一种类型的图像,例如将黑白图像转换为彩色图像或将房间图像转换为不同的风格。
  3. 文本到图像生成:GAN 可以根据文本描述生成图像,从而允许创建与特定提示或请求匹配的图像。

4. 超分辨率:GAN可用于提高低分辨率图像的分辨率,使它们看起来更清晰、更详细。

5. 修复:GAN 可以通过填充图像的缺失部分来生成逼真的图像,例如修复损坏或删失的图像。

6. 风格转移:GAN 可以将一个图像的风格转移到另一个图像上,从而可以创建具有独特风格和构图的图像。

7. 语音合成:GAN 可用于生成听起来自然逼真的合成语音。

8. 数据增强:GAN可用于生成合成数据,用于训练计算机视觉、自然语言处理和机器人等各个领域的机器学习模型。

        这些只是GAN广泛应用的几个例子。随着 GAN 的不断发展和改进,它们可能会对许多行业产生越来越重大的影响。

 

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

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

相关文章

【计算机毕业设计】基于Java+SSM的实战开发项目150套(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 🧡今天给大家分享150的Java毕业设计,基于ssm框架,这些项目都经过精心挑选,涵盖了不同的实战主题和用例,可做毕业设计和课程…

python画神经网络图

代码1(画神经网络连接图) from math import cos, sin, atan import matplotlib.pyplot as plt # 注意这里并没有用到这个networkx这个库,完全是根据matploblib这个库来画的。 class Neuron():def __init__(self, x, y,radius,nameNone):self.x xself.y …

文本检索粗读

一.前情提要 1.本文理论为主,并且仅为个人理解,能力一般,不喜勿喷 2.本文理论知识较为散碎 3.如有需要,以下是原文,更为完备 Neural Corpus Indexer 文档检索【论文精读47】_哔哩哔哩_bilibili 二.正文 &#xf…

CommunityToolkit.Mvvm笔记1---Instruction

CommunityToolkit.Mvvm是一个官方社区套件(Windows Community Toolkit),延续了MVVMLight的风格,是一个现代、快速和模块化的 MVVM 库。 它是 .NET 社区工具包的一部分。 第一:入门安装 1,用NuGget安装,搜索Community…

【菜狗学前端】ES6+笔记(包含Promise及async、await等)

老样子。复制上来的图片都没了,想看原版可以移步对应资源下载(资源刚上传,还在审核中) (免费)菜狗学前端之ES6笔记https://download.csdn.net/download/m0_58355897/89135424 一 解构赋值 解构赋值 解构指的是把一个数据…

马上拥有“钞能力”!!24个Python接单平台,赶紧码住!!

学Python能兼职挣米吗?怎么挣? 一、Python兼职种类: 接私活刚学会python那会,就有认识的朋友介绍做一个网站的私活,当时接单赚了4K,后又自己接过开发网站后台接口、做数据处理等事情,都赚了一…

【机器学习300问】66、均方误差与交叉熵误差,两种损失函数的区别?

一、均方误差(Mean Squared Error, MSE) 假设你是一个教练,在指导学生射箭。每次射箭后,你可以测量子弹的落点距离靶心的差距(误差)。MSE就像是计算所以射击误差的平方后的平均值。它强调了每一次偏离靶心的…

了解 Vue 工程化开发中的组件通信

目录 1. 组件通信语法 1.1. 什么是组件通信? 1.2. 为什么要使用组件通信? 1.3. 组件之间有哪些关系(组件关系分类)? 1.4. 组件通信方案有哪几类 ? 2. 父子通信流程图 3. 父传子 3.1. 父传子核心流程…

力扣练习题(2024/4/14)

1接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2…

SpringBoot 整合RocketMQ

目录 一、引入依赖 二、配置文件 三、生产者 四、消费者 五、结果 一、引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.0</version> </d…

leetcode热题100.爬楼梯(从二进制到快速幂)

Problem: 70. 爬楼梯 文章目录 题目思路Code复杂度 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方…

numpy学习笔记(5),其他实用函数

8. 更多函数 8.1 随机数 8.1.1 常用随机数 8.1.1.1 numpy.random.rand(d0, d1, …, dn) 返回[0.0, 1.0)随机浮点数&#xff0c;即大于等于0.0&#xff0c;小于1.0。d0, d1, …, dn&#xff1a;返回的数组形状 # 使用numpy.random.rand函数 import numpy as np np.random.r…

每日一题:无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无重…

2009-2021年上市公司僵尸企业识别数据(含原始数据+计算代码+计算结果)

2009-2021年上市公司僵尸企业识别数据&#xff08;含原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2009-2021年 2、指标&#xff1a; 证券代码 、证券简称、上市日期、year、净利润、政府补助、流动负债合计、负债合计、财务费用明细利息支出、资产总计、长期负…

(Oracle)SQL优化案例:隐式转换优化

项目场景 项目现场的某个kettle模型执行非常缓慢&#xff0c;原因在于某个SQL执行效率非常的低。甲方得知此事要求公司赶紧优化&#xff0c;负责该模块的同事对SQL优化并不熟悉。所以作为一个立志成为优秀DBA的ETL工程师&#xff0c;我自告奋勇&#xff1a;不是DBA&#xff0c;…

ES6 关于Class类的继承 extends(2024-04-10)

1、简介 类Class 可以通过extends关键字实现继承&#xff0c;让子类继承父类的属性和方法。extends 的写法比 ES5 的原型链继承&#xff0c;要清晰和方便很多。 class Foo {constructor(x, y) {this.x x;this.y y;console.log(父类构造函数)}toString() {return ( this.x …

《由浅入深学习SAP财务》:第2章 总账模块 - 2.7 总账模块报表 -2.7.1 对外报表:资产负债表及利润表

总账模块报表既包括对外报告的资产负债表、损益表、现金流量表&#xff0c;也包括企业自身用于查询和分析的各类报表&#xff0c;如科目余额表等。 2.7.1 对外报表&#xff1a;资产负债表及利润表 在SAP中&#xff0c;出具资产负债表和利润表的标准方法是先在后台建立一套“会…

971: 统计利用先序遍历创建的二叉树的深度

解法&#xff1a; 1.先序遍历创建二叉树链表形式 2.求二叉树的深度 用后序遍历实现&#xff1a; 1.后序遍历求节点A左右子树高度 2.对节点A&#xff1a; 1.取左右子树较大高度 2.返回高度1&#xff08;即以节点A为根节点的子树的最大深度&#xff09; 例如 #include <ios…

LINUX命令行后台运行matlab程序

UBUNTU安装了matlab&#xff0c;需要后台运行matlab程序。 一、MobaXterm程序&#xff08;非后台&#xff09; 使用mobaxterm程序&#xff0c;ssh连接ubuntu&#xff0c;在对应账号中输入matlab&#xff0c;即可基于mobaxterm自带的Xserver可视化界面&#xff0c;打开matlab界…

RobotFramework功能自动化测试框架基础篇

概念 RobotFramework是什么&#xff1f; Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性&#xff0c;支持关键字驱动&#xff0c;可以同时测试多种类型的客户端或者接口&#xff0c;可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试…