大象植物园的客厅

tech

什么是泛化?猜!


“If you can’t explain it simply, you don’t understand it well enough.” — Albert Einstein

1. 问题这样子的:

给了一组数据: 1,2,4,7...	
下一个数是什么呢?


—— 某初二考试题

2. 想法是:

当时初二的我发现的规律是 1+1=2, 2+2=4,4+3=7, 所以下一个就是7+4=11

但是如今的我可能会说答案不止一种:

可能是..

1,2,4,7,12,20 (规律是: A(n+2) = A(n+1) + A(n) + 1)

1,2,4,7,14,28 (28的除数)

… 甚至是你可能随便猜一个数字都对,0,1,2,4,5,7,8,9,11,12,13,14…

The on-line encyclopedia of integer sequences 看一下发现他们都是有根据:

0

1

2

后来搞「机器学习」的大人们,把这个「猜下一个」的能力叫做「Generalization」. 我们还不知道实际情况是怎样子的,然后我们根据我们的规律A(n+2) = A(n+1) + A(n) + 1猜了下一个是11,发现实际情况对了,下一个就是11,问题我们得出规律就一定符合真实的情况么?

然后我们看到了这些…

11-1

11-2

11-3

😂我们发现了符合下一个是11的情况,可能有好多规律都是满足的。搞机器学习的大人们把这些发现的「规律」叫做「Model」。所以当他们说训练的模型泛化能力不行的时候,他们就是可能遇到了上面的情况。

这时候他们想要干什么呢?可能要更多的数据。

下面这多数够么?

1, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79, 92, 106, 121, 137, 154, 172…

发现下一个在The on-line encyclopedia of integer sequences 数据还是有4种规律,下一个可以是:191或190

至少我们发现给定数据越多,我们可以发现更精确的「模型」,那我们看一个数据多少模型性能的栗子:

data-model

3. 小结一下

数据的多少,决定了你模型泛化能力的上限。

4. 想多玩一会?

  1. 当模型泛化能不行时,还有哪些原因?各自的特征是什么,如何解决?
  2. 如何确定自己不是因为数据不够而模型性能不好?
  3. 小数据样本有没有可能训练出泛化能力强的模型?如果可以,在什么情况下?

5. 感谢

  1. Statistical and causal approaches to machine learning
  2. The on-line encyclopedia of integer sequences



2018.03.18