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