【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框架,这些项目都经过精心挑选,涵盖了不同的实战主题和用例,可做毕业设计和课程…

js的filter函数

在JavaScript中,filter() 是一个数组方法,它创建一个新数组,其包含通过提供的函数实现的测试的所有元素。换句话说,filter() 函数遍历数组中的每个元素,并只将那些使测试函数返回 true 的元素包含在新数组中。 这里有…

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 …

h5增加的属性、标签和api

新增的属性: data-*属性:用于在HTML元素上存储自定义数据。placeholder属性:用于在表单元素中提供占位符文本。required属性:标记表单元素是否为必填项。autocomplete属性:控制表单元素的自动完成行为。download属性&…

短视频的11个流量密码

01原始欲望 每一个人都想着住豪宅、开豪车、吃大餐、赚大钱、看帅哥美女等,所以当你的视频里出现大量别人没有去过的美景,没有吃过的大餐,没有见过的金钱,和性感妖娆的美女,就会有人想点击去看。 对于男性来说&#…

Unity Android Release-Notes

🌈Android Release-Notes 收集的最近几年 Unity各个版本中 Android的更新内容 💡WebGL Release-Notes 2023 💡WebGL Release-Notes 2022 💡WebGL Release-Notes 2021

单链表的冒泡,选择和插入排序

今天我们来看看单链表排序中的冒泡排序,插入排序,选择排序。 文章目录 冒泡排序交换值交换节点 插入排序交换节点 选择排序交换值交换节点 冒泡排序 交换值 首先我们来看看不交换节点,只进行值交换的形式,与数组下的实现思路一…

文本检索粗读

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

CommunityToolkit.Mvvm笔记1---Instruction

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

最短响应时间负载均衡算法Golang实现

最短响应时间负载均衡算法(Least Response Time Load Balancing Algorithm),顾名思义,它的主要目标是最小化用户的响应时间。在这种算法下,负载均衡器会跟踪后端服务器的历史响应时间,并将新的连接请求分配…

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

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

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

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

【AcWing】蓝桥杯集训每日一题Day15|并查集|528.奶酪(C++)

528.奶酪 528. 奶酪 - AcWing题库难度:简单时/空限制:1s / 128MB总通过数:3800总尝试数:10480来源:NOIP2017提高组算法标签并查集BFSDFS 题目内容 现有一块大奶酪,它的高度为 ℎ,它的长度和宽…

Java并发编程和JUC

Java并发编程、JUC(java.util.concurrent包) 参考:JUC详解 概念辨析 进程、线程、管程 进程 进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 它是操作系统动态执行的基本单元,是操作系统…

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

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

2024.04.01校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招 | 2024届零跑汽车春季校园招聘正式启动(内推) 校招 | 2024届零跑汽车春季校园招聘正式启动(内推) 2、校招 & 实习 | 航天二院2…

了解 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;有两种方…