五千年(敝帚自珍)

主题:【原创】机器学习的基础是什么?(0) -- 看树的老鼠

共:💬154 🌺509 🌵1
全看分页树展 · 主题 跟帖
家园 处于原始时代、经验时代的机器学习

今天witten1兄推荐了一篇文章 http://www.talkcc.com/article/4036194,读了这篇文章后,突然想明白,如果机器智慧是一种新的智慧形式,它还处于人类的原始时代和经验时代。稍微提一句,有人说大数据时代不需要算法了。那我想请他去读读witten1兄推荐的那篇文章。在非线性系统中,如果我们不能找到正确的解释,短期观察到的模式很可能在长期中完全消失。如果我们真的能够收集到全宇宙过去未来的全部信息,那么我们就是上帝,可以用记忆和感知完全替代知识和理论了。如果做不到这一点,我们还是需要发明理论、总结知识。

本文有大量的猜测和类比,我尽量做到严谨,但可能还是犯下大量错误。请大家不吝赐教。

我写这个系列,鸿乾兄说我恐怕是想偏了。我也这么觉得。可我就是过不去这个坎。我写这个系列,归根到底就是想说句心底话:我看不起今天的机器学习方法。而最大的矛盾是:我天天吃着机器学习这碗饭。我很希望化解这个矛盾,在不砸了我饭碗的情况下,让我自己对机器学习抱有一定的敬意。

为什么看不起它?主要是它在三个方面与我理解的科学、工程范式格格不入。

首先,机器学习方法经常都是万能方法。比如分类问题,常见的方法就是最大熵模型、支持向量机、随机森林之类的。以最大熵为例,它就是一个典型的线性模型,在很多问题中都有很好的结果。但是,我扪心自问,当我用最大熵的时候,我真的相信这个问题是一个线性问题吗?我其实根本不相信。这太不科学了。

其次,机器学习方法动不动就是几千维特征,然后得到几千个参数,没有人看得懂这几千个参数的意义。复杂的科学、工程问题,比如登月飞船的制造,复杂度绝对超过常见的机器学习模型,但是它可理解。

第三,机器学习方法用的那些特征,都让人觉得非常非常的不本质。

所以,到底问题出在哪了呢?为什么一旦用上机器学习方法,我就觉得我思维一片混乱?觉得自己变成了原始人?

其实“原始人”这三个字真是恰到好处。

什么是一个好的理论?第一个标准是“和数据符合的越好,就越正确”。每个人都有无数的经验模型,比如看到一个姑娘,凭直觉就会判断自己能不能追上。很多时候也说不出道理。今天的机器学习就有点这个味道,它和科学理论相比固然显得不严谨,但和我们生活中的经验模型差相仿佛。Witten1也提到,今天的大数据重视相关性,不重视因果性,可是细想一下,经验模型可不就是相关性吗?人在创造经验模型的时候,哪里想过因果。不过这不是机器学习的借口,在经验时代,人发明了无数幻象理论,比如巫术。但人已经逐步发展出更加可靠的科学方法。所以,机器学习也必须超越经验阶段。

所以,我看不起今天的机器学习也是有道理的。我一边学习着人类几十万年的智慧结晶——科学,当然看不上机器学习发明出来的理论,因为这些理论还处于原始与经验时代。有了这个定位,我的心气一下就平了。它的什么缺陷我都可以理解了。

就说线性模型吧,早期的人类只会加减法和乘法,所以其实可以这么说,早期人类只知道线性模型。那个时代线性模型还是高科技呢。我不需要瞧不起线性模型。而人类的一个本能倾向就是拿着锤子找钉子,我猜测早期人类在明白加减法和乘法后,基于这些简陋的工具去解决过很多超出工具能力的问题。就算是近似解决也好。这和今天机器学习做的事情类似。

从这个角度看,我认为机器学习还可以往后发展,其发展可以借鉴人类的认知能力的发展。

先说几个正在进行中的发展吧。

* 人类知识已经超越了线性,今天的机器学习模型也在往非线性方向推广。

