问题解决与计算机算法

我们时时刻刻都在解决不同的问题,隐形或者显性的,长期或者短期,紧急或者迟缓的。

我们是如何解决这些问题的呢?如果我们对这些待解决的问题加以考察就会发现,所有的问题都带有明确的目标导向,我们可以将问题最初的状态成为初始状态,目标结果称为目标状态,中间过程成为中间状态。从初始状态到达目标中间所有可能的路径成为问题的解空间,使问题从一种状态转移到另一种状态的方法可以称为算子,随后问题的解就是这些算子的有效排列。人类解决问题的过程就可以看作是在解空间内进行搜寻,每一条可行路径都对应着问题的解法。

这种看法十分类似于计算机算法当中的搜索算法。以走迷宫问题为例。初始状态是妻子置于初始位,最终问题状态是棋子移动到迷宫的出口,从初始到结束所有可能的上下左右移动的状态组合就构成了问题的解空间。每种通往迷宫出口的路径都是合理的路径。

我们在问题解决的时候并不会对每种可能路径都同等考虑,那样将过于复杂耗时。更多时候我们是凭借经验和知觉选择路径,计算机算法同样如此。有时候我们想要解决的问题的解空间有时候过于巨大,比如围棋,黑白两方的棋子都可以下载棋盘的任何位置,计算机不可能遍历所有路径,因此算法需要对可能路径的搜索进行优化,剪枝大部分路径从而使问题可能计算完成。

算子用于代表我们解决问题的具体步骤和办法。学习新算子第一种方法是发现。当我们在问题空间中随机行走的时候有可能会得到问题的正确解答,如此我们便发现了解决问题有效算子和路径。第二种方法通过他人传授或者观察实例得到。获得新算子的另一种常见途径是类比。在一个问题中行得通的算子在另一个相似甚至完全不同的问题中同样有可能行得通,这样的算子应用就是类比。

实际上,在面对问题的时候,我们的问题有可能不是没有算子,而是由多宗算子可以选择。那么如何找到正确的算子呢?一个普遍的原则是差异降低。也就是说,选择最大限度地减少当前状态与目标状态之间的差异的非重复算子。差异降低原则和机器学习中的梯度递降原则类似:沿着梯度最小的方向,也就是离目标变化最快的方向移动。但同时我们也知道梯度递降的一个问题是可能得到局部最优解而不是全局最优解。而有时候为了得到全局最优解需要选择并非当前最快的路径,梯度递降法就有问题了。在人类解决问题的过程中这样的原则同样适用:在适当的时候选择长期最佳策略而非短期最佳策略更好。

另一个主要方法是手段-目的分析,即创造一个新目标使得算子得以运用。比如说如果发现解决一个问题的关键在于创造某个条件,那么目标就变成了创造这个条件,这样新目标就产生了,运用这个关键条件解决原有问题的算子就得以运用了。和差异降低相比,手段-目的的优点在于其分析不会马上丢弃当前不能得到应用的算子。比如如果一个算子暂时不能得到应用,手段-目标分析会聚焦于如何使算子起作用,即消除组织一个算子得到应用的差异。以消除这种差异为目标的子目标称为算子子目标。

手段-目的分析对于我们解决问题有什么启示呢?手段-目的分析提供了一种非常有用的解决问题的框架。在这种框架之下,我们首先考虑当前状态与目标状态的差异,然后聚焦于消除差异,并将消除这些差异当做子目标,在解决子目标的过程中我们会遇到新的差异,然后我么不断重复子目标-差异消除的过程一直到当前状态和目标状态一致。

这样的模型在解决一般问题的过程中固然有用,但是往往我们会遇到一些困难。比如如何找到目标状态和当前状态的真正差异。假设我的目标是成为一个优秀的工程师,那么成为一个优秀的工程师需要哪些技能,这些技能和我当前的技能的差异在哪里呢等等。在很多情况下我们并不真正清楚目标状态的定义是什么,更不清楚目标状态和当前状态的差异是什么。在了解真是的差异之前就贸然采取行动缩小差异可能是在缘木求鱼。

专业技能学习

我们的大脑结构会随着专业技能的学习而变化。人们越是能够熟练地完成某项任务,在执行那项任务中就可能越少用到脑,进行这项任务所需要的能量就越少。于此同时,当我们成为一项任务的专家之后,我们完成这项任务的方法也会发生变化。

