为什么边缘概率密度是联合概率密度的积分_我为什么弃用GAN?

article/2025/10/2 3:16:19

贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI

输出单一、调参麻烦、损失函数不能收敛、稳定性差。

苏黎世理工大学的博士Andreas Lugmayr历数了各种GAN的“罪状”,说出了今后弃用GAN的话。

a4ef0c9c4ba673b99a4a0966d45963bc.png

说出“弃用”,当然是已经有了B计划。

Andreas Lugmayr博士和他的团队开发了一种新的标准化流(Normalizing Flow)模型,能够弥补GAN在生成任务中的的种种缺陷。

这项研究成果“SRFlow”,还被ECCV 2020 Spotlight收录。

那么SRFlow到底有多厉害?能在多大程度上替代GAN呢?

SRFlow“又多又好”

从肉眼可见的生成任务结果上,可以看出SRFlow至少在两个方面超越了GAN,一是生成结果的多样性,二是提高图片分辨率后的保真度

输入一个低分辨率马赛克图像,基于GAN的ProgFSR模型和SRFlow生成结果对比:

2855af92f90ec9dddcff9c86695b55c8.png

在提升4倍分辨率的任务中,SRFlow的生成结果也比基于GAN的ERSGAN更加清晰真实。

fdb84b81354b85dc85e598596a08a6ad.png

对于众多的GAN变体来说,有一些缺陷是难以避免的,比如图像复原生成任务,生成器广泛忽略了随机向量,因此,大多数基于GAN的图像到图像映射都是单一确定的。

GAN训练中的损失函数,包括了生成器伪造图像,而鉴别器却无法知道哪些图像是假的。

另一方面,鉴别器的职责就是确定一个图像是来自生成器还是来自训练集。

这两个相互冲突的目标导致了学习参数的持续漂移,导致输出结果不同程度的失真。

那么基于标准化流的SRFlow,是如何弥补这些缺陷的呢?

SRFlow不会忽略随机向量

对于GAN忽略输入的随机向量,导致输出单一的问题,传统的GAN策略是,在模型中增加一个控制信号,并抛弃重建损失函数。

412933e8df8430ed46c8741dc64db5c1.png

放大16倍分辨率下的SRFlow输出结果

而SRFlow在训练过程中,算法核心—标准化流模型将高分辨率图像转化为高斯分布。图像条件标准化流的情况并非如此。

为了避免GAN的判别器损失通常会导致模式崩溃,SRFlow采用单一损失进行训练的,并且对随机输出进行内采样。

70b97dda257f8596b944635533706166.png

模型稳定超参数少,调参方便

条件GAN需要仔细的超参数调整。很多GAN的变体模型中,总损失由多个损失的加权和组成。

所以降低失真需要很大的精力来调整不同的损失函数权重。

此外还必须平衡生成器和判别器,使训练过程稳定。

在图像生成任务中SRFlow使用最大似然策略(maximum likelihood),输入的图像被转化为一个高斯潜空间。通过简单的计算得到高斯向量的似然。然后使用现成的Adam优化器,这个损失函数会稳定地收敛。

ce7a31f04d0c1e098c6f33e562a51104.png

SRFlow的单一损失稳定且可收敛

Normalizing Flow本质上是稳定的。因为模型只有一层网络和一个损失,超参数要少得多,训练起来也更容易。

特别是对于开发新模型的研究人员来说,这一点非常实用。

新手可以更容易地比较不同的架构的Normalizing Flow变体。

输入输出保持高度稳定

在没有进一步干预的情况下,有条件的GAN是不具备输入一致性的。对于提升分辨率任务,一个重要的问题是,高分辨率的图像是否与低分辨率的输入保持最大程度一致。

如果不能,那么该方法到底是真的提高分辨率还是仅仅生成一个类似图片?这点十分值得怀疑。

GAN模型里有一个不受监督的损失函数,会导致模型自行生成图片像素。而标准化流模型避免了这种可能。它以且只以输入图像为条件,来模拟高分辨率图像的分布。

83a918a8075c52a66e67c7e1feb64a53.png

将SRFlow的输出与输入对比,可以看出与GAN的结果不同,具有高度一致性。

生成任务只需1张GPU训练

研究团队说,论文中的实验基于GLOW网络,使用多达40个GPU来训练图像生成。

