https://www.toutiao.com/a6643380572892692999/

2019-01-06 21:49:34

CNN

表示卷积神经网络。这是一种特殊类型的神经网络,是为具有空间结构的数据而设计的。例如,具有自然空间顺序的图像非常适合于CNN。卷积神经网络由许多“filters”组成,它们对数据进行卷积或滑动,并在每个滑动位置产生激活。这些激活产生一个“feature map”,它表示该区域的数据激活了filter(是一个神经元)的数量。例如,假设我们有一个经过训练的filter来识别人脸,这些可能是它输出的feature map:

卷积神经网络的特殊之处在于它们在空间上是不变的,这意味着无论图像的显著部分出现在哪里,它都将被网络检测到。这是因为filter权重在图像的不同部分不会改变 - 由于filter在图像上滑动,因此图像的每个部分的权重都相同。

CNN的这种空间不变性不仅适用于二维图像,也适用于三维视频甚至一维时间序列。CNN也被认为是一种伪循环神经网络,因为filter可以在时间步中滑动,而不是数据部分,允许它基于过去的数据点做出决策。

GAN

GAN代表Generative Adversarial Networks。这是一种生成模型,因为它们学会复制您提供的数据的数据分布,因此可以生成看起来相似的新颖图像。

GAN被称为“对抗性”的原因是因为它涉及两个相互竞争的网络。实际上,GAN通常被比作警察(discriminator)和伪造者(generator)的类比。伪造者起初不知道真正的钱是什么样的,所以它会产生一些看似完全虚假的钱。对于伪造者来说幸运的是,警察也不知道真正的钱是什么样的。

但是,当我们有了真实的现金时,警察部门开始教警察真正的钱是什么样的,以及伪造者的假钱看起来是什么样的,并让他区分真假钱。

然后,造假者会做更多的练习,并学会让现金变得更真实一点,最后欺骗警察。

这个循环重复了一段时间,直到(理想情况下)警察无法分辨假现金和真实现金之间的区别,因为假现金看起来与真实现金完全一样。一旦完成,我们就可以使用generator永久地制造假现金。

让我们将其扩展到图像。generator是一个神经网络,它接收随机变量Z的向量,并产生一个图像,。

discriminator也是一个神经网络,它接收图像,并产生单个输出p(决定图像是真实的概率)。当p = 1时,discriminator相信图像是真实的,当p = 0时,discriminator认为图像是假的。

discriminator被输入生成器图像,我们将输入并且被教导图像是假的。更具体地说,discriminator最大化(1-)。然后,discriminator被输入真实图像,并且被教导图像是真实的,它最大化()。generator则相反,并试图使discriminator最大化它认为假图像是真实的概率,因此generator试图最大化()。一旦我们这样训练了一段时间,我们就会开始看到一些非常逼真的照片。

AE

也称为自动编码器,它们非常简单,它们所做的只是输入,并尽可能地重现输入。如果我输入数字“2”的照片,则自动编码器应输出完全相同的照片。

这看似简单,毫无意义,但有一些有趣的属性。我们通常不仅有输入和输出层,因为网络只能将像素从输入复制到输出,这是完全没用的。我们通常在输入和输出层之间有一个(或多个)隐藏层,它们充当bottleneck层。

bottleneck可以有多种不同的方式,但我只关注最简单的方法:拥有更少的隐藏神经元。

如果隐藏层中的神经元小于输入图像中的像素数,则网络必须“压缩”它看到的数据。

这种压缩意味着只有图像最显著的特征才能保留 - 其他一切都是不必要的。在隐藏的神经元中,特征可以编码关于数据的大部分信息。

这使得自动编码器(理论上)很有用,因为如果我们的监督训练数据很少,我们就可以给自动编码器提供一堆未标记的数据,它将学习有用的特征。然后我们可以将这些特征放入一个更强大的神经网络中,并在小型监督数据集上进行训练。尽管监督数据集很小,但它(理论上)仍然可以很好地学习,因为它是由自动编码器引导的。

不幸的是,自动编码器并不是他们所宣传的那样,这种训练(称为预训练)很少用于自动编码器。但是,我们可以使 Helmholtz boltzmann machine进行初始权重分配。

VAE

VAE代表变分自动编码器。根据它的名字,你可以说VAE与自动编码器非常相似,从技术上讲,它有一个主要的变化。

自编码器只需要复制输入,而变分自编码器则需要复制输出,同时将其隐藏的神经元保持在特定的分布。这意味着,网络的输出将不得不适应基于分布的隐藏神经元的输出,因此我们可以生成新的图像,只需从分布中取样,并将其输入网络的隐藏层。

