写在前面
本节内容是O’Reilly的Generarive Learning Model一书的第一节内容,会对生成模型做一个大致的介绍。作为一篇学习笔记,本文只会简单扼要地记录一些重要内容,不对细节做介绍,可供自己以及读者快速阅览和复习之用。有些描述会采用原文中的英文描述,因为笔者感觉有些定义原文中的描述更加精准。
什么是生成模型
定义
A generative model describes how a dataset is generated, in terms of a probabilistic model. By sampling from this model, we are able to generate new data.
也就是生成模型能够描述一个数据集是怎么产生的,数据怎么分布的。通过这个模型,我们可以得到新的数据,并且这个数据就好像就是原有的数据。所以重点就是去学习原有数据的规律,然后去产生跟原有数据很类似的数据。
和一般判别式机器及学习的比较
Discriminative modeling estimates p ( y ∣ x ) p(y|x) p(y∣x)—the probability of a label y y y given observation x.
Generative modeling estimates p ( x ) p(x) p(x)—the probability of observing observation x x x. If the dataset is labeled, we can also build a generative model that estimates the distribution p ( x ∣ y ) p(x|y) p(x∣y).
简单来说,就是经典的一些判别式的模型,都是给出数据,然后需要去判断这个数据是哪一类之类的,作为一个分类的任务去解决。而生成式模型就是去产生数据,去估计模拟数据的分布。
生成模型的整体框架
下面是原文中的截图,比较形式化的给出了生成模型的框架:
感觉这上面说的非常清楚,笔者不再对其进行赘述。
概率生成模型
首先介绍文中提出的几个经典的概率论里面的概念:
Sample Space: The sample space is the complete set of all values an observation x x x can take.
Probability density function p ( x ) p(x) p(x): is a function that maps a point x in the sample space to a number between 0 and 1.
parametric model: A parametric model, p θ ( x ) p_θ (x) pθ(x), is a family of density functions that can be described using a finite number of parameters, θ θ θ.
Likelihood:The likelihood L ( θ ∣ x ) L (θ ∣ x) L(θ∣x) of a parameter set θ θ θ is a function that measures the plausibility of θ θ θ, given some observed point x x x.
朴素贝叶斯
在条件概率中,有如下公式
p
(
x
)
=
p
(
x
1
,
.
.
.
,
x
k
)
p(x) = p(x_1,...,x_k)
p(x)=p(x1,...,xk)
=
p
(
x
2
,
.
.
.
,
x
k
∣
x
1
)
p
(
x
1
)
=p(x_2,...,x_k|x_1)p(x_1)
=p(x2,...,xk∣x1)p(x1)
=
p
(
x
3
,
.
.
.
,
x
k
∣
x
1
,
x
2
)
p
(
x
2
∣
x
1
)
p
(
x
1
)
=p(x_3,...,x_k|x_1,x_2)p(x_2|x_1)p(x_1)
=p(x3,...,xk∣x1,x2)p(x2∣x1)p(x1)
=
Π
k
=
1
K
p
(
x
k
∣
x
1
,
x
2
,
.
.
.
,
x
k
−
1
)
=Π_{k=1}^{K}p(x_k|x_1,x_2,...,x_{k-1})
=Πk=1Kp(xk∣x1,x2,...,xk−1)
如果再加上条件独立,则有
p
(
x
)
=
Π
k
=
1
K
p
(
x
k
)
p(x)=Π_{k=1}^{K}p(x_k)
p(x)=Πk=1Kp(xk)
这里只是将两个重要公式展示出来,若想具体了解朴素贝叶斯,可查阅其他资料与博客
以下会列举两个在书中提出的例子,任务就是,给出一些原始的人的图片,现在需要设计一个模型,能够产生相近的人的图片。
基于风格组合的例子
这时基于不同的特征,比如头发颜色,头发类型等特征进行概率值的组合即可
基于像素取值的例子
这时如果对每个像素点进行取值的组合,效果很差,原因在下面的思考中
思考
为什么在像素情况下表现较差:
- 由于朴素贝叶斯模型是独立采样像素的,它无法知道两个相邻的像素在阴影中很可能是非常相似的,因为它们是同一衣服的一部分。
- 现在样本空间中存在着大量无法理解的可能观测值。其中只有一小部分是可识别的面孔,更小的子集是在行星像素上遵循时尚规则的面孔。
表征学习
表征学习在深度学习中非常重要,我们应该使用一些低维的潜在空间来描述训练集中的每个观测,然后学习一个映射函数,可以在潜在空间中取一个点,并将其映射到原始域中的一个点。
笔者觉得原文中一句话写的特别好,能够概括表征学习:
Mathematically speaking, it tries to find the highly nonlinear manifold on which the data lies and then establish the dimensions required to fully describe this space.