深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs

news2024/9/24 3:27:21

深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs

对抗神经网络能够产生不存在的图片,换脸或者生成一些艺术品,这些有趣和强大的对抗神经网络的能力不仅能够创造价值,还能够用来犯罪。With Great Power , Comes With Responsibility. 请使用者可以 Handle it responsibly

Inception-v3 architecture 是一种图像识别模型,已证明在 ImageNet 数据集上的准确率超过 78.1%。该模型是多位研究人员多年来开发的许多想法的结晶。它基于原始论文: Szegedy 等人的“重新思考计算机视觉的初始架构” ,其主要用于进行图像中的物体识别,具体叫特性识别。

该模型本身由对称和非对称构建块组成,包括卷积、平均池化、最大池化、连接、dropout 和全连接层。批量归一化在整个模型中广泛使用,并应用于激活输入,使用 Softmax 计算损失。下面进行一个简单的介绍,具体请看论文。

1. 模型的评估 Evaluation

为什么评估模型非常的难? why is evaluating GANs hard?

  • 判别器容易出现过拟合的状况,不存,在一个通用的可以适合所有模型的判别器。 Discriminator overfitting non gold universal discriminator
  • 两个重要的模型特性需要考虑和平衡 Two important properties needed to consider and trade off:
    • 保真性:指的是生成的图片以假乱真的能力 Fidelity
    • 多样性:指的是生成的图片类别类型多样的能力 Diversity

比较生成图像的差别 Comparing images:

  • 像素距离 pixel distances : 这种方式比较简单,但是在很多情况并不适用 not realistic in some situations
  • 特征距离 feature distances : 这种方式可以比较特征之间的距离,比如说

1.1 特征提取 Feature extraction

使用一个提前训练好的特征提取器来进行初始的特征提取,并输出特征信息 Using Feature extraction using pre-trained classifiers (Extensively pre-trained classifiers available to use)

  1. 通过将分类器的神经网络切断,取其中的一部分来提取特征。Classifiers can be used as feature extractors by cutting the network at earlier layersScreenshot 2023-01-16 112520
  2. 一般截取到池化层,因为池化层通常用来进行特征提取。The last pooling layer is most commonly used for features extraction

1.2 Inception-v3 architecture

Screenshot 2023-01-16 113828

通过这个imagenet的神经网络可以将像素空间投影到feature空间,实现比较feature而不是比较像素。这样就可以识别出鼻子,耳朵,头发颜色等等图像的具体特征,并实现一些具体的操作,比如说对图像的特征距离进行计算等等。这些特性被叫做 embeddings, 我们可以通过比较 embeddings来得到 特性距离,也就是feature distance。

1.3 方法一 Frechet distance (Maurice frechet)

在数学中,Fréchet 距离是曲线之间相似性的度量,它考虑了沿曲线的点的位置和顺序。它以Maurice Fréchet的名字命名。用于计算两个曲线的距离的一种metric(度量方式)想象一个人在用皮带遛狗时穿过一条有限的弯曲路径,而狗则穿过一条单独的有限弯曲路径。每个人都可以改变他们的速度以保持皮带松弛,但都不能向后移动。两条曲线之间的 Fréchet 距离是足以让两条曲线从头到尾穿过各自路径的最短皮带的长度。请注意,该定义关于两条曲线是对称的——如果狗在遛它的主人,Fréchet 距离将是相同的。其称之为 Frechet Inception Distance (FID)。这个距离通常用来比较两个随机变量分布之间的距离。

  • Univariate Normal Frechet Distance

( μ X − μ Y ) 2 + ( σ X 2 + σ Y 2 − 2 σ X σ Y ) (\mu_X - \mu_Y)^2 + (\sigma^2_X + \sigma^2_Y - 2 \sigma_X \sigma_Y) (μXμY)2+(σX2+σY22σXσY)

  • Multivariate Normal Frechet Distance (FID)