专业技能的学习一般分为三个阶段:认知阶段关联阶段自主阶段。认知阶段是对技能进行陈述性编码。在关联阶段,最初的错误会被逐渐发现和改正,成功操作所需的各种要素之间的联系被强化了。在自助阶段,整个技能的操作过程会变得越来越自动化和迅速,中枢认知开始退出任务执行的过程。认知技能的提高是练习的幂函数,即技能的提高初期会较快,随后越来越慢,经过长时间的保持之后只会出现轻微的提高。

在一个人成为专业技能的专家的过程中,技能的组织如何变化?首先是基于思考的陈述性知识转化为模式驱动的成熟性知识,这个过程称为程序化。程序化使得人们在执行例如骑自行车这样的任务时不再需要思考该怎么做。另一方面,如果我们将解决一个问题或者一部分问题所需要的技能看作一个动作序列,学习执行这些动作序列的过程称为技法学习。许多小问题会反复出现,通过技法学习可以解决他们。大型的复杂问题则不会重复出现,但是他们具有相似的结构,我们可以学会如何组织解决整个问题的办法。这种学习如何把问题解决的过程组织起来以把握一类问题的一般结构叫做策略学习。比如物理学中的专家策略是向前推理,程序设计中的专家策略是宽度优先开发程序。

在我们解决问题的过程中,我们会学会感知问题的有效解决过程。比如一个物理问题所隐含的原理隐含在它的表层特征之下,专家们学会了看出这些隐含的原理并根据他们来表征问题。专业技能增长的一个重要维度是有能力以一种更有利于产生有效解决方案的方式来感知问题。

关于专业技能的变化,另一个发现是专家对于自己专业领域相关的信息有着特别强的记忆能力。以国际象棋为例,专家们记忆棋局的能力比新手强,而且他们更善于记忆棋局的模式。同时,专家们存储了很多问题的解,而对于低水平的起手来说,这些都是需要解决的新问题。这些记忆的信息使他们具有两个优势:首先是他们在解决这些问题的时候几乎没有出错的风险,因为他们已经存储了正确的解法。其他由于他们存储了这么多正确的分析,他们可以专注于解决更复杂的问题和全局策略。总的来说就是,专家能够识别很多问题中重复出现的各种要素及其模式,并且当这些模式出现的时候,不假思索就知道该怎么做。除了短期记忆,随着人们在一个领域变得更加内行,他们在长时记忆中存储和提取问题信息方面培养出了更强的能力。

那么怎样才能成为一个领域内的专家呢?为什么有的人终其一生都在从事某项工作却并不见得会成为该领域的专家呢?埃里克森认等认为,问题的关键在于他们是否进行有目的的练习。在有目的的练习当中,学习者不是机械地操作,他们有学习的动力,会得到关于自身操作的反馈,并仔细观察自己的操作和正确的操作相比,哪些做对了,哪些有差距,再集中注意消除差距。有目的的练习的另一个重要作用是它会促进专业技能所必须的神经的增长。

对于目标成为某领域专家的学习者来说,关于专业技能的知识给我们的启示是:对于复杂问题,学些专家们的解决策略是有效的提高途径。

那么一项专业领域的技能会不会对另一个领域的技能有帮助呢?有一种看法将心理能力视为一种官能,这种观点认为,心理是由诸如观察、注意、辨别以及推理等一般官能集合而成的,可以用于锻炼个部分肌肉相似的方法锻炼这些官能。锻炼的内容无关紧要,最重要的是努力的程度。如果按照这种观点,技能的迁移将会是广泛的,普遍发生的。但是经过了长久的研究我们仍然无法找到证据支持这种观点。实际研究发现,把技能迁移到类似的领域时通常会遭遇失败,因而更不可能迁移到非常不同的领域。

桑代克提出了相同要素说来说明技能的迁移。在桑代克看来,人的心理并非由一般的官能组成,而是由一些特殊的习惯和联想构成。根据桑代克的观点,只有当两个活动具有共同情景-反应要素的时候,一个活动中的训练才能迁移到另一个活动中。桑代克的观点被证明过于狭窄,低估了迁移可能发生的广度。

现代心理学认为技能间的迁移只发生在这些技能有相同的抽象知识要素的时候。这对教育的启示是更多的关注基础知识成分,使用基础知识成分识别并确保学生能全部掌握这些成分的方法将提高教学质量。

认知的个体差异

