无监督学习:Deep Generative Mode(深度生成模型)
一 前言
1.1 Creation
据说在费曼死后,人们在他生前的黑板上拍到如图画片,在左上角有道:What i cannot create ,I do not understand. Generative models,就是在做创造的事情。

1.2 Image Processing

二 Generative Models
这是目前的主要方法。

2.1 PixelRNN

每次生成一个像素,用这样的方法,没有任何注释可以训练就有一大堆图像,效果还不错。下边是某一个实例:

2.2 Variational Autoencoder (VAE)
回忆Auto-encoder方法,如果随机生成一个向量code输出一张图片就是在create了,但是发现这样做的performance并不很好,而Variational Autoencoder会好很多。

VAE结构与Auto-encoder很像

需要minimize两处。 VAE,能通过code来控制产生的结果。 比如我们固定住8维,改变其中的两维向量,看他们生成的图像变化趋势,从而得到当前维度控制结果产生的规律。

效果: 如下图,右上角站立,左下角平躺。

也可以让VAE write poetry:

Why VAE?-->用VAE,从code space上去sample一个code,能得到一个比较好的image,而auto encoder可能得不到。

将code加上了noise,而variance决定了noise的大小,variance是train出来的。variance要做一些限制,否则就会是0,所以就要用Minimize。


以上是直观的解释,那么回到我们要解决的问题,即Estimate the probability distribution

那么怎么来Estimate the probability distribution呢?可以用Gaussion Mixtrue Model 。怎样从Gaussian Mixture Model 里sample一个data呢? 首先有一个multinomial distribution,先决定sample 其中的哪一个Gaussian,用m表示。有了m,就可以找到μ和Σ,然后可以sample出一个x。

也就是说每一个你生成的x并不属于某一个class或cluster,而是它有一个vector来描述他所描述的不同对象的特性,所以,VAE其实就是Gaussian Mixture Model的distribute representation的版本。 先sample一个 z ,假设μ 和 σ都分别来自函数μ(z) 和 σ(z),在z的space里,每一个点都有可能被sample到,只是可能性有大小m,z上的每一个点都可能被sample到并对应着无穷多个gaussian,那么function该怎么找呢?那么可以说NN就是function,训练出这个NN就ok啦。

对gaussian的假设是很随意的,因为NN都能被训练适应。现在手上已经有了一批image x,maximize已有image的L。

上面的NN其实就是decoder,下面的是encoder。那么那么logP(x)怎么求呢?

思想就是,likelihood = KL+Lb,logP(x)只与log(x|z)有关,无论q怎么调,图中的上线是不会变的。这时假如固定住p,调q是会使Lb一直上升,最后likelihood会和Lb非常接近,而再继续下去likelihood也会随之变大。



conditional VAE

Problem of VAE

2.3 Generative Adversarial Network (GAN)
Yann LeCun’s comment的评价:

GAN的概念,有点像拟态的演化。

The evolution of generation,Generator演化(蝴蝶),Discriminator也跟着演化(天敌)。 需要注意的是,generator从来没有看过真正的image,它要做的就是努力骗过看过真正image的discriminator。所以generator才能产生出database中没过的image。

GAN - Discriminator

GAN - Generator
Fix the discriminator,然后去调generator的参数。

实例:GAN – Toy Example

Moving on the code space
先随机sample五个vector,然后向该方向moving,会发生很神奇的事情,比如窗变成电视,电视变成窗户。

In practical

参考:
http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/VAE%20%28v5%29.pdf
https://blog.csdn.net/soulmeetliang/article/details/77461607
无监督学习:Deep Generative Mode(深度生成模型)的更多相关文章
- AI 深度生成模型
深度生成模型 1.玻尔兹曼机
- 【图机器学习】cs224w Lecture 8 & 9 - 图神经网络 及 深度生成模型
目录 Graph Neural Network Graph Convolutional Network GraphSAGE Graph Attention Network Tips Deep Gene ...
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- GAN实战笔记——第二章自编码器生成模型入门
自编码器生成模型入门 之所以讲解本章内容,原因有三. 生成模型对大多数人来说是一个全新的领域.大多数人一开始接触到的往往都是机器学习中的分类任务--也许因为它们更为直观:而生成模型试图生成看起来很逼真 ...
- 【机器学习基础】无监督学习(1)——PCA
前面对半监督学习部分作了简单的介绍,这里开始了解有关无监督学习的部分,无监督学习内容稍微较多,本节主要介绍无监督学习中的PCA降维的基本原理和实现. PCA 0.无监督学习简介 相较于有监督学习和半监 ...
- 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...
- 生成模型(Generative Model)和 判别模型(Discriminative Model)
引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...
- Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络
from:http://www.cnblogs.com/kemaswill/p/3266026.html 1. 多层神经网络存在的问题 常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层: ...
- 生成模型(Generative Model)与判别模型(Discriminative Model)
摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...
随机推荐
- JavaScript演示如何访问Search字段
<!DOCTYPE html> <html> <body> <h3>演示如何访问Search字段</h3> <input type=& ...
- linux c编程:网络编程
在网络上,通信服务都是采用C/S机制,也就是客户端/服务器机制.流程可以参考下图: 服务器端工作流程: 使用socket()函数创建服务器端通信套接口 使用bind()函数将创建的套接口与服务器地址绑 ...
- 一步步玩pcDuino3--mmc下的裸机流水灯
第一部分是玩pcduino3下的裸机.这个过程能够让我们更好的理解嵌入式系统,熟悉我们使用的这个平台. 首先介绍下开发环境: 虚拟机:VMware® Workstati ...
- join中级篇---------hash join & merge join & nested loop Join
嵌套循环连接(Nested Loop Join) 循环嵌套连接是最基本的连接,正如其名所示那样,需要进行循环嵌套,嵌套循环是三种方式中唯一支持不等式连接的方式,这种连接方式的过程可以简单的用下图展示: ...
- Contiki 2.7 Makefile 文件(一)
一.主控Makefile 这里以hello-world例子为主线,从其工程Makefile开始,解析整个build过程.
- python注释行与段落
注释行:# 注释段:‘’‘ ’‘’
- BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2019 题意: 奶牛们没钱了,正在找工作.农夫约翰知道后,希望奶牛们四处转转,碰碰运气. 而 ...
- hls协议(最清晰的讲解)
今天来介绍一下HLS协议,这个协议是由苹果公司提出并推广开来的.来一段维基百科的定义. HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议.是 ...
- python爬虫知识点总结(二)爬虫的基本原理
一.什么是爬虫? 答:请求网页并提取数据的自动化程序. 二.爬虫的基本流程 三.什么是Request和Response? 1.Request 2.Response 四.能抓取怎样的数据 五.解析方式 ...
- python使用uuid生成唯一id或str
介绍: UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 使用: import uuid print uuid.uuid1() 14bfe806-f1c7-11e6-83b5-0680 ...