∣ ∣ μ X − μ Y ∣ ∣ 2 + T r ( Σ X + Σ Y − 2 Σ X Σ y ) ||\mu_X - \mu_Y ||^2 + Tr (\Sigma_X + \Sigma_Y - 2 \sqrt{\Sigma_X \Sigma_y}) ∣∣μXμY2+Tr(ΣX+ΣY2ΣXΣy )

FID的缺点: Shortcomings of FID:

  • 需要一个提前训练好的模型来进行特征提取 Need pre-trained Inception model, which may not capture all features
  • 需要大尺度的数据量 Needs a large sample size
  • 模型训练非常慢 Slow to run
  • 仅仅只有有限的统计量被使用 Limited statistics used: only mean and covariance

1.4 方法二 Inception Score: (IS)

这是一种同时评估了多样性和真实性的一种度量方式。

  • 保持classifier的完整,直接提取他的输出

  • 在某些class上的高分布,以及在其他类上的低分布来评价一个class的entropy P(y|x)

  • Fidelity means low entropy

    Screenshot 2023-01-16 141929

1.5 IS(Inception Score) definition

1. KL Divergence:

  • 其主要描述了你通过边缘分布(样本的分布)可以得到多少条件分布(conditional distribution)的信息。当KL Divergence 越大,也就意味着你的总体样本包含的信息越多,entropy就越小,其就越准确。KL散度是两个几率分布P和Q差别的非对称性的度量。 KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。

  • 当 p(y) 与 p(y|x) 越相近,那么divergence越小,那么也就意味着我可以从p(y) 中得到更多的信息

  • KL散度通过条件分布和边缘分布的乘积来综合评估模型的有效性。其最初的作用是为了评估当知道先验分布后,评估其对后验推断的有效性,也就是其提供的信息的多少。而在这里,通过条件概率分布 p(y|x) 来表达,随机变量x条件下,随机变量y分布的概率,当这个值越大,也就意味着两个分布越相似。

    Screenshot 2023-01-16 143324

    IS(Inception Score) definition

Screenshot 2023-01-16 145341

这个分布通过评估两个分布的信息增量的期望,旨在评估多样性和真实性。 Fidelity & Diversity

IS的缺点:Shortcomings of IS

  1. 每个class只生成一个,也就是局部最优
  2. 只看假的照片,对真的照片没有比对。
  3. 可能会错过有用的feature

1.6 GANs 评估标准

GANs的目标就是上Pg 和Pr完全重合,以达到以假乱真的效果。

Screenshot 2023-01-16 152729
  • 精确率和召回率 precision and recall

    • precision 指的是精确性,指的是其产生的随机分布样本中属于实际分布的样本在生成样本中的概率,也就是fidelity,指的是生成器生成真实样本的效率,也就是精确性。

      image-20230130232300474
    • recall 指的是多样性,也就是diversity,指的是真实的样本分布在产生的随机样本中的概率,也就是recall,也就是真实样本空间与生成样本空间的交集。简而言之,就是真实样本中有多少样本被生成样本所覆盖,也就直接表达了生成器生成样本的多样性覆盖率

      image-20230130232326404
    • 大多数情况下,GANs都是recall的性能更好一些,也就是覆盖率高但是可靠性差,也就是genereator可以包含和生成所有的feature,但是其却并不能够保证一定的精确性。于是根据此就用到了sampling fakes(Truncation Trick as a method),用于排除高diversity的样本。如下图的例子。

      Screenshot 2023-01-16 152626

2. 参考文献 Reference

Need a summary of FID and IS? Here are two great articles that recap both metrics!

Fréchet Inception Distance (Jean, 2018): https://nealjean.com/ml/frechet-inception-distance/

GAN — How to measure GAN performance? (Hui, 2018): https://medium.com/@jonathan_hui/gan-how-to-measure-gan-performance-64b988c47732

Works Cited