我们早已知道,人类的妊娠期、儿童期在所有哺乳动物中都是最长的之一。虽然儿童在五岁即已完成了神经系统的发育,但其身体的发育则要等到成年才能完成,漫长的儿童期使得人类有时间来发展一个硕大的脑并获得大量的社会知识。

从儿童到承认,人类认知能力的发展经过了那些阶段呢?根据皮亚杰的理论,儿童的认知发展具有四个阶段:感知运动阶段,前运算阶段,具体运算阶段和形式运算阶段。当然这些阶段不是离散的,所有这些能力都是连续发展的。皮亚杰还观察到,儿童在不同阶段的对守恒的理解沿着各个成长阶段而发展。

所谓守恒即对世界的理解和知识在各种变换之下保持不变。比如感知运动阶段的守恒,儿童必须了解物体经过时间和空间的变换仍然存在。前运算阶段和具体运算阶段的守恒:。形式运算阶段的守恒:能够理解作为现代科学的一部分的理想守恒,包括能量守恒和动量守恒这样的概念。随着儿童的发展,他们越来越深刻地认识到在何种变换之下客体的那些特征能保持不变。

儿童认知能力的发展即有心理能力发展的贡献也有知识增长的贡献,也即更好的思维和更好的知识。研究发现两岁之前儿童的神经系统发育对认知发展的贡献比两岁之后更重要,体现在神经元连接的增加。心理能力发展既包括工作记忆容量的增大,也包括信息加工速度的提高。而一方面我们的知识也会增长。年幼儿童经常在各种任务中比年长儿童表现差,因为他们拥有较少的相关知识和交叉的策略,而随着记忆内容的知识的增长和策略的丰富,我们在记忆任务中的表现也会增强。

是不是认知能力会随着年龄的增长而不断增长呢?在认知能力测验中,老年人通常表现会差一些,然而这主要是因为这类测验要求被试者快速完成任务,研究发现老年人在完成较慢的任务上表象更好。另一方面,脑细胞的确会随着年龄增长逐渐残废,但新的脑细胞也会同时产生,并且其间的连接更有效率。总之,随着年龄的增长,知识的增加和神经功能的损失之间存在着竞争,并共同影响着我们的认知能力。一般来说,人的智力产出的顶峰出现在二十来岁之后的三十来岁。

我们如何测量认知能力呢?在美国流行的智商测试有两种:斯坦福-比奈测验和韦氏智力测验。这两种测验可以在一定程度上预测在校生的成绩。但问题在于,智商测验测量的是内在的禀赋还是获得知识的能力,也就是先天能力和后天能力。有研究发现智商与先天资质关系紧密,然而智商和智力不是一回事,在特定领域取得成功的特定经验也许并不贡献于智商测验,比如国际象棋。智商测验确实能在一定程度上预测一个人在生活中的一般成功。

智商测验通常包括一系列子测验。这些子测验通常试图还原智力的基本因素,并找到这些因素之间的相关性。卡特尔将智力分为两个主要类别:晶态智力和液态智力。前者是指获得的知识,后者是指在新领域中推理或者解决问题的能力。还有理论认为,除此之外还存在空间智力。晶态智力对应着语言因素,液态智力对应推理因素,而空间之力对应着空间因素。推理能力得分较高的被试能够迅速执行推理过程中的每个步骤。语言能力高低额人能够迅速抽取单词的语义,并且具有强大的语言信息工作记忆。空间能力强的人能够迅速完成基本空间操作,并且经常选择空间策略而不是语言策略来完成任务。

 

决策中的三种偏差

决策一般来说可以分为两个步骤,第一步是价值判断,也就是估量决策带来的每一种可能后果的价值,第二步是估算每种结果可能出现的概率,最后得出决策带来的期望收益。通过分析每种决策带来的期望收益即可形成决策的有效依据。然而认知心理学的研究显示,人们在决策上存在一些固有的偏差。

人在决策的时候,尤其是涉及到金钱相关的决策的时候有两种特别的效应:

主观效用:即我们赋予钱财的价值,与钱财的面值并不成线性关系。

情景:

  • A: 100%概率获得100万
  • B: 50%概率获得250万

人们会倾向于选择A,虽然B的期望值是125万。因为对人们来说,100万和125万其实没有多大的差别。

主观效用的另一个特点是在损失部分更为陡峭,也就是说,人们对损失比对收益更为敏感。

情景:

  • A:50%的可能获得10美元,50%的机会损失10美元
  • B:不会发生任何事情

