概念网络上的高效学习方式

对于一个的集合\(L=\left\{1,2,\cdots, i, \cdots, \right\}\)中每个个体的学习,如果给定了每一个学习对象的难度\(\vec{C}=\left\{c_{i}\right\}\)和价值\(\vec{V}=\left\{v_{i}\right\}\),我们的学习顺序\(\vec{S}=\left[s_{1}, s_{2}, \cdots, \right]^{T}\)的问题是这样定义的:

  1. 给定\(\vec{S}\)之后在第\(m\)步的累计成本为
  2. \begin{align}
    C\left(\vec{S}, m\right) = \sum_{j=1}^{m} C_{s_{j}}
    \end{align}

  3. 给定\(\vec{S}\)之后在第\(m\)步的累计价值为
  4. \begin{align}
    V\left(\vec{S}, m\right) = \sum_{j=1}^{m} V_{s_{j}}
    \end{align}

我们希望某种意义上——例如在学习过程中的任何一步或者都某个具体的第M步——成本最小,价值最大。

如果这些个体之间相互没有联系,则我们没有特别好的巧妙的办法,就是一个简单的优化问题。例如,我们可以先考虑两种极限:成本完全一样或者价值完全一样的情况。例如,前者,这个时候对于任何的\(\vec{S}\),\(C\left(\vec{S}, m\right)\propto m\),我们只能考虑优化\(V\left(\vec{S}, m\right)\)。于是我们发现,按照价值的递减顺序,也就是选择价值大的来先学就好。这时候能够保证在任何一步\(V\left(\vec{S}, m\right)\)都是最大的。更一般的成本函数和价值函数,应该,运筹学之类的学科也有答案了。如果没有,也无所谓,交给运筹学去解决好了。

更重要的问题是,一旦个体之间有联系,会如何?也就是说,一旦一个字\(j\)的学习难度会随着相联系的字\(i\)的学习状态(是否已经被学习到)而改变,这个时候,如何解决上面的优化问题。

那,我们先来看学习成本会如何变化。本质上,这个变化机制当然应该来源于实际学习过程。这里,我们先给出一个描述框架和大概描述。

我们认为,概念之间的逻辑关系,可以做为关联的客观表现。以汉字为例,汉字之间通过结构关系相互联系,这一点是客观的(尽管繁体字和简体字在汉字之间是如何从结构上联系起来的这一点上不一样。先考虑例如仅仅简体字)。例如:木——林——森,人——从——众,水——冰——淼,(木,一)——本,(人,本)——体。当然,这个客观的结构联系是否就能代表逻辑联系,是有待讨论的。也就是说,在汉字集合上,存在着一个逻辑关系网络,网络的每一条边代表上面举例中的一个字\(i\)(更简单的字,处在更底层)成为另一个字\(j\)(更复杂的字,处在更上层)的一部分这样的结构关系\(A=\left(a^{i}_{j}\right)_{N\times N}\)(这个矩阵的标记采用的是投入产出习惯的符号,从\(i\)投入到\(j\)。)。这个结构关系上面叠加了一层逻辑关系。这个逻辑关系可以用来改变学习成本。再次强调,这仅仅是一个理想模型。记每一个概念的当前状态——学到或者没有学到——为\(\vec{K}\left(t\right)\)或者每一个概念\(i\)的状态\(k_{i}\left(t\right)=\pm 1\)。例如,我们可以定义每一个字在当前时刻的学习成本为一个由网络结构和网络上各个顶点的当前时刻的状态决定的函数\(c_{i}=c_{i}\left(A,\vec{K}\left(t\right)\right)\),而\(\vec{K}\left(t\right)\)实际上是学习顺序\(\vec{S}\)的函数。于是,学习成本\(C\)和学习成果\(V\)都是学习顺序\(\vec{S}\)的函数。当然,这个函数由于有网络关系,比完全没有联系的情况要复杂。但是,给定网络\(A\),那么\(C\left(\vec{S}, m; A\right)\)和\(V\left(\vec{S}, m; A\right)\)就是完全确定的函数,就可以讨论优化问题。下面给出一种我们使用过的成本决定机制。

      

  1. 认识下层字\(j\),以一定的概率降低上层字\(i\)的学习成本,\(\omega^{j, \left(\uparrow\right)}_{i} \),和结构矩阵的元素\(a^{j}_{i}\)有关。原则上可以不遵循结构矩阵,来自于其他实证关系。做为一个简化模型,我们可以假设\(\omega^{j, \left(\uparrow\right)}_{i} = 0 \mbox{或者} a^{j}_{i}\)。更复杂的需要考虑理据性。
  2. 认识上层字\(j\),以一定的概率降低下层字\(i\)的学习成本\(\omega^{j, \left(\downarrow\right)}_{i} \),和结构矩阵的元素\(a^{i}_{j}\)有关。原则上可以不遵循结构矩阵,来自于其他实证关系。做为一个简化模型,我们可以假设\(\omega^{j, \left(\downarrow\right)}_{i} = 0\)。更复杂的需要考虑理据性。
  3. 有了这个改变学习成本的概率,我们再来看学习成本改变的值。采用递归定义:
  4. \begin{align}
    c_{i}\left(t\right) = \left(1-k_{i}\right) \cdot \left[\Pi_{u}\left(1-k_{u}\omega^{u,\left(\downarrow\right)}_{i}\right)a^{i}_{u}\right]\cdot \left\{1+\sum_{d}\left(1-k_{d}\omega^{d\left(\uparrow\right)}_{i}\right) \cdot \left[1+\left(1-k_{d}\right)c_{d}\left(t\right)\right]a^{d}_{i}\right\}.
    \end{align}