但如果只是应对简单的图片生成任务,只需要一块GPU就能完成对SRFlow的训练。

什么是标准化流模型?

机器学习中有一类是概率模型。训练一个模型时,常见的一种处理方法是调整参数以使得模型在训练数据集的概率最大。

为了达到这个目的,需要假设模型满足一定的概率分布模式。

那么到底需要什么样的分布,既具有接近真实样本的表达能力,又具有统计机器学习模型较好的解释性呢?

a92d6169befda095c4c2a3c1e26934f2.png

高斯分布可以基本满足:采样方便、解析的密度已知、KL距离容易计算,还有中心极限定理的保证。最常使用的两种方法是用于分类的Categorical以及用于回归的Gaussian。

但这两种方法仍然有一些问题, 因为真实世界中样本的概率密度函数一般来说,与范畴分布以及高斯分布相差甚远。

如果简单地使用高斯作为图像生成的似然函数,那最后得到的生成结果可能很糟糕。

而标准化流(Normalizing Flow)可以把简单的概率密度(比如高斯分布)形式转化成某种更高级分布形式。

Flow指的是数据流经过一系列双射(可逆映射)。最终映射到合适的表征空间,normalizing指的是表征空间的变量积分是1,满足概率分布函数的定义。

标准化流这种工具,可以产生更强大的分布函数。

从另一个视角来看,标准化流可以看作是一种参数化对先验概率q的逼近的方法,并且也可以用在其它似然函数方程场景下。

与GAN不同,标准化流模型在采样、训练稳定性、损失函数收敛、和一致性方面具有优势。

标准化流模型更加适合用在图像生成、强化学习、变分推断之类的任务。

SRFlow的团队,已经将这个基于标准化流的模型开源。

那么你的下一个机器学习任务,会使用SRFlow吗?

论文地址

https://arxiv.org/abs/2006.14200

开源地址

https://github.com/andreas128/SRFlow?

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态


http://chatgpt.dhexx.cn/article/RNMLEnUu.shtml

相关文章

联合概率密度,条件概率,乘法公式,求和公式,边缘分布,链式法则,贝叶斯公式...