人们会倾向于选择B,因为他们把损失10美元看得终于获得10美元,因此选择A的期望价值是小于0的。

人们决策偏差的第二个效应是主观概率效应。

主观概率:相比于高概率事件,人们过于重视概率非常低的事件。

情景:

  • A: 1% 的机会获得400 美元
  • B: 2% 的机会获得200 美元

人们可能会更倾向于选择A,因为1%的概率并不等于2%概率的一般,在人们的主观判断中,1%的概率的权重高于2%的一半。

另一个决策的效应是框架效应。

框架效应:人们的决策随着他们对自己在效用曲线中的位置的感知而变化。

情景:一个人必须购买15美元和125美元的东西

  • A:一个商店对于15美元的东西有5美元的折扣
  • B:一个商店对于125美元的东西有125美元的折扣

人们更倾向于选择A,虽然都是5美元的折扣,但人们此时在效用曲线的不同位置,因为效用递减原则,15美元和10美元之间的差异大于125美元和120美元的差异。

语言结构

如果将一直猴子放在打印机前,给它无限的时间和无限的打印纸,总有一点它可以打出莎士比亚的名著。

这是无限猴子打印定理的一种表述。这个定理来自概率论中关于零一定理的阐述,即有些事情不是一定会发生就是一定不会发生。但从另一个角度,它也暗含了语言的两种基本性质:生成性和规则性。

语言的生成性是指,任何语言可以通过组合基本的语言要素,生成无限多的话语。

猴子可以通过随机敲击键盘除了可能写出莎士比亚的名著,还可能写出我们从未见过的竞猜著作。但并不是猴子打出的所有字符组合都可以被人阅读,在绝大多数情况下,猴子打出来的都是毫无意义的词语和句子,这是语言中规则性的约束决定的。

语言的规则性是说,语言具有一定的语法,句法,发音规则。不符合这些规则的就不能被视作一种合规的语言。

我们学习语言很大一部分都是在了解语言的规则性:那种表述是正确的,那种表述是错误的,

语言的作用如此重要,以至于说人类因为有了语言才成为人类的一点都不过分。我们在意识中进行的思维活动大部分都是依靠语言进行的,我们的描述,推理,决策过程都高度依赖语言。

那么语言和思维的关系如何?行为主义者认为思维就是不发出声音的语言。另一种观点则认为,语言虽然强烈地影响着一个人对世界的思维方式,但思维并不是语言。我们每个人都有一些个人体验可以证明思维不一定必须借助语言发生。比如我们在紧急情况下的快速判断,是来不及借助语言来进行的。但是证明思维可以不通过语言进行的难点在于,如果没有语言,我们无法向外界传达我们思维的过程,也就无法证明我们的思维不通过语言发生,也就是说,语言几乎是我们与外界交流一的唯一工具了。

几乎每个人都掌握一门母语,有很多人还掌握一门或者多门外语。然而我们常常疑惑:为什么小孩子可以轻松将一门外语学习到母语的水平,而年龄稍大的孩子和成年人学习母语和外语的成果差异如此巨大?是因为学习方式和学习环境的问题还是因为神经结果随着年龄变化不再适用于学习新语言?

一般来说,成年人学习外语的速度往往比儿童学习母语时的速度快,但在最终学习的成功性上不如儿童。

儿童在进入学校之前一般不会得到有效的母语学习指导,他们更多的是通过重复模仿和纠正来学习。但他们的学习成果已经足够让人惊叹:这个时期的儿童们也许还不具备很多知识,但他们通常已经具备流利的语言能力,可以掌握数量庞大的语言要素和隐藏在其后数量更加可观的语言规则。成年人或者较大的儿童学习外语的时候,已经具备了相当完备的思维能力,他们通常能较快的掌握语言的规则。但最终在语言表现上不如儿童。

我们可以将语言的学习成果分为三个层次:语义,句法和语音。

我们通常的感受是,有许多成年人可以熟练的通过外语表达自己的思维,但在表达的细节和准确性上有一些问题,而在语音方面表现最差。研究的证据显示,学习外语一个较为重要的时期是2到12岁,在这个年龄段内,儿童学习外语的成功程度与学习年龄相关,而年龄效应在上面提到的三个方面依次增强。

关于语言我们有无穷多的问题,语言的产生,语言和文化的相互作用,语言在个体心理层面的呈现等等。每一个问题都让人着迷。面对这些问题我们发现我们关于语言所知甚少,而那些才是真正让人心驰神往的地方。