主题:【原创】机器学习的基础是什么?(0) -- 看树的老鼠
现有的机器学习多半是基于某种数学模型,或者某几个数学模型的,恐怕很难很好处理这些问题:“比如自然语言处理、图像识别、语音识别”。为什么?其实你说的已经包含了答案。你说:
这就是答案了。语言处理,图像识别,这些都是自然进化中用百万年为时间尺度凑出来的复杂事物,极端高度复杂,没有简单的数学模型可以包容,因此就需要类似于人脑这种复杂的处理机来处理,而人脑里面的东西,其实也就是百万年进化的一个凑出来的东西。
那么规律在什么地方呢?就在于怎么凑最有效。我们怎么来建立一个有效的学习机,才是一切的核心关键。
现今的机器学习,实际上和你的这些思考关系并不大。你的这些思考实际上是在思考人类的认知和科学的发展,而不是现今的机器学习。
如鸿乾兄所说,现今的机器学习主流,与我的这些思考关系并不不大。
我之所以有这些思考,来源于最初我对机器学习的期待过高,以为它得到的模型和传统科学理论有可比之处。然后让我烦恼的就是:它怎么能比传统科学研究方法便捷这么多。
我这系列文章,都是在解决这个问题,机器学习在解决问题上确实便捷很多,但和传统科学范式完全不同。完全牺牲了可理解性。
但是,这个凑数据的深度和广度完全不同,最关键的是背后的推动模式完全不同,或者说,凑数据用的道理的方式,完全不同。机器学习是用的现成的数学模型,唯一可以改变的就是模型的参数。而科学家群体能够做的事情,背后的推动,就完全不是现成的数学模型可以涵盖的。
回头来说这个问题,机器学习模型是否应该具备可理解性?我觉得是可能的。
有两种理解方法,一个方法是机器学习模型的底层数学模型的概念是清楚的。这里不多说。你好像不太喜欢数学模型,咱们先放放,后面再谈。
另一种理解方法,就是看这个模型的外在表现。以前在猫的帖子中,Google的深度神经网络各个节点的含义,很难用数学说清楚。这也是很正常的。假设人脑中有一个猫神经元,这个神经元的连接关系,用数学描述出来,人估计也看不懂。但是呢,把这个节点对哪些图像感兴趣,把这些图像列出来,人是能看明白的。
同理,我们做一个自然语言处理的神经网络,现在也能够看出,某些神经网络节点表达的是一类概念相近的词语。最近还有一个特别好玩的工作,就是把每个词表达为一组神经网络节点的开与关,这样就形成了一个0/1向量。现在呢,我们把所有词表达为向量,结果有人发现,king向量-man向量+woman向量,得到的结果,与之最接近的向量对应的词语是什么,大家猜猜?
再深一步,我在想,机器学习模型是否可以创造可理解的科学理论呢?现在的机器学习就是拿最简单的函数来搭出一个模型,比如这个函数是logistic函数。比如我们用机器学习来学习万有引力定理,万有引力定理是GMm/(r^2),机器搭出来的模型是用logistic函数模拟的,所以机器的模型里面没有乘法、除法、平方函数,但是,选取一个节点A,如果我们发现它和输入的关系就是M*m(这个关系是通过很多logistic函数模拟的),另一个节点B,它和输入的关系接近于r^2,然后节点C,它经过很复杂的网络与A、B相连,但是它从最终的表现来它等于A*B。
如果这样,这个模型就可以理解了。就是说我们先学一个模型出来,然后用人可以理解的理论去解析它。
再进一步说这个问题,未来的机器学习模型是否是一个数学模型?
这个很难说。就像傅里叶最初搞出傅里叶变换的时候,也是连蒙带猜,混合了猜测、数学推理和实践。
我觉得,第一个类脑模型,肯定是有一些大家的猜想、有一些数学支持、有一些工程实践。
然后慢慢的,随着理解的深入,数学会变得多一点。数学能够把这个模型中的概念抽象化、精确化,这样就可以仔细分析这个模型为什么有道理,在保持这个模型的道理不变的情况下,用精确的方法尽量多的榨出油水来。
关于你的担心:
现有的计算技术是建立在已知的数学模型上的,没有一个数学模型,寸步难行,因此也就被局限在这个数学模型中了。
这一点我想尝试解释一下。
早期的数学模型,确实约束很强,比如线性分类器,上来就限制死了,只能是线性函数。
不过现在的很多模型都声称自己是universal approximator,什么意思呢?就是说可以模拟任意函数。所以我觉得,数学模型其实不是特别强的约束。
现在麻烦的问题是,数学模型本身是universal approximator,可是我们机器的计算能力有限,不可能在有限的时间内遍历宇宙中所有可能的函数。怎么聪明的先检查那些性质比较好的函数(什么叫好性质?这个就是研究的焦点了。这是不是可以看成鸿乾兄所说的人脑认知规律?如果我们知道人脑能够表达什么样的函数形式,我们就能让机器也只检查这些函数),如果我们强行说,只能检查线性函数,那么就又回到了线性模型了。如果我们的约束松一点,比如我们对机器说,你最好给我线性函数,不过如果真的搞不定,多项式啊或者更复杂的函数也可以,这样机器的限制就松一点了。
本帖一共被 1 帖 引用 (帖内工具实现)
可惜我还不能宝推。
在这篇文章中http://www.talkcc.com/article/3972043我认为好的机器学习方法,就是知道人脑处理语言、图像的函数形式是什么样,我们让机器也学着去用同样的函数形式。
抱歉,我用了函数这个词,因为我考虑到今天数学模型的极强的表达能力,我觉得函数是可以表达人脑认知规律的,不知你怎么看?
这个函数的基础是简单的,因为人脑神经元的运作很简单。但是,人脑百万年已经提前凑出了一个特定的神经元结构,这个神经元结构是很难在短时间由机器学习出来的。我觉得如果没有遗传的结构,一辈子的时间都学不会语言,更不用说像现在这样,一个孩子两三年就学会了。
然后呢,这个遗传结构是如此复杂,很难想象它能用特别简单的数学概念,比如几次可导、几次方程来定义。所以我猜语言、图像这些任务,可能还是需要靠人的内省能力,多发现一些有用的规律,然后放到机器学习模型里去。
更具体的,这么多年以来,自然语言处理基本上是统计和机器学习一统江湖了,大家做研究的时候基本不考虑语言学规律。但我怀疑基于语言学规律的方法还有复兴的一天,当然,需要和机器学习结合在一起。
推荐看这个文章:外链出处
That’s what makes the machine-learning approach such a spectacular boon: it vacuums out the first-order problem, and replaces the task of understanding with nuts-and-bolts engineering.
这就是你要讲的。其实正是如此。人的智力活动,包括学习,其实都有很多机械的东西,所谓的低阶的东西,这些东西,都是可以用机器来替代的。而且这些可以被机器替代的范围还在扩大。
其实我觉得人的所有智力活动,就是机械的东西。
机械也有不同的复杂度,比如universal approximator这样的东西或者图灵机这样的东西,是机械复杂度的顶峰了。
这些机械有完成图像识别任务的潜能,只是我们不知道怎么让他们完成。
Douglas Hofstadter想要直接编程完成,机器学习方法想要用简单的基本单元自动学习来完成。
即使知道所有初始值,也未必可以准确预测最后的结果,因为中间的出射的摩擦力、空气扰动等都对结果产生影响。而且,如果整个过程是非线性的,那么预测就不再是决定性的。所以概率就是世界的本质。“上帝有时也掷骰子”。
实际上按照参照系的不同,地心说和日心说都可以是“正确”的。太阳系既可以按照一个简单的模型看成是行星围绕太阳、卫星围绕行星运动,也可以按照一个无比复杂的模型看成是所有的物体绕着地球进行疯狂的扭曲运动。这两个观点都可以看成是“正确”的。
但是科学的原则中有一条,是奥卡姆剃刀原则,也就是说如果两个理论解释现实现象的能力相同,那么我们应该选择较简单的那一个理论。因此日心说胜出。
这个原则的基础,就是科学的哲学定义。很多缺乏基础科学教育的人通常会误认为科学就是“真理”,这是不对的。科学只是渺小的人类用来触摸真理的工具。这是因为宇宙现实(也就是真理)是复杂的、非直观的,而且很多时候是反直觉的,因此很难被人类理解。而科学,就是人类发明出来用来理解这个复杂现实的工具。所以只有能够对更加深刻理解现实宇宙有帮助的理论,才被保留下来作为科学结论,一但发现更简单的,或者是更深刻的理论,那么之前的复杂理论就会被抛弃。
我们总把大脑看成是像电脑一样的硬件加软件,各种Layer分层清晰的一个“产品”。而事实上,人脑的学习能力来自于进化中固化到基因中的能力和后天接触知识后大脑“硬件结构”的改变。因此现在软件方面的机器学习,总是不上趟。因为这相当于试图凭空拿分子拼出一个有学习能力的大脑。这不是镊子拿的温或者是Sample够多就可以做到的。
从进化的角度讲,兔子能够识别人脸的区别么?准确率是多少?金鱼呢?猴子可能能够懂得1+1=2,蚂蚁能么?人类的大脑是从三叶虫、鱼类、爬行类、哺乳类、灵长类。。。一路进化来的。这些都是学习的过程,而学习的结果积累在了基因里,成为了人脑的“硬件结构”。
从人出生后来讲,1岁的孩子能够分出长颈鹿和斑马的区别么?3岁的孩子能够分辨奥迪和奥拓的区别么?5岁的孩子能够分辨Gucci和LV的区别么?这些也都是长期接触学习后,所拥有的能力。
因此机器学习,如果试图绕过生物几亿年的进化学习历程和人的个体几十年的学习历程,是很难成功的。
我们也无法搞清为什么。或者至少原因是很复杂的,而且是各有各的复杂,复杂到无法一一搞清。
但不赞成学习过程与进化的关系无法逾越。我觉得既然是硬件改变,而且与改变当时的环境有关,则每个个人的改变都是不同的,每个个人都形成了不同的硬件,这本身的复杂性显然就造成了人脑没有简单的统一模式。
从某个角度讲,就是他自己形成了一堆模式,不从基本单元开始算,而是直接往上套,这样在应付日常用途时又是十分高效的。
总之我觉得大脑是归纳法的,在逻辑上不求完备,但会生成“硬件”,让思维在特定场合变得高效。从这个角度与现在的计算机不同。
先建立模式(包括在人脑内固化形成生理上的变化)再说,至于万一错了,很可能是那个个体被淘汰了。
正确地总结学习,我觉得从另一个角度看,其实正确率未必百分之百,很多时候要经过血的教训才能得到正确的结果,在这个过程中不正确的那个人脑本身可能就消失了。或者再进一步想,人脑是联机的,并不追求一个人脑就解决问题。
这是一句美国前副总统切尼说过的名言,现在经常被人提起。
这个火鸡的故事说的道理是,没有存在与环境之外的智能,换句话说,智能也是物质世界的一部分。火鸡接触不到人的生活世界,得到的信息只有火鸡笼子那么大的范围,因此最高的智能也只是对喂食的观察。
而机器学习的意义也不仅于机器的精确上,同时还有可以发现人不能发现的因因果果关系。但是受限于接受的数据,如果只是火鸡笼这个范围,那么自然也是不会理解为什么人会喂食的原因了。
机器智能超越人的智能的一个最可能方向,就是在于机器可以处理的数据量可以比人脑大得多,现在比人脑不如的地方是在分析能力上,就是这个找出因因果果的能力上。这个与电脑产生的目的本身有关系,电脑的出现原来并不是设计成类似人脑的操作模式,而是本质上的一个大号计算器。