* 人类有能力基于原始数据学习,而机器往往要依赖人凭着经验和知识创造出来的特征。比如做图像识别,机器需要人先根据自己的理解,从图像中计算一些数字,然后送给机器。而人在看世界的时候,视网膜提供的只是像素点罢了。这一方面,机器学习也在进步。像deep learning这样的工作,就是尝试着自动把像素点转化成有意义的特征。

* 在《概率论沉思录》中,作者证明了概率和人类的思考过程是一致的。所以今天的机器学习基本上都是基于概率的。

* 在这几十万年,人又发明出几个新的关于好的理论的标准。比如“奥卡姆剃刀”。今天的机器学习方法也大多考虑了这一点。这就是进步。

* 因果关系。Witten1推荐的文章就是说的怎么让机器发现因果关系。2011年的图灵奖给了UCLA 的 Judea Pearl 教授(75岁)。他的一部分工作就是因果性推理算法。说不定未来的机器学习模型可以往这个方向再走远一点。比如让机器辛辛苦苦拿着一堆数据去算,最后机器输出一本教科书,人还能看懂。

说到教科书这件事,其实反应了人类理论的几个特点。一个是可以在人类社会中互相交流,与人类的其他知识和经验相符。另一个是尽量的精确化。当然,真要走到机器来写教科书那一步还是太遥远了。为了达到模型人类可以看懂的地步,需要在自然语言处理方面有突破性的进展,同时机器需要了解所有人类知识。为了让机器创造尽量精确、逻辑严密的理论,也不是一个轻松的工作。就算是现在已有努力的因果关系领域,我觉得路也很长。

当然,我认为一个好的理论也许不需要能让人理解。人发明了机器,但机器或许能走得比人更远,说不定机器创造出来的理论将会超出人类的理解能力。就好像随着人类知识的积累,只有不断的细分领域,才能保证有少数人可以理解最前沿的知识并做出贡献。也许有一天机器发明的理论,穷人类最顶尖的天才一生,也无法理解。

但是,一个好的理论必须具备今天人类理论的一种特质:那就是知识的融贯性。人在解释事物的时候,会动用脑子中的所有知识,任何新的解释,必须与已有观念不矛盾。对于任何一个问题,其实人可以幻想出很多解释。但已有知识可以帮助我们排除大部分不合理的解释。所以,融贯性帮助我们更准确的逼近真实。另一方面,融贯性保证了理论的简洁性,因为新理论可以利用老理论的全部力量。

与人类理论相比,今天的每个机器学习模型都只解决手头上的问题,丝毫不在乎别的问题。所以,机器可能发明了一堆自相矛盾的算法,它却不知道。今天的机器学习有两个难题,第一个难题是:如果有多个对于现象解释能力类似的模型,应该选择哪个?第二个难题是:怎么创造一个简洁的模型?融贯性其实是机器学习的一个大机会。在有融贯性这个约束条件时,多个能力类似的模型,很可能只有一个是符合融贯性的。另一方面,今天机器学习对于简洁的定义是参数越少越好。但是考虑融贯性之后,我认为简洁的定义应该是:在能够利用现有知识的情况下,参数最少的模型。

这是一个很大的挑战。如果真要保证知识的融贯性,也许机器学习模型就不能满足于几千维特征和几千个参数了,它至少需要能够存储许多人类常识,我猜那至少是几十亿个参数的模型。这种复杂度,今天的研究还丝毫没有涉及。

所以,对比机器学习与人类的认知发展,目前谈论机器超过人还为时过早。人类自发的创造出了逻辑、因果性、融贯性这些概念,还发明了语言,这些发明在过去的实践中被证明是卓有成效。那么,我相信一个正确的机器智能,也应该能走上同样的路。在那之前,我觉得机器学习最多可以称为动物的智能。当然,有了人类智慧这个好导师,机器突破蒙昧的速度会比人类快的多。

通宝推:修身齐家,联储主席,本嘉明,唐家山,

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河