CS236 Deep Generative Models (1)基础介绍

Generative与Discriminative的区别

  • 一、概念介绍
    • 1.1 概念定义
    • 1.2Deep Generative Model的三大问题
  • 二、基本问题
    • 2.1 Naive Bayes for Classification
    • 2.1 一般问题
  • 三、不同类型的Network
    • 3.1 Bayes Net
    • 3.2 Neural Models
    • 3.3 连续变量的Generative Model

一、概念介绍

1.1 概念定义

假设数据样本 X X X,数据标签为 Y Y Y,数据都来自一个真实分布 p ( x ) p(x) p(x),现在我们需要通过这些观测数据 X X X拟合一个模型分布 q ( x ) q(x) q(x),使其接近真实分布 p ( x ) p(x) p(x).
CS236 Deep Generative Models (1)基础介绍_第1张图片

  • 生成(Generation):从真实分布生成数据

  • 推断(Inference):从数据推断真实分布的参数或结构

  • Prior Knowledge:在Deep Generative Model中的先验
    1. 损失函数(loss function):如最大似然函数
    2. 参数形式(parametric form):如假设真实分布服从正态分布
    3. 优化算法(optimization algorithm)

  • 判别式与生成式的区别

  1. 判别式(Discriminative):对条件概率 p ( y ∣ x ) p(y|x) p(yx)建模,即在数据的真实分布空间中找出Decision Boundary,给定数据x属于标签y的概率
  2. 生成式(Generative):对联合概率 p ( x , y ) p(x,y) p(x,y)建模,即尝试拟合一个数据与label共存的空间,得同时给定数据x和标签y,才能知道概率
  3. 由Bayes有 p ( y ∣ x ) = p ( x , y ) p ( x ) p(y|x)=\frac{p(x,y)}{p(x)} p(yx)=p(x)p(x,y),Discriminative建模对象是 p ( y ∣ x ) p(y|x) p(yx)(假设了参数结构、loss、优化方式等prior knowledge),所以模型只能接受输入 x x x。但Generative是对 p ( x , y ) p(x,y) p(x,y)建模,假设了联合分布的prior knowledge,如果知道y,它可以输出 p ( x , y ) = p ( x ∣ y ) p ( y ) p(x,y)=p(x|y)p(y) p(x,y)=p(xy)p(y);如果知道x,它也可以输出 p ( x , y ) = p ( y ∣ x ) p ( x ) p(x,y)=p(y|x)p(x) p(x,y)=p(yx)p(x),所以更全面也更复杂。
  4. 于是Discriminative可以看作是一种Data Conditional Generative Model即 p ( y ∣ x ) p(y|x) p(yx),这区别于Class Conditional Generative Model即 p ( x ∣ y ) p(x|y) p(xy)

1.2Deep Generative Model的三大问题

  • Representation:
    如何对联合分布 p ( x , y ) p(x,y) p(x,y)进行建模,怎样表示这个模型?
  • Learning:
    如何准确地度量真实分布与模型分布的距离?(从而使其更接近)
  • Inference:
    如何从观测数据中推断出真实分布的结构或者参数?

二、基本问题