第一项的含义是,如果字\(i\)本身是学习过的,也就是\(k_{i}=1\),则\(c_{i}\left(t\right)=0\)。第二项的含义是,每一个字\(i\)上层字\(u\)如果学习过,则会成比例地降低字\(i\)的学习成本。第三项表示字\(i\)的学习成本包含三项——整体组合成本(按照单位一算),有几个子结构,每一个子结构如果不认得的话成本的累计。同时,如果下层的字学习过,则整体上会按照降低成本的几率再次降低子结构的成本(那时候子结构自己已经认得了,没有学习成本了)。由于采用了递归定义,整个网络不能有循环。其次,递归的每次都是从当前需要算成本的开始,然后往下计算——递归表达式中仅仅出现了往下的顶点的学习成本。

我们在Efficient learning strategy of Chinese characters based on network approach中的成本更新机制实际上就是上面的一般表达是的简化模型:
\begin{align}
c_{i}\left(t\right) = \left(1-k_{i}\right) \cdot \left\{1+\sum_{d}\left[1+\left(1-k_{d}\right)c_{d}\left(t\right)\right]a^{d}_{i}\right\}.
\end{align}
就算在这个简化机制下,我们也没有精确求解开这个优化问题。而是,基于对问题的理解,提出了一种近似算法:顶点权分配算法——后来我们发现实际上是一种广义投入产出分析计算。

现在,我们有了一个结构网络\(A\),两个这个网络上的逻辑关系\(\Omega^{\left(\downarrow\right)}, \Omega^{\left(\uparrow\right)}\),有一个学习顺序\(\vec{S}\),一个依赖于学习顺序的成本更新机制\(M\left(\vec{S}\right)\left|\right._{\vec{C}\left(t-1\right)\rightarrow \vec{C}\left(t\right)}\),以及初始条件\(\vec{C}\left(0\right)\)。还有一个价值变量\(\vec{V}\left(t\right)\),或者更复杂一点一个可能依赖于学习顺序的价值更新机制——这里当做价值不更新。

问:什么样的学习顺序\(\vec{S}\),会使得整个学习过程、在这个过程中的某个时间点m、或者在某个时间点m之前的过程中的学习效率最高——例如用平均每个字的学习成本来衡量。也可以为了学习到给定学习对象集合\(T=\left\{t_{1}, t_{2}, \cdots\right\}\)里面的所有的字的整体成本。

系统科学之于管理理念和技术

