机器学习(八)——学习理论

博客围绕机器学习的学习理论展开,介绍了交叉验证中的k - 折交叉验证,通过划分数据集验证模型性能;阐述了特征选择的向前搜索、向后搜索和过滤器特征选择方法;还讲解了贝叶斯统计和正则化,包括完全贝叶斯预测及实际应用中的近似估计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.学习理论

1.交叉验证

k-折交叉验证

将数据集划分为k份,每次选取一份作为测试数据,其他的为训练数据。重复k次。计算每次错误的平均值。以此验证模型的性能。

  1. 随机将训练集 S S S 切分成 k k k 个不相交的子集。其中每一个子集的规模为 m / k m/k m/k 个训练样本。这些子集为 S 1 , ⋯   , S k S_1,\cdots,S_k S1,,Sk

  2. 对每个模型 M i M_i Mi,我们都按照下面的步骤进行评估(evaluate):

    j = 1 , ⋯   , k j=1,\cdots,k j=1,,k

    • S 1 ∪ ⋯ ∪ S j − 1 ∪ S j + 1 ∪ ⋯ ∪ S k S_1\cup\cdots\cup S_{j-1}\cup S_{j+1}\cup\cdots\cup S_k S1Sj1Sj+1Sk (也就是除了 S j S_j Sj 之外的其他数据),对模型 M i M_i Mi 得到假设 h i j h_{ij} hij 。接下来针对 S j S_j Sj 使用假设 h i j h_{ij} hij 进行测试,得到经验误差 ϵ ^ S c v ( h i j ) \hat\epsilon_{S_{cv}}(h_{ij}) ϵ^Scv(hij)

      ϵ ^ S c v ( h i j ) \hat\epsilon_{S_{cv}}(h_{ij}) ϵ^Scv(hij) 取平均值,计算得到的值就当作是模型 M i M_i Mi 的估计泛化误差(estimated generalization error)

  3. 选择具有最小估计泛化误差(lowest estimated generalization error)的模型 M i M_i Mi 的,然后在整个训练样本集 S S S 上重新训练该模型。这样得到的假设 (hypothesis)就可以输出作为最终结果了。

2.特征选择

向前搜索
  1. 初始化一个集合为空集 F = ∅ \mathcal F=\emptyset F=

  2. 循环下面的过程{

    (a) 对于 i = 1 , ⋯   , n i=1,\cdots,n i=1,,n 如果 i ∉ F i\notin \mathcal F i/F,则令 F i = F ∪ { i } \mathcal F_i=\mathcal F\cup \{i\} Fi=F{i},然后使用某种交叉验证来评估特征 F i \mathcal F_i Fi

    (b) 令 F \mathcal F F 为(a)中最佳特征子集

    }

  3. 整个搜索过程中筛选出来了最佳特征子集(best feature subset),将其输出。

算法的外层循环可以在 F = { 1 , ⋯   , n } \mathcal F=\{1,\cdots,n\} F={1,,n} 达到全部特征规模时停止,也可以在 ∣ F ∣ |\mathcal F| F 超过某个预先设定的阈值时停止(阈值和你想要算法用到特征数量最大值有关)。

向后搜索

F = { 1 , . . . , n } \mathcal F = \{1, ..., n\} F={1,...,n} ,即规模等同于全部特征开始,然后重复,每次删减一个特征,直到 F \mathcal F F 为空集时终止。

过滤器特征选择

