X君和T君关于通用学习机的对话 -2

东方欲晓

X君和T君是老朋友。X君是数学家,对通用学习机比较有心得。T君是物理学家,资深程序员,软件专家。前几天,他们在纽约城谈了通用学习机。今天他们再次碰面,又坐下来继续谈通用学习机。

T:我们前次的谈话发表了,我看效果很好啊。

X:是的,效果很好。所以我们今天继续谈,谈得更深入一些。我们前次是在什么地方停住的?

T:我们谈了通用学习机的表征空间和先验知识,但是还没有谈到其细节。

X:好的。我们今天可以谈到更多细节了。那么,我们先回顾一下这3个事情:通用学习机,表征空间,和先验知识。

T:我来说吧,看看我的理解怎样了。通用学习机就是一种系统,其内部有表征空间,还有先验知识,这两者的合理安排就可以使得这个系统具备从数据中学习的能力,通用就是指可以学习任何图式。你看这样讲好吗?

X:很好。的确如此。但是,根据前次谈话发表后的反馈看,很多人对这些概念的认识往往有一些偏差。我们这次谈谈表征空间和先验知识的细节,可以帮助纠正一些。

T:我们先谈表征空间吧。对其重要性,我还是有些含混。《究竟深度学习在干什么?》这篇文章说深度学习模型没有好的表征空间,但是它也可以学习。那么,表征空间的重要性又表现在什么地方呢?

X:深度学习不是没有表征空间,是有的,其实任何可以学习的机器,都必然有表征空间。问题是,深度学习的表征空间是非常隐含的,也是非常低效的。通用学习机将采用更好的办法来实现其表征空间,这样就不再是隐含的,而是自觉的,不再是低效的,而是高效的。这样的高效表征空间当然有利于学习。

T:是否做一些更细致的解释?

X:好。我们就来详细说说。首先,任何可以学习的机器必然在其内部有外部的表征空间,肯定有,不同的仅是这个表征空间怎么运行的。这件事情有严格的数学证明。深度学习的确有表征空间,在那篇文章《究竟深度学习在干什么?》里面也讲得很清楚,一个深度学习模型的表征空间在这个模型搭建好的时候,就给定了,而且,这个表征空间非常的低效,因为它是嵌入在一个非常高维的欧式空间里面的,这样就使得它的行为不可解释。所以表征空间非常重要,是优秀的学习机的根本。

T:理解。能不能这样说,学习机内部的表征空间就是用于反射外部输入数据的一种东西,可能是高效的,也可能低效,可能是可察觉的,也可能是难以检查的。而深度学习和通用学习机在表征空间上有重大区别,通用学习机的高效正因为此。

X:你说的非常好,的确如此。

T:那就请你说得更细一些。

X:好的。那我就用比较简明的说说我们的理论工作。学习机可以处理外部输入信息,如我们前次讲到的100x100的bitmap,在输入进学习机后,机器内部就会处理这个信息,并且产生相应的输出。这个没有问题吧?

T:这个明确。从输入而产生输出,其内部一定有特定的逻辑机制。

X:正是如此。这样的一个具体的逻辑机制,就形成了一个具体的表征,如果用我们的术语,那就是X-形式。而所有这样的表征的集合,就成为表征空间。

T:我看了一下你们的文章,我知道X-形式是一个逻辑关系式。

X:是的。但是,关键地方来了。具体是怎么实现X-形式的?这就是关键。实现得好,就高效,实现得差,就低效。再次说到深度学习,它内部也有X-形式,但是却是用一种非常低效的方式加以实现的。

T:我清楚这点。深度学习的实现方式高度依赖于线性代数的点积,那样就决定了其低效。你们的通用学习机是怎样具体实现X-形式的呢?

X:问得好。我们发明了一种具体方式来实现,并且申请了专利。可以查看中国专利申请号:201710298481.2。可以简要说明,即我们的实现方式很直接,就是直接实现X-形式的最简数学形式。这样有很多好处的。我们正在编程来使得这种方式运行起来。这些编程涉及非常高的技巧,很具挑战性,可以这样讲,读不好Knuth的书的人,无法应对这些挑战。我们欢迎编程高手加盟我们。

T:哇,Knuth。我知道难度了。但是应该不止一种实现方法吧?

X:肯定的,一定有多种实现方式,而且很可能需要不同的实现方式以适应不同的需求。欢迎大家一起来发明。

T:你们的实现方式是软件的,对吗?可以用硬件的方式来做吗?

X:我们现在是在做软件的。但是,我们也在具体思考怎么做成硬件的。你是物理学家,欢迎来参与这些研究。我认为,以后一定会有硬件的通用学习机出现,那样功耗就将极大降低。现在还不清楚,但是,我有一种预感,通用学习机的硬件实现,很可能是和通用图灵机相反的,功耗将降低很多数量级。当然,目前说不清楚,仅是预感。

T:喔!······ 我对这个比较有兴趣。我们已经谈了不少了,本来还想继续问你先验知识,但是你提到了图灵机,我们就换个话题。我比较好奇,想知道通用学习机和图灵机的关系。

X:其实这个关系很清晰,两句话就可以说清楚:其一:通用学习机可以用一个图灵机来实现,其二:给定一个图灵机,我们可以组建一个通用学习机和配备一组数据,当这个学习机学习了这组数据后,就具备了这个图灵机的功能。

T:第一句话不用说,你的学习机就是一个程序,当然可以用图灵机来实现。这个第二,就有些意思了。就是说,我要一个程序,你可以找一个学习机和一组数据,然后喂这些数据到学习机里面,砰,这个程序就有了。编程呢?就不用了啊!

X:的确如此。当然,现在还做不到这点。还需要很多工作才行。但是,我可以很清晰预见,这就是即将到来的未来。未来没有了编程,仅有教学或者数据。当然最底层的编程,最核心的编程肯定还是有的,但是那是限于一些最高手。其实,现在的那几家大公司的内部,这种依赖数据的局面已经形成了。程序员的工作将巨变。

T:我也有这种预感。这就是Paradigm Shift。中文叫什么来着?

X:范式转换。的确我们面临巨大的范式转换,伟大的范式转换。我们应该欢迎!

T:嗯,······,这样的范式转换的确非常巨大。举例来说,现在的Boston Dynamics的机器人,就是可以空心后翻的那个机器人,里面的程序是人工编程的。非常巨大的工作量。范式转换后,那就容易太多了。不得了!

X:所以我们才要来做工作嘛,嘿嘿。

T:不过,你说到,给一个程序,就可以找到学习机和数据,来搞定这个程序。我想应该是对的,但是我感到有太多问题在里面。

X:你的感觉很对呢。不错,这其实是很深的问题。我们现在只能泛泛的说可以找到学习机和数据。但是,如果要加以深究,绝对不简单。这就是《机器认识论》这样一个大题目。我们必须要再找时间谈。

T:好!今天就谈到这里。嘿嘿,《机器认识论》,我喜欢,哲学啊!