2.大量的实验到底是不是解决问题的最佳办法?
3.“分享”究竟是人的内在品质,还是特定条件下催生的行为?
加一条:
4.以前的知识积累,如最基础的高中数学物理。
乐于分享也不一定能把所有你不知道的东西一次过告诉你啊,很多老师都做不到。
先从一个简单的例子开始。
你在网上看到一个大神,他干了一些很牛逼的事情,比如diy了一枚火箭发动机,将火箭送上10km高空。
于是你在心中默念:我也要成为大神。
可是,怎样才能成为大神呢?既然他现在是大神,那么他本人应该最清楚,直接问他就可以了。
于是你问大神:我想设计一个能飞10km高的火箭,但是不会造发动机,应该怎么学?
大神告诉你,有一本叫《论XXXXXXXX设计》的书,里面详细讲了几种军用火箭弹的燃料配方、装药设计、喷口设计等等。这本书他一年前就看完了。
于是你上网买了这本书,然后开始照着书做实验。
但是在花费数万元资金、经历6次试车实验之后,你仍然不停地遇到各种问题,要么点不着,要么炸机,要么推力太小……就是没有一次正常工作。
这不对呀?大神当年第2次实验就宣告成功了呀。经过一番思考,你认为有以下可能性:
对于每一种可能性,你都作出了解释:
上面三种解释,听起来很有道理,但它们并不能帮你成为大神。因此,我把它们转换成更加具体的三个问题,以便进一步分析:
学习能力,是人类处于食物链顶端的原因之一。即便是在现代社会,学习能力也几乎直接决定生存能力。
人的学习能力,个体差异究竟有多大?这个问题需要分几个部分来回答。
从物种演化的角度来看,今天的你我,是经历了数百万年残酷的自然选择,存活下来的最优秀的个体。如果说学习能力决定生存能力,那么诸位从娘胎里出来,所谓“学习能力”应该是差不多优秀的(因为此时的大脑状态几乎完全是由基因决定的)。
来自神经解剖学的证据也支持这一观点:新生儿的大脑皮层中的神经元,与周围几乎没有连接。在连续的外界刺激下,大量的连接被创建,连接密度在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设计》,就有可能最终在火箭发动机设计领域达到一个比较高的水平,成为大神,是这样吗?
在上面的语言学习例子中,语言刺激既包含了高级抽象(句子表达的含义),也包含了基本特征(音节)。所以大脑可以先学习具体的、感官的基本特征,然后将这些特征作为更高抽象层次学习的垫脚石。自然语言的一个共同特点,就是易于通过直接刺激学习(这是它们被广泛使用的必要条件)。
但是火箭发动机理论却不能这样学。这是因为,火箭发动机理论的垫脚石是机械、流体动力学、材料学、化学……也就是说,火箭发动机理论的基本组成部分并不是具体的、感官的,而是上述各学科所承载的高级抽象概念;而上述学科,又由更基本的抽象概念组成(比如化学由元素周期律、酸碱盐氧化物等等概念逐渐构建而成);而这些抽象概念,才由具体的、感官的基本特征组成(元素的中文名、分子的球棒模型)。由于所学内容的抽象层次实在太高,大脑没办法通过直接刺激学习:好比让一个小学生看《高等数学》,无论看多久都是看不懂的。如果硬要跨越抽象层次直接学习,放弃抽象带来的简化好处,会动用大量神经元、消耗大量能量,让大脑进入类似考前突击的状态。这也是为什么虽然考前突击有一定效果,但是考完基本就忘光了——因为大脑只善于记忆能够被分层次抽象简化的概念。
我在科创认识的研究火箭发动机的很多大神,理化基础都很扎实;同样是看一本书,他们比大部分人看得更快,理解得更透彻,对问题考虑得更全面……因为他们能够轻松地对具体内容进行高级抽象,而这又是因为他们非常扎实地掌握了较低级的抽象概念。这或许就是为什么,做同一个项目,他们总能取得进展,而有的人就不停地失败。
因此,如果你想成为大神,但是感到学习能力不足,最可能的原因不是你的大脑不如大神,而是你没有使用最适合大脑的学习方式(自底向上)。
也许最快的进步方法,是把材料和工具放一边,先把理化基础学好。
(未完待续
[修改于 8年4个月前 - 2016/09/23 00:08:18]
引用 noob:
1.人和人之间学习能力的差别到底是由什么引起的?
2.大量的实验到底是不是解决问题的最佳办法?
3.“分享”究竟是人的内在品质,还是特定条件下催生的行为?
加一条:
4.以前的知识积累,如最基础的高中……
大量实验到底是不是解决问题的有效方法?
准确地说,这取决于解的空间分布。比如说设计火箭发动机,最优化的设计,是所有可能的设计中的一小部分,我们可以认为解所处的空间很大,而最优解很少。
先以彩票为例。彩票的中奖号码的分布是已知的(随机分布),每组号码在所有可能的号码空间中的地位是平等的(均匀平坦),因此抽到任一组号码的概率都相等且互不影响,也就是说买n组号码,中奖率就增加到n倍。这时,大量实验(购买更多彩票)就是解决问题(增加中奖率)的最佳方法。
但是在日常生活中我们所作的大部分决定,其空间分布都不是均匀平坦的。以买水果为例:货架上有20种水果,灰太狼希望哄红太狼开心而决定买其中一种,这个决定就受很多因素的影响,包括水果单价,下月预期收入,上周购买的水果种类,气温,季节,羊村治安状况……这个时候,如果灰太狼像买彩票一样随便挑一种,风险就太大了,万一前几次红太狼都不喜欢,还不如不买(这就是为什么很多人不愿意买东西给女方)。
一个较好的办法是:先询问羊博士以及羊村周围的人,缩小可选水果的范围,再根据其他影响因素,为每一种水果打分,先买分数最高的水果,如果不行,再买分数第二高的水果,以此类推。这样一来,灰太狼就可以少试几次,降低吃平底锅的风险。
灰太狼的故事告诉我们:由于最优解不再是随机分布的(水果有优劣之分),通过充分利用先验知识,我们可以减少找到最优解所需的试验次数。
怎样才能充分利用先验知识,减少试验次数?
承认解的不均匀分布
大多数实际问题的最优解都集中在某个很小的范围内。比如,各国火箭发动机的设计看似各有千秋,实际上能飞起来的设计就那么几种。随机调节参数,并通过大量实验观察效果,这种探究方法只适用于完全没有先验知识的领域,比如爱迪生试灯丝。在科技高度发达的今天,我们遇到的绝大多数问题,都很难用暴力方法来求解。比如考大学选专业,每个专业的水平和前景是完全不一样的,谁会把每个专业都试一次呢?当然是挑自己认为最好的。
承认先验知识的存在
闷头做实验之前,务必确保前人的经验得到了借鉴。比如探究“碳纤维发动机耐压高还是铝合金发动机耐压高”的实验,这两种材料的各项强度数据都是可查的,通过这些数据是可以直接计算固定螺栓所受剪切力的。这样一来,实验中控制变量可以减少,变量变化范围可以缩小,对照组也会减少,而实验次数也就可以减少。先验知识无处不在,往往不是我们找不到它们,也不是我们不需要它们,而是我们不承认它们的存在。任何领域都有先行者,承认他们的存在并通过资料学习他们的经验,比鲁莽地重复大量实验,更有利于你成为大神。
从实验结果中获取更多经验
设计实验的时候务必确保:不管结果如何,都能最大程度地缩小下一步求解的范围,增加在下一次实验中找到最优解的概率。
面对绝大多数问题,大量实验的效果远不如大量阅读、大量思考。“没有做不到,只有想不到”这样的说法,在科技高度发达的今天,可以休矣。
大神从来不买彩票。
(未完待续
引用 acmilan:比如说《高等数学》,它很抽象,很多人觉得学了没啥用,这就是受价值观影响(误以为“工作中基本用不到”)。然后,迎来了《自动控制原理》……
知识应该是由具体的知识开始一层层垒起来的,如果觉得知识太抽象,一定是哪一层或者哪一层的某个部分缺失了。
另外,有人觉得学习有困难,是因为积累了太多的价值观而不自觉拒绝了一些知识,这时需要在这些价值观……
引用 novakon:不只是宏观学习方向,微观学习过程也是会受价值观影响的。有些人太把自己当回事,或者提前受到了一些知识价值观的教育(比如提前看了某大神写的什么是好的程序之类的文章),潜意识里拒绝前人走过的路,也会造成学习困难。
比如说《高等数学》,它很抽象,很多人觉得学了没啥用,这就是受价值观影响(误以为“工作中基本用不到”)。然后,迎来了《自动控制原理》……
三观会极大地影响一个人对获取知识的途径和方向的选择。所谓“老师家……
“分享”究竟是人的内在品质,还是特定条件下催生的行为?
一年前的时候曾和虎哥聊起这一点。当时社会炒作的热点是“分享经济”,诸如Airbnb、优步等等被列为先驱,号称分享经济的大潮即将来临云云。知乎的口号大家也不会陌生:“与世界分享你的知识、经验和见解”。为什么分享会成为炒作热点?因为暂时没有其他的东西可以炒……
不过我们关心的是一些比较社会学的问题。人为什么不自私?人为什么要分享?分享能让一个人成为大神吗?“分享精神”是大神与一般人的最大差别吗?为什么有的大神不愿意分享?这些问题是所有小白和菜鸟们最关心的问题。毕竟如果 Linus Torvalds 不开源 Linux,世界将失去多少色彩……
经过一段时间的思考,我想在这里给出我的答案。
还是从举例开始吧。假设你在网上认识一个做探空火箭的大神。你认识他是因为他分享了他的火箭制作经验。但是很快你就发现,你每周都更新进度,但是大神每两个月才更新一次。你每次发帖的时候,都尽量地把详细数据、过程、结果发上来,并回答大家的问题;而大神则“就发这几张吧”,“计算过程略”,对大家提出的问题不是很积极回答。这是为什么呢?
其实根据观察,这是所有网络“大神”的标准进化史。为什么人一旦变成高手,就不太乐意分享了呢?
其实,分享和人类的其他社会行为一样,是动物为适应社会生活而进化出的一种行为。回到充满危险与挑战的原始社会,分享是群体生存的根本——如果一个部落的每个人都只顾自己吃饱喝足,后果往往就是大家都活不成。
同时人类还进化出了另一种行为,叫侵略。一个部落屠杀另一个部落,是原始社会的常态——这是快速获取资源的最佳方式。所谓五千年文明,不就是你抢我、我杀你的单曲循环吗?最后好不容易安顿个几百年,又被东边的民族盯上了。
经历了数千年的沧桑,如今大半个世界已经步入文明,但人类的这两种行为,还是经常给人类自己惹麻烦。比如分享行为,最臭名昭著的就是送礼,和请客。送礼请客的目的,就是利用人类对分享行为的偏好,拉近人与人之间的关系,以实现某些目的。比如有的官员,收人家几百万,帮人家办几个亿的事情,被抓之后仔细一想诶我这不是亏了吗?为什么当时我接受了?分享行为对人产生的心理作用就是这么大,即便官员知道送礼请客的真正目的是徇私枉法,也很难完全不受其影响。
至于侵略行为,则更是造化弄人。我们的好邻居美国最近几十年打了许多仗,但是掐指头算一下,没有一场战争是不亏本的。和分享行为一样,对侵略行为的狂热深埋在每一个人的内心深处,一场动之以情的演说就能让它生根发芽,从希特勒到日本天皇,再到老布什小布什,均得益于此。说好的石油资源呢?ISIS现在卖着石油吃着人肉串,美国心急如焚但也只能看着,毕竟谁打仗谁亏本的案例,正是美国当年亲身做的示范。
我们在生活中,会遇到特别乐于分享的人,也会遇到特别自私的人。但自私与否,往往不是他们作为一个个体的属性,而是他们作为高等动物所必然具有的特质在面对特定事情的时候所表现出来的态度,换言之也就是因事而异的。
假设某个人足够理性,即他的行为总是最大化他的基因延续概率,那么便可以认为这个人的 分享行为的强度 正比于 分享行为的回报期望。换言之,如果分享某实体(知识、名气、财富等等)对某人没有回报,或者说降低他的基因延续概率,那么他的这种分享行为就不可能发生。
学校里的老师面对问题总是知无不答,因为教师这个职业的社会评价标准,就是他培养的人才对这个社会的贡献。但以教师为职业的人,只占这个社会的一小部分。以专业领域划分,我们发现,越是成熟、越是利润丰厚的产业,其透明度往往就越低,大家不是很愿意公开分享自己的工作经验,而往往只在本行业内小范围分享。理由同上。
从这个角度其实也可以解释时下轰轰烈烈的开源运动。软件领域的开源运动虽然是爱好者发起的,但时至今日,开源运动的最大推动者,其实已经转变成了各大IT巨头如Google, Facebook, Micro$oft还有国内的BAT等等。Java/ JavaScript语言,w3c标准,React/Angular等前端框架,Cassandra/ MongoDB数据库,Visual Studio Code,TensorFlow……无数的免费开发工具被这些公司送到了开发者手中。
为什么?为什么这些公司要免费把千辛万苦积累的技术送给大家?
因为随着互联网的发展,软件技术越来越难保护。由于程序员的数量足够多,编程语言已经进化成了某种程度上的自然语言:某一门语言使用的人越多,生命力就越强,发展演变就越快。语言如此,各种框架、系统亦然。正如国家要推行普通话和规范字、企业要去学校搞培训一样,各大IT企业都在免费赠送各种各样的技术——他们永远是这个行为的受益者。
吴恩达(Andrew Ng)在最近的一次讲话中强调,技术的门槛总是越来越低,而数据的门槛越来越高。时下的IT巨头就像一间间工厂,拥有丰富且垄断的生产资料,而对于一个优秀的程序员而言,应聘是最不坏的一种选择,正如对于一个优秀的技师而言,去一家大厂应聘是最不坏的一种选择。
另一方面,这些企业绝对不会分享哪怕是一丁点的用户数据——除了用于学习用途的匿名数据之外。主要原因倒不是法律风险,而是切实利益。
说到底,某个大神之所以公开一部分实验信息,是因为这种公开行为本身不仅没有损害他的任何利益,还增加了他与其他同好互相认识交流的机会;而他之所以不公开更多(更具实用价值)的实验信息,是因为这种公开行为本身不仅有可能被人抄袭模仿而损害其原创名誉,还可能招致一大堆莫名其妙的骚扰。在科创论坛,几乎每一个能称得上“大神”的用户,都被各种SB问题私信骚扰过。能想象吗?
我的答案很明确,分享只不过是人的众多日常行为中的一种,且尊重自然选择、优胜劣汰的规律,而非某种思想层次、道德境界。
如果大神不想分享,最可能的原因就是大神认为【跟你交流会浪费他的时间】。按照之前章节的方法提升自己,是成为大神的一种方法;另一种方法,就是给大神端茶倒水送礼吃饭,以触发其“分享神经”。遗憾的是,后一种方法,如今越来越不管用了。
200字以内,仅用于支线交流,主线讨论请采用回复功能。