一种思路是使用 x i x_i xi y y y 之间的相关系数的值(或其绝对值),这可以在训练 样本数据中算出。这样我们选出的就是与分类标签(class labels)的关系最密切的特征值(features)。实践中,通常(尤其当特征 x i x_i xi 为离散值(discrete-valued features))选择 x i x_i xi y y y互信息( mutual information, M I ( x i , y ) {\rm{MI}}(x_i, y) MI(xi,y) ) 来作为 S ( i ) S(i) S(i)
M I ( x i , y ) = ∑ x i ∈ { 0 , 1 } ∑ y ∈ { 0 , 1 } p ( x i , y ) log ⁡ p ( x i , y ) p ( x i ) p ( y ) {\rm{MI}}(x_i, y)=\sum_{x_i\in\{0, 1\}}\sum_{y\in\{0,1\}}p(x_i,y)\log\frac{p(x_i,y)}{p(x_i)p(y)} MI(xi,y)=xi{0,1}y{0,1}p(xi,y)logp(xi)p(y)p(xi,y)
(上面这个等式假设了 x i x_i xi y y y 都是二值化;更广泛的情况下将会超过变量的范围 。)上式中的概率 p ( x i , y ) p(x_i,y) p(xi,y) p ( x i ) p(x_i) p(xi) p ( y ) p(y) p(y) 都可以根据它们在训练集上的经验分布(empirical distributions)而推测(estimated)得到。

要对这个信息量分值的作用有一个更直观的印象,也可以将互信息(mutual information)表达成 K L KL KL 散度(Kullback-Leibler divergence,也称 K L KL KL 距离,常用来衡量两个概率分布的距离):
M I ( x i , y ) = K L ( p ( x i , y )   ∥   p ( x i ) p ( y ) ) {\rm{MI}}(x_i,y)={\rm KL}(p(x_i,y)\,\|\,p(x_i)p(y)) MI(xi,y)=KL(p(xi,y)p(xi)p(y))

3.贝叶斯统计和正则化

在本章的开头部分,我们谈到了使用最大似然(maximum likelihood,缩写为 ML)来进行参数拟合,然后根据下面的式子来选择参数:
θ M L = arg ⁡ max ⁡ θ ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) \theta_{\rm ML}=\arg \max_{\theta}\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) θML=argθmaxi=1mp(y(i)x(i);θ)
给定一个训练集合 S = { ( x ( i ) , y ( i ) ) } i = 1 m S = \{(x^{(i)},y^{(i)})\}^m_{i=1} S={(x(i),y(i))}i=1m
p ( S ∣ θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) , θ ) p ( S , θ ) = p ( S ∣ θ ) p ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) , θ ) p ( θ ) p ( S ) = ∫ θ p ( S , θ ) d θ = ∫ θ ( ∏ i = 1 m p ( y ( i ) ∣ x ( i ) , θ ) p ( θ ) ) d θ \begin{aligned} p(S|\theta)&=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)},\theta)\\ p(S,\theta)&=p(S|\theta)p(\theta)=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)},\theta)p(\theta)\\ p(S)&=\int_{\theta} {p(S,\theta)}d\theta=\int_{\theta} {\left(\prod_{i=1}^{m}p(y^{(i)}|x^{(i)},\theta)p(\theta)\right)}d\theta \end{aligned} p(Sθ)p(S,θ)p(S)=i=1mp(y(i)x(i),θ)=p(Sθ)p(θ)=i=1mp(y(i)x(i),θ)p(θ)=θp(S,θ)dθ=θ(i=1mp(y(i)x(i),θ)p(θ))dθ
当我们被要求对一个新的 x x x 的值进行预测的时候,我们可以计算在参数上的后验分布 (posterior distribution):
p ( θ ∣ S ) = p ( S ∣ θ ) p ( θ ) p ( S ) = ( ∏ i = 1 m p ( y ( i ) ∣ x ( i ) , θ ) ) p ( θ ) ∫ θ ( ∏ i = 1 m p ( y ( i ) ∣ x ( i ) , θ ) p ( θ ) ) d θ \begin{aligned} p(\theta|S) &=\frac{p(S|\theta)p(\theta)}{p(S)}\\ &=\frac{(\prod_{i=1}^{m}p(y^{(i)}|x^{(i)},\theta))p(\theta)}{\int_{\theta} {\left(\prod_{i=1}^{m}p(y^{(i)}|x^{(i)},\theta)p(\theta)\right)}d\theta}\qquad \end{aligned} p(θS)=p(S)p(Sθ)p(θ)=θ(i=1mp(y(i)x(i),θ)p(θ))dθ(i=1mp(y(i)x(i),θ))p(θ)
在上面的等式中, p ( y i ) ∣ x ( i ) , θ ) p(y^{i)}|x^{(i)},\theta) p(yi)x(i),θ) 来自你所用的机器学习问题中的模型。例如,如果你使用贝叶斯逻辑回归(Bayesian logistic regression),你可能就会选择 p ( y ( i ) ∣ x ( i ) , θ ) = h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) p(y^{(i)}|x^{(i)},\theta)=h_\theta(x^{(i)})^{y^{(i)}} (1-h_\theta(x^{(i)}))^{(1-y^{(i)})} p(y(i)x(i),θ)=hθ(x(i))y(i)(1hθ(x(i)))(1y(i)) 其中, h θ ( x ( i ) ) = 1 / ( 1 + exp ⁡ ( − θ T x ( i ) ) ) h_\theta(x^{(i)})=1/(1+\exp(-\theta^Tx^{(i)})) hθ(x(i))=1/(1+exp(θTx(i))).