系统科学和管理科学有非常密切的关系。实际上,任何一个包含多个体相互作用的系统的理解、干预的问题,系统科学都可以发挥重要的提供分析思路和分析技术的作用。恰好,管理科学所面对的系统往往是包含相互作用在一起的多个体的。这个时候,当面对问题的时候,非常需要注意以下两点:第一,具体问题背后有没有一般性,有没有更深层次的问题;第二,解决问题的时候除了考虑直接对象是否还要考虑间接对象。前者就是一般所说的“抽象化、一般化、科学化”。后者,就是通常我们说的“这是一个系统工程”、“解决方式在问题之外”、“跳出盒子来思考”。

最近发生的两个小事,可以作为第一个方面的很好的例子,也可以借来思考一下第二个方面。

学院几位老师跟外学院的一位老师在学院会议室开会讨论,没有注意到用到了我们小组开组会的时间。我们学院的办公室日常占用时间都是在自己学院的内部网络上明确注册的。内部网络是所有的老师和学生都可以看到和注册的。我在组会时间到了以后办公室进去问了一下,是否知道这是我的组会时间。这时候有一位老师带着我去隔壁屋子,要给我解释,大意是“里面这位客人是院长,他也不太确定谁把会议定在这个会议室这个时间的,是否能够换到旁边的另一间会议室”。我说,我可以接受去旁边的会议室,但是“事情不是这样做的”,“应该提前和我打个招呼”,“而且以后也要注意”,“注意到第一尽量不占用已经注册的,第二要提前打招呼”。这时候,就进入了扯淡时间了。我回到原来的会议室,问在坐的老师们“我这两个要求——提前招呼,以后注意,是否有道理”。没有人回答,也没有人告诉我谁定的这个时间地点,就站起来说“那我们(指的是这群已经在这个会议室里面的老师)移到旁边的会议室”。我这个时候,生气地留下一句“我过去,你们不用般,但是事情不是这样做的”。后来,听说有很多老师指责我应该留点情面,问题也不大,更何况有外人,还有院长在。

再在这里记下来的大约应该是实际的过程,其中有一些话原话怎么说我已经不太明确,但是意思应该是没错的。

好。关于这件事情,我想说什么呢?首先,这个具体的事情真的不大。我也完全接受到旁边去开组会。但是,道理不是这样的。我的要求,提前通知,尽量尊重注册的占用情况,应该是合理的。那些所谓的解释“院长、外人”远远比不上这个道理重要。那么,这个道理为什么是重要的呢?这关系到一个机构的运行到底是能够过去就行,能够解决眼前的问题就行,还是尽量把重要的事情当做需要人干预的事情而把大多数可以通过制度和惯例来解决的事情交给制度和惯例,摆脱对人的干预的需要。这个是一个很大的原则问题,一个高效设计系统运行的问题,而不是一两次会议室冲突的问题,甚至具有远远地超过会议室这个问题的意义。我觉得很奇怪,都是做系统科学的人,怎么会不注意问题的抽象化、一般化和科学化呢?我觉得很奇怪。

第二个例子是今天出门去朝阳公园玩发生的。我给两个孩子买了游乐场12选6的套票。其中一张上出现了下面的情况:其中一个游玩项目上出现了一划。他们这个游乐场对于已经玩过的项目采用很多种不同标记,有大黑点,有打对勾的符号。这里出现了对勾的一半——斜向上的一划。工作人员就不同意让两个孩子上去。我企图做如下解释:两个孩子的项目都是一样的,可以看到另外一个孩子的票上没有这一划;所划的项目“火凤凰”我们没有在公园内找到(后来他们说,被取消了;这让我想起来,这个应该算他们工作上的问题,取消项目以后票没有改,也没有通知客户。不过,这不是重点),因此,也不可能我们玩过这个项目。这个工作人员让我去找领导,却不告诉我领导电话(后来他的同事还是帮我们找了领导了)。领导来了以后,让这个工作人员放孩子们进去玩,但是对于这个问题没有解释和说法。

http://www.systemsci.org/jinshanw/wp-content/uploads/sites/2/2017/05/IMG_20170507_170342.jpg

