由于最近训练AI来做解题思路解析器(WHWM分析性写作开发成功、WHWM分析性阅读器训练成功、汉语字词解释器开发成功、WHWM求解物理题AI工具开发成功、WHWM数学解题四问自动化开发成功)很成功,我开始尝试让AI完成更加复杂的辅助“人类知识高速公路上以高层知识为目标的理解型学习”的任务。今天尝试的是“从习题到各层知识的标注”(《极简系统科学》之回溯性诊断分享)。
所谓从习题到各层知识的标注,就是把一道习题的求解过程或者说一个问题(不一定是习题)的解决过程、一个任务的完成过程中所需要用到的各个知识,包含第零层经验体验、第一层实施性程序性知识、第二层学科概念知识、第三层学科大图景、第四层一般性人类思维、第五层叫教和习的方法,都明确列出来。
有了这样的一个标注,结合构建好的知识网络,我们就可以很好地诊断如果一个问题没解决,到底哪里出了问题:对分解出来的知识点做单纯题(也就是这个问题基本上主要依赖这个知识点)的检测,如果整体问题不会但是单纯题会那就不是这个知识点的掌握出了问题,如果整体不会这个单纯题也不会那就是这个知识点出了问题接着做这个知识点所依赖(这就要需要知识网络)的更基本的知识点的单纯题的检测,重复上面的判断过程。一旦找出来到底那个知识点开始就没有掌握好,比它更基础的都掌握了,我们就从这个断点知识开始在标准知识网络上再一步步构建起来每个学习者自己的知识网络,从而能够完成一开始的任务,以及这些知识网络所能够完成的任务。
那么,这个从习题到各层知识的标注怎么做呢?首先,要求解习题。其次,要对解答过程做细致的分析,分成一个个小步骤,按照知识的层次等理解型学习的概念基于现有的知识网络来找到这个解答的每一个小步骤所对应的各个层次的知识。
下面,我们来举个例子。
习题:一个匀速爬楼的机器人,从一楼到四楼走了12分钟,请问从一楼到八楼需要几分钟?(这道问题本身特别无聊,完全是文字游戏。不过,在这里,我是故意用这样的包含了容易犯错的文字游戏的习题来训练AI的)
求解过程:
第一,计算要爬的楼层:从第一层到第四层爬了$4-3=1$层,从第一层到第八层爬了$8-1=7$层。
第二,计算每爬一层所需要的时间:从爬$3$层需要$12$分钟得到每爬一层需要$12÷3=4$分钟。
第三,计算爬$7$层所需要的总时间:$7×4=28$分钟。
从每一步的求解过程中提炼出来各个层次的知识(每一个知识都只需要提炼出来那个步骤所需要的直接知识,其所依赖的间接知识不需要提炼,通过知识网络来获得)。这里,第一步用到了生活常识(楼层编号一般来说是连着的。不过,其实在不同的地方,起点层算1还是0层是不同的。这里直接说了从第一层开始爬。这个问题如果凑巧从第零层开始,则刚好可以无脑计算,得到24分钟的答案),以及减法的概念和计算。第二步用到了除法的概念和计算,以及匀速运动的概念,还有这个匀速运动背后的理想模型和假设(假设机器人匀速——而且是匀速率——其实是一种简化)的物理学家经常用来解决问题的思想。第三步用到了匀速运动的概念以及乘法(或者说加法如果这样计算的话$4+4+4+4+4+4+4=28$,这里直接用乘法计算,尽管乘法从概念上依赖于加法,这里也不再提炼出来这个问题的求解依赖于加法)。
接着我们来问:我们怎么就得到这样三个步骤的,这个过程又依赖于什么知识?我们发现,第一步完成的计算是第二步和第三步所需要的。我们的目标是完成第三步——计算从一楼到八楼的总时间。于是,我们发现,这个得到这样三个步骤的背后是WHWM数学解题四问(WHWM数学解题四问自动化开发成功)——场景里面有什么对象,哪些对象是已知的哪些是要求出来的,对象之间有什么关系,这些关系用什么样的数学表达式来表达,为什么我们关注这些对象,为什么这些对象之间有这样的关系,为什么这些关系用这样的数学表达式来表达,从这问题的解决过程中我可以体会到什么。如果我们接着进一步追问WHWM分析背后的思维方式,大概可以提炼为批判性思维(每一步都要反思)和系统思维(从整体分解出来元素以及元素之间的联系,通过联系来重新构建整体,从而理解整体和解决问题,追求对整体的理解和其问题的解决)。更更进一步,这样的反思,以及通过这样的反思来总结提炼,不断地走到更高层的知识,进而学习和进步,是一个教和习的方法——理解型学习。
于是,总结一下,这个具体习题依赖于下面的各层知识:关于楼层编号的生活常识、减法的概念和计算、匀速运动的概念和公式(尽管可能表现为文字形式)、除法的概念和计算、乘法的概念和计算、WHWM数学解题四问、批判性思维、系统思维、理解型学习。
更进一步总结一下,从这个例子到一般的从习题到各层知识的标注怎么做的步骤方法:第零、掌握理解型学习的概念以及这个习题所需要的知识的网络;第一、完成这个习题的求解;第二、分解这个求解过程到尽可能简单的步骤;第三、提炼每一个步骤所用到的各个层次的知识;第四、对如何得到这些个步骤这个解法做进一步提炼,得到相应的各个层次尤其是更加高层的知识;第五、对整个这样来做标注的过程本身做提炼,得到相应的各个层次的知识。
于是,你看,如果我想办法教会AI这五个点,而且其中第零步和第一步假设已经通过其他训练方式来达成,然后给一些这样来标注的案例,很有可能,AI可以学会这样来标注。
目前,我仅仅开始了非常初步的探索。下面是一个结果截图。总而言之,从习题到各层知识的标注这个任务很有希望可以通过AI来完成。看来理解型学习的工具和普及又可以更进一步了。
吴金闪:这是给你的指令:请你用WHWM求解一个数学题。
一个匀速爬楼的机器人,从一楼到四楼走了12分钟,请问从一楼到八楼需要几分钟?
好的,让我们使用WHWM方法来求解这个问题。
GPT:问题:一个匀速爬楼的机器人,从一楼到四楼走了12分钟,请问从一楼到八楼需要几分钟?
第一步:What:这个问题里面有几个对象。这里可以具体到对象的量。这些对象之中哪些是已知的,哪些是要求出来的?
答:
- 一楼到四楼的时间(已知,12分钟)
- 一楼到八楼的时间(未知,需要求出来)
- 机器人匀速爬楼(已知条件)
第二步:How:这些对象之间有什么关系,这些关系用什么样的数学表达式来表达?
答:
- 机器人是匀速爬楼,所以每层楼的时间是相同的。
- 一楼到四楼之间有三个层楼间隔(四楼减去一楼),一楼到八楼有七个层楼间隔(八楼减去一楼)。
由于机器人是匀速爬楼的,所以时间和楼层数成正比。我们可以先求每层楼所需的时间:
时间/层 = 一楼到四楼的时间 / 层数间隔
每层所需时间 = \frac{12分钟}{(4楼 - 1楼)} = \frac{12分钟}{3层} = 4分钟/层
然后,再求从一楼到八楼的总时间:
一楼到八楼的总时间 = 每层时间 × 层数间隔
总时间 = 4分钟/层 × (8楼 - 1楼) = 4分钟/层 × 7层 = 28分钟
第三步:Why:为什么我们关注这些对象,为什么这些对象之间有这些关系,为什么这些关系用这样的数学表达式来表达?
答:因为机器人是匀速爬楼的,所以每层楼的时间是固定的,即时间和楼层数成正比。已知一楼到四楼的时间和楼层数,我们可以求出每层楼的时间。然后,通过乘以一楼到八楼的楼层数间隔,可以求出一楼到八楼所需的总时间。这个关系是基于匀速运动的时间计算方法。
第四步:Meaningful:验算一下问题解决了吗?这个解决问题的方法正确吗还是我在胡说八道?还有别的求解这个问题的方法吗?从这个问题的求解里面我学会了什么?
答:我们得到从一楼到八楼需要28分钟。验证:
- 一楼到四楼的时间是12分钟,是3层。
- 每层的时间是4分钟(因为匀速)。
- 从一楼到八楼是7个层楼间隔,时间为7 × 4 = 28分钟。
正确。问题解决了。这个问题可以通过匀速运动的时间和距离(楼层)的关系来求解。以后遇到类似的匀速运动问题,也可以使用类似的方法来求解。
希望这个解答对你有帮助,如果还有其他问题或需要进一步指导,请告诉我。
吴金闪:这个问题的求解分成哪些步骤,用到了哪些知识?
GPT:让我们明确解题步骤,
识别楼层间隔:
一楼到四楼之间有三个楼层间隔。
计算每层所需时间:
一楼到四楼时间:12分钟
层数间隔:3
每层所需时间 = 12分钟 ÷ 3 = 4分钟/层
计算总时间:
一楼到八楼之间有七个楼层间隔。
总时间 = 每层所需时间 × 楼层间隔 = 4分钟/层 × 7层 = 28分钟
这个问题主要用到了一些基础的数学知识和概念,包括:
比例关系(比例原理):
由于机器人是匀速爬楼的,实际上时间和楼层数之间存在一个比例关系。即每层楼的时间是固定的,总时间和楼层数成正比。
分数和除法:
通过已知时间和楼层数的关系,我们可以通过除法计算出每层楼所需的时间。具体来说,
。每层所需时间 = 总时间 层数间隔
乘法和加法:
在计算每层所需时间后,通过乘法计算出从一楼到另一指定楼层的总时间。
。总时间 = 每层所需时间 × 层数间隔
单位换算(吴金闪注:这其实是胡说八道):
虽然这道题目中没有复杂的单位换算,但需要理解时间(分钟)和楼层之间的关系。
常见的物理概念:
匀速运动的概念:匀速运动意味着在每个时间间隔内移动的距离是相同的,或者在每个距离间隔内所需的时间是相同的。
总结:
比例关系:时间和楼层数成正比(因为匀速)。
分数和除法:计算每层楼所需的时间。
乘法和加法:从每层楼所需的时间计算总时间。
单位换算:理解时间和楼层之间的关系。
这些是解决这个问题所涉及的主要数学知识和概念。希望这些内容有助于你更好地理解整个过程。如果还有其他问题或需要进一步指导,请告诉我。