联合概率密度 P(A^B) 条件概率 从面积比例看出,P(A|B)等于B中A的面积(P(A^B))除以B的面积(P(B))。 乘法公式(乘积法则) 假如事件A与B相互独立,那么: 相互独立:表示两个事件互不影响。 互斥:表示两个事件不能同时发生。互斥事件一定不独立(因为一件事的发生导致了另…

概率论——随机变量、概率分布函数、概率密度函数、联合概率密度

(博客上编辑公式很麻烦,大多上自己文档的截图了) (随机试验,样本空间等可参考https://blog.csdn.net/qq_37601846/article/details/103507576) 1. 随机变量(random variable) &…

概率统计笔记:高斯分布的联合概率密度

1 符号说明 我们的目的是求的概率 2 求p(y) 不难发现,y与x的关系为线性高斯模型,则yy与x符合下述关系 于是可以得到y的分布 3 求p(z) 我们现在的目标就是求这个▲是什么 参考资料:机器学习-白板推导系列笔记(二)-数…

利用MATLAB来绘制二维随机变量的联合概率密度图像

本文档通过MATLAB来绘制二维随机变量(X,Y)的联合概率密度函数。 第一种类型,X服从标准正态分布,Y服从均匀分布。 【例题】已知随机变量X与Y相互独立,X~N(0,1);Y在区间[0,2]上服从均匀分布。求: (1)二维随机…

联合概率密度函数的基本结论

若已知连联合概率密度函数: 则: X边缘密度函数: Y边缘密度函数: x,y从负无穷到正无穷的积分为: X与Y的边缘分布函数:可分别通过X与Y 的边缘密度函数求得。(分布函数由密度函数求积分得到&#x…

图解联合概率密度、边缘概率密度、条件概率密度之间的关系

图解联合概率密度、边缘概率密度、条件概率密度之间的关系 笔记来源:L10.3 Comments on Conditional PDFs 联合概率密度、条件概率密度的关系 个人理解:某个条件概率密度函数图像是联合概率密度函数图像的某个经过放缩后的“切片”(y取某个…

Python出现ValueError: check_hostname requires server_hostname如何解决

Python出现ValueError: check_hostname requires server_hostname如何解决 Python出现ValueError: check_hostname requires server_hostname如何解决 Python出现ValueError: check_hostname requires server_hostname如何解决 在安装myqr库的时候,出现了ValueErro…

python3.8 check_hostname requires server_hostname

这个error我查了下,在多个方面运行程序时都会报错,本人是在安装下面的轮子时报的错,查了好多,大部分是修改某一包的版本 但,有一个方法贼简单,分享下: 将 使用代理服务器 设置为 关 &#xff…

ValueError: check_hostname requires server_hostname解决方法

使用python的pip安装第三方包的时候会出现这个问题 查看了一些解决方法 关掉一些代理VPN然后重试,再不行就关闭计算机代理: PS H:\python_project\Python-Multiple-Image-Stitching-master\Python-Multiple-Image-Stitching-master> pip install ope…

彻底理解hostname---四种方法修改hostname值

当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问题给我好好上了一课,很多知识点,当你觉得你已经掌握的时候,其实你了解的还只是皮毛。技术活,切勿浅尝则止&#xff01…

Linux命令之获取和修改主机名hostname

概述 hostname 命令可以获取当前主机名和临时修改主机名。 语法 该命令的语法如下: hostname [选项] [参数]该命令支持的选项有: 选项说明-a显示主机别名-d显示DNS域名-f显示FQDN名称-i显示主机的ip地址-s显示短主机名称,在第一个点处截断…

【安全测试学习】数据库基础

以上来自学习极客时间《Web 安全攻防实战》课程内容,汇总整理思维导图。

安全测试-数据安全测试(2)

目录 前言 一、环境准备 1.1 模拟器软件下载 1.2 账号登录注册 1.3 版本选择 二、获取 SQLite 文件 Android 三、查看 SQLite 文件 四、SQLite 数据安全 4.1SQL 注入 4.2预防 SQL 注入 前言 捣鼓了那么久,终于整理出来了,可能中间会出现一些波…

Web安全攻防渗透测试

1. Nmap的基本 Nmap ip 6 ip Nmap -A 开启操作系统识别和版本识别功能 – T(0-6档) 设置扫描的速度 一般设置T4 过快容易被发现 -v 显示信息的级别,-vv显示更详细的信息 192.168.1.1/24 扫描C段 192.168.11 -254 上 nmap -A -T…

安全测试-- WEB 实战

增:XSS、文件上传get shell 删:越权 查:sql注入、越权 改:XSS、越权 好 也可以用wvs先扫 根据报告找漏洞的点 一 端口信息收集 kali : nmap -A -T4 192.168.1.35 端口信息收集 端口信息收集资料 问题:端口扫描是…

Web应用安全测试扫盲

最近新闻热点《西北工业大学遭美国国家安全局网络攻击事件》想必大家都看到了,攻击的目的无外乎获取涉及到国安的机密数据。 移动互联网时代,Web应用产生并存储海量用户隐私以及交易数据,对Web应用进行安全测试变得越来越重要。 本文属于扫…

Web 安全测试之信息泄漏测试

随着因特网的不断发展,人们对网络的使用越来越频繁,通过网络进行购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃取用户的信息,使用户的个人信息泄漏,所以站点的…

MYSQL数据库安全测试

1.利用渗透机场景kali中的工具确定MySQL的端口&#xff0c;将MySQL端口作为Flag提交&#xff1b; Nmap -sV -p- 172.16.101.243 flag{3358} 2.管理者曾在web界面登陆数据库&#xff0c;并执行了 {select ‘<?php echo ;system($_GET[\cmd\]); echo ; ?>’ INTO OUTFI…

Web安全测试-WebScarab工具

转载自web安全测试—WebScarab工具介绍&#xff08;中间攻击&#xff0c;可以修改请求参数&#xff09; 1.1 Webscarab1.1.1 工具安装1.1.2 功能原理1.1.3 工具使用1.1.34 使用心得 工具下载&#xff1a;WebScarab工具下载 1.1 Webscarab 【功能】 WebScarab是一个用来分析使…

web安全测试概述

一、关于安全 1、安全问题的根源&#xff1a; 1&#xff09;、分层思想&#xff0c;这个分层包括网络分层和软件分层等&#xff0c;分层可以将大的问题划分为不同的层次&#xff0c;层次与层次之间通过一定的接口标准进行信息交换&#xff0c;从而将一个大问题拆分开来由不同…