深度学习⑨GANs

Discriminative and Generative Models

Deep learning中主要两种模型

·  判别模型专注于从输入预测输出,例如分类任务。学习数据点和标签之间的特征

·  生成模型则试图理解数据是如何产生的,能够生成新的数据样本。理解数据分布和是否可以被预测

Quiz time: Discriminative models

Given some input data X and the corresponding labels Y, discriminative models maximize:

A. P(X, Y)

B. P(Y|X)

C. P(Y)

D. P(X|Y)

判别模型的目标是学习给定输入X的情况下,输出Y的条件概率,即x存在情况下,y的概率。这允许模型直接从输入预测输出,这正是判别模型的核心功能。理解这一点对于区分判别模型和生成模型至关重要。

So判别模型通过估计条件概率P(Y|X)来学习类别之间的决策边界。它们可以用于分类任务。

关键点:判别模型专注于区分不同的类别,而不是生成新的数据。

判别模型的主要目标是学习如何区分不同类别的数据。它们直接学习从输入到输出的映射,而不需要理解数据的生成过程。这使得判别模型在分类任务中非常有效。

Discriminative models learn the decision boundary between classes by estimating the conditional probability P(Y|X). They can be used for classification tasks.

图中的决策边界展示了模型如何将输入空间划分为不同的类别区域。这种可视化有助于理解判别模型的工作原理。

卷积神经网络(CNNs)也是判别模型的例子。CNNs在图像分类等任务中表现出色,正是因为它们善于学习区分不同类别的特征。

生成模型通过估计P(X,Y)来学习数据的底层分布(什么样的输入特征(X)和什么样的输出结果(Y)经常一起出现?),并且可以从这个分布中生成新的数据点。可以创建与训练数据相似的新数据样本。

核心目标是理解和模拟数据的生成过程。通过学习数据的联合分布P(X,Y)或边缘分布P(X),这些模型能够生成新的、看起来真实的数据样本。

这种能力使得生成模型在许多应用中非常有用,例如图像生成、数据增强、异常检测等。VAEs、GANs和扩散模型是当前最先进的生成模型,每种模型都有其独特的优势和应用场景。

GANs简介

什么是GANs?

  • 由Ian Goodfellow在2014年引入(NIPS 2014)

这是机器学习历史上的一个重要时刻。GANs的提出引起了广泛的关注,因为它提供了一种新的、创新的方法来生成逼真的数据。自那时起,GANs已经在多个领域产生了重大影响,特别是在图像生成和编辑方面。

具体来说就是一类生成模型,其中两个神经网络(生成器和判别器)在博弈论框架下一起训练。

核心思想是通过两个相互竞争的神经网络来训练生成模型:

  1. 生成器(Generator): 尝试创建看起来真实的假数据。
  2. 判别器(Discriminator): 尝试区分真实数据和生成器创建的假数据。

这两个网络在训练过程中相互对抗,不断改进。这种方法借鉴了博弈论的思想,两个网络就像是在玩一个零和游戏。

GANs如何工作

  1. 生成器的定义: x_j* = g[z_j, θ]         z噪音输入 θ是生成器参数

生成器利用 θ 来将随机噪声转换为尽可能接近真实数据的样本 xj

GANs的基本结构和工作流程:

  1. 生成器(G)接收随机噪声作为输入。
  2. 生成器创建假样本。
  3. 判别器(D)接收真实样本和生成的假样本。
  4. 判别器尝试区分真实样本和假样本。
  5. 系统根据判别器的反馈更新生成器和判别器。

这个过程不断重复,直到生成器能够创建出判别器无法区分真假的样本。

训练GAN

  1. 生成器G接收随机噪声z作为输入。
  2. 生成器创建假样本x*。
  3. 判别器D接收真实样本x和假样本x*。
  4. 判别器输出对每个样本是真实的概率估计。
  5. 系统计算损失函数。
  6. 基于损失函数更新生成器和判别器的参数。