后来,我看领导还能够听进去话,就跟领导说,第一,我建议以后统一这个标记,例如盖章;第二,建议领导明确给出来这个事情的一个说法:到底我们企图混进去,还是更大的可能他们的工作人员(主要是之前的项目的工作人员,这个项目的工作人员也有问题,但是小问题)出问题。这时候,这个领导承认确实更大的可能是他们工作人员画错了。

关于这个事情,我想说的是,这个也有一个关心具体问题的解决,和,关心系统运行的设计,这样两个不同层次的问题。如果仅仅是玩一下,我连另一张票都可以买,或者他们放孩子们进去也就完了。但是,这暴露出来管理上的问题,统一一下盖章标记,是非常简单的事情,但是就能够一劳永逸解决这个问题。其实,很多时候,我们中国人,都关心具体问题的解决,而不关心系统运行的问题。在科学上也是,更加关心管不管用,能不能用,而不是为什么能用能这样用。所以,中国古代技术还是比较发达的,但是科学却没有起来。我们缺乏问为什么的传统和问为什么的人。在社会和科学上都是如此。科学和系统科学,在这个方面,可以发挥作用。

顺便(说多了,可以跳过这一段),这里有一个更加深刻的问题,为什么我们会形成这样的传统和习惯?我们要怎么办?古希腊的时候就有一堆人吃饱了饭没事干思考“没用的东西”。文艺复兴使得这样的传统——本质上,按照 Descartes(笛卡尔)的总结就是批判性思维:问一个为什么,在能够说服自己之前永远不能把一个命题当做进一步思考的基础;以及我补充上的但是早就有的系联性思考:通过考察事物之间的联系来理解事物——发扬光大。因此,教育的主要目标不是教给你“氢原子核外有一个电子”这样的知识,而是通过教给你从构建这个知识框架的经历理解好如何思考——批判性思维和系联性思考,教给你什么是科学——对实验和观察的事实的尊重企图构建一个可计算的心智模型来理解和整理这些事实,以及教给你这个知识的框架以至于你可以进一步学习甚至等到有机会的时候你可以自己来让它成长,以及能够这样通过思考和结构来学习的学习方法和这样来学习的意愿。

这两件事情合起来,我想说的是:系统科学在社会管理方面大有可为。每一个具体问题的出现,都是好事,都是使得系统结构更优化,运行更顺利的机会,只要我们不停留在本事件的层面,往深里面更一般化里面挖一挖。同时,这样的一般化的挖一挖的方式,是促进整体系统改善的好的道路。一旦这个问题解决了,得到的经验就有可能可以用在其它问题上,而且,解决这个问题之后,其他跟之前的情况适配的,但是和新的情况不适配的其他问题就会进一步暴露出来,这样就可以更好地促进整个系统的改善。

这个社会的每一个改变,都是从小小的具体问题开始的,只要我们从具体问题开始往深的地方走一走,往广的地方走一走。得过且过,只面对具体问题,不能促进整个社会的进步。

我一直希望能够用这个从具体到一般,从直接到间接层层递进的方式,来整理一下中国政府的规章制度和国家的法律体系。不过,这个需要依靠搞管理的人搞法律的人,才行。系统科学仅仅提供一个思想和技术上的支持和指导。

什么是系统科学

通过《系统科学概论》、《系统科学基础》课程的教学,以及最近关于广义投入产出分析的研究,增加了对系统科学的理解,准备做几个报告,并修改《系统科学导引》的书稿。把整体思路记录在这里。

什么是系统科学

系统科学人拿着数学的斧子,用物理的心法,在砍各个学科的木头。有的时候也用一下其他心法。

有时候也提炼一下心法,改造一下斧子。我们也希望通过从砍木头(具体系统的研究)到一般斧子(分析方法)一般心法(学科思想)以及反过来从心法斧子到砍木头的过程来融合不同的心法,甚至发展和建立自己的心法。

作系统科学的报告,以及讲授《系统科学概论》和《系统科学基础》的目的就是让人通过看和学习别人砍木头,体验一下这些斧子、心法。