2.1 Naive Bayes for Classification

  • 需求:一封邮件进行分类,用标签变量 Y Y Y描述,定义 Y = 1 Y=1 Y=1为垃圾邮件, Y = 0 Y=0 Y=0为正常邮件

  • 建模思路:设定一个大小为 n n n的Vocabulary,令 x i ( i = 1 , 2 , . . . , n ) x_i(i=1,2,...,n) xi(i=1,2,...,n)表示随机变量,如果邮件存在Vocabulary中的第 i i i个词,则 x i = 1 x_i=1 xi=1

  • 生成模型:建模 p ( Y , x 1 , x 2 , . . . , x n ) p(Y,x_1,x_2,...,x_n) p(Y,x1,x2,...,xn)

  • 加一个先验:
    用一个箭头表示,条件独立性假设,如下图,受 Y Y Y的影响, x i x_i xi x j x_j xj条件独立,即 p ( x i , x j ∣ y ) = p ( x i ∣ y ) p ( x j ∣ y ) p(x_i,x_j|y)=p(x_i|y)p(x_j|y) p(xi,xjy)=p(xiy)p(xjy)
    CS236 Deep Generative Models (1)基础介绍_第2张图片

  • Representation:
    p ( y , x 1 , . . . , x n ) = p ( y ) ∏ i = 1 n p ( x i ∣ y ) p(y,x_1,...,x_n)=p(y)\prod_{i=1}^n p(x_i|y) p(y,x1,...,xn)=p(y)i=1np(xiy)

  • Inference:
    p ( Y = 1 ∣ x 1 , . . . , x n ) = p ( Y = 1 , x 1 , . . . , x n ) p ( x 1 , . . . , x n ) = p ( Y = 1 ) ∏ i = 1 n p ( x i ∣ Y = 1 ) ∑ Y = 0 , 1 p ( Y = y ) ∏ i = 1 n p ( x i ∣ Y = y ) \begin{aligned} p(Y=1|x_1,...,x_n)&=\frac{p(Y=1,x_1,...,x_n)}{p(x_1,...,x_n)}\\ &=\frac{p(Y=1)\prod_{i=1}^n p(x_i|Y=1)}{\sum_{Y=0,1}p(Y=y)\prod_{i=1}^n p(x_i|Y=y)} \end{aligned} p(Y=1x1,...,xn)=p(x1,...,xn)p(Y=1,x1,...,xn)=Y=0,1p(Y=y)i=1np(xiY=y)p(Y=1)i=1np(xiY=1)

  • Learning:
    从数据集 { ( X 1 , Y 1 ) . . . ( X N , Y N ) } {\{(X_1,Y_1)...(X_N,Y_N)\}} {(X1,Y1)...(XN,YN)}中学习模型参数,此处相当于在数据集中统计得:

    • p ( x i ∣ Y = 1 ) , i = 1 , . . . n p(x_i|Y=1),i=1,...n p(xiY=1),i=1,...n 垃圾邮件vocabulary词频
    • p ( x i ∣ Y = 0 ) , i = 1 , . . . n p(x_i|Y=0),i=1,...n p(xiY=0),i=1,...n 正常邮件vocabulary词频

所以,对于一个邮件 X n e w = ( x 1 , x 2 , . . . , x n ) X_{new}=(x_1,x_2,...,x_n) Xnew=(x1,x2,...,xn),用Inference中的 p ( Y = 1 ∣ x 1 , . . . , x n ) p(Y=1|x_1,...,x_n) p(Y=1x1,...,xn)推断属于垃圾邮件的概率。

这就是Naive Bayes从生成式的角度看,对 p ( X , Y ) p(X,Y) p(X,Y)联合建模,引入假设,当然此处省略了实际实现中的平滑、加log等trick,只是简单从生成式角度描述朴素贝叶斯问题并进行建模。
CS236 Deep Generative Models (1)基础介绍_第3张图片
上图可从朴素贝叶斯角度看生成式与判别式,上面描述了对生成式的建模 P ( X , Y ) P(X,Y) P(X,Y),需要假设 P ( X ∣ Y ) P(X|Y) P(XY)的条件独立性,而如果是判别式的话,只需要直接建模 p ( Y ∣ X ) p(Y|X) p(YX),如将X随便丢进一个分类器(Linear Regression),输出一个binary variable。

2.1 一般问题

CS236 Deep Generative Models (1)基础介绍_第4张图片
上面从Generative角度解决在Naive Bayes的问题,假设了条件独立性;
如果不加这个假设的一般问题如上左图所示,描述一下:

p ( Y , X ) = p ( Y ) p ( X 1 ∣ Y ) p ( X 2 ∣ Y , X 1 ) ⋯ p ( X n ∣ Y , X 1 , . . . , X n − 1 ) p(Y,X)=p(Y)p(X_1|Y)p(X_2|Y,X_1)\cdots p(X_n|Y,X_1,...,X_{n-1}) p(Y,X)=p(Y)p(X1Y)p(X2Y,X1)p(XnY,X1,...,Xn1)
对于生成式, p ( Y ) p(Y) p(Y)很容易建模,但对于 p ( X i ∣ X p a ( i ) , Y ) p(X_i|X_{pa(i)},Y) p(XiXpa(i),Y)应该怎么建模比较好?( X p a ( i ) X_{pa(i)} Xpa(i)指其它指向 X i X_i Xi的所有结点施加的条件约束)

