前几天读完了K.K.的《失控》,想分享一下全书给我印象最深刻的几个地方。同时最近几个月因为毕设的关系学习了很多关于机器学习的知识,这本书在这方面也给我带来了很多启发(主要是非线性和复杂系统方面)。每当想起这本是一本写于1994年的书,不免让人啧啧称奇。
涌现
第一次在书中读到这个词觉得很奇怪,但回想起来却又觉得妙不可言。我没有考究“涌现”在原文中对应的是哪个单词,在中文语境中这个词具有大量/突然出现两层含义,这正是KK描述蜂群时我感受到的特点——大量低智能的个体(蜜蜂)聚集在一起后,会表现出远超个体的智能,它(蜂群)知道什么时候该搬家,该搬到哪个地方才合适,而蜜蜂个体是不具备这种能力的。并且它(蜂群的智能)出现的过程是跳跃式的(非渐变)。
简而言之,(本书范围内)涌现就是大量漫无目的的个体聚集后表现出个体所不具备的秩序和智能。
蜜蜂个体所能做的只有遵从本能,蜂群的行为从何而来呢?它不存在于蜜蜂的DNA中,它也不能被蜜蜂个体所控制。允许我先卖个关子,我在后文会就这个问题做出一个不成熟的回答。
我们人类不也是这样一群蜜蜂吗,从我们身上涌现出的又是什么?作为其中的一个个体,我大概无法有所认知。
非线性与神经网络
KK在谈到复杂系统时多次提到非线性这个词,由于个人能力所限,我无法详细地阐述一个复杂系统中非线性的影响,所以只能就我熟悉的机器学习来谈一谈非线性。
目前机器学习中最火热的当属神经网络。神经网络中每层(layer)的激活函数(activation function)必定是一个非线性(non-linear)函数,例如sigmoid、relu。
为什么不采用线性的激活函数呢?因为无论堆叠多少层采用线性激活函数的layer,最后都能等价地转换成一层。而非线性则不然,因此可以通过堆叠非线性的层来获得无限接近任意函数的效果,于是有了今天火热的深度学习(采用层数非常多的神经网络进行机器学习)。
为什么非线性如此神奇?因为非线性很复杂。
神经网络很复杂,任何人都无法解释用神经网络训练出来的模型。曾经关于神经网络的学术论文投稿被拒往往会有这样的评语“这篇文章很好,除了神经网络。”
复杂性
虽然我在以前写的文章中也提到过复杂性(complexity)这个概念,但时至今日还是很难描述它本身。该如何衡量一个事物的复杂性?计算器应该比算盘复杂,但是玻璃杯和平底锅哪个更复杂呢,下雨和蜂群哪个更复杂呢?
我有一个想法,记不清是不是在书中看到的——从事物A延伸出来的事物B,不能超过其本身(A)的复杂度。
举例来说,你作为一个人类具有一定的复杂度,你创造出来的一切东西都不会比你本身更加复杂。
那么蜂群怎么说?蜂群由蜜蜂个体创造,却比蜜蜂本身更复杂。这是因为蜂群不是由一个蜜蜂创造,而是大量蜜蜂创造的,大量蜜蜂的复杂度当然远远超过单个蜜蜂。这似乎回到了之前的涌现从何而来的提问——涌现源于复杂性。
再来谈一谈刚才说到的神经网络,深度学习魅力源泉就在于其非线性的特性所带来的复杂性,通过堆叠非线性的层使网络具有更高的复杂度。想要解决复杂问题,就需要比问题更复杂的系统。
复杂性是个好东西,复杂代表着可能。
失控和进化
人类能不能创造出更加复杂的东西呢?即使我上文所提到的那个大胆想法为真,即人类无法创造出比人类本身更复杂的东西,答案毋庸置疑也是肯定的。因为人类的复杂性远远超过其对自身的认知。举个不是十恰当例子,人脑有约850亿个神经元,而目前为止最复杂的人工神经网络不过刚刚上亿而已。没有人能解释人脑的工作原理,我们对它知之甚少,但却不妨碍我们使用它。
也许有一天阻碍人类进一步发展的正是对事物进行追根问底探究的控制欲。神经网络曾经一度受到冷落的原因就是其不可解释性。解释代表因果关系,因果代表掌握改造世界的规律——这就终极的控制。
人类总是希望让一切都处于自己的控制之中,这种控制欲限制了创造更复杂的系统。人类本身已经复杂到让人类无法解释,更不用说孕育出人类的整个世界,人类的智能是否有能力解释如此复杂的事物?
现在这种情况似乎有所转变,神经网络的不可解释性已经被接受。举例来说,自动驾驶汽车能够识别出路上的车辆是车辆、行人是行人应用的正是神经网络。虽然没把人能解释它具体是怎么识别的,但它运行得很好,识别正确率极高。换句话说,自动驾驶汽车这台机器的一部分已经不在人类的控制中,但也因此表现出了非凡的智能。如果想要创造出更复杂、更智能的系统,注定要放弃更多的控制。
拥抱复杂,拥抱失控,然后进化。
网友评论