计算还是记忆?这个抽象的问题容我用两个例子来展开,我们都学过动态规划,用动态规划的方法可以将指数的复杂度降低到多项式的复杂度,例如求斐波那契数,其中一个重要的方法就是把子计算(子结构,也有叫子问题)的计算结果存储下来,遇到想同的计算直接查表获得,而不需重复计算。另外在举个通俗的例子,我考研的时候有一个朋友,数学特别好,脑子好使,我数学不行,最后我们数学的考试成绩差不多,究其原因,他靠的是智力,举一反三的能力强,只做了很少的题目。而我悟性不够,但做了很多题,靠见多识广,靠记忆也获得了相同的能力,至少从考试结果上看。
记得我曾经归纳过搜索引擎快的其中一个原因是precomputing(可能翻译作预计算),搜索引擎把大量的计算过程通过Precomputing的方式提前计算,将计算结果进行存储,在需要计算的时候(用户发生query的时候),通过对这些precomputing的结果进行提取来减少计算时间。因此可以说搜索引擎有一个很大的memory,记忆了大量的数据,所以获得了无以伦比的智能,至少看上去是这样。
我说的考研数学的例子,我采用的是大样本学习的方法,通过大规模样本来训练,训练的极致就是只需要记住这些过程和结果,就可以表面上获得很高的智能,而我的朋友采用的是小样本学习的方法,通过小规模样本,基本理论的学习,加之高级的智能,推理能力,也获得了很高的智能,但智能表现的结果是一样的。
前几天计算机系的张拔院士给我们做了一个报告,在图像识别的过程中,要想识别一个图片中含有的物体,需要解决where和what的问题,但是是先识别还是先定位是一个先鸡先蛋问题,如果不能识别画中的是一个老虎,就没法定位(框出物体的轮廓线),如果无法定位,就无法识别画中的是一个老虎,于是人工智能采用了存储大量的图片库,用检索的办法来代替识别,用这幅画去和海量带tag的图片进行比对,如果50%的相似图片标记的tag是老虎,这这个图片的内容是老虎的可能性就会很大。可以想见这个计算机采用了类似我学数学的方法,通过记忆来获得只能,将未知的新的问题和已知已记忆的问题进行联想对比来找到答案。
关于记忆和计算问题,我还在思考,例如从哪些角度去考虑平衡记忆和计算的界限,成本,能力还是什么?
分享到:
相关推荐
- **Hiding Memory Transfers**: Utilizing Direct Memory Access (DMA) engines, memory transfers can be overlapped with compute operations, improving overall throughput. Creating separate OpenCL queues ...
It was the platform that I’d been waiting on for a long time: a simple spring based framework with a lot of awesome features such as DataBase caching, Big data acceleration, Streaming and compute/...
CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model) Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: ...
CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model) Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: ...
Compute whether or not an unsigned number is a power of two Chapter 4. Set the i-th bit Chapter 5. Unset the i-th bit Chapter 6. Toggle the i-th bit Chapter 7. Given an unsigned number with only one ...
- Documentation has been added for Compute Capability 8.0, which introduces new features such as improved tensor core support and enhanced memory management capabilities. 6. **Warp Reduce Functions*...
CUDA (Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) model created by NVIDIA. It allows software developers and software engineers to...
`cudaMallocPitch` is similar to `cudaMalloc`, but it also returns the pitch (or stride) of the allocated memory, which is necessary for efficient 2D memory access. This function is particularly useful...
(1 or more file names), or or (MSDOS): dir/b | PAQ6 -3 archive (read file names from input) or (UNIX): ls | PAQ6 -3 archive To decompress: PAQ6 archive (no option) To list contents: more ...
Memory. Don't even think of trying to factor 512 bit numbers for example.. RSA-Tool 2 Features: - Secure keypair generation - Key test dialog - Support of multiple number bases - Auto base-...
**CUDA (Compute Unified Device Architecture)** is a parallel computing platform and programming model created by NVIDIA that allows developers to harness the power of Graphics Processing Units (GPUs) ...
Cloud Compute (Cisco UCS) Cloud Networking (DC network architectures, infrastructure virtualization) Cloud Storage basics (provisioning, access, concepts, devices, infrastructures) CCNA Cloud CLDFND ...
Controller nodes are high-availabile and easily scale-out based on Pacemaker+Corosync+HAproxy, with large compute+storage nodes, splitted by multiple regions, and each region was further splitted ...
- **Stateless Intermediate Operations**: These operations do not require information about previous elements in the stream to compute the current element. #### Performance Analysis of Streams When ...
CUDA (Compute Unified Device Architecture) 是 NVIDIA 提供的一种并行计算平台和编程模型,主要用于加速高性能计算任务,特别是在图形处理和科学计算领域。BMM,全称 Batched Matrix Multiplication,是 CUDA 中...
- Super FAST w/ low memory footprint: doesn't require any post-process, command buffers, nor compute shaders: works great even on low-performance platforms such as Mobiles and WebGL. - Procedural ...
This makes it easy to use the tools on machines with limited memory (but enough disk space) as well as computer clusters (from a terminal). In addition, the interactive tools can optionally write the...
On a qualified select, update, or delete, the correct leaf page will be the lowest page of the tree in which one or more rows with the specified key or keys reside. A qualified operation is one that ...
The Division Instructions: DIV, IDIV, and AAD 6.6 - Logical, Shift, Rotate and Bit Instructions 6.6.1 - The Logical Instructions: AND, OR, XOR, and NOT 6.6.2 - The Shift Instructions: SHL/...