判别式描述如下:
p ( Y , X ) = p ( X 1 ) p ( X 2 ∣ X 1 ) ⋯ p ( Y ∣ X 1 , X 2 , . . . , X n ) p(Y,X)=p(X_1)p(X_2|X_1)\cdots p(Y|X_1,X_2,...,X_n) p(Y,X)=p(X1)p(X2X1)p(YX1,X2,...,Xn)

因为 X X X完全可观测的数据,因此只需要把其丢到一个分类器如Logistic Regression就好了,如
p ( Y = 1 ∣ X 1 , X 2 , . . . , X n ) = σ ( α 0 + ∑ i = 1 n α i X i ) σ ( z ) = 1 1 − e − z p(Y=1|X_1,X_2,...,X_n)=\sigma(\alpha_0+\sum_{i=1}^n\alpha_iX_i)\\ \sigma(z)=\frac{1}{1-e^{-z}} p(Y=1X1,X2,...,Xn)=σ(α0+i=1nαiXi)σ(z)=1ez1

那什么时候需要生成式模型?
当观测数据并非完全可观测的时候,即 X = ( X 1 , X 2 , . . . , X n ) X=(X_1,X_2,...,X_n) X=(X1,X2,...,Xn)中可能有些维度如 X h X_h Xh是隐藏的,观测不到的,就需要使用生成模型解决问题,只需要把 p ( X ∣ Y ) p(X|Y) p(XY)观测不到的维度求积分或求和去掉就好

三、不同类型的Network

3.1 Bayes Net

Bayesian Network 由一个有向无环图(Directed Acyclic Graph)确定,即G=(V,E)

  • 一个结点node i ∈ V i\in V iV代表一个随机变量 X i X_i Xi
  • 一个node受到有向edge的约束,其条件概率分布表示为 p ( x i ∣ x p a ( i ) ) p(x_i|x_{pa(i)}) p(xixpa(i)),也称为BN factors
  • 联合分布为:
    p ( x 1 , . . . , x n ) = ∏ i ∈ V p ( x i ∣ x p a ( i ) ) p(x_1,...,x_n)=\prod_{i\in V}p(x_i|x_{pa(i)}) p(x1,...,xn)=iVp(xixpa(i))
    CS236 Deep Generative Models (1)基础介绍_第5张图片
    对于一个具体的有五个随机离散变量的Bayesian Network:
    CS236 Deep Generative Models (1)基础介绍_第6张图片

由 p ( x 1 , . . . , x n ) = ∏ i ∈ V p ( x i ∣ x p a ( i ) ) p ( x 1 , . . . , x n ) = p ( x 1 ) p ( x 2 ∣ x 1 ) ⋯ p ( x n ∣ x 1 , . . . , x n − 1 ) 得 p ( d , i , g , s , l ) = p ( d ) p ( i ) p ( g ∣ i , d ) p ( s ∣ i ) p ( l ∣ g ) p ( d , i , g , s , l ) = p ( d ) p ( i ∣ d ) p ( g ∣ d , i ) p ( s ∣ d , i , g ) p ( l ∣ d , i , g , s ) \begin{aligned} 由p(x_1,...,x_n)&=\prod_{i\in V}p(x_i|x_{pa(i)})\\ p(x_1,...,x_n)&=p(x_1)p(x_2|x_1)\cdots p(x_n|x_1,...,x_{n-1})\\ 得p(d,i,g,s,l)&=p(d)p(i)p(g|i,d)p(s|i)p(l|g)\\ p(d,i,g,s,l)&=p(d)p(i|d)p(g|d,i)p(s|d,i,g)p(l|d,i,g,s) \end{aligned} p(x1,...,xn)p(x1,...,xn)p(d,i,g,s,l)p(d,i,g,s,l)=iVp(xixpa(i))=p(x1)p(x2x1)p(xnx1,...,xn1)=p(d)p(i)p(gi,d)p(si)p(lg)=p(d)p(id)p(gd,i)p(sd,i,g)p(ld,i,g,s)