All of the resources cited in Course 2 Week 1, in one place. You are encouraged to explore these papers/sites if they interest you! They are listed in the order they appear in the lessons.

From the videos:

  • StyleGAN - Official TensorFlow Implementation: https://github.com/NVlabs/stylegan
  • Stanford Vision Lab: http://vision.stanford.edu/
  • Review: Inception-v3 — 1st Runner Up (Image Classification) in ILSVRC 2015 (Tsang, 2018): https://medium.com/@sh.tsang/review-inception-v3-1st-runner-up-image-classification-in-ilsvrc-2015-17915421f77c
  • HYPE: A Benchmark for Human eYe Perceptual Evaluation of Generative Models (Zhou et al., 2019): https://arxiv.org/abs/1904.01121
  • Improved Precision and Recall Metric for Assessing Generative Models (Kynkäänniemi, Karras, Laine, Lehtinen, and Aila, 2019): https://arxiv.org/abs/1904.06991
  • Large Scale GAN Training for High Fidelity Natural Image Synthesis (Brock, Donahue, and Simonyan, 2019): https://arxiv.org/abs/1809.11096

From the notebook:

  • CelebFaces Attributes Dataset (CelebA): http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html
  • ImageNet: http://www.image-net.org/
  • The Fréchet Distance between Multivariate Normal Distributions (Dowson and Landau, 1982): https://core.ac.uk/reader/82269844

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

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

相关文章

3.1.1 类和对象

文章目录1.类2.对象3.类和对象的关系4.类的创建使用5.对象在内存中的存储过程6.对象创建过程分析1.类 java最基本的单位就是类,可以理解为类型类是一类事物的抽象可以理解为模板或者设计图纸 注意:类在现实世界并不存在,它只是一种对象的数据类型。例如乌鸦&#…

如何使用DevExpress WPF组件实现异步加载TreeList节点?建议收藏

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。在本文中,我…

PADS Layout封装创建时批量放置焊盘的方法

批量放置焊盘一般是在BGA封装的是用的比较多,当然对于一些普通贴片焊盘也是挺常用的。 1、第一步:打开PCB封装编辑器,进入到封装编辑界面,放置焊盘后,点击焊盘右键“分步与重复”既可。2、第二步:点击以后弹…

常见的锁策略和synchronized的锁机制

文章目录一. 常见的锁策略1. 乐观锁和悲观锁2. 轻量级锁和重量级锁3. 自旋锁和挂起等待锁4. 普通互斥锁和读写锁5. 公平锁和非公平锁6. 可重入锁和不可重入锁二. synchronized的锁机制1. 锁升级/锁膨胀2. 锁消除3. 锁粗化一. 常见的锁策略 1. 乐观锁和悲观锁 乐观锁和悲观锁主…

C++ | 数据结构与算法 | 最小生成树算法讲解 | Kruskal Prim

文章目录前言Kruskal算法Prim算法前言 讲解之前,我们需要先明白连通图是指什么?连通图具有以一个顶点为起点可以到达该图中的任意一个顶点的特性,就算它们不直接相连,但是它们之间至少有一条可以递达的路径。并且连通图是针对无向…

劳务派遣协议范本整理版模板范本