若有一个新的测试样本 x x x,然后要求我们对这个新样本进行预测,我们可以使用 θ \theta θ 上的后验分布(posterior distribution)来计算分类标签(class label)上的后验分布:
p ( y ∣ x , S ) = ∫ θ p ( y ∣ x , θ ) p ( θ ∣ S ) d θ \begin{aligned} p(y|x,S)&=\int_\theta p(y|x,\theta)p(\theta|S)d\theta\qquad \\ \end{aligned} p(yx,S)=θp(yx,θ)p(θS)dθ
在上面这个等式中, p ( θ ∣ S ) p(\theta|S) p(θS) 来自等式 (1)。例如,如果目标是要根据给定的 x x x 来预测对应的 y y y 的值,那就可以输出 4 ^4 4:

4 如果 y y y 是一个离散值(discrete-valued),那么此处的积分(integral)就用求和(summation)来替代。

E [ y ∣ x , S ] = ∫ y y p ( y ∣ x , S ) d y E[y|x,S]=\int_y y p(y|x,S)dy E[yx,S]=yyp(yx,S)dy

这里我们简单概述的这个过程,可认为是一种“完全贝叶斯 (fully Bayesian)”预测,其中我们的预测是通过计算相对于 θ \theta θ 上的后验概率 p ( θ ∣ S ) p(\theta|S) p(θS) 的平均值而得出的。然而很不幸,这 个后验分布的计算通常是比较困难的。这是因为这个计算需要对 θ \theta θ 进行积分(integral),而 θ \theta θ 通常是高维度的(high-dimensional),这通常是不能以闭合形式 (closed-form)来实现的。

因此在实际应用中,我们都是用一个与 θ \theta θ 的后验分布 (posterior distribution)近似的分布来替代。常用的一个近似是把对 θ \theta θ 的后验分布(正如等式 ( 2 ) (2) (2)中所示)替换为一个单点估计(single point estimate)。对 θ \theta θ 的最大后验估计 (MAP,maximum a posteriori estimate)为:
θ M A P = arg ⁡ max ⁡ θ ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ) p ( θ ) \theta_{MAP}=\arg \max_\theta \prod_{i=1}^{m} p(y^{(i)}|x^{(i)})p(\theta) θMAP=argθmaxi=1mp(y(i)x(i))p(θ)
注意到了么,这个式子基本和对 θ \theta θ 的最大似然估计(ML (maximum likelihood) estimate)是一样的方程,除了末尾多了 一个先验概率分布 p ( θ ) p(\theta) p(θ)。 实际应用里面,对先验概率分布 p ( θ ) p(\theta) p(θ) 的常见选择是假设 θ ∼ N ( 0 , τ 2 I ) \theta\sim N(0 , \tau ^2I) θN(0,τ2I)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值