GAN损失函数

最小损失函数,所以要加符号,-(负类+正类)

判别器的二元(真实或生成)交叉熵损失函数: 假设真实样本x的标签y=1,生成的样本x*的标签y=0 这样预测对就是0 错就有损失函数

注意:对θ最大化,因为我们希望生成的样本被错误分类!生成器的目标是最大化判别器错误分类的概率 so生成器的损失函数目标是最小化判别器的损失。

  • θ代表生成器的参数,z_j是输入的随机噪声。

判别器试图最小化这个损失,而生成器试图最大化它,这就创造了对抗性的训练动态。

极小极大博弈和纳什均衡Minimax game and Nash equilibrium

  • GAN训练被描述为极小极大博弈(博弈论)。
  • 解决方案是纳什均衡。
  • 例子:囚徒困境

在博弈论中,当每个玩家的策略对于其他玩家的策略都是最优的时,就达成了纳什均衡。没有玩家可以通过单方面改变策略来获益,而其他玩家的策略保持不变。

解释:

  1. GAN训练被视为一个极小极大博弈,其中生成器试图最大化判别器的错误,而判别器试图最小化自己的错误。
  2. 纳什均衡是这个博弈的理想解决方案,它代表了生成器和判别器达到的一个平衡点。
  3. 囚徒困境是博弈论中的一个经典例子,用来说明纳什均衡的概念。

在这个情况下,纳什均衡是双方都选择背叛对方,因为这能确保双方都不会冒更大风险(虽然合作能获得更好的总体结果,但背叛能避免最差的结果)。因此,双方最终选择背叛,以保证自己只受到较轻的惩罚。

GAN训练的目标是找到一个平衡点,在这个点上,生成器和判别器都无法通过单方面改变策略来改善自己的表现。

测验时间:纳什均衡

场景1纳什均衡是(Y,X),即玩家A选择Y,玩家B选择X。因为就算B去选择Y,也只是1,1,若A改变去选x反而更差

同理场景2纳什均衡是 (Y,X)

GAN收敛

  • GAN收敛时生成器和判别器的特征是什么?

生成器应能产生与真实数据几乎无法区分的样本,而判别器应该无法可靠地区分真实和生成的样本

  • 在什么时候GAN处于生成器达到最大值而判别器达到最小值的情况,并且它们都无法通过更新权重来获得更多收益?

即达到纳什平衡时,生成器和判别器的博弈达到一个平衡点。这个点,生成器试图最大化判别器犯错的概率,而判别器试图最小化这种错误率。最终,生成器无法再通过更新权重获得更多收益,判别器也无法通过调整进一步提高性能。理想的收敛点是当判别器的准确率接近50%时,这意味着它基本上在猜测,无法区分真实和生成的样本

  • 对生成器来说最好的情况是什么?这对判别器意味着什么?

生成判别器完全无法区分的样本。这意味着判别器将完全失效,为所有样本给出0.5的概率。

  1. 生成器的目标是生成遵循真实数据分布p_x的样本。
  2. 当GAN收敛时,判别器对任何输入给出0.5的概率,表示它无法区分真实和生成的样本。

DCGAN: 使用GAN生成图像

使用深度卷积生成对抗网络(DCGAN)生成图像

DCGAN的基本结构:

  1. 生成器接收随机噪声作为输入。
  2. 通过一系列反卷积(转置卷积)层,生成器逐步生成图像。
  3. 判别器接收真实图像和生成的图像作为输入。
  4. 判别器通过一系列卷积层来判断图像的真实性。

DCGAN是GAN在图像生成任务中的一个重要应用。它利用了卷积神经网络在处理图像数据方面的优势,使得GAN能够生成高质量的图像。

DCGAN生成的图像

DCGAN在生成逼真人脸方面的能力还不错。这些图像看起来相当真实,显示了不同的面部特征、表情和角度。

