隐变量是什么?

在一个讲算法的课件里看到em算法中提到了隐变量这一概念,不是很理解,为什么说其经常在实际问题中出现呢?和隐函数有关系吗?希望有了解的人能帮忙解下疑惑
关注者
109
被浏览
151,254

9 个回答

举个例子吧

一个人拿着n个袋子,里面有m种颜色不同的球。现在这个人随机地抓球,规则如下:

1. 先随机挑一个袋子

2. 从这个袋子中随机挑一个球

如果你站在这个人旁边,你目睹了整个过程:这个人选了哪个袋子、抓出来的球是什么颜色的。然后你把每次选择的袋子和抓出来的球的颜色都记录下来(样本观察值),那个人不停地抓,你不停地记。最终你就可以通过你的记录,推测出每个袋子里每种球颜色的大致比例。并且你记录的越多,推测的就越准(中心极限定理)。

然而,抓球的人觉得这样很不爽,于是决定不告诉你他从哪个袋子里抓的球,只告诉你抓出来的球的颜色是什么。这时候,“选袋子”的过程由于你看不见,其实就相当于是一个隐变量。

隐变量在很多地方都是能够出现的。现在我们经常说的隐变量主要强调它的“latent”。所以广义上的隐变量主要就是指“不能被直接观察到,但是对系统的状态和能观察到的输出存在影响的一种东西”。

所以说,很多人在研究隐变量。以及设计出各种更优(比如如可解释、可计算距离、可定义运算等性质)的隐变量的表示。

在扯远一点儿,可能就跟manifold相关了。。


上面很多都是个人感觉和推论。不严谨,请勿尽信。欢迎相互讨论共同学习。

机器学习过程一般包括两步:(1)建模构建、目标优化;(2)求解,求解目标优化

隐变量模型是无监督统计学习中最精华的模型之一,其中就有K-means, EM算法背后的GMM模型,PCA背后的FA模型,还有BMM,NFA,IFA等一系列不常见的隐变量模型!

在表象(观测数据 observed data)的背后,有一个不为人知的秘密 (隐变量 latent variable)。。。

这就是隐变量模型的建模思路。隐变量往往是事物的本质,而观测变量则是表象。

1. 基本假设

在表象(观测数据 observed data)的背后,有一个不为人知的秘密 (隐变量 latent variable)。观测数据X是由隐变量Z生成的。这个生成式过程被建模成 P(X|Z) 。而我们会估计 P(Z|X) 来获取有关表象背后秘密的信息。

图1. 隐变量模型概述图

数学上,我们的目标都是MLE, \max_{\Theta} P(X;\Theta) ,然而这个概率可能不好算,如GMM,没有close form,这样就可以让隐变量出马。

P(X;\Theta)\\ =\sum_{t=1}^N\sum_{Z_t}P(x_t,z_t;\Theta)\\ =\sum_{t=1}^N\sum_{Z_t}P(x_t|z_t;\Theta)P(z_t;\Theta)\\ 其中 P(x_t|z_t;\Theta)P(z_t;\Theta) 往往是简单的!就方便求解了!