那系统科学有没有一些自己的心法、斧子甚至木头呢?

自己的心法:从个体到整体,从直接到间接,尽管还是从物理学来的。自己的斧头,概念地图或者说系统图示法。自己的木头,没有。或者说,别人家的木头都是自己家的。

物理学的木头大部分时候是自己家的,有的时候也是别人家的。

数学没有木头,只有木头带来的启发。心法也是自己家的,不是物理学的。不过,有的地方和物理学的心法很有关系。

系统科学的特点:学科融合,从具体系统到一般思想和方法以及反过来,从个体到整体,到直接到间接。

心法的具体内容:

什么是科学

来自于观察和实验的数据决定一切,构造能够解释更多现象的心智模型确实是理论建设和学科发展的目标,但是能够解释数据才是最根本的。心智模型最好是可以理解的,但不是必须的。更多的相容的心智模型构成一个理论。整理出来最基本的基础,从逻辑上演绎出来其他结果,是一个理论的框架结构。

相互作用的核心地位

事物之间的联系使得世界丰富多彩,使得深入的研究成为可能。相互作用有各种体现,需要各种各样的(又相互协调一致的)研究方法。有了系统的个体之间的相互作用,从个体到整体从直接到间接的心法才有了用武之地。

斧子有哪些

矢量算符的概念和矩阵分析、无穷小的概念和微分方程、概率论和随机过程、统计学

其他的斧子:概念地图和理解型学习

砍木头的例子

物理学(用数学的斧子看物理学家的木头,当做我们系统科学的例子):力学,统计力学,量子力学,额外的心法:用统一的理论形式来描述丰富的现象。在这一部分砍木头的例子里面当然,也有一些需要学习和理解,甚至会用的斧子(物理学的概念和一些分析计算方法,例如相变、关联函数、熵、Monte Carlo方法等等),更有运用这些斧子的心法的具体体现。

其他的例子:广义投入产出分析(汉字、科学学、经济产业、交通、灾害风险、国际贸易、食物链、金融、金融和经济)、待补充

这就是科学啊

最近在和小勇还有汪明他们在合作一个交通网络重要道路和节点的度量的项目。我们需要提供一个去掉一段道路或者一个节点以后的某种损失的度量。他们拿到这个度量以后会结合地质或者其他灾害发生的几率,来衡量风险。

当然,直接的度量,就是考虑每一段道路或者节点目前的流量。不过,由于其不再能够承担这些流量,其他的节点和道路上的流量还需要做相应的调整,因此,不能仅仅考虑直接流量。那么,如何来度量这个直接加上间接的流量效益呢?

最关键的就是这样的流量损失会重分配或者说传播。这是讨论这个问题的第一个关键点:传播,或者说直接到间接。

第二个思路上的关键点是假想地去掉一个(或者多个)单元的思想——Hypothetical Extraction Method (HEM)。

有了这两个思想和看问题的角度,我们可以考虑如下具体的算法:

  1. 用最短距离重分配,维持外界对系统的总需求不变的情况下,对比各个路段和节点的新流量和旧流量。
  2. 用PageRank算法来看看,去掉路段或者顶点之后,对比PageRank矩阵的本征矢量。这样做有间接效益,但是,意义不明确。
  3. 用投入产出分析加上HEM。这么多方法,用哪一个呢?
    1. 传统投入产出+HEM。数据本身只有道路系统和流量,没有外界。这个简单,把每个节点的总输出看做一个叫做“社会”的外界传播过来的流量,把每个节点的总接收到的投入看做一个叫做“社会”的外界从系统里面取走的流量。因此,这个HEM描述的是在外界和系统的关系不发生改变的情况下,去掉一个节点或者一段道路,系统的应对。
    2. 目标外界HEM。按照
      \begin{align}
      X = \left(1-F^{\left(-k\right)}\right)Y^{\left(k\right)},
      \end{align}
      当\(Y^{\left(k\right)} = x^{k}_{j}\)的时候,计算出来的\(X\)就是\(x^{k}_{j}\)在系统里面传播的效果。于是,\(\sum_{ij}\left(1-F^{\left(-k\right)}\right)_{ij}x^{k}_{j}\)就体现了\(x^{k}_{j}\)的乘数效应。于是,正好就能够用来度量路段\(kj\)的重要性。

    3. 本征向量HEM。一个投入产出矩阵的最大本征值对应的本征向量代表了这个生产系统的最优投入结构——每一个部门最好就需求这么多或者供给这么多。在交通问题里面,这就代表最好每一个节点上的总进或者出的客流的最有配比。当然,实际客流的结构不一定就是这个最有客流的结构。于是,这里相当于,仅仅从道路结构还有目前的客流分配方式来考虑,去掉一个节点或者一段道路前后,这个最优配比的变化。

