高斯过程(Gaussian process)
/ GOW-see-un PROSS-ess /
高斯过程,是一种「对整条曲线、而不只是对单个数字保持不确定」的办法。大多数方法只往你的数据点中穿过一条最佳直线;高斯过程则不然,它在「一切可能合理穿过这些点的函数」之上,保留一个概率分布。想象一束扭来扭去的曲线,全都穿过你观测到的那些点:在你有数据的地方,它们紧紧攒在一起;在数据缺失的地方,它们大大地散开。这一散开,正是模型在诚实地承认「我不知道」。
把这些曲线系在一起的,是一个「核」——一条关于「两个输入有多相似」的规则。常用的选择说:相邻的输入应当给出相邻的输出——曲线是光滑的,而非锯齿状的。把你的数据和核喂给高斯过程,对于任何你问起的新点,它都会吐出两样东西:一个预测,和一根误差棒——也就是最可能的取值,以及一份对「自己有多没把握」的坦白度量,而这份不确定会随着你远离真正观测过的地方而自动增大。
它为何重要:那根内建的误差棒,使高斯过程成为「当每个数据点都来之不易、而摸清自己的不确定性又至关重要」时的宠儿——调试一项昂贵的实验、优化一道工业流程、为传感器建模。它们用极少的点便能漂亮地运作,也不需要手工设定什么架构。诚实的症结在于成本:标准方法的运算量随数据点数目的立方增长,所以朴素的高斯过程在大数据集上会噎住;而它们的质量,也极度依赖于选对一个合理的核。它们是「小而珍贵的数据」的首选利器——而非用于数以百万计的行。
用寥寥几根勘测桩,去预测一片丘陵地形的高度。紧挨着某根桩的地方,高斯过程信心十足,误差棒细如发丝。在两根相距甚远的桩之间的半途,它仍会猜出一个平滑的高度,却画出一条宽宽的误差带——诚实地标明:中间那道谷地,可能下凹,也可能隆起。在那儿补上一根桩,误差带便收缩到几乎为零。
高斯过程在数据附近信心满满,远离数据则明显地犯怵——这份不确定是白送的,而非事后补上的。
高斯过程几乎是免费地给出不确定性,但它们的计算成本随数据集规模的立方增长,所以若不借助近似,它们天生就不适合大数据。而且它们的预测,只在你所选的核合理时才合理——一个糟糕的核,会给出自信满满的胡话。