假设目标分布是正态分布,均值为0,方差为1。当我们将图像输入到VAE中时,隐藏节点不会输出直接由输出使用的值,而是将输出均值和方差。每一个隐藏的节点都有自己的高斯分布。我们将隐藏的节点值表示为ℎ和ℎ。然后,我们从实际正态分布中采样值,我们将其称为,其大小与隐藏层相同。然后,我们将使用multiple多个元素,并使用add添加元素。这使得网络可以改变正态分布的方差。这就是它编码信息的方式。在对元素进行加法和乘法运算之后,我们就得到了一个潜在向量。我们将这个潜在向量输入输出层,输出层尝试生成输入的副本。自动编码器的损失是最小化reconstruction loss(自动编码器的输出与其输入的相似程度)和latent loss(隐藏节点与正常分布的接近程度)。latent loss越小,可编码的信息越少,因此reconstruction loss增加。结果,VAE被锁定在latent loss和reconstruction loss之间的权衡中。如果latent loss很小,我们的新生成的图像将与训练时的图像非常相似,但它们看起来都很糟糕。如果reconstruction loss很小,那么在训练时刻重建的图像将看起来非常好,但是我们的新生成的图像与重构图像完全不同。显然我们两个都想要,所以找到一个平衡很重要。

这些解释并没有很好地构建,只是为了给出这些架构的一般概念。

CNN,GAN,AE和VAE概述相关推荐

  1. CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧 ...

  2. 【深度学习】AE与VAE

    AE与VAE AutoEncoder:自编码器 不同种类的自编码器 VAE:变分自编码器 总结 AutoEncoder:自编码器 自动编码器是一种数据的压缩算法,其中数据的压缩和解压缩函数是数据相关的 ...

  3. AE和VAE,CVAE

    AutoEncoder AutoEncoder属于无监督学习的技术 几种AE简介 变分自编码器(Variational Auto-Encoder,VAE) 变分自编码器VAE和GAN的区别 VAE和G ...

  4. PCA,AE,VAE,RPCA,概率PCA之间的联系与区别

    文章目录 AE 自编码器 PCA 概率PCA VAE RPCA RPCA优化求解算法对比 [数学推导详见Rubost PCA优化总结](https://blog.csdn.net/u010510350 ...

  5. 深度学习神经网络NET搜集大全,从神经元到NN,CNN,RNN,AE,VAE,自用[转载]。

    在深度学习十分火热的今天,不时会涌现出各种新型的人工神经网络,想要实时了解这些新型神经网络的架构还真是不容易.光是知道各式各样的神经网络模型缩写(如:DCIGN.BiLSTM.DCGAN--还有哪些? ...

  6. GAN 并不是你所需要的全部:从AE到VAE的自编码器全面总结

    转自:Deephub 说到计算机生成的图像肯定就会想到deep fake:将马变成的斑马或者生成一个不存在的猫.在图像生成方面GAN似乎成为了主流,但是尽管这些模型在生成逼真的图像方面取得了巨大成功, ...

  7. 深度学习《再探AE和VAE的区别》

    最近学习了VAEGAN,突然对VAE和AE的概念和理解上变得模糊了,于是赶紧搜索资料,重新理解一番. 一:AE 输入的图片数据X经过encoder后会得到一个比较确切的latent code Z,这个 ...

  8. 从EM到VI到AE到VAE

    1. EM   某批数据因为一些中间过程我们看不到,所以不可以直接观测变量X 最经典的例子就是三个不同的盒子装了各五个球,里面有数量不一的红黑两种颜色的球,如果我们可以看着他先选什么盒子,然后增大实验 ...

  9. 系统学习深度学习(四十二)--从AE到VAE

    转自:https://www.atyun.com/17976.html AE 自编码器是一种无监督学习技术,利用神经网络进行表征学习.也就是说,我们设计一个在网络中施加"瓶颈",迫 ...

最新文章

  1. R语言scan函数读取文件为向量或者列表格式实战
  2. ISO9000互联网管理办法
  3. Jquery DataTable基本使用
  4. Spring Cloud教程– Spring Cloud Config Server简介
  5. Oralce 日期操作
  6. 正则表达式2--re方法--match()--search()
  7. MVC3和MVC4内置Razor引擎的差异
  8. 深度之眼-科赛网二分类大赛入门之路
  9. URL和URI的区别和联系
  10. Zemax操作--7(坐标断点)
  11. 【ELMAN回归预测】基于matlab鲸鱼算法优化ELMAN回归预测【含Matlab源码 1667期】
  12. 读芯术python讲得怎么样_最读网 - 看是用眼,读是用心!
  13. react-native设置应用启动页
  14. 什么是迭代器(Iterator)
  15. 如何用 Python 可视化《三国》人物与兵器出现频率?(视频教程)
  16. 【原创】如何判断Win10计算机的硬盘是HHD还是SSD
  17. 29、Java——吃货联盟订餐系统(对象+XML)
  18. 【UE4 C++】读取灰度图/RGB图中的像素值生成自定义形状的模型分布
  19. 当写烂代码的人离职之后....
  20. PandoraBox设置桥接作无线终端

热门文章

  1. 错失恐惧:铸造「区块链巴别塔」的原始动力
  2. AI矩形描边内外同时设置,居中对齐
  3. php 跳转qq群代码_Q群自动签到php+java实现
  4. oracle分区表导入数据,Oracle 分区表数据的导入与导出(2)
  5. 回答你心中的疑问,进行商城网站建设需要多少钱?
  6. 大学生电子设计大赛最全资料
  7. python calu_Python学习笔记4:函数
  8. ISO14443-3
  9. 安卓支持App内文字翻译
  10. 使用STM32F103C8T6控制L298N电机驱动麦克纳姆轮小车(HAL库)