在当前各类学习任务中,我们总认为数据量越多,便可以使得学习结果越准确。因此很多工作中在解决模型的泛化能力不足时,第一条思路总是去扩展训练集,然而事实上这个假设未必属实。
以两个事件为例,A和B,那么我们可以将一个机器学习分类任务如下:我们已知事件B,并计划通过在B事件上学习知识,从而去推测A的类别,本质上便是讨论条件概率
P
(
A
∣
B
)
,
P(A|B),
P(A∣B),
的取值,而当我们发现通过B去估算A的准确性不甚理想时,我们考虑的是A的特征可能完全从B的学习中获取到,因此,理所应当的,有两类途径,更改模型,或者更改数据,但无论是哪一类模型,本质上都改变不了,这本质就是一个在B发生的条件下,讨论A发生的概率。因而,仅仅更换模型,总是使得模型输出的结果在这一条件概率的左右徘徊,就像价格总会围绕价值徘徊了,尽管有时他会高出这一条件概率的取值,这并不是因为他的方法有多么优越,而是因为他的方法去刻意忽略了一些信息以换取准确率的上升。
为了说明这一观点,我只需举一个例子即可,显然条件概率
P
(
A
∣
B
,
C
)
P(A|B,C)
P(A∣B,C)
的取值与条件概率
P
(
A
∣
B
)
,
P(A|B),
P(A∣B),
的取值并没有明确的大小关系,我们并不能明确再次引入一个新的训练集,或者说是一个新的知识,就一定能够给该准确率带来正面的影响。那么,为什么机器学习的任务总是可以通过增加训练集或者是知识量,来提高训练的准确性呢?这个问题下次有空再说。