除了描述单一路段或者单一节点的影响力,我们还可以考虑同时去掉两个路段或者节点的影响力的问题,以及这样的影响力和两者分开去掉的影响力之和的对比。很有可能,我们能够看到干涉效益——两者之和不等于同时去掉两者的效益。更进一步,这样的干涉效益,是不能通过仅仅考察直接流量来反应的,是我们这个方法特有的。

能够找到一个问题,同时三种方法都可以自然地用上,也是不容易的。这三个计算分析分别反应了道路和节点不同意义上的重要性。

除了这个具体工作,通过这个工作,我们还发现:

  1. 传播很重要(PageRank或者投入产出或者更一般的流平衡分析)
  2. 去掉一个点或者边来讨论重要性有意义
  3. 去掉两个点或者边可以反映更深刻的干涉效益。

这些是具有一般意义的。要把它们在各种系统里面实现,来解决具体系统的问题。从具体问题到一般方法,再到更一般的视角或者思想,然后回到更多方法,更多具体系统。这就是科学啊。

原则上,广义投入产出研究的四个方法——开放系统矩阵逆、封闭系统右本征向量HEM、封闭系统左本征向量HEM(也就是PageRank和PageRank HEM)和封闭系统目标外界HEM,按照所面对的系统是开放的还是封闭的,只能采取相应的方法。

但是,通过下面的手续(这个手续受这个交通系统的具体工作的启发),无论面对的系统是封闭还是开放系统,这四个分析方法完全都可以使用了。如果是开放系统,通过补充上那个作为外界的系统的数据,就成了封闭系统了。如果是封闭系统,通过加入一个假想的“外界”——把每一个节点到其他节点的出流当做从“外界”传过来的,把每个节点接受其他节点的入流当做到“外界”中去。这样系统就成了一个处处守恒的系统了。然后,把这个“外界”当做开放系统分析方法中的外界,就可以把这个封闭系统改造成开放系统来做后续分析了。

单个顶点,多顶点的传播能力

早上在思考汉字学习和检测的问题,从认得和不认得(初始状态是未知)的两个状态的传播问题,联系到一个状态——也就是传染病——的传播问题。当然,其实,两个状态的传播问题也可以看作是两种相互促进或者阻碍的疾病的传播问题。

从这个角度来说,选择顶点的问题相当于识别这样的问题中的高影响力传播顶点。考察这样的顶点的一种方式是让传染病从这个顶点开始传播,然后计算传播范围(或者速度)。除了这个通过现象来考察的办法,是否还存在着几何度量——通过对网络结构做一番计算就能够给出来这样的顶点?例如度或者其他中心性,甚至最小支配集等。

从支配集的角度来说,相当于提出了一个多层网络上的双支配集问题,以及支配集在渗流和传染病中的意义的问题。

从实际过程的角度来计算传播能力还可以考虑:网络中一对顶点的传染能力(也就是把这一对当做初始感染者),以及和单个顶点传染能力的对比。汉字学习和检测的模型,也可以看做好多初始传染者的模型。找到这样的特殊对,和hem一样,就表示隐藏关联。还可以讨论这样识别出来的对和顶点,是否,很大程度上依赖具体的传染病。如果不是,就表明有找到几何度量的可能。

参考文献:

  1. A measure of individual role in collective dynamics
  2. Understanding the influence of all nodes in a network
  3. Predicting epidemic outbreak from individual features of the spreaders