回想起80年代初读研时用的计算机,真的是很原始。就没正经的操作系统,被称作手编十三行的操作指令都是在面板乒乓开关上输入的。没有屏幕,输出靠“行打”;没有现代键盘,输入靠“纸带机”;
但体系结构依旧是“冯诺依曼”的,到今天都没变,牛人的远见可见一斑。
三体里有个场面十分震撼,几十万秦军做成了一个“人肉计算机”。也就是说三个人一组的“与非”逻辑,理论上也能实现所谓的“图灵机”模型。也就构成了通用计算机,它说明,局部的基础逻辑是关键,反复迭代(秦军算阵),居然能用于解决一般性的问题。
图灵机本质上还是一种自动化的机械操作。那么完成深度学习的神经网络还是机械操作吗?如果是,那量子计算还是吗?本文就说说自己在计算技术发展中看到的一种趋势,也许只能算自己的一种感悟:“算力提升引发的变化,一个是从局部领域知识到更普适的通用算法,二是从空间并行到时空并行。”
早期计算机的“算力不足”,就需要在问题空间中,尽可能地利用“领域知识”缩小解空间的范围。比如机器翻译的研发就请了很多语言学家参与。直到谷歌的罗塞塔出来后,人们发现依靠强大的算力,纯统计学习的算法大大优于基于领域知识的算法。
随着机器算力的进一步提高,深度学习的算法再次把神经网络置于聚光灯下。GPU(也包括TPU)替代了CPU,成为深度学习的核心部件。GPU本质上是一种SIMD(单指令流多数据流)架构,并行性大幅提高。深度学习在AI领域也更加通用,自身都成为一种平台。
它最出风头的当属阿尔法狗与李世石的人机大战。谷歌几千台机器参与了这次战役,因为围棋的解空间实在是太大了。
那么什么是解空间呢?可以理解为所有可能答案的一种规范化组织。数学上常常用有限维(甚至无限维)向量表示的空间。我们生活的空间只有三维,而解空间非常抽象,每个自由度都能展开一个维度。
量子计算的解空间是希尔伯特空间,理论上可以是无限维的。而N个量子比特的实际系统构成的是一个2^N维复空间。能同时处理(平行计算)2^N个N位二进制数。所有的可能性被量子门(酉算子)同时变换,这实际是对所有可能态的平行计算。
经典的N个比特只能构成N维的二进空间,同一时间只能处理一个N位二进制数。粗略说,经典计算的状态与牛顿力学的“点粒子”对应,而量子计算的状态与量子力学的“波函数”对应。每个波函数都可以占据全空间,每一种可能性都分派了一个概率值。
然而,制作初态和对结果的统计测量依旧需要图中那样连接经典计算机。
谷歌和IBM采用的超导比特电路是在几百豪K级的低温下进行的。我在网上截了些图,可以说要确保计算过程不会退相干,相当困难。甚至要有更多的量子比特参与容错。
我要说明的是两个趋势:一个是有了更强的算力后,就容许我们把求解放入更大的解空间来考虑,因而算法趋于更通用,更全局。二一个是并行性已经不限于空间并行,而是从“叠加态”上也获得了“超级并行处理”的能力。计算瓶颈已转移到了经典和量子两类计算的接口处。
注:配图来自网络
网友评论