
文章
程序员
摘要算法
3句话告诉你学习的方法论安全
本文统筹人类学习和机器学习的特色,提出了学习的通常化定义:学习是指一个目的系统从数据中提取模型,并用模型进行决策的过程。微信
基于这一学习定义,提出了提高学习效率的3条关键方法论,并对其具体使用进行了详细说明。app
1,用自我提问强化元认知。机器学习
2,用内容输出优化认知结构。学习
3,用科学推理探究非结构问题。优化
当咱们谈论学习时,咱们究竟谈论的是什么呢?职业规划
教育心理学中认为,狭义的学习指的是:经过阅读、听讲、思考、研究、实践等途径得到知识或技能的过程。url
而广义的学习指的是:人和动物在生活过程当中经过经验而产生的行为或行为潜能相对持久的变化。
然而,上述定义没有深刻归纳“学习”行为的本质。至少它们不能解释当下火热的“机器学习”现象:计算机程序能够学习驾驶汽车,识别语音图像,下围棋打游戏……
为了更具备通常性,我对学习这一律念定义以下:学习是指一个目的系统从数据中提取模型,并用模型进行决策的过程。
这个定义中有几个关键词。第一个是目的系统,第二个是数据,第三个是模型,第四个是决策。
例如以小明学习投篮为例。小明即一个目的系统,其目的是提升投篮命中率。数据即无数次投篮练习中各类各样的投篮方式与其对应的投篮结果,对于人类的学习通常能够称之为经验。模型即小明习得的投篮技能,不一样投篮位置对应的最适宜投掷力度和方向等。决策即小明根据习得的投篮技能进行下一次投篮方式的选择。
又例如以AlphaGo学习下围棋为例。AlphaGo即一个目的系统,其目的是提升棋局胜率。数据即AlphaGo无数次左右互搏中各类落子方式与其对应的棋局结果。模型即AlphaGo背后的判断棋局形势和决定落子位置的机器学习算法。决策即AlphaGo依据训练后的模型进行下一次落子位置的选择。
把“一个目的系统从数据中提取模型,并用模型进行决策的过程”做为学习的概念定义,咱们能够比较天然地引出以下3条学习的核心方法论。
1,用自我提问强化元认知。
2,用内容输出优化认知结构。
3,用科学推理探究非结构问题。
一,用自我提问强化元认知
学习的定义中的第一个关键词是目的系统。若是一个系统具备负反馈机制,那么这个系统就是一个目的系统。所谓负反馈机制,就是不断地将当前状态与理想状态进行对比,并调整当前状态以缩小两者差别的机制。
而元认知,正是在学习过程当中扮演了负反馈机制的做用。所谓元认知,就是对自身认知的认知。"元认知"是美国心理学家弗拉维尔在20世纪70年代提出来的。元认知属于一种反思性的智慧。
元认知一般以自我提问的技术形式发挥做用。如下是为举例。
首先是肯定学习目标,例如入门Python。能够问本身,我学习Python对个人职业规划有什么帮助呢?学习Python后主要想用它干什么呢?我目前的基础是否可以学会呢?
而后拟定学习计划。能够问本身,能够去哪里找到好的Python入门学习资源呢?我应该优先学习哪一个呢?我计划花费多久的时间去学习它呢?
接着实施学习计划。在学习过程当中,能够问本身,当前学习的这部份内容是否掌握了呢?若是没有掌握,具体哪一个概念或者代码范例没有搞懂?可不能够经过百度搜索或者请教老师同窗把它搞懂?
最后进行学习评价。拟定的学习目标Python入门是否达成?是否作了学习笔记或学习资料整理等留痕工做?若是遗忘了是否能从新经过学习留痕快速拾起?
二,用内容输出优化认知结构
学习的定义中的第二个,第三个,和第四个关键词分别是数据,模型和决策。数据是输入,决策是输出,模型是输入和输出之间的转换路径。对于人类的学习,决定输入到输出之间转换路径的是人的认知结构。认知结构的优劣,决定了输入到输出的转换是否合理高效。
美国著名的心理学家布鲁纳提出了认知结构学习理论。学习的实质是主动地造成认知结构。认知结构是指由过去对外界事物进行感知、归纳或经验构成的观念结构。学习者是经过把新得到的知识和已有的认知结构联系起来构建其知识体系的。
良好的认知结构一般有两大特色:一是具备结构清晰的概念体系,二是具备丰富多元可供模仿的表明范例。
概念体系相对抽象,可以确保习得的模型具备必定的泛化能力,防止过拟合。而表明范例很是具体,可以确保习得的模型充分保留一些细节信息,防止欠拟合。
结构清晰的概念体系是一棵"决策树"模型。根据算法理论,树模型的搜索效率是很高的,时间复杂度近似为O(log(n)),n为树模型子节点的个数。而结构混乱的概念体系仿佛是一片"决策云",不一样的概念子节点之间没有创建联系,根据"决策云"来决策,其搜索效率很低,只能尝试遍历所有子节点,时间复杂度近似为O(n)。
为了创建良好的认知结构,有一种特别有效的方法,叫作以教为学,这实际上是一种用输出倒逼输入的学习方法。费曼很是推崇这种学习方法,所以也称之为费曼学习法,具体作法以下: 1,先学习某个知识 2,想象本身在向别人教授某个知识 3,教授的不畅、卡住的地方,就停下来,查阅相关资料解决问题 4, 再次重复2-3,直至彻底讲清楚。
固然,不可能咱们每一个人为了学习Python都去编写一部十万字的Python教程,或者找来一个Python小白作本身的徒弟直到把他教会。你没必要走的那么远,可是你绝对应该朝着这个方向去努力:
1,你能够用一张思惟导图整理出Python里面基础的概念体系。一张图要归纳最核心的所有内容,而且要层次清晰,让人能很快背下来。
就像这样:
2,你能够整理出一份本身的简短Python教程。确保里面的每个范例你都写过代码而且是彻底理解的。
就像这样:
三,用科学推理探究非结构化问题
学习的定义中第三个和第四个关键词分别是模型和决策。对于机器学习模型,其决策一般只针对特定的一系列类似的问题。而人类认知结构模型,则经常面对一些迥然不一样的陌生问题。这些看起来不可以直接应用现有认知结构当即进行决策的问题构成了教学心理学范畴中真正的问题。
在教育心理学中,问题被定义为给定信息和要达到的目标之间存在着某些障碍须要被克服的刺激情境。问题解决是指应用一系列的认知操做,从问题的起始状态到达目标状态的过程。问题解决是高级形式的学习活动,它是检验认知结构的试金石,是强化认知结构的雕刻刀,同时仍是促进元认知能力提升的催化剂。
从某种程度上说,人类学习的的终极目的就是为了解决问题。解决问题的能力依赖于认知结构和元认知水平。同时解决问题的训练促进认知结构的完善和元认知水平的提升。元认知、认知结构和问题解决造成了一个交互影响的方法论三角。
在问题解决的过程当中,元认知的参与是很是重要的。尝试自问自答如下一些问题很是有帮助:这个问题具体有哪些困难点?有什么尚未尝试的方法能够克服某个困难点?是否能够把这个问题转化成熟悉的问题?是否还有相关的资源能够用来帮助克服困难?这个困难可能的解决途径是怎么样的?为了解决这个困难我现有的认知结构是否完备?
人类的文明史,从火的发明到宇宙飞船上天,都是一部问题解决史。每一个人在生活中也会遇到各类问题,例如普通的电脑宕机问题、复杂的代码bug问题、银行卡余额不足问题,以及晚上被本身帅得睡不着等问题。全部的这些问题,均可以归类为有结构的问题和结构不良的问题。
有结构的问题指的是给定的条件和要达到的目标都很是的清晰,与解决问题相关的知识经验都很是的明确的问题。或者说,对有结构的问题,解决问题可能用到的操做符是一个有限集。例如,普通的电脑宕机问题就属于有结构的问题。可用到的操做符包括重启,按F8进入安全模式还原系统设定,重装系统,以及更换硬件。有结构的问题的解决一般是相对容易的,只要参照过往解决相似问题的经验,在可能用到的操做符集合中选定合适的操做符组合成序列并依次做用一般就可以解决问题。
而结构不良的问题每每具备给定的条件和要达到的目标都比较模糊,问题情境不明确,相关的影响因素不稳定,问题自己具备必定的特殊性,通常性知识和过去的经验不必定适用,可能用到的操做符是一个无穷集合等特色。一些复杂的代码bug问题、银行卡余额不足问题、以及晚上被本身帅的睡不着等生活中遇到的大部分问题都属于结构不良的问题。
对于结构不良的问题,通常要分3步走去解决问题。第1步是什么,第2步为何,第3步怎么办。是什么即理解问题情境,明确当前给定状态和理想目标状态,经过对相关要素的梳理尽量将问题朝着结构化的方向去转换,用简单的语言把问题关键点说清楚,并尝试经过一些可视化的方法呈现问题。为何即诊断问题缘由,经过猜测验证的方式找到产生当前状态的主要缘由。怎么办即寻找解决路径,在理解问题情境和诊断问题缘由的基础上,尝试找到可能的切入点并规划解决路径。
在尝试解决非结构问题的过程当中,结构化技术与可视化技术会极大地帮助咱们简化问题的表现形式,给予咱们诸多启发。但对于真正困难的问题,起主导做用的每每是一种叫作科学推理的思惟技术。
有些问题是如此的困难,以致于咱们没法顺畅地诊断问题缘由和设计出可行的解决路径。那么咱们还能够作什么呢?咱们还能够作的就是猜测,就是假设。并进一步根据这个假设去演绎推论,经过验证推论来证伪这个假设,或者增长这个假设的可信度。
这种从假设出发切入复杂问题的技术拥有如此巨大的威力,以致于随处可见其身影。科学家经过理论猜测与实验检验来发现天然规律,数学家经过反证法来证实数学命题,统计学家经过假设检验来判别统计观点,侦探专家经过怀疑与举证来寻找案件凶手,而程序员们则经过截取可疑代码单独运行来排查bug......
(Python_Ai_Road)
本文分享自微信公众号 - Python与算法之美(Python_Ai_Road)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。