从而知道了Bayesian Network中的条件独立性,即 d ⊥ i , s ⊥ { d , g } ∣ i , l ⊥ { d , i , s } ∣ g d\bot i,s\bot\{d,g\}|i,l\bot\{d,i,s\}|g di,s{d,g}i,l{d,i,s}g

3.2 Neural Models

CS236 Deep Generative Models (1)基础介绍_第7张图片

Logistic Regression看成对features的linear transformation,Neural Models看成对features的Nonlinear transformation,是一个判别式模型。假设现在有四个随机变量 X 1 , X 2 , X 3 , X 4 X_1,X_2,X_3,X_4 X1,X2,X3,X4从概率角度看:

  • Chain Rule
    p ( X 1 , X 2 , X 3 , X 4 ) = p ( X 1 ) p ( X 2 ∣ X 1 ) p ( X 3 ∣ X 1 , X 2 ) p ( X 4 ∣ X 1 , X 2 , X 3 ) p(X_1,X_2,X_3,X_4)=p(X_1)p(X_2|X_1)p(X_3|X_1,X_2)p(X_4|X_1,X_2,X_3) p(X1,X2,X3,X4)=p(X1)p(X2X1)p(X3X1,X2)p(X4X1,X2,X3)

链式法则是最General联合分布分解。

  • Bayesian Network
    p ( X 1 , X 2 , X 3 , X 4 ) ≈ p ( X 1 ) p ( X 2 ∣ X 1 ) p ( X 3 ∣ X 1 , X 2 ) p ( X 4 ∣ X 1 , X 2 , X 3 ) p(X_1,X_2,X_3,X_4)\approx p(X_1)p(X_2|X_1)p(X_3|\cancel{X_1},X_2)p(X_4|X_1,\cancel{X_2,X_3}) p(X1,X2,X3,X4)p(X1)p(X2X1)p(X3X1 ,X2)p(X4X1,X2,X3 )

贝叶斯网络是对随机变量之间进行了条件假设。

  • Neural Models
    p ( X 1 , X 2 , X 3 , X 4 ) ≈ p ( X 1 ) p ( X 2 ∣ X 1 ) p N e u r a l ( X 3 ∣ X 1 , X 2 ) p N e u r a l ( X 4 ∣ X 1 , X 2 , X 3 ) p(X_1,X_2,X_3,X_4)\approx p(X_1)p(X_2|X_1)p_{Neural}(X_3|X_1,X_2)p_{Neural}(X_4|X_1,X_2,X_3) p(X1,X2,X3,X4)p(X1)p(X2X1)pNeural(X3X1,X2)pNeural(X4X1,X2,X3)

神经网络则是对条件假设采取了特殊的函数形式近似。

3.3 连续变量的Generative Model

在3.1的Bayes Net中,构建了一个离散随机变量的Bayesian Network。
但当随机变量是连续的时候,就不能用一个表列举了,只能采用概率密度函数进行表示。

  • 一个离散随机变量 Z Z Z与一个连续随机变量的联合分布 X X X
    • Z ∼ B e r n o u l i ( p ) Z\sim Bernouli(p) ZBernouli(p)
    • X ∣ Z = 0 ∼ N ( u 0 , σ 0 ) , X ∣ Z = 1 ∼ N ( u 1 , σ 1 ) X|Z=0\sim N(u_0,\sigma_0),X|Z=1\sim N(u_1,\sigma_1) XZ=0N(u0,σ0),XZ=1N(u1,σ1)
    • p(z,x)=p(z)p(x|z)
  • 两个随机变量的联合分布(VAE的形式)
    • Z ∼ N ( 0 , 1 ) Z\sim N(0,1) ZN(0,1)
    • X ∣ Z = z ∼ N ( u θ ( z ) , σ ϕ ( z ) ) X|Z=z\sim N(u_\theta(z),\sigma_\phi(z)) XZ=zN(uθ(z),σϕ(z))

你可能感兴趣的:(Deep,Generative,Model,深度学习,神经网络,机器学习)