主题:【原创】机器学习的基础是什么?(0) -- 看树的老鼠
回到(1)线性分类器一节所说的例子。一个典型的机器学习过程是这样的:
假设我们要让机器学会从人脸中猜出人名。我们只要准备一些照片和对应的人名(这一步需要人工参与),然后,对于给机器新的照片(这些照片属于之前见过的人的不同角度的照片),机器就能自动猜测出人名。
看到这个过程后,什么感觉?人就在最初给每张照片标了标人名,然后智慧就从石头缝里蹦出来了?科学研究什么时候变得这么简单了?如果科学研究这么简单,整个物理学披荆斩棘的历史,还有什么意义?
因为这个,我总觉得,机器学习有什么地方错了。
相比于传统科学研究,机器学习得到的模型,没有智慧。在实用中表现的很好,但没法让我觉得世界真的是这么运作的。
1. 是因为机器学习算法中通常都包含了概率的成分吗?
最初,我找到的靶子是:机器学习通常都引入了某些概率分布。这一点也曾经让我困惑,在经典物理学中似乎并不常引入概率分布,大部分经典物理学定理都有一种确定性的、让人心安的感觉,而一旦引入概率论,我就失去了这种感觉,所以,或许我的不安来自于概率论。
那么,概率论到底是在说什么?
想象丢硬币这个例子,每次丢硬币会得出不同的结果。在一般的概率教材上,都会说,丢硬币是一种典型的随机实验,所以丢硬币可以用一个概率分布来建模,正面的概率为0.5,反面的概率为0.5。
在以上论述中,“随机”这个词好像有什么神圣性,赋予了使用概率分布的合法性。那么,什么是随机呢?
在我们的文化中,随机常常有一种错误的印象。我们会觉得,随机似乎意味着某种不可控的、完全无法预测的事件。从这种意义上来说,丢硬币完全不符合随机的定义。从物理学的角度来说,如果精确知道丢硬币的角度、力度,我们是可以精确预测硬币的结果的。这一点,在E.T Jaynes的《概率论沉思录》中给出了预测的方法。
我自己知道的另一个例子是轮盘赌。一般人都会觉得,轮盘赌是一个典型的随机现象,因为结果完全无法预测。
可是正如《玩转轮盘赌:简单出千技术帮你赢》http://www.guokr.com/article/412116/ 一文所说,曾经有人把单片机和简单的测量设备带入赌场,这样他们就可以以极高的精度预测弹珠最后会落在轮盘的哪个格子里。
这样一个现象,我们凭什么说它不可预测,凭什么说它是随机的?
我们重新来看硬币这个例子。至少在对于物理学没有深刻理解的人来看,似乎硬币确实是完全不可预测的。当我们说不可预测时,我们实际上是说:“在我的眼中,没有看到任何决定性的因素,能够预测硬币的行为。硬币的行为似乎是不可用其他因素解释的。”刚才我们说的这一段话,换到数学语言是什么呢?就是说在我眼中,没有什么自变量可以解释因变量。
这才是概率论的本质。只要在你眼中,没有什么自变量可以解释因变量,那么,你就可以使用概率论,你放弃了,不去寻找任何自变量。哪怕一千年后人们发现了确定性的规律,这一刻,你使用概率论的行为也是对的。就这么放弃吧,假设因变量就是自动出现的,有时是正面、有时是反面,我们不用其他因素来解释这个现象,我们只是简单的看看,这个因变量或者说硬币的很多次投掷结果,是否有一定的规律性。这个规律性不涉及自变量,不涉及变量之间的关系,没有因果的概念,所以,算不上什么“科学”(如果我们认为变量之间的关系是科学的本质的话),但是,它至少是一个唯象的、足够好的经验定理。
使用概率论并不是无代价的。一个真正的物理化的硬币投掷模型可以精确的预测硬币的行为,而现在,我们只能说,硬币有50%的概率是正面。我们因为承认自己的无知,而付出了精确度的代价。
那么,我们回到最初的问题,为什么机器学习常常要引入概率?
因为机器学习研究的问题一般都很复杂,我们能够发现的自变量通常不足以完全解释因变量,所以呢,我们坦然的承认,因变量中有一部分是由我们不知道、或者难以观测的自变量来解释的。
从以上的讨论中,我们引入概率论,只是承认了某些东西是我们所不知道的(这当然是必然的,哪怕是验证F=ma的实验,实验数据中也会有一些东西是我们所不知道的因素所控制的,所以,其实早期科学家们满足于数据的足够好的拟合,其实他们也在偷偷使用概率论,只是他们不知道罢了)。而且,随着我们引入越来越多的反应了本质的自变量,我们的模型的精确度就会越来越高,我们的模型就会越少的依赖那个未知的概率分布。
所以,概率论并不是机器学习和传统科学的区别。
2. 是因为我们更相信人脑吗?
我重新看我的微积分教材。在微分方程这一节,有一个这样的例子:
空气通过盛有CO2吸收剂的圆柱形器皿,假设吸收层厚度为d cm,最初浓度为p,则最终浓度为 p * exp(-k * d)
k是一个系数。
书上对于这个定律的解释是这样的。假设将吸收层分为n小段,则每一段的厚度是d/n。则空气通过第一段后,CO2浓度是p (1- kd/n),通过第二层后p (1- kd/n)^2。如此循环,通过n小段后,浓度是p (1 - kd/n) ^ n。
当n趋近于无穷大时,p(1-kd/n)^n 等于p * exp(-k *d)
可是,看完以上这段解释之后,我发现,自己对于整个推理过程没有丝毫信息。这就是所谓的浮沙高台。假设CO2通过第一层后,浓度确实是p(1-kd/n),那么后面的整个推理都成立。
可是,凭什么我们有p(1-kd/n)这个公式?
假设有一个科学家,做了大量的实验,得出许多不同的p、d和最终的CO2浓度数据,然后发现p(1-kd/n)有很高的精度。我应该相信这个公式吗?
如果我们把这些数据都送给机器,现代的机器学习算法可以轻而易举的发现p(1-kd/n)这个公式。既然我不相信机器学习模型,那么,这个公式的可信度、与真相的接近程度,并不会因为它是人脑发现的,而有丝毫提高。
3.
继续前一个例子。p(1-kd/n)这个公式冷冰冰的没有温度。可是当我发现它的一种物理解释之后,我就彻底的相信它了。
假设有一个吸收层,若通过q个CO2分子,这个吸收层能够吸收r个分子。
那么,如果我们通过2q个CO2分子,我们可以想象先通过q个,再通过q个。如果吸收层足够大,前q个CO2分子并没有改变吸收层的性质,那么,可以想象,唯一的结果是:2r个分子被吸收。
所以,被吸收的分子数必然与初始浓度呈正比。
以上这一段,从数学模型出发,给出了整个吸收过程的一种描述,这个描述最终落实到人可以感知的一种现象上。再抽象一点说,就是你把一个新知识和老知识建立了联系。
这种理解一方面让我们对于公式极其的信服,另一方面也可以指导我们继续做出发现。如在以上的解释中,我们可以很容易的给出新的猜测:正比关系不会永远成立,当吸收层过小时,通过q个分子,吸收层就完全饱和了,那么再通过q个分子,不会有任何分子被吸收。而对于这个公式的理解,再一次加强了我们对于分子存在的信任感。
以上例子是我个人的经验。在物理学史上,物理学家们也有着相似的信念。关于黑体辐射的瑞利-金斯定理在低频部分与实验测得的数据相符,但是在高频失效。韦恩公式则在相反的频段失效。而普朗克公式只是简单的通过数学手段将两个公式凑在一起。
到这一步,我们并不能说科学家做的事情比机器高明多少,大家都是在凑数据。可是不同的是,正如我们从p(1-kd/n)中可以猜测出分子的存在,从普朗克公式中,普朗克猜测出了量子的存在,从而改变了物理世界。
所以,是什么使得我们对传统的科学知识抱有信心?相信世界几乎就是按照科学知识所指示的那样运作?
这是因为传统科学知识在经过解析之后,可以被人的直觉所理解,从而使我们对其抱有信心(好吧,我不能进一步解释,人的信心从何而来,人脑就是这么运作的)而机器学习模型不能。
另一方面,传统科学知识是一个广泛联系的整体。一个发现往往在一个完全无法预知的方向增进我们的能力。正如从来没有人会想到,黑体辐射会导致量子概念的提出,在经过一连串的发现后,生出了固态物理这个孩子,并使得晶体管成为可能。也使得此刻的我,能够依赖电脑写出这篇文章。
而与之相比,能识别人脸的机器学习模型,对于别的任何现象都没有解释能力。
- 相关回复 上下关系8
🙂推荐看这个文章 2 鸿乾 字485 2014-01-27 22:26:37
🙂谢谢,好文章 2 看树的老鼠 字298 2014-01-28 00:51:52
🙂我觉得大脑其实是非常低效的, 1 桥上 字231 2014-02-07 22:38:04
🙂机器学习的基础是什么?(4) 与传统科学方法的区别
🙂我的想法是你恐怕考虑偏了一些 4 鸿乾 字1463 2014-01-27 11:38:42
🙂我确实思考偏了,因为我对传统科学方法感情太深 4 看树的老鼠 字3446 2014-01-27 20:08:20
🙂我觉得其实人脑不寻求遍历性, 1 桥上 字92 2014-02-07 22:43:16
🙂丢硬币 2 皮儿 字329 2014-01-26 22:26:42