GANs的局限性和解决方案

GANs训练的困难

  • 不稳定和缓慢的训练Instable and slow training
  • 模式丢失/崩溃Mode dropping / collapse
  • 梯度消失Vanishing gradients

解释:

  1. 不稳定训练: GAN的训练过程可能非常不稳定,容易出现振荡或发散。
  2. 缓慢训练: 由于需要同时训练两个网络,GAN的训练可能非常耗时。
  3. 模式丢失/崩溃: 生成器可能只学会生成有限种类的样本,无法捕捉数据的全部多样性。
  4. 梯度消失: 在训练过程中,梯度可能变得非常小,导致学习停滞。

单纯理解就是 log作为损失函数 值越大 梯度越小

GAN的损失函数和Jensen-Shannon散度
  • 判别器的损失函数
  • 生成样本分布和真实样本分布之间的Jensen-Shannon散度(JSD)

  1. 判别器的损失函数是一个二元交叉熵损失,用于衡量判别器区分真实和生成样本的能力。
  2. Jensen-Shannon散度是衡量两个概率分布相似度的一种方法。在GAN中,它用于衡量生成的数据分布与真实数据分布的接近程度。
  3. GAN的训练过程可以被视为最小化生成分布和真实分布之间的JSD。

[图表显示了两个概率分布Pr(x*)和Pr(x)]

JSD有两个主要方面:质量(quality)和覆盖性(coverage)。质量指的是生成样本与真实样本的接近程度,覆盖性指的是生成样本是否能够涵盖真实数据分布的各个模式。

关键点:

  • JSD的一部分不依赖于生成器。
  • 生成器没有动力增加覆盖范围和对抗模式丢失!

解释:

  1. JSD的计算涉及这两个分布,但其中一部分只依赖于真实分布,与生成器无关。
  2. 这导致生成器缺乏直接的激励来增加其生成样本的多样性,可能导致模式崩溃问题。

然而,单靠JSD无法完全衡量生成器的覆盖能力,这意味着模型可能在训练中没有足够动力去生成完整的数据分布,导致模式丢失的现象。
GANs中的梯度消失
  • 真实样本和生成样本通常位于低维空间中。(虽然整体处于高维,但是真实的处于低维流体上)
  • 这些子空间之间几乎没有或根本没有重叠。
  • 真实和生成样本分布不相交也就是生成数据和真实的在低维空间没有重叠的可能性很高。
  • 这就导致生成器无法有效学习

梯度消失问题的原因。

图表显示: (左) 三维空间中的两条线。 (右) 三维空间中的两个曲面。2 line will not Intersect in space

解释:

  1. 高维空间中的低维流形很难有重叠。这意味着真实数据和生成数据可能位于完全分离的子空间中。
  2. 当真实和生成的分布完全分离时,判别器可以轻易地完美区分它们。
  3. 这导致判别器的梯度变得非常小或为零,使得生成器难以从判别器获得有用的反馈来改进其生成。

解释:

  1. 图表展示了当判别器变得越来越好时,其损失函数的梯度如何变小。
  2. 当判别器能够完美区分真实和生成的样本时,梯度接近于零
  3. 这导致生成器无法从判别器获得有用的反馈来改进其生成。

原始GAN的训练困境:

  • 要么:判别器变得太强,导致生成器的梯度消失,从而减慢或停止学习。
  • 或者:生成器过快变强,导致判别器更新不准确和训练结果不佳。
  • 需要找到一个微妙的平衡,这使得原始GAN公式的训练变得困难。

解释:

  1. 如果判别器学习得太快,它可能会完全压制生成器,导致生成器无法学习。
  2. 如果生成器学习得太快,判别器可能无法提供准确的反馈,导致整体训练质量下降。
  3. 理想的情况是两个网络保持相对平衡,但这在实践中很难实现。

理解这个困境对于理解为什么GANs难以训练以及为什么需要开发新的训练技术和损失函数很重要。

