上周参加一场学术圆桌论坛,讨论到一个问题:预测对社会科学的作用?

有一种观点:对社会科学来说,预测并不很重要,我们更关心的是解释,是因果关系。

我赞同社会科学对因果、对解释的重视,我要解释的是:预测的作用,并不仅在于预测,预测对因果、对解释也很重要。

简单来说,预测的目的是为了验证模型。

比如,对于人类,计算神经科学的一个主流看法是把人脑看成是一个“预测机”,或“贝叶斯脑”,即把认知过程理解成贝叶斯公式:

p(m|D) = p(D|m) p(m) / p(D)

其中 m 就是人脑对世界的理解,即模型;D 是对世界的观察;而 p(D|m) 被称为似然(Likelihood),就是在当前的模型下,得到某个观察的概率,比如m告诉我们太阳会从东边升起,而我们每天观察到太阳确实从东边升起,似然 p(D|m) 就很大。

似然代表了模型预测的准确性,似然越大,则预测越准,如果似然小,则说明模型不对,我们要更新模型了,比如某一天如果我们观察到太阳从西边升起,那就说明世界发生了很大的变化,我们以前的模型不对了,此时需要去研究怎么回事,从而更新我们的模型,也就是把原来的 p(m)(称为“先验”)更新为 p(m|D)(称为后验)。

所以,预测的作用是验证模型,当预测正确时,我们对模型就有了信心,当预测失败时,就会触发模型的更新(也被称为“注意力机制”,关于注意力机制,今后可以专门写一篇)。

人类的日常行为中充满了这种预测,比如我们用眼睛看周围环境,为什么会转动眼珠,不断观察?是因为视觉认知的过程,不仅仅是从外到内(从外部环境、到眼睛、到大脑)的被动接受,也受到由内而外的指导(大脑会根据认知模型,形成关于外部环境的预测,然后指导眼睛去观察,从而去验证模型);转动眼珠,就是为了能在不同的视角下,去验证大脑对外部环境的认知模型。

不仅生物体如此,人工智能系统同样如此,在机器学习中,对模型要进行测试,而测试的方法就是拿一些输入,让模型预测输出,再与实际的输出进行比较,从而验证模型的准确性。

对社会科学来说,预测的作用也不仅仅在于功能性的“预测”,而在于通过预测,验证社会科学模型的能力。现在有些说法,把模型分为解释模型、预测模型等,我觉得是不妥的。

当然,如何预测(即如何验证模型)也是很有讲究的。我们希望预测的效果具有泛化能力,即在不同的情况下,模型都能预测准,要达到很强的泛化能力,可以通过大量数据,此时数据中包含了各种不同情况;也可以结合因果,当模型有很强因果性时,它对未见过的情况,也往往有很强的推理能力。

因此,看重预测,也促使我们更关注模型的因果性和可解释性。