定理内容:无论学习算法A多聪明,学习算法B多笨拙,它们的期望性能是相同的,证明过程如下:
假设样本空间 X \mathcal{X} X和假设空间 H \mathcal{H} H都是离散的, L a \mathfrak{L}_a La代表搜索算法, P ( h ∣ X , L a ) P\left(h \mid X, \mathfrak{L}_{a}\right) P(h∣X,La)代表算法 L a \mathfrak{L}_a La基于训练数据X产生假设h的概率,f代表真实目标函数,则 L a \mathfrak{L}_a La在训练集之外的所有样本的误差为:
(考虑二分类问题,且真实目标函数可以为函数空间内的任何函数,对所有可能的f按照均匀分布对误差求和)
∑ f E ote ( L a ∣ X , f ) = ∑ f ∑ h ∑ x ∈ X − X P ( x ) I ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) = ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f I ( h ( x ) ≠ f ( x ) ) = ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) 1 2 ∣ X ∣ = 1 2 2 ∣ X ∣ ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) = 2 ∣ X ∣ − 1 ∑ x ∈ X − X P ( x ) ⋅ 1 \begin{aligned} \sum_{f} E_{\text {ote }}\left(\mathfrak{L}_{a} \mid X, f\right) &=\sum_{f} \sum_{h} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h \mid X, \mathfrak{L}_{a}\right) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h \mid X, \mathfrak{L}_{a}\right) \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h \mid X, \mathfrak{L}_{a}\right) \frac{1}{2^{|\mathcal{X}|}} \\ &=\frac{1}{2} 2^{|\mathcal{X}|} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h \mid X, \mathfrak{L}_{a}\right) \\ &=2^{|\mathcal{X}|-1} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \cdot 1 \end{aligned} f∑Eote (La∣X,f)=f∑h∑x∈X−X∑P(x)I(h(x)=f(x))P(h∣X,La)=x∈X−X∑P(x)h∑P(h∣X,La)f∑I(h(x)=f(x))=x∈X−X∑P(x)h∑P(h∣X,La)2∣X∣1=212∣X∣x∈X−X∑P(x)h∑P(h∣X,La)=2∣X∣−1x∈X−X∑P(x)⋅1
解释:
I ( h ( x ) ≠ f ( x ) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x}) I(h(x)=f(x)是指示函数,里面的内容为真则取值1,否则取值0.
∑ f I ( h ( x ) ≠ f ( x ) ) = 2 ∣ X ∣ \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) = 2^{|\mathcal{X}|} f∑I(h(x)=f(x))=2∣X∣
f代表我们希望学习的真实目标函数,假如说样本空间 x \mathcal{x} x包含两个样本 { x 1 , x 2 } \{x_1,x_2\} {x1,x2},每个样本的取值为0或者1,那么f的个数就为 2 2 = 4 2^2 = 4 22=4个。那么假设 h ( x 1 ) h(x_1) h(x1)的标签为0,那么总有一半的 f f f是正确的。
结论:
∑ f E o t e ( L a ∣ X , f ) = ∑ f E o t e ( L b ∣ X , f ) \sum_f E_{ote}(\mathfrak{L}_a \mid X, f) = \sum_f E_{ ote}(\mathfrak{L}_b \mid X,f) f∑Eote(La∣X,f)=f∑Eote(Lb∣X,f)
即总误差和学习算法无关。
问题:
那么既然选择什么算法最终的期望性能都一样,那么机器学习到底学什么呢?
答:1.该定理有一个重要前提,f是均匀分布的。但是现实生活中,针对具体的问题,真实的目标函数是有偏好的。比如说,蜷缩、浊响的西瓜常常是好瓜。
2.该定理的意义,是让我们明确,机器学习必须针对具体的数据集来说话,这个学习算法在问题A上有很好的效果,但是在问题B上可能效果非常差。我们的目标是使自身的归纳偏好和问题相配。
在训练集上表现的很好,在测试集上表现的不好(学习能力过强)。欠拟合就是在训练集上表现的不好(学习能力不足)。
过拟合不可避免:我们要解决的问题通常都是NP问题,若不存在过拟合,则该问题可转化为P问题, N P ≠ P NP\neq P NP=P(至少现在还无法证明)
1).留出法
将数据集D按比例划分为互斥的两个子集S和T,最好按照原样本中的类别比例。这种一般要采用若干次随机划分、重复进行实验评估后取平均值作为实验结果。常见的划分比例是:4:1或者2:1
2).交叉验证法
a. 首先将数据D划分为k个大小相似的互斥子集,即 D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ∅ D_1\cup D_2 \cup ...\cup D_k,D_i \cap D_j = \emptyset D1∪D2∪...∪Dk,Di∩Dj=∅,其中每个子集都尽量保持与原数据分布的一致性。
b.每次用k-1个子集的并集作为训练集,余下的子集作测试集,这样可以获得k组训练/测试集,最终返回这k组结果的均值。
c.常用的k值包括5,10,20等。
问题:将数据集划分为k个子集的时候也有多种划分方法,k折交叉验证通常要随机选用不同的划分重复p次,最终的结果是这p次k折的结果。常见的有“10次10折交叉验证” 相当于 100个划分。
特殊:每个子集包含1个样本,只有一种划分方式,就是留一法。(如果数据量大,那么计算开销非常大。评估结果也未必永远准确)
3).自助法
对数据集进行m次有放回采样得到D‘(训练集),共m个样本。
那么一个样本没有被采样过的概率为:
lim m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim\limits_{m \to \infty} (1-\frac{1}{m})^m = \frac{1}{e} \approx0.368 m→∞lim(1−m1)m=e1≈0.368
所以D\D’用作测试集,D‘作为训练集,测试集的比例约为0.368
针对情况:数据集较小、难以有效划分训练/测试集时比较有用。缺点:改变了初始数据集的样本分布,在数据量足够时,留出法和交叉验证法更常用。
超参数:你自己设置的参数,比如学习率、迭代轮数等。
模型参数:模型反向梯度下降得到的参数。
调参:调的是超参数。
一般是用验证集来测试和调参。
不同的任务侧重于不同的指标。
给定样例集D={(x1,y1),(x2,y2),…(xm,ym)},其中yi是真实标签,则评估学习器的性能。
均方误差:
E ( F ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(F;D) = \frac{1}{m}\sum_{i=1}^{m}(f(x_i) - y_i)^2 E(F;D)=m1∑i=1m(f(xi)−yi)2
1.错误率:分类错误的样本数占样本总数的比例。
2.精度:分类正确的样本数占样本总数的比例。
预测结果 | ||
真实情况 | 正(T) | 负(N) |
正(T) | TP | FN |
负(N) | FP | TN |
查准率(precision): P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP,预测为正样本中有多少是真的正样本。
查全率(recall): R = T P T P + F N R = \frac{TP}{TP+FN} R=TP+FNTP,正样本中又多少被正确预测了。
查准率和查全率通常是相互矛盾的,如果把所有瓜都选上,查准率低,如果只想挑好瓜,必然漏了一部分好瓜,查全率就低了。
P-R曲线:
根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,按此顺序逐个把样本作为正例进行预测,则每次可以计算当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图。
如果一个学习器的P-R曲线被另一个学习器的P-R曲线包住,可断言后者的性能优于前者。
a.平衡点(Break-Even Point,BEP)
是当查准率=查全率时的取值。可以作为评价哪个学习器更好的指标,如图,A > B(平衡点更大) > C(全包)
————————————————————————————————————————————
b.F1度量:基于查准率与查全率的调和平均定义的: 1 F 1 = 1 2 × ( 1 P + 1 R ) \frac{1}{F_1} = \frac{1}{2} \times(\frac{1}{P}+\frac{1}{R}) F11=21×(P1+R1)
.
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F_1 = \frac{2 \times P \times R}{P + R} = \frac{2 \times TP}{样例总数 + TP - TN} F1=P+R2×P×R=样例总数+TP−TN2×TP
F β F_\beta Fβ则是加权调和平均,它表示了对查准率和查全率的不同偏好。其中 β > 0 \beta>0 β>0度量了查全率对查准率的相对重要性, β = 1 \beta=1 β=1退化为标准的F1, β \beta β > 1时查全率有更大的影响, β \beta β < 1时,查准率有更大的影响。
1 F β = 1 1 + β 2 ( 1 P + β 2 R ) \frac{1}{F_\beta}=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R}) Fβ1=1+β21(P1+Rβ2)
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2 \times P)+R} Fβ=(β2×P)+R(1+β2)×P×R
——————————————————————————————————————————————
c.宏查准率/宏查全率/宏F1
累加的形式
macro- P = 1 n ∑ i = 1 n P i macro- R = 1 n ∑ i = 1 n R i , macro- F 1 = 2 × macro- P × macro- R macro- P + macro- R . \begin{array}{c} \text { macro- } P=\frac{1}{n} \sum_{i=1}^{n} P_{i} \\ \\ \text { macro- } R=\frac{1}{n} \sum_{i=1}^{n} R_{i}, \\ \\ \text { macro- } F 1=\frac{2 \times \text { macro- } P \times \text { macro- } R}{\text { macro- } P+\text { macro- } R} . \end{array} macro- P=n1∑i=1nPi macro- R=n1∑i=1nRi, macro- F1= macro- P+ macro- R2× macro- P× macro- R.
先把各项平均再计算,叫微查准率/微查全率/微F1:
micro- P = T P ‾ T P ‾ + F P ‾ , micro- R = T P ‾ T P ‾ + F N ‾ , micro- F 1 = 2 × micro- P × micro- R micro- P + micro- R \begin{array}{c} \text { micro- } P=\frac{\overline{T P}}{\overline{T P}+\overline{F P}}, \\ \\ \text { micro- } R=\frac{\overline{T P}}{\overline{T P}+\overline{F N}}, \\ \\ \text { micro- } F 1=\frac{2 \times \text { micro- } P \times \text { micro- } R}{\text { micro- } P+\text { micro- } R} \end{array} micro- P=TP+FPTP, micro- R=TP+FNTP, micro- F1= micro- P+ micro- R2× micro- P× micro- R