劳务派遣协议范本整理版 甲方(用工单位):______ 法定代表人:____________ 地址:__________________ 电话:__________________ 传真:__________________ 乙方(派遣单位&#xf…

【Java】一文彻底弄懂访问修饰符(public/protected/默认/private)--建议收藏

博主简介:努力学习的预备程序媛一枚~博主主页: 是瑶瑶子啦所属专栏: Java岛冒险记【从小白到大佬之路】 前言 OOP(Object Oriented Programing),即面向对象编程,最重要的功能/特点之一就是封装,这点在该专栏开篇博客【…

WebPack面试题汇总

1,Webpack有什么作用,谈谈你对它的理解 现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决Scss、Les…

记录--这样封装列表 hooks,一天可以开发 20 个页面

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 这样封装列表 hooks,一天可以开发 20 个页面 前言 在做移动端的需求时,我们经常会开发一些列表页,这些列表页大多数有着相似的功能:分页获取列表、上拉加载、下拉刷…

【Java 面试题合集】ThreadPoolExecutor 线程池面试题

文章目录自定义的线程池的 7 个参数如何合理设置核心线程数 corePoolSize 的大小《JAVA 并发编程实战》中的方案java 开发手册中为什么不允许使用 Executors 默认的实现?一个线程池中的线程异常了,那么线程池会怎么处理这个线程?线程池被创建后里面有线…

OpenCV——总结《图像处理-1》

1.HSV H - 色调(主波长)。S - 饱和度(纯度/颜色的阴影)。V值(强度) hsvcv2.cvtColor(img,cv2.COLOR_BGR2HSV)2.图像阈值 函数介绍: ret, dst cv2.threshold(src, thresh, maxval, type) sr…

嵌入式Linux从入门到精通之第九节:系统编程

系统编程概述 在讲解系统编程之前,先了解几个概念: 操作系统的作用: 操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来。 什么是Linux系统编程? 在有操作系统的环境下编程,并使用操作系统提供的系统调用及各种库,对系统资源进行访问。 学会了C语言再知…

Grafana9.3.x在windows上的安装及使用

Grafana9.3.x的安装及使用1. Grafana install1.1 Download1.2 Install2. User Guide1.1 Document1.2 Table视图背景色渲染3.Awakening1. Grafana install 1.1 Download 下载地址 Grafana Website: https://grafana.com/. 1.2 Install 直接点击安装就好了 进入conf目录复制一…

python集合语法与应用

python集合语法与应用 文章目录python集合语法与应用一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.创建2.增加3.删除4.集合运算5.拓展知识一6.拓展知识二总结一、实验目的 掌握集合的用法 二、实验原理 集合中只能包含数字、字符串、元组等不可变的类型的…

规则引擎,实现业务低代码开发的重要工具

规则引擎,是将业务执行抽象化的配置,通过其定义的数据结构、算法和流程来实现应用程序功能的普适化。 规则引擎可以帮助企业提高业务开发效率,提高运营的灵活性,降低运营成本与开发成本,让系统更加智能化灵活化。这里以…

【Rust】5. 所有权

5. 所有权 5.1 什么是所有权 5.1.1 栈(Stack)与堆(Heap) 5.1.2 所有权规则 5.1.3 变量作用域 5.1.4 String 类型 String 类型可进行修改,而字符串字面值是不可以的!(区别在于二者对内存的处理…

OAuth2

目录一、什么是OAuth2.0二、OAuth2中的角色三、认证流程四、生活中的Oauth2思维5. 令牌的特点6.OAuth2授权方式6.1 授权码6.2 隐藏方式6.3 密码方式6.4 凭证方式一、什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。 举例…

PythonWeb Django框架学习笔记

文章目录Django一、初步了解Django1.1 创建项目1.2 文件介绍1.3 APP的创建和说明添加新的app注册app创建页面1.4 templates模板templates语法单一变量列表循环【列表】字典循环【字典】列表套字典条件判断templates小结1.5 请求和响应案例:用户管理二、数据库操作2.…

前言技术之mybatis-plus 01

目录 1.什么是mybatis-plus 2.初体验 3.日志 4.主键生成策略 5.更新 6.自动填充 1.什么是mybatis-plus 升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生” 官网: MyBatis-Plus 2.初体验 1.准备数据库脚本 数据…

再获殊荣!天云数据入选第一批北京市级企业技术中心,Hubble数据库提供新一代信息技术科技服务

为助力北京国际科技创新中心建设,贯彻落实北京市“十四五”时期高精尖产业发展规划,引导和支持企业加强创新能力,培育和引导企业技术中心建设,北京市经济和信息化局组织开展了2022年度第一批北京市市级企业技术中心的创建工作&…