先从一个简单的例子开始。
你在网上看到一个大神,他干了一些很牛逼的事情,比如diy了一枚火箭发动机,将火箭送上10km高空。
于是你在心中默念:我也要成为大神。
可是,怎样才能成为大神呢?既然他现在是大神,那么他本人应该最清楚,直接问他就可以了。
于是你问大神:我想设计一个能飞10km高的火箭,但是不会造发动机,应该怎么学?
大神告诉你,有一本叫《论XXXXXXXX设计》的书,里面详细讲了几种军用火箭弹的燃料配方、装药设计、喷口设计等等。这本书他一年前就看完了。
于是你上网买了这本书,然后开始照着书做实验。
但是在花费数万元资金、经历6次试车实验之后,你仍然不停地遇到各种问题,要么点不着,要么炸机,要么推力太小……就是没有一次正常工作。
这不对呀?大神当年第2次实验就宣告成功了呀。经过一番思考,你认为有以下可能性:
- 我这个人比较笨,学习能力不如大神。
- 大神一共实验了10次,但是只公布两次,给人一种牛逼的假象
- 大神背后留了一手,没有告诉我完整的书单
对于每一种可能性,你都作出了解释:
- 人和人天生就有区别:每个学校都有一些尖子生,学什么都快;另外还有一些同学不管怎么学,成绩都一直垫底。
- 爱迪生当年发明灯泡就是这样:尝试了几百种灯丝材料之后,终于找到了能耐受高温、持久工作的灯丝。而我之所以做不出来,可能就是试验次数不够多。
- 现在这个社会是这样的了,有些所谓大神只知道装逼,完全没有分享精神。
上面三种解释,听起来很有道理,但它们并不能帮你成为大神。因此,我把它们转换成更加具体的三个问题,以便进一步分析:
- 人和人之间学习能力的差别到底是由什么引起的?
- 大量的实验到底是不是解决问题的最佳办法?
- “分享”究竟是人的内在品质,还是特定条件下催生的行为?
学习能力
学习能力,是人类处于食物链顶端的原因之一。即便是在现代社会,学习能力也几乎直接决定生存能力。
人的学习能力,个体差异究竟有多大?这个问题需要分几个部分来回答。
从物种演化的角度来看,今天的你我,是经历了数百万年残酷的自然选择,存活下来的最优秀的个体。如果说学习能力决定生存能力,那么诸位从娘胎里出来,所谓“学习能力”应该是差不多优秀的(因为此时的大脑状态几乎完全是由基因决定的)。
来自神经解剖学的证据也支持这一观点:新生儿的大脑皮层中的神经元,与周围几乎没有连接。在连续的外界刺激下,大量的连接被创建,连接密度在2岁前后到达顶峰。之后,神经连接的密度会逐渐下降。
来源是Marian Diamond (UCB) 的著作 Magic Trees of the Mind。此书简介提到:
Cutting edge scientific research has shown that exposure to the right kind of environment during the first years of life actually affects the physical structure of a child's brain, vastly increasing the number of neuron branches--the "magic trees of the mind"--that help us to learn, think, and remember. At each stage of development, the brain's ability to gain new skills and process information is refined.
可以概括为
- 在发育早期,来自外界的某些刺激可以直接影响脑内神经连接结构,极大增加树突的数量
- 在发育的每一个阶段,大脑学习新技能、获取信息的能力会被优化。
实验(请勿在家尝试):将新生儿的眼长时间蒙上,会直接导致视神经系统几乎不发育,对外界光线无反应。
在人的生命周期中,神经元之间的连接在外界刺激之下被不断地创建、断开,于是我们获得了终身学习的能力。这个能力在2周岁时达到顶峰。一个两岁的孩子也许只是刚刚学会说话和走路,还无法为自己的行为负责,但此时学习能力则恰好是峰值。
用鲁迅的话说,人本来是没有智慧的,外界刺激得多了,就有了智慧。通过刺激获得智慧的过程,就叫学习。
那么学习到底是怎么进行的呢?
先举一个学英语的例子。我统计过身边的很多学生,有的经常观赏国外影视作品、听英文歌曲,有的只在学校里跟着老师学习英语,结论是前者英语能力统计上显著高于后者。如果暴露在英语环境的时间更早(部分海归华侨子女),暴露浓度更高,则差异更显著。这说明人类可以仅通过暴露在语言环境中学习语言(包括母语和第二语言)。而纯粹针对词汇、语法的学习,根据我的经验,除应对考试外,对沟通交流帮助不大。
对于英语的学习,为什么环境暴露的效率会高于理论学习呢?
最近机器学习领域的进展也许能帮助我们解释这一点。通过创建类似人脑神经细胞相互作用的数学模型(人工神经网络),研究者们找到了一类利用较简结构、较少参数及计算量,拟合一个复杂高阶系统的行为(比如识图分类、听写文本等)的有效方法。为什么人工神经网络如此成功?因为它的模仿对象,是经过数百万年自然选择优化而成的结构——人脑。
虽然人脑的功能很强大,但它的基础结构一定不能太复杂。复杂的结构需要很多基因,基因多了表达就容易出问题。大自然帮我们选择了最简单的设计:给大脑皮层铺上满满的神经元,让他们自己去长吧……结果我们的大脑成了地球上除Google等公司之外,最强的智慧。
大脑一定要节省能量。数百万年来人类的生存环境是很恶劣的,如果大脑因为思考消耗太多能量,可能会导致身体营养不良。所以大脑里面有一系列的应对措施:如果一个人不断地训练同一个动作,受到刺激的那部分神经细胞之间就会倾向于消灭短连接、创建长连接,缩短反射弧的跳数,降低能量消耗。大脑总是倾向于消耗更少能量完成任务(也许这就是为何人类天性懒惰)。
人脑既要有很强的适应性,又要保证一定的稳定性。适应性让我们快速学习;稳定性保证我们的经验不被遗忘。但是学习和遗忘所对应的操作(创建与消灭连接)没办法分开调控,所以大自然是这么设定的:2岁时学习能力最强,成人之后稳定性最强。我们耳熟能详的许多知名艺术家,都有从小拜师学艺的历史;学校里面成绩优秀的学生,父母几乎都是教师、知识分子,从幼儿园就开始接触语数英;小学同学的成绩排名,几乎就是同一批人的高考排名……有一句古话叫“三岁定八十”,其实就是这个意思。
既然机器学习技术利用数学方法模仿人脑机制,那么通过观察各种机器学习算法的学习过程,我们也许能解释人脑的学习过程。
我最近花了好几周时间学习机器学习理论。目前自然文本学习领域的State of the art(登峰造极) 是LSTM RNN神经网络,语音识别及图像分类则是各种CNN变体。CNN(卷积神经网络)让我们领略了分层抽象的魅力:靠近输入端的神经元们对输入信号做基础处理、基本特征提取,靠近输出端的神经元们则将信号抽象为更高级的概念、更简练的表达。
上图出自: XXXXXXXXXXXXXXXXXXXXXXX/convolutional-networks/
上图为输入层的卷积核(相当于特征提取单元)。学习算法经过训练,确定了图中的这些特征(图形边角、色彩强烈变化)是能够在保证参数取值尽量小(即消耗“能量”尽量小)、特征复杂度最低的情况下保证抽象能力最强、信息冗余度最小的特征提取方式。
训练一个像上图那样的CNN网络,整个过程可以概括为:根据输出误差,不断微调几百万个神经元之间的连接强度。从0开始训练的过程很漫长,而一个已经经过训练的网络,如果保持底层(基本特征提取层)训练成果不变,增加一些新的训练样例,只训练顶层(高级抽象层)神经网络,可以很快收敛到较好的效果。这就好比:一个学生从幼儿园上到高中,虽然学习的过程很漫长,但好像也没学到什么东西;而来到大学,虽然时间很短,但一下子就学了几十门课程。
从以上角度来理解人类的语言学习过程,可以这么比喻:刚出生的时候我们听不懂语言,只能从外界的声音刺激中提取语言的基本特征,比如“ba ba”、“ma ma”这样的音节。由于此时高级抽象能力还未形成,我们只能将这些音节随意混排,转化为混乱的输出。这就是为什么刚学会说话的幼儿虽然可以发出基本音节,但说不出任何有意义的句子。
但很快,在我们掌握了基本音节的提取能力之后,神经元就开始试图从音节中提取出概念。但这些概念并不是我们在学校学习的语法规则,而是音节的前后顺序和出现频度。很快我们就知道“饭”可以跟在“吃”后面。再往后,我们就知道“吃饭”可以跟在“上午”“中午”“晚上”后面。但我们的大脑并不是用逻辑来表达这些关系的,只是神经元连接学习并习惯了这种说法并自然而然地将其表达出来。如果我们每说一句话,都要像英语老师那样,先确定人称,再想想词性……最后把句子拼凑出来,就会消耗大脑太多能量(逻辑推理是非常消耗能量的思考过程)。很多英语不好的同学放弃学习英语,就是因为在没有语言刺激基础的情况下强行学习语法规则实在是太烧脑了。
而当我们的大脑习惯了基本音节、词频词序、词性分布之后,任何新的语言表达都能够很快地被掌握,因为负责底层抽象的神经元不需要发生太多变动,就足以吸收更高级的新概念了。**换句话说,这使得我们在学习新概念的时候,脑能量开销最小。**用机器学习的话来讲,就是一个经过预训练的深度神经网络,学习新的抽象概念的效率比未训练的网络要高得多。
人工神经网络的训练方法是自底向上,使用方法是自顶向下。人脑其实也是如此。我们学习语言的时候从音节的基本组成单元开始,逐步获得越来越高级的抽象理解;我们使用语言的时候,将抽象的概念转化为具体的语素和音节加以表达。这也就能够解释,对于一门新语言,为何环境暴露的学习效果比纯粹的理论学习要有效得多:因为大脑只支持这种最节省能量的学习方法(即自底向上)。
人类使用语言已经有超过十万年历史了,因此可以认为今天人类的语言学习能力是基本平等的,个体语言能力则是由外界语言刺激的强度和密度决定的。
根据上面的理论,人类只要暴露在语言环境刺激中就能学习语言,暴露越久效果越好。那么,如果花更多的时间和精力看《论XXXXXXX设计》,就有可能最终在火箭发动机设计领域达到一个比较高的水平,成为大神,是这样吗?
在上面的语言学习例子中,语言刺激既包含了高级抽象(句子表达的含义),也包含了基本特征(音节)。所以大脑可以先学习具体的、感官的基本特征,然后将这些特征作为更高抽象层次学习的垫脚石。自然语言的一个共同特点,就是易于通过直接刺激学习(这是它们被广泛使用的必要条件)。
但是火箭发动机理论却不能这样学。这是因为,火箭发动机理论的垫脚石是机械、流体动力学、材料学、化学……也就是说,火箭发动机理论的基本组成部分并不是具体的、感官的,而是上述各学科所承载的高级抽象概念;而上述学科,又由更基本的抽象概念组成(比如化学由元素周期律、酸碱盐氧化物等等概念逐渐构建而成);而这些抽象概念,才由具体的、感官的基本特征组成(元素的中文名、分子的球棒模型)。由于所学内容的抽象层次实在太高,大脑没办法通过直接刺激学习:好比让一个小学生看《高等数学》,无论看多久都是看不懂的。如果硬要跨越抽象层次直接学习,放弃抽象带来的简化好处,会动用大量神经元、消耗大量能量,让大脑进入类似考前突击的状态。这也是为什么虽然考前突击有一定效果,但是考完基本就忘光了——因为大脑只善于记忆能够被分层次抽象简化的概念。
我在科创认识的研究火箭发动机的很多大神,理化基础都很扎实;同样是看一本书,他们比大部分人看得更快,理解得更透彻,对问题考虑得更全面……因为他们能够轻松地对具体内容进行高级抽象,而这又是因为他们非常扎实地掌握了较低级的抽象概念。这或许就是为什么,做同一个项目,他们总能取得进展,而有的人就不停地失败。
因此,如果你想成为大神,但是感到学习能力不足,最可能的原因不是你的大脑不如大神,而是你没有使用最适合大脑的学习方式(自底向上)。
也许最快的进步方法,是把材料和工具放一边,先把理化基础学好。
(未完待续
200字以内,仅用于支线交流,主线讨论请采用回复功能。