贝叶斯决策与参数估计小结
有监督机器学习的问题都是以这种形式出现的:
- 给定training set \(D\): \((x_i, y_i)\), \(i \in \{1,2, \dots, m\}\), \(y_i\in \{1, \dots, c\}\)
- 选一个模型进行训练
- 预测新样本\(x\)的\(y\)
贝叶斯决策论采用概率模型, 在\(0-1\)loss 的情况下, 最佳选择, 也是风险最小的选择, 就是后验概率最大的那个.
\[P(w_k|x) = \frac {P(x|w_k)P(w_k)}{P(x)} \]
先验概率\(P(w_k)\)好计算, 无论特征的值是连续的还是离散的, 求出现过的频率就可以了.
但其它两个, likelihood \(P(x|w_k)\)与 evidence \(P(x)\)却是不好办, 特别是当特征的值是离散的很厉害, 或者干脆是连续的时候. 所以求它们的时候用频率代替概率是行不通的, 因为大部分时候求出来的都会是0, 除非\(x\)与某个训练样本\(x_i\)完全相同.
于是需要为\(x\)的分布建立一个概率模型. 在贝叶斯决策论里有一个很重要的假设: 各个类别的\(x\)分布是相互独立的. 所以可以为每个类别的\(x\)分布各自建立概率模型\(P(x;\theta_k|w_k)\). 模型里面有未知参数\(\theta_k\). 利用样本集\(D\)进行参数估计, 得到\(\hat \theta_k\)后, \(P(x|w_k)\)就是一个关于\(x\)的、完全已知的函数了. 然后利用全概率公式\(P(x) = \sum_{k=1}^c P(x|w_k)P(w_k)\)就可以计算出\(P(x)\)了.
于是现在最重要的问题就是利用\(D\)来估计\(\theta_k\)了. 因为之前已经假设过各个类别的分布是独立的了, 所以\(c\)个类别的分布模型都可以单独处理. 我们学过的参数估计方法有三种: 矩估计, 最大似然估计与贝叶斯估计. 矩估计用的比较少, 因为特征\(x\)维数很高时, 它的计算代价很大.
最大似然估计假设\(\theta_k\)的值原本就是固定而未知的, 同时使用所有正负样本, 把它们的联合分布率看作是一个关于\(\theta_k\)的函数, 即似然函数\(L(\theta_k)\). 让\(L(\theta_k)\) 取得最大值的\(\theta_k\)便是\(\hat theta_k\): $$\hat \theta_k = argmax_{\theta_k} L(\theta_k)$$.
贝叶斯估计认为\(\theta_k\)也是一个随机变量, 服从一个确定且已知的分布\(P(\theta_k)\), 这个分布凝聚了估计者对\(\theta_k\)的全部先验知识. \(\theta_k\)就像薛定谔猫, 箱子关闭时或生或死不确定, 箱子打开时是生是死就确定了. 取样就是一个开箱子的过程. 取样前\(\theta_k\)是随机的, 但取样一旦开始, 它的值就确定下来了, 因为有了观察者, 呵呵. 这个确定但未知的值就是我们要根据样本集\(D_k = \{(x_i, y_i)|y_i = k\}\)估计的对象了.
\[P(\theta_k|D_k) = \frac {P(D|\theta_k)P(\theta_k)}{\int P(D|\theta_k)P(\theta_k)d\theta_k} \]
\(P(\theta_k|D_k)\)是一个关于\(\theta_k\)的函数
\[\hat \theta_k = \int P(\theta_k|D_k) \theta_k d\theta_k \]
Daniel的学习笔记
浙江大学计算机专业15级硕士在读, 方向: Machine Learning, Deep Learning, Computer Vision.
blog内容是我个人的学习笔记, 由于个人水平限制, 肯定有不少错误或遗漏. 若发现, 欢迎留言告知, Thanks!