从思路到模型(Knowledge Engineering)——建模过程中需要考虑什么
本博客中 PGM 系列笔记以 Stanford 教授 Daphne Koller 的公开课 Probabilistic Graphical Model 为主线,并参阅 Koller 著作及其 翻译版对笔记加以补充。博文的章节编号与课程视频编号一致。
博文持续更新(点击这里见系列笔记目录页),文中提到的资源以及更多见 PGM 资源分享和课程简介。
从有向图到无向图,从全局分布到局部概率模型,前面课程已经介绍了多种模型和模型表示。如何将这些零散的知识结合起来,构建一个可以解决实际问题的模型呢?现在我们 take a big step back,来看看建模的思路方法和注意事项。
1 模型类型
不同问题或数据类型有其适合的模型类型。一般地,模型类型的选择需要在以下三种机制(regimes)中做决策。
- Template based versus specific
- Directed versus undirected
- Generative versus discriminative
需要明确的是,很多情况下我们采用的是几种类型的混合模型(Hybrids),这十分常见。
1.1 template based VS specific
1)基于模板(template based):例如图像分割(image segamentation)。变量虽然很多,但都是一种类型(都是像素值);不同的超级像素划分导致不同的分类结果。
- 较少的变量类型(variable types)
- 特征提取对结果影响很大(feature engineering)
2)基于具体问题(specific):例如医疗诊断(medical diagnosis)。多种疾病,每种疾病诱发对应的症状,这个模型框架是比较清晰的。但由于疾病各异,故每个变量取值类型各不相同。
- 很多特殊(unique)变量因不同问题而异
3)比如打印机的故障识别。故障识别体系已经有一个较为完整的框架(template based),但打印机类型各不相同,故因具体打印机而异(specific)。
- 模型框架适用不同问题:shared variables
- 特定问题有一定特殊性:unique variables
1.2 有向图 VS 无向图
1.3 生成式 VS 判别式
1)对于有特定预测任务,有丰富的强表达性特征的问题,判别模型适用。并且已有特征则使得我们不需要去处理原始变量间的相关性。
- particular tasks
- richly expressive features(avoid dealing with correlations)
2)对于需要灵活处理的模型,可以使用生成式,并且它在确定的机制下非常易于训练。
- task shifts
- easier to train in certain regimes
2 模型变量
2.1 三种变量类型
(1)目标变量(Target):我们感兴趣的未知变量。将用模型来预测。
(2)观察变量(Obeserved):已知变量。变量间包含复杂结构,蕴含某些特征(including complex, constructed features)
(3)隐变量(Latent):我们不感兴趣的未知变量。但这类变