关键词:
1 VAE 介绍
在机器学习笔记:auto encoder_UQI-LIUWJ的博客-CSDN博客 中,我们知道了auto-encoder。但是auto-encoder有一个不足之处,就是因为auto-encoder不是一个概率模型,所以没法从学习的模型中生成新的数据,或者说我们train了一个模型,得到的输出是固定不变的。
在这种情况下VAE就诞生了:它可以
1)从原始数据中学习特征表示向量z
2)可以从模型中生成新的数据
作用(2)是auto-encoder中所不具备的
2 decoder介绍
训练完成后,decoder可以是这样的:
我们知道z的先验概率,decoder又学习了一个从z到x的条件概率,那么我们就可以求得x的概率,然后进行采样即可
更进一步说,decoder需要学习到x|z的均值和方差,这样才可以预测p(x|z)
2.1 decoder 训练
那么,如何训练这个模型呢?基本想法是最大化数据的概率
其中的计算可以由下获得:
- 是由decoder获得
- 是由z的先验概率求得(我们这里认为z满足高斯分布)
- 至于,我们可以由encoder获得
3 encoder 与 decoder
于是我们有:
4 目标函数推导
(贝叶斯法则)
(分子分母同乘)
(log的规则)
而我们知道,x最终的分布和z是无关的。因此有:
于是:
(取期望)
而因为KL散度是大于等于0的,所以我们可以去掉最后一项,这样可以得到一个下界:
分别是encoder学习的效果和decoder学习的效果
5 VAE举例
从 encoder的输出(均值,方差)到decoder的输入的过程,是一个采样的过程;decoder的输出也是一个采样的过程,因此每一次VAE的输出都不一样。这样就可以生成不同的新数据了
6 VAE的流程
6.1 training
我们一步一步再看一遍:
通过最大化的概率,对encoder和decoder的参数进行优化
6.2 generating data
关于在eclipse for javaee中修改servlet新建模板
---恢复内容开始---操作图解1.首先找到菜单条上的Window并点击出现下拉列,选中下拉列中的Preferences选项跳出如下图结果 2.找到其中的java列点开——》找到其中的Editor点开——》找到其中的Templates点击出现如上图... 查看详情
java学习笔记
1.从命令行获取输入Scannersc=newScanner(System.in);System.out.println("输入字符:");Stringm=sc.next(); 查看详情
深度学习-机器视觉学习路线
1、应用场景及常用网络结构目标检测:R-CNN系列、YOLO系列、SSD系列、RFCN场景图像分割:FCN、U-NET、Segnet实例分割:MASK-FasterRCNN2、平台Tensorflow\Caffe\Pytorch3、分析工具... 查看详情
maven私服
转:http://www.cnblogs.com/dreamroute/p/5440419.html可参考:http://www.blogjava.net/xiaomage234/archive/2014/05/13/413584.html什么是Nesux:http://juvenshun.iteye.com/blog/285059目前有很多组织使用了一些工具依赖于Maven仓库,但他 查看详情
maven的仓库:本地和远程
转:http://blog.csdn.net/wanghantong/article/details/36427433 在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就... 查看详情
docker学习笔记
docker CE 和 EE:CE社区版,EE企业版dockerEE强化了安全,安全,安全 集成了DockerDataCenter用于容器管理,使其更加便利 查看详情
kvm竟然抓不到kvm的tracepoint
...如何调度的?调度的时候其实就是一个线程:这是我讲kvm框架:http://blog.csdn.net/mrbuffoon/arti 查看详情
c# datagridview 绑定list 無法排序問題解決方案(代码片段)
///<summary>///自定义绑定列表类///</summary>///<typeparamname="T">列表对象类型</typeparam>publicclassBindingCollection<T>:BindingList<T>privateboolisSorted;privatePropertyDescri 查看详情
ado.net基础
1 在数据库(sqlserver)中创建表 usedata0908 createtableUsers ( Ids int primarykeyi dentity(1,1), // 创建主键关系,自增 UserName nvarchar(400), [password] nva... 查看详情
javaio
一、流的概念流(Stream)的概念源自UNIX中管道的概念,管道是一条不间断的字节流,用来实现程序或进程之间的通信。一个流必有源端和目的端(可以是内存、磁盘文件等。)流的源端和目的端可以简单的看成字... 查看详情
lcd带字符液晶显示i love you
1602是字符型液晶,内含128个ASCLL字符型的字符库,故可以显示ASCLL字符,而不能显示汉字。1602可以显示两行信息,每行16个字符,5V电源供电,带有背光。 知识点: #include<reg51.h>#include<stdio.h... 查看详情
qemu中device和driver的区别使用9p文件系统
...设备插入各种接口USB/PCI接口,那么这个设备才会被机器给识别到。拿我qemu中去识别本地的一个目录的方法:-fsdevlocal,i 查看详情
第七次小组讨论
...t然后使用cart来生成order,用来调用service的add(Order order)方法,保存生成的订单,转发de 查看详情
将全角转换为半角
...角字符?例如,给定下面的userInput,我想将Stackoverflow转换为***:stringuserInput="Stackoverflow";//stringuserInput="***";【问题讨论】:创建一个映射(即Diction 查看详情
虚拟局域网vlan
...三层的概念;经典算法:广播会在局域网中散播,所有的机器都为什么要划分vlan 查看详情
arduino互动设计入门--学习笔记5.1
章5:串口通信5.1并行与串行简介 串行:一次发送一个数据;如电脑上的usb口、HDML显示器接口、SATA 磁盘接口等都是串行的。 并行:一次发送多位数据;在微电脑上通常是一次传8位; 在电脑和... 查看详情
namespace作用是啥?
突然想起个问题,linux系统里的namespace到底有什么用?是为了解决什么问题?从内核的层面构造出虚拟机?比如IPC,这个时候https://lwn.net/Articles/531114/这个链接中说涉及namespace的总体的目的... 查看详情
java基础入门
---恢复内容开始--- 第一章 Java开发入门 1.Java语言的特点: Java是一门程序设计语言,可以编写... 查看详情