科普一下冯诺依曼型计算机背后原理以及码工

niuheliang
楼主 (未名空间)

首先,计算机科学里也是到处是坑,除了码农方向,其它任何方向都不比生化环材的坑浅。这里讨论的是基于图灵机计算模型的离散的冯诺依曼体系架构。新兴的机器学习、量子计算和生物计算不在此列。

根据最高等级数学(图灵机理论),存在(可以构造)一通用图灵机模拟/计算所有可
计算问题。有点绕循环定义。作为拿着锤子的工程师,我们只关心钉子问题。只有科学家才没事干去找茬。接受无论什么模型都有其不能解决的问题就行。

而这一通用图灵机模拟具体问题所使用的针对这个问题的输入,就是我们现在说的软件。早期一点,这个输入被称为代码。当时这个代码也像图灵设想的一样,在纸带上打孔输入通用计算机。现在已经不这么做。但本质还是一样的。

让我们讨论一下这个代码的本质。首先,它是我们要解决的问题映射在通用图灵机的空间里的对应。无论在通用图灵机里还是在现代计算机里的可执行文件,它是一个离散的巨大的整数。如何寻找这个整数解有不同的办法,如哥德尔和图灵为不可判定问题构造了一个解。把这个整数解具体算出来,就叫做编码,而编码的人,就叫做码农。

第一,可以想象这个数(解)相当巨大。想象一下1 GB可执行文件是个80亿位二进制数。天文数字与之相比也无限接近于零。因此可以想象为什么我们需要如此之多极其天才的码工职位。

第二,这只是(实空间甚至于更高空间在整数空间里的)一个近似解。而近似,就意味着总有不对的地方(bug)。对于用户上万上亿交互的应用长时间下来,这些量子力学
数字般小的可能也会不可容忍地被暴露出来。所以只要系统够复杂,bug是近似体制上
对码工的职业保障。

以上亮点就是为什么码工职位需求大,吃香,有保障的原因。因为时间是码工的朋友。人类社会即使停滞,冯诺依曼型计算机系统随着时间运行延长,积累熵越多,其复杂度也越来越大,终将超越其原来的近似解需要重新找更接近解(修bug/重写)。

机器学习本质上是一个如何寻找这一解的不同尝试。还有很多不同的尝试。至于牛和羊(多年前)的暗黑小尝试是啥。就不说了留给牛娃。说多了会被人肉。

EIonMusk

你这个解释感觉好多地方都不对,似是而非。

niuheliang

灌水将就着看。

真要在军版怼牛和羊之前先穿好抓紧底裤。

【 在 EIonMusk (马跃亭) 的大作中提到: 】
: 你这个解释感觉好多地方都不对,似是而非。

tfusion

不知所云,不懂装懂

半路出家的就是不行。建议最好回炉重学一下。
niuheliang

说开了,再评论一下另外两种常见的模型。

第一,就是毛子最爱,数字逻辑与非门电路。门电路执行效率高。但编程复杂。也就是说找出门电路对应的巨大整数方法复杂。没有一种固定简单的算法能够实现巨大的真值表并优化简化门电路。所以苏联灭亡了。

第二,就是拿大的神经网络。神经网络本质上也可以用一个巨大的整数(代码)表达。神经网络的编程和冯诺依曼机不一样。可以看作每一次迭代确定/修改多少位的代码。
这比门电路要好,执行效率和门电路相当。

需要指出的是,现存的一般意义上的编程,门电路乃至神经网络,都是不精确近似。如果是模拟自然(实数或更高的空间),近似没有什么大问题。但是如果问题本身是确定的,应该使用基于一一对应的构造的方法(如编译器)。

【 在 niuheliang (别问我是谁) 的大作中提到: 】
: 让我们讨论一下这个代码的本质。首先,它是我们要解决的问题映射在通用图灵机的空

c
coltzhao

你这就胡吹大气了,学了计算理论么?

现在人类的计算机有啥不是图灵机等价.而且图灵机也没啥高级,一般通用语言都是,
连Scala的type都可以做到turing complete.

【 在 niuheliang(别问我是谁) 的大作中提到: 】

: 说开了,再评论一下另外两种常见的模型。

: 第一,就是毛子最爱,数字逻辑与非门电路。门电路执行效率高。但编程复杂。也就是

: 说找出门电路对应的巨大整数方法复杂。没有一种固定简单的算法能够实现巨大的真值

: 表并优化简化门电路。所以苏联灭亡了。

: 第二,就是拿大的神经网络。神经网络本质上也可以用一个巨大的整数(代码)表达。

: 神经网络的编程和冯诺依曼机不一样。可以看作每一次迭代确定/修改多少位的
代码。

: 这比门电路要好,执行效率和门电路相当。

: 需要指出的是,现存的一般意义上的编程,门电路乃至神经网络,都是不精确近似。如

: 果是模拟自然(实数或更高的空间),近似没有什么大问题。但是如果问题本身是确定

: 的,应该使用基于一一对应的构造的方法(如编译器)。

TheMatrix

你说的这些对不对另说(因为你说的不清不楚,不好说对不对),但是我感觉这不是计算机,程序,等的重点。就好像哥德尔定理,知道了就行了,真正的问题并不在这。

【 在 niuheliang (别问我是谁) 的大作中提到: 】
: 首先,计算机科学里也是到处是坑,除了码农方向,其它任何方向都不比生化环材的坑
: 浅。这里讨论的是基于图灵机计算模型的离散的冯诺依曼体系架构。新兴的机器学习、
: 量子计算和生物计算不在此列。
: 根据最高等级数学(图灵机理论),存在(可以构造)一通用图灵机模拟/计算所有可
: 计算问题。有点绕循环定义。作为拿着锤子的工程师,我们只关心钉子问题。只有科学
: 家才没事干去找茬。接受无论什么模型都有其不能解决的问题就行。
: 而这一通用图灵机模拟具体问题所使用的针对这个问题的输入,就是我们现在说的软件
: 。早期一点,这个输入被称为代码。当时这个代码也像图灵设想的一样,在纸带上打孔
: 输入通用计算机。现在已经不这么做。但本质还是一样的。
: 让我们讨论一下这个代码的本质。首先,它是我们要解决的问题映射在通用图灵机的空
: ...................

niuheliang

很多人不理解这些有啥用。大多数码工也不知道自己每天在干啥。码工常见的需求是完成一个功能。至于功能最终能否实现,雇主会不会破产,根本不是他们会去关心的问题。

而对企业、乃至国家而言,更重要的问题是,实现一个系统具体有多少工作,需要多少工作量,需要雇佣多少码工,支付多少开发维护成本,然后是有没有经济价值能否赚钱。

更进一步是,这些工作能否自动化,能否减少码工的数量。或者说,码工这个行业有多少前途,有多少远景,码工工作有何价值,码工应该有多少信心。都和这些小东西有关。

【 在 niuheliang (别问我是谁) 的大作中提到: 】
: 说开了,再评论一下另外两种常见的模型。