粉丝390.6万获赞3964.9万


b 岛,你讲的太落后了!没错,这就是我曾经当面对 b 岛说的话,而 b 岛不仅没有生气,反而在听完我的讲解后,请我吃了火锅。 事情要回到去年八月份,必到大号回归更新啊,发表了讲解 subnn 十七的视频,尽管这期视频是播放超过六百万的爆款,但原谅我说一句,他讲的实在是太繁琐太落后了。 哥德尔发现不完美性定理已经九十多年,但几乎所有大学的逻辑学课堂,全都是像 b 岛这样在屏幕上摆公式,然后像紧箍咒一样的讲,证明 原来的论文三十多页,必到就对着公式讲了十几分钟,这对听众的理解能力和专注力要求实在是太高了,大部分人可能除了 subnn 时期什么都不记得。其实啊,不完美性定理和自我只是这两 话题是我们摇班学习的核心专业课计算理论的内容啊。大家可能想不到,想要理解数学里为什么有一个不能证明真假的命题,最深刻最便捷的路却既不是数学,也不是逻辑学,而是计算机科学, 而且还跟另一个伟人图灵有关,在必倒跳过美奖的可判定性里,有着对整个悖论体系深刻的认识。可以这么说,只要你理解了可判定性问题,根本不需要那么多公式,只需要三句话就能证明不完备性,也就是 subnn 时期。 当时啊,我就告诉了 b 岛这些知识的存在,他非常感兴趣,很想找我问个明白,为此呢,还非常主动的请我吃了一顿火锅。你看,这是我们吃火锅的合影,你再看看 b 岛,笑的多开心呢! 今天我会用这期视频带大家从计算机和人工智能的起点图灵机出发,带你领略不可判定性的神奇。为什么判断程序会不会结束,会比解决咯德巴克猜想都要难? 而透过可判定性,你会发现数学、哲学、逻辑学、计算机科学都神奇的交汇,而焦点正是那个神奇的自我指射。准备好踏上这趟思维和智慧的旅程了吗?让我们上车, 让我们首先从这么一个问题开始说起,人究竟是如何思考和计算的呢?这说起来是一个非常复杂的生物学问题啊。八十年前,人工智能的鼻祖阿兰图林就一直在苦苦思索这个问题,他想要将人类创 功效而且复杂的智能和思考计算浓缩成一个数学的模型。这个模型啊,可以完全按照一个清晰的规则,像一台精密的机械仪器一样运转,完成不可思议的计算任务。 而他最终找到的这个结果就是大名鼎鼎的图零机。图零机主要有三个部分,纸袋、表头和操作规则。首先呢,是纸袋,他被分成一系列的小格子,每个格子上都有一个符号,比如说零或者一,而且两端无限长。 除了纸袋以外,图零机还有一个表头,他可以在纸袋上移动,并且可以读取当前格子上的符号,或者写入一个新的符号。图零机的表头在任何时候都会处于某一个特定的状态,我们用不同的字母来表示, 你可能会觉得很抽象,哎,为什么图灵机非要定义成这个样子呢?这些设计看起来莫名其妙的,但其实啊,这来自于图灵自己深刻的理解。纸袋象征的是一种外界的存储,比如说草稿纸,而那个表头则是你的大脑。 图灵机有内部的状态,正如人的大脑有思维和记忆,图灵呢,用一系列理想的字母和符号加以区分, 图灵机是这样概括、思考和计算的,根据大脑的状态和纸上的信息,在纸上写下新的符号,同时大脑内部的思维状态也会切换到另一个新的状态, 接着注意力会移动到草稿纸,也就是纸带相邻地方。在不知道规则的人看来,这个表头在乱七八糟的移动,但给定一个内部状态和纸带上具 体独到的信息,后续的变化遵循一个确定的规则。比如说现在的规则就是,如果状态是 d, 同时读入的内容是零,那么就状态变成 a, 写下一个一,同时整个表头向右移动一位,把所有这些写在右上角的一张表里,就是操作规则了。 它的每一列表示图零机所处的某一个状态,而它包含两行,分别只是这个图零机表头所在的格子,如果是零或者一的时候,分别该做什么做什么呢?包含三个要素,分别是在这一格写下什么表头,变成什么新状态,以及下一步往哪里走。 值得一提的是哈,图灵机还有个特殊的状态, hot, 叫做停机,一般继承字母 h, 意思是整个图灵机停止运行。怎么样?是不是听起来很像一个程序?事实上,这就 是计算机如何运行程序最本质的刻画,不断的重复这个流程,图灵机就运行起来了,而这也正是图灵对人类思维、计算和智能最为深刻的建模理解。 有关屠灵鸡有一个非常重要的问题,那就是这个世界上真的有屠灵鸡吗?答案是有,也没有 说没有,是因为图灵机只是一种抽象的计算模型,他的目的是为了理解计算的本质和能力的极限,就像真空的球形机一样,在现实世界里制造他既不现实,也根本没必要。不说别的,你上哪找一根无限长的纸袋呢? 但我说这个世界上有图令机,是因为我们今天所使用的一切电子产品,无论是手机还是电脑,是卫星还是人工 智能,他们在硬件的本质上都等价于一个无比复杂和精巧的图零机模拟器。而人类今天使用的所有程序语言,无论是 java、 c 加加还是 python, 他们在本质上都是以不同的方式在描述着图零机的操作规则的这张表。 因此,只要一个语言能够以某种方式来模拟这个看起来很简陋的表头纸袋,让他可以执行任意的操作规则,那么这个语言就被称作图令完备。 比如说 minecraft, 红石电路里可以实现雨或飞以及计算器,那么他就是图灵玩贝的,所以就有大神可以在红石里面搭 cpu 计算机,甚至在 minecraft 里玩 minecraft。 那么既然图灵机是现在所有计算机的源头,无论是操作系统 chat、 gbt 还是 三 a 大作的游戏,本质上都只是一个超大的图灵机而已。那么如此强大的图灵机是不是真的无所不能呢? 图令机看起来很强大,但他有的时候呢,也会很傻,经常出一些奇怪的 bug, 这其中呢,有一种程序员很熟悉的 bug, 那就是程序一直在运行,永远也停不下来。比如说像图中的这个图令机,他现在就在左右横跳,从 a 到 b, 从 b 到 a, 但是永远都停不下来。 我们称这种情况为死循环。那么问题来了,我们能不能在实际运行一个代码之前,或者说跑起一个图灵机之前,只看他初始的状态、纸条和操作规则,就有办法预判他会不会死循环,还是会提 下来的。乍一看,这个问题好像不算太难,对吧?但是他却是一个经典的不可判定问题。换颜值,人类没有办法去判断一段代码会不会停下来, 这乍一听,非常反直觉,对吧?判断一个图灵机会不会停下来有什么难的?你看哈,我只要一直盯着这个图灵机,等他停下来,如果我等的太久,或者看到他一直在那打转,那估计就是停不下来了。哎,这样不就行了吗? 嗯,我们确实可以用这种方式来识别出一些简单的程序会不会停下来,但问题在于,这些例子都太特殊了。对于一般意义下,任何一个图令机判断他会不会停下来,难如登天。接下来,我会给大家举一些例子,他们的规则看起来都非常简单,但你很 难想象如此简单的规则能出现多么复杂和难以判断的情况。首先为大家介绍的是一只蚂蚁,他用 lantern 提出叫做 lantern 的蚂蚁,初始时,蚂蚁位于一张无限大空白布的某个方格里, 规则是这样的,如果蚂蚁在白色方格上,那么就把这个方格变成黑色,左转九十度,再前进一个。 如果现在蚂蚁在黑色方格上,那么就把这一格变成白色,右转九十度,前进一格。哎,就循环往复,重复着这个规则。像这个动画里这样,你看哈,他的规则是如此简单,对吧?是一个在二维平面上跑动的小型图令机, 盯着这只蚂蚁,回答一个问题,你觉得他最后会不会超出屏幕的范围之外呢? 如果会需要多少步呢?事实上,可能让你意想不到的事情是,这只蚂蚁要在埋头乱跑一万多步,画出了一个极其抽象复杂的图像之后,才能最终向屏幕的左下方稳定前进,进入一个循环的状态。 在此之前,你很难判断出他最终的归宿究竟是何方。哎,要知道,这个蚂蚁可只有两个状态,只有两条规则呀。画布也是非常简单的,全白 简单的规则在存储空间上所发生的演变可能极其复杂,而且不可预料。再比如说下面这个图灵机,他除了停机状态之外,只有六个不同的状态,你能看出来他到底是会停下来,还是会无限运行吗? 事实上,你就算盯着他再久,他都不会停下来,但是也不会出现两个完全相同的状态。但如果你以为他就不会停下来,你就错了。 数学证明,这个图灵机会在大于十的十的十的十的十的十的十的一共十五层,十次方布之后才能停下来。 你就算用现在最先进的超级计算机去运行这个程序,一秒钟运行他个几百万亿步,等到他运行结束,也足够整个宇宙毁灭好几回。你觉得还能用瞪眼的方法等到他停止吗?要记得,他可只有六个状态哦。 如果这些例子还是没有打动你,那我还有个办法能帮你感受一下判断图令机是否停下来究竟有多么 困难。为了方便呢,我们后面就直接写代码了哈,不,不去写这个图林机了,因为反正我们知道图林机跟代码都是彼此等价的,那么我们写这样一段代码,他从四开始,每次往后呢,数一个偶数六八十。 对于每一个偶数,我们逐一列举这个偶数所有可能的拆分啊,把它拆成两个数字,并检查这两个数是不是质数。 如果我们发现存在一个偶数,他的所有拆分里都不存在一种拆分,两个数都是质数的话,那我们就停下来,否则呢,我们就去检查下一个偶数,如此循环往复。现在让我们把这个代码刨起来,你还能判断出他会不会停下来吗? 相信聪明的小伙伴已经发现了哈,这段代码跟哥德巴和猜想息息相关,他做的事情无非就是检验 一个又一个的偶数,恩,看看他能不能写成两个质数的和。而这个代码一旦能停下来,就意味着我们找到了一个偶数,恩,他不能写成任何两个质数的和,哎,所以,判断他会不会停,本质上就是问你哥德巴和蔡翔有没有返利啊。 所以这个例子就告诉你,如果你真的有判断任何一个图灵机能不能停机的能力,那么至少你在这个例子里稍微用一下你的能力,就可以轻松秒杀哥德巴和猜想。 事实上,这个程序写成图林机也不复杂,只需要二十七个状态就够了。人类现在已经验证了四乘十的十八次方以内的所有的偶数都还没有找到返利,他到底会不会停机呢?没人知道。不只是哥德巴赫猜想,哈黎曼猜想也可以转化成一个七百四十四个状态的 图零机的停机问题。现在你还觉得判断任何一个图零机是否停机是一件容易的事情吗?到这里,不知道你是否有一些微妙的感觉,为什么说图零机刻画了计算的本质?因为数学里的命题和计算过程都是可以被精确定义的。 那么无论是什么孪生素数猜想,还是三 x 加一冰雹猜想,我们都只需要用图林机不断的寻找返利,那么我们判断这个返利查找机能不能停机,本质上就是同时检验所有的证证书里有没有返利。因为停了就是有返利吗?不停就是没有, 立刻你就能够解决任何一个数学猜想。所以我们甚至可以这么说,解决图灵停机问题比解决人类已知的所有数学命题都更难。而这种证明的方式在理论计算机中非常重要, 叫做归约。也就是说,如果你想说明解决问题 a 非常困难,只需要说明解决 a 的方法可以轻松套一层壳去解决 b 问题,而解决 b 问题是一个众所周知的几乎不可能的任务,那么你就证明了解决 a 是非常困难的。 比如说你的朋友跟你吹牛说他可以预知未来,怎么判断出他在吹牛呢?因为预知未来这个能力可以非常轻松的推出,能够买彩票投奖暴富,那他既然没有暴富,就知道他肯定没有这个能力了。所以话说回来,停机问题是人类找到的第一个不可判定的问题。 所谓不可判定,就是人类用数学严格证明了,不可能有任何方法和算法能够在有限部内判断某一个图令机会不会停机。为什么呢?答案是用反正法。 假设存在这么一个很牛的图零机 m, 他可以判断任何一个输入的图零机能不能停机。那么我们就写一段新的代码,新的图零机 mp, 他是这么工作的,如果他判断出输入的图零机代码会永远执行,那么我们就立刻停下来, 他如果判断输入的那个程序会停下来,那他自己就死循环。接下来最精彩的地方来了,我们给这个 mp 他自己的代码作为输入,他到底该停机还是循环呢? 如果停机,那么根据构造,他就会进入循环,如果循环,那么根据构造,他就会立刻停机。不管怎样都是矛盾的。这个矛盾啊,其实就意味着去判断任何一个图灵机能不能停机,这个问题在根源上就是不 可能通过计算得到的,也就是说他是不可判定的 interesting 啊。这就好比说,歹徒只要拿刀架在任何一个算命的人的脖子上,问他说你会不会死在我的刀下? 算命的说自己会死,歹徒就放过他,说不会死,歹徒就立刻杀了他,那么这个神算子肯定永远都算不对自己的命,所以你就知道这个世界上不可能有人会算命。 好了好了,我相信有很多观众心里在低谷,喂,讲了这么多,说好的三句话证明不完备心定理呢?哎,别急,这就来了,铺垫完了停机问题的内容,接下来就很简单了,请大家看屏幕上的这三句话, 你可能现在还有点晕,别急,接下来我们一一介绍。首先是第一句,可以构造 一个图,零机 k, 给出公里体系里每一个能够判断真假命题的具体证明。必倒之前的视频已经提过了哈,可以把每一个符号编码成一个整数,再用割断尔数的方法,把一长串的符号变成一个超大的整数 啊。你想啊,证明本质上也就是一串符号,所以呢,一段证明本质上也是一个超大的整数。从这个角度上看来,证明或者否定一个命题,本质上就像开一个密码锁。 为什么这么说呢?因为他们的本质都是寻找一个超大的整数,密码锁找的是密码对应的那个整数,而判断一个命题真假,找的是那个证明的格德尔数,他本质上也相当于一个超大号的密码。不仅如此啊,他们的相似还体现在检验答案都很简。 你看密码锁,把密码拨到对应的位置之后,只需要按一下开关就知道对不对。而在公里体系里,把一个哥的耳术翻译回证明的符号,我们也可以轻松的验证他是不是正确的证明。因为验证每一步证明对不对是很简单的,你只需要逐一检查一下他是否符合公里体系的推导就行了。 仔细品味这个比喻,想想我们面对一个不知道密码的密码锁是一般会怎么做呢?哎,没错,就是暴力美举。假如密码锁是六位数,那无非就是从六个零到六个九,一个个试过去。 在公里体系里,我们也可以这么做。任何一个命题我都不管三七二十一,从一开始数数一一试验每个整数翻译出来的证明过程,能不能证明或者否定这个命题啊。当然了,绝大部分翻译过来的证明肯定是胡言乱语,狗屁 普通,但是奴马实价,功在不舍。任何一个证明题只要存在一个答案 n, 那我们这个办法就一定可以在数到 n 的时候发现这个答案,并最终解决这个问题。 这个过程可以用图灵机来代劳。我们把这个开锁图灵机记为 k, k 干的事情呢,就是每次接受一个命题的锁,然后用暴力媒体的方式打开他,找到证明,并且判断出他是真的还是假的。于是呢,就得到了第一句话, 可以构造一个图林 gk, 给公里体系每一个能判断真假的命题一个证明。这个呀,其实是哥德尔更早期的另一个重要结论,叫做哥德尔晚辈性定理。 简单来说,就是只要一个定理可以被证明,我们就一定能够证明。这同时导出另一个结论,那就是一个公理体系至多只会由可数无穷 多个定理,这被称作 one high scotlament serum 乐文海姆斯科伦定理。道理也很简单嘛,因为所有的证明过程和结论都对应于一个整数,那么定理的数量也就不会超过整数,不超过可数无穷多。 这里提醒大家一下哈,在考场上可别学这个 k 图零机,一个一个暴力美举,因为他只是理论上存在可能,实际你用这个方法去做一道考场的证明题,可能一辈子都证明不出来。一句话, 接下来我们来看第二句话,怎么理解他呢?还是回到密码锁的比喻。尽管我们现在有一个大力出奇迹的开锁师傅图林基 k, 但我们也不一定能开任何一把锁回答这个世界上的任何一个数学问题。为什么呢?因为有些锁可能根本就是坏的,没有密码能够打开它。换言之,一个 公里体系可能不够完善,无法给出某些数学问题的证明或者否定。哎,这就是我们的主题完倍性了。那所谓的一个公里体系 f 完倍,说白了就是在 f 里所提出的命题都是能够打开的锁,每个命题要么是真的,要么是假的, 而且他一定有一个有限大的证明密码。那么结合前面这两句话,你发现了什么? 没错,开锁是否 k 的技能是打开任何一个可以打开的锁,而公里体系 f 完备,意味着 f 中的定理全部都是可以打开的锁。 那么合在一起,图林 g k 也就拥有了一个能力,开锁师傅变成了公里体系 f 中的神,他现在可以在有限的时间内回答公里体系 f 所提出的一切数学命题是真是假,而且还能给出证明。注意看,不要眨眼。接下来是最重要的第三句话,一个图灵机会不会停机,本质上也只是 f 公里体写下的一个命题, 为什么呢?我们不妨来仔细看看,当我们说某个图灵机 t 会停机时,究竟在说什么呢? 事实上,它本质上可以转化成这样一个命题,存在一个有限的整数 n 以及 n 部的纸条加表头的历史记录。这个东西啊,它的专业名词叫做格局 configuration, 他的第一步是开始的状态,而最后一步呢,则是停机,每一步到后面相邻一步的过程是符合图令机 t 的操作规则的。所以说啊,一个图令机停机 或者不停机,本身也不过是一个 f 公里体系的命题罢了。这个命题叫做存在一个整数 n 以及一系列的格局 c 一到 cn, 使得开始是初始状态,结束是停机,而中间的每相邻两步都符合这个图令机的操作规则。 哎,那既然这是个锁,我们就可以请我们刚才的开锁师傅 k 过来,现在他可是 f 公里体系中的神,能够打开 f 公里体系当中的任何一个命题,那当然也就包括图灵机 t 会不会停机的这个命题。 但是我们前面已经证明过了呀,不存在任何方法能够判断一个图令机会不会停机,因为停机问题是不可判定的。那开锁是 ok, 他现在总是可以一一的去暴力媒体这个密码去尝试开这个锁呀,问题在哪呢?所以问题 就出现在第二局上,一定有一些锁是打不开的,这就意味着一个公里体系 f 如果想要自洽,他就不可能完备,他一定会有一些锁是打不开的。有些命题是无法证明的,不完备性定理证明完毕, 推理还没有结束,我们设计了一个新的图令机 q, 他在 k 判断命题为真的时候死循环,在 k 判断命题为假的时候停机。然后我们让 q 来判断命题, q 图令机会停机, 当 k 说他是真的时候, q 就会死循环不停机。反之,如果 k 觉得 q 不会停机,那么 q 就会停机,于是怎么样都是矛盾。所以我们就知道了,图铃机 q 会停机是一个不可能被判断真假的命题,而这个命题本质上正是被盗。在视频里花了半个小 是构造出的 some n n 时期。 不知道你是否有一种隐隐的感觉,所有我们看到的这些悖论都有一个共同的特点,那就是自我指射。只需要把矛头指向自己,再让逻辑取个反,无穷无尽的哲学辩论就应运而生。 本质上他们都等价于一个简单的结构。这句话是假话。罗苏倍论里构造了一个集合,包含所有自己不是自己的这些集合,那么他本身到底是不是属于自己,就进退两难, 停进问题中,让图零机的结局和判断另一个图零机的结局相反,然后自己判断自己就爆炸了,等等等等。这种自我直射带来的矛盾,归根结底是因为我们的语言、数学的逻辑,图零 期的计算,他们的数量都没有超越一个整数的范畴,是可数无穷的,所以他们自己都可以变成自己处理的对象。世界上没有绝对的真理,可这句话本身又说的很绝对,所以世界上到底有没有绝对的真理呢?这就是哲学中的二律背法。 老子说,自知者明,自胜者强。所以啊,这个世界上最难看透,也最难战胜的不是别人,正是我们每个人自己的本心和弱点。 这期视频就到此结束了,主页均爆干了上万字稿件和几千行代码,只会把有趣的知识传递给你,如果你觉得有收获,记得三连关注不迷路,你的支持就是对我最大的鼓励。最后提一句哈,这期视频的证明其实有一个漏洞,他就好比这幅图, 拍出这本书的封面,需要一本已经印好的书,可是想要印出这本书,又需要已经拍好的封面。所以,到底是先有这本书,还是先有封面的照片呢? 这就恰如我们证明不可判定性的时候,把自己的代码送进自己作为输入,你不写完这个代码,你不知道该输入什么,可是你如果不把输入写明确,你又没有办法把代码写完, 到底是先有鸡还是先有蛋呢?难道说 up 主这次的证明讲错了吗?嘿嘿,我们之后再详细介绍。慢是沉思路,学海引路不辛苦,我们下期再会。


把衣架套在头上,头会不自觉的向钩子的方向旋转的现象。在科学界微笑的时候,我觉得这道题应该不那么简单,我选择的是头部反应。嗯,答案很简单,就是衣架反射。当把衣架套在头上时,头会不自觉的向钩子的一侧转动, 这是为什么呢?其实,衣架反射现象在学术界早有报道,从二零零八年到二零一八年,哈利猫头实验室整整十年都在研究衣架反射。嗯,衣架钩子的一侧会给左或右前额区域施加压力,导致你向左或向右转头。衣架反射也适用于腰部、手腕和脚踝,大家不妨一起试一试,哈哈哈。