GANs的局限性和解决方案

改善GANs的训练稳定性

  • JSD不能为不相交的分布提供平滑和连续的度量

What about using a different distance metric?

  • 使用不同的距离度量如何?
  • Wasserstein距离(离散分布的Earth Mover's距离) 衡量两个分布的差异
  • 将一个分布转换为另一个分布所需的最小能量/工作量

解释:

  1. JSD在分布不重叠时会突然跳变0到log2,这不利于提供平滑的梯度。
  2. Wasserstein距离提供了一种更平滑的度量,即使在分布不重叠时也能提供有用的梯度。
  3. Wasserstein距离可以理解为将一个分布"搬运"到另一个分布所需的最小工作量。Minimum quantity of energy/work required to transform a distribution to the shape of another one

图表显示了JSD(D_JS)和Wasserstein距离(W)在不同分布重叠程度(θ)下的变化。当θ≠0时,两种度量都能提供有用的信息,但当θ=0(分布不重叠)时,只有Wasserstein距离能提供非零梯度。

其他改善GAN训练的方法
  • 渐进式增长 Progressive Growing
    • 开始学习生成小图像
    • 添加层以训练生成更大的图像
    • 擅长生成高分辨率真实图像
  • 小批量判别 Mini-batch discrimination
    • 计算跨小批量的特征统计
    • 作为特征图添加到判别器中
    • 有助于防止模式崩溃
  • 截断技巧 Truncation
    • 减少覆盖范围以提高质量

解释:

  1. 渐进式增长:通过gradually增加生成器和判别器的复杂度,可以更好地学习多尺度特征,最终生成高质量大图像。
  2. 小批量判别:通过考虑整个批次的统计信息,而不是单个样本,可以帮助判别器识别更多样化的样本,减少模式崩溃。
  3. 截断技巧:通过限制潜在空间的范围,可以在牺牲一些多样性的情况下提高生成样本的质量。

GANs的变体

条件生成Conditional generation

  • 生成具有特定属性的真实图像Generating realistic images with
  • specific attributes

条件GAN允许在生成过程中控制某些特定属性。例如,在生成人脸图像时,可以指定性别、年龄、表情等属性。这大大增加了GAN的实用性和可控性。

StyleGAN

  • 改进的图像质量和控制
  • 多阶段生成器,受转换后的潜在变量和噪声影响
  • 渐进式增长

解释:

  1. StyleGAN通过引入新的网络架构,显著提高了生成图像的质量和可控性。
  2. 它使用多阶段生成器,允许在不同的空间尺度上控制图像特征。
  3. 潜在变量经过非线性变换后用于控制生成过程,这增加了对生成图像风格的控制。
  4. 引入噪声输入增加了生成图像的细节变化。
  5. 采用渐进式增长策略,逐步增加图像分辨率,有助于生成高质量大尺寸图像。

·  风格层(Style Layer):在StyleGAN中,生成器不再直接从潜在空间(latent space)采样生成图像,而是通过一个“风格网络”来注入风格信息。这种风格信息可以控制生成图像的不同层次,例如粗粒度的特征(如脸型)和细粒度的特征(如皱纹)。

·  混合风格(Style Mixing):StyleGAN允许将多种风格混合在一起,比如将一个人的整体面部特征与另一人的发型或光影效果结合,产生新的生成结果。

·  逐层控制:不同于传统GANs,StyleGAN允许我们在不同的生成层次上控制图像的样式,这意味着我们可以分别控制大尺度的特征(如脸型、姿态)和小尺度的细节(如皮肤纹理)。

结论

  • GANs学习一个生成器网络,将随机噪声转换为与训练集无法区分的数据,以及一个判别器网络,试图区分真实样本和生成的样本。
  • 生成器被更新,使得生成的数据被判别器识别为更"真实"。
  • 原始GAN公式存在梯度消失和模式崩溃的问题。
  • 后续公式如Wasserstein GAN (WGAN)提供了更一致的训练信号。
  • 条件GAN和StyleGAN允许对输出进行更多控制。

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

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

相关文章

Hbase集群搭建

1. 环境 三台节点hadoop 集群zookeeper 集群hbase 1.1环境准备 使用前文hdfs三台节点 1.11 zookeeper搭建 下载 wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz解压 tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz zookee…

jupyter notebook启动和单元格cell

一、jupyter notebook启动 1. 数据分析传统与进阶的区别 - 传统数据分析工具: 1. SPSS 2. EXCEL 3. POWERBI - 进阶数据分析:Python处理数据功能 1. 数据处理(python处理数据功能)coding 2. 富文…

【芯智雲城】Sigmastar星宸科技图传编/解码方案

一、图传技术简介 图传是指将图像或媒体内容从一个设备传输到另外一个设备的技术,传输的媒介可以是无线电波、光纤、以太网等。图传系统主要由图像采集设备、传输设备和接收设备组成,图像采集设备负责采集实时图像,传输设备将采集到的图像转…

【HGT】文献精讲:Heterogeneous Graph Transformer

【HGT】文献精讲:Heterogeneous Graph Transformer 标题: Heterogeneous Graph Transformer (异构图Transformer) 作者团队: 加利福尼亚大学Yizhou Sun 摘要: 近年来,图神经网络(GN…

AI 写作(三)文本生成算法:创新与突破(3/10)

一、生成式与判别式模型:AI 写作的基石 (一)区别与特点 生成式模型和判别式模型在多个方面存在明显差异。在优化准则上,生成式模型致力于学习联合概率分布,而判别式模型则专注于建立输入数据和输出之间的关系&#xf…

蓝桥杯 懒洋洋字符串--字符串读入

题目 代码 #include <iostream>using namespace std;int main(){int n;cin>>n;char s[210][4];int ans0;for(int i0;i<n;i){scanf("%s",s[i]);}for(int i0;i<n;i){char as[i][0];char bs[i][1];char cs[i][2];// cout<<a<< <<b…

小红书图文矩阵的运营策略与引流技巧解析

内容概要 小红书图文矩阵是一种高效的内容运营方式&#xff0c;能够帮助品牌在竞争激烈的环境中脱颖而出。通过构建矩阵账号&#xff0c;品牌可以实现多维度的内容覆盖&#xff0c;创造出丰富而立体的用户体验。为什么要做图文矩阵&#xff1f;首先&#xff0c;这种方式能够提…

2.Python解释器

python解释器程序&#xff0c;用来翻译python代码&#xff0c;并提交给计算机执行。 上一篇博客就是安装了python解释器程序 写一个python文件&#xff0c;在文件中写入多行代码并执行&#xff1a; 进入python后&#xff0c;输入exit()命令退出

书生实战营第四期-基础岛第四关-InternLM + LlamaIndex RAG 实践

一、任务要求1 基于 LlamaIndex 构建自己的 RAG 知识库&#xff0c;寻找一个问题 A 在使用 LlamaIndex 之前 浦语 API 不会回答&#xff0c;借助 LlamaIndex 后 浦语 API 具备回答 A 的能力&#xff0c;截图保存。 1、配置开发机系统 镜像&#xff1a;使用 Cuda12.0-conda 镜…

【路径规划】PID搜索算法PSA求解UAV路径规划

摘要 本文研究了基于PID搜索算法&#xff08;PID Search Algorithm, PSA&#xff09;求解无人机&#xff08;UAV&#xff09;路径规划问题。通过引入PID控制思想来控制路径生成过程&#xff0c;使得无人机可以避开障碍物并在复杂地形中寻找最优路径。实验结果表明&#xff0c;…

编写第一个 Appium 测试脚本:从安装到运行!

前言 最近接到一个测试项目&#xff0c;简单描述一下&#xff0c;需求就是&#xff1a;一端发送指令&#xff0c;另一端接受指令并处理指令。大概看了看有上百条指令&#xff0c;点点点岂不是废了&#xff0c;而且后期迭代&#xff0c;每次都需要点点点&#xff0c;想想就头大…

劫持微信聊天记录并分析还原 —— 访问数据库并查看聊天记录(五)

本工具设计的初衷是用来获取微信账号的相关信息并解析PC版微信的数据库。程序以 Python 语言开发&#xff0c;可读取、解密、还原微信数据库并帮助用户查看聊天记录&#xff0c;还可以将其聊天记录导出为csv、html等格式用于AI训练&#xff0c;自动回复或备份等等作用。下面我们…

微软日志丢失事件敲响安全警钟

NEWS | 事件回顾 最近&#xff0c;全球最大的软件公司之一——微软&#xff0c;遭遇了一场罕见的日志丢失危机。据报告&#xff0c;从9月2日至9月19日&#xff0c;持续长达两周的时间里&#xff0c;微软的多项核心云服务&#xff0c;包括身份验证平台Microsoft Entra、安全信息…

音视频入门基础:H.264专题(17)——FFmpeg源码中,获取H.264视频的profile的实现

音视频入门基础&#xff1a;H.264专题系列文章&#xff1a; 音视频入门基础&#xff1a;H.264专题&#xff08;1&#xff09;——H.264官方文档下载 音视频入门基础&#xff1a;H.264专题&#xff08;2&#xff09;——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)

目录 一、Filter Solutions 1、软件资源及安装教程如下 2、使用相关内容 二、Filter Pro使用 1、软件资源及安装教程如下 2、使用相关内容 三、MATLAB Fdatool 1、在matlab命令中输入fdatool 2、输入相关参数&#xff0c;例如低通、FIR、20阶、hamming窗 3、调用 &am…

《数据治理精选案例集2.0(2024版)》592页PDF(已授权分享)

《亿信华辰数据治理精选案例集2.0》是北京亿信华辰软件有限责任公司倾力打造的专业数据治理案例集&#xff0c;汇集了100个一线政企数据治理实践案例&#xff0c;覆盖13大行业和500业务场景&#xff0c;通过深入剖析数据治理难题&#xff0c;提供了新思路和实战经验&#xff0c…

LangChain大模型应用开发指南:打造个性化LLM

在之前的课程中&#xff0c;我带领小伙伴们使用开源项目实现了将星火模型的OpenAI-API接口适配转换封装&#xff0c; 但是这种做法的局限性也很强&#xff0c;只能使用开源项目适配过的大模型&#xff0c;并且由于多了一层适配代理&#xff0c;接口的性能也存在一定损耗。今天…

Spring WebFlux 核心原理(2-3)

1、Project Reactor 高级 1.1、响应式流的生命周期 要理解多线程的工作原理以及 Reactor 中实现的各种内部优化&#xff0c;首先必须了解 Reactor 中响应式类型的生命周期。 1.1.1、组装时 流生命周期的第一部分是组装时&#xff08;assembly-time&#xff09;。 Reactor 提供…

走进算法大门---双指针问题(一)

一.双指针算法介绍 概念&#xff1a;双指针是指在遍历数据结构&#xff08;如数组、链表等&#xff09;时使用两个指针&#xff0c;通过特定的移动规则来解决问题。这两个指针可以同向移动&#xff0c;也可以相向移动。 同向双指针&#xff1a;常用于解决需要两个位置信息的问…

智能问答系统流程详解:多轮对话与模型训练的技术要点及案例

随着智能客服系统的广泛应用&#xff0c;如何在提升用户体验的同时保障系统的准确性与效率&#xff0c;成为了智能问答系统设计中的重要问题。本文将介绍一种智能问答系统的流程设计&#xff0c;涵盖从识别用户意图、匹配知识库、多轮对话到模型训练的全流程&#xff0c;并通过…