假设数据样本 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).
生成(Generation):从真实分布生成数据
推断(Inference):从数据推断真实分布的参数或结构
Prior Knowledge:在Deep Generative Model中的先验
1. 损失函数(loss function):如最大似然函数
2. 参数形式(parametric form):如假设真实分布服从正态分布
3. 优化算法(optimization algorithm)
判别式与生成式的区别:
需求:一封邮件进行分类,用标签变量 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,xj∣y)=p(xi∣y)p(xj∣y)
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=1∏np(xi∣y)
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=1∣x1,...,xn)=p(x1,...,xn)p(Y=1,x1,...,xn)=∑Y=0,1p(Y=y)∏i=1np(xi∣Y=y)p(Y=1)∏i=1np(xi∣Y=1)
Learning:
从数据集 { ( X 1 , Y 1 ) . . . ( X N , Y N ) } {\{(X_1,Y_1)...(X_N,Y_N)\}} {(X1,Y1)...(XN,YN)}中学习模型参数,此处相当于在数据集中统计得:
所以,对于一个邮件 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=1∣x1,...,xn)推断属于垃圾邮件的概率。
这就是Naive Bayes从生成式的角度看,对 p ( X , Y ) p(X,Y) p(X,Y)联合建模,引入假设,当然此处省略了实际实现中的平滑、加log等trick,只是简单从生成式角度描述朴素贝叶斯问题并进行建模。
上图可从朴素贝叶斯角度看生成式与判别式,上面描述了对生成式的建模 P ( X , Y ) P(X,Y) P(X,Y),需要假设 P ( X ∣ Y ) P(X|Y) P(X∣Y)的条件独立性,而如果是判别式的话,只需要直接建模 p ( Y ∣ X ) p(Y|X) p(Y∣X),如将X随便丢进一个分类器(Linear Regression),输出一个binary variable。
上面从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(X1∣Y)p(X2∣Y,X1)⋯p(Xn∣Y,X1,...,Xn−1)
对于生成式, p ( Y ) p(Y) p(Y)很容易建模,但对于 p ( X i ∣ X p a ( i ) , Y ) p(X_i|X_{pa(i)},Y) p(Xi∣Xpa(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(X2∣X1)⋯p(Y∣X1,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=1∣X1,X2,...,Xn)=σ(α0+i=1∑nαiXi)σ(z)=1−e−z1
那什么时候需要生成式模型?
当观测数据并非完全可观测的时候,即 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(X∣Y)中观测不到的维度求积分或求和去掉就好。
Bayesian Network 由一个有向无环图(Directed Acyclic Graph)确定,即G=(V,E)
由 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)=i∈V∏p(xi∣xpa(i))=p(x1)p(x2∣x1)⋯p(xn∣x1,...,xn−1)=p(d)p(i)p(g∣i,d)p(s∣i)p(l∣g)=p(d)p(i∣d)p(g∣d,i)p(s∣d,i,g)p(l∣d,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 d⊥i,s⊥{d,g}∣i,l⊥{d,i,s}∣g
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从概率角度看:
链式法则是最General联合分布分解。
贝叶斯网络是对随机变量之间进行了条件假设。
神经网络则是对条件假设采取了特殊的函数形式近似。
在3.1的Bayes Net中,构建了一个离散随机变量的Bayesian Network。
但当随机变量是连续的时候,就不能用一个表列举了,只能采用概率密度函数进行表示。