一 前言

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(深度生成模型)的更多相关文章

  1. AI 深度生成模型

    深度生成模型 1.玻尔兹曼机

  2. 【图机器学习】cs224w Lecture 8 & 9 - 图神经网络 及 深度生成模型

    目录 Graph Neural Network Graph Convolutional Network GraphSAGE Graph Attention Network Tips Deep Gene ...

  3. 生成模型(Generative)和判别模型(Discriminative)

    生成模型(Generative)和判别模型(Discriminative) 引言    最近看文章<A survey of appearance models in visual object ...

  4. GAN实战笔记——第二章自编码器生成模型入门

    自编码器生成模型入门 之所以讲解本章内容,原因有三. 生成模型对大多数人来说是一个全新的领域.大多数人一开始接触到的往往都是机器学习中的分类任务--也许因为它们更为直观:而生成模型试图生成看起来很逼真 ...

  5. 【机器学习基础】无监督学习(1)——PCA

    前面对半监督学习部分作了简单的介绍,这里开始了解有关无监督学习的部分,无监督学习内容稍微较多,本节主要介绍无监督学习中的PCA降维的基本原理和实现. PCA 0.无监督学习简介 相较于有监督学习和半监 ...

  6. 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...

  7. 生成模型(Generative Model)和 判别模型(Discriminative Model)

    引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...

  8. Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络

    from:http://www.cnblogs.com/kemaswill/p/3266026.html 1. 多层神经网络存在的问题 常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层: ...

  9. 生成模型(Generative Model)与判别模型(Discriminative Model)

    摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...

随机推荐

  1. 洛谷3243 [HNOI2015]菜肴制作

    题目戳这里 Solution 错误的想法:正向建图,然后从入度为0的点选出最小u的开始输出,然后找出u连接的点v,并把v的度数减一,再次把入度为0的点加入小根堆,这样显然有错,因为只能局部保证最小,后 ...

  2. git学习------>"Agent admitted failure to sign using the key." 问题解决方法

    今天用git clone 命令clone服务器上的代码时候报了如下的错误: ouyangpeng@oyp-ubuntu:~/Android/git_canplay_code$ git clone gi ...

  3. ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found

    源:ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found 用了网上很多方法,最后是用这个网友的方法解决的,在此做个记录. VS2010编写WebService与在IIS ...

  4. java调用shell命令及脚本

    shell脚本在处理文本及管理操作系统时强大且简单,将shell脚本结合到应用程序中则是一种快速实现的不错途径本文介绍使用java代码调用并执行shell 我在 -/bin/ 目录下写了jbossLo ...

  5. python做简易记事本

    以下内容参考<辛星tkinter教程第二版>: from tkinter import * from tkinter.filedialog import * from tkinter.me ...

  6. linux 网络编程 inet_pton & inet_ntop函数

    #include <arpa/inet.h> int inet_pton(int family,const char * strptr,void * addrptr); 返回:--成功, ...

  7. 1076 Forwards on Weibo (30)(30 分)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  8. MySQL-计算7月重新激活客户第二种方法_20161022

    上周日休假去广西玩了一周,回来继续. (一)上次用的是取当月首单日期,往前推30天 代码比较繁琐 这次方法是借助变量 错行进行判断 一个用户上次最后一次下单时间和下次下单时间的时间差 也就是形成一个相 ...

  9. BZOJ_4033_[HAOI2015]树上染色_树形DP

    BZOJ_4033_[HAOI2015]树上染色_树形DP Description 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的 ...

  10. ubuntu强制卸载软件

    以卸载cups为例子 一:列出软件列表,找到需要卸载的软件的名字命令:dpkg --list