## CS之旅

### 浅说计算

Turing machine just change the state and shift the tape.
Von Neumann architecture just mixture the instruction and data.

Computer language is generally: instruction + data
Computer program is sequence of instruction +data

Fast computing: parallelism-1, multi-stage pipeline  快速计算并行方案-1，流水线。
Fast computing: parallelism-2, SIMD  快速计算并行方案-2，SIMD。

SIMD = Single Instruction,  Multiple Data  → The key for GPU parallel computing
GPU  = Graphics processing unit (GPU可以快速执行矩阵的操作)

Fast computing: parallelism-3, Multiple core + Heterogeneous computing 快速计算并行方案-3，多核/异构。

The essential nature of computing 计算的本质

I understood it as an equivalent physical concept:
Computing = transformation +comparison
Transformation is generally a SIMD type operation.
Comparison is generally a pipeline tasks.
Various transformation (time/spatial) + comparison  →Heterogeneous computing

Next step computing-1:

There are several fundamental questions to be answered:
(1) When the computing could/must be performed?
(2) What minimum computing is essentially necessary?
(3) What kinds of physics could be further adopted for computing?

Ultra-high-speed computing via fiber optics.

Next step computing-2:

Two all known but often been ignored facts for both the transformation and the comparison: 0到0其实是不用算的，噪声到噪声也不用算。

Generally, before performing computing on multiple data, we don’t know whether they are zero, noise or structural signal.

• Algorithm principle: “Approximate FFT” by Don Coppersmith
• Physical implementation: Quantum computing based on the local coherence (superposition) and natural uncertainty inside a quantum system.
• 计算复杂度从$$N \log N \rightarrow \log N$$。

### 李永乐—机器学习和神经网络

(1) 1950年，图灵提出的一个关于判断机器是否能够思考的著名思想实验，测试某机器是否能表现出与人等价或无法区分的智能。测试的谈话仅限于使用唯一的文本管道。
(2) 1956年，马文明斯基、约翰麦卡锡、香农召开了达特茅斯会议，主要议题是“机器是否能像人类一样思考”，会议上人们发明了一个词“人工智能(AI)”。
(3) 1997年IBM的机器人“深蓝”，人工智能再次复苏。得益于算法的改进，辛顿将反向传播是算法BP引入到AI，杨立昆的卷积神经网络，等等。

实际上影响房价的因素有很多(每一个输入中包含多个数据)，根据不同参数对房价影响的权重不同，我们可以列出：$$y=w_{1} x_{1}+w_{2} x_{2}+\cdots+w_{n} x_{n}+b$$通过一大堆数据，可以找到最优的参数解，这就是“回归”。人工智能另一类重要应用就是“分类”，先让电脑熟悉一大堆猴子的照片，然后下次拿出一张新的猴子或者猫的照片，电脑能够区分是不是猴子。

梯度下降算法训练参数非常类似人的认知过程(皮亚杰认知发展理论)，吃一堑长一智。

(1) 最小二乘法 来龙去脉

(2) 高斯和勒让德的争论
(3) 皮亚杰+认知发展理论+李永乐

BP算法就是说，对于多层神经网络，先调整最后一层的参数，然后调整次最后一层的参数，不断往前倒推，所以这叫作反向传播算法。BP算法以及算力的提升为第三次人工智能发展浪潮提供了基础。

程序员不需要自己去编写算法，利用已写好的算法可以直接实现人工智能。这些写好的算法集成在了人工智能框架中，程序员只需要继续在框架这个工具之上开展工作即可。主流AI框架有谷歌的TensorFlow，亚马逊的SageMaker，微软的CNTK，脸书的PyTorch。在AI时代，拥有框架就像通信行业拥有行业标准一样，会占有全行业基础性的优势。华为的AI框架为MindSpore。

### 李永乐—卷积神经网络-人脸识别啥原理？

1981年诺贝尔生理学或医学奖，科学家把电极插入到猫的脑中，然后给猫看各种各样的图片，研究猫的脑部反应，结果发现大脑中和视觉相关的细胞分为两种，第一种叫作“简单的视觉神经细胞”，特点是某一些线条是比较敏感的，另一类是比较复杂的细胞，不光能对线条产生反应，还能对线条的运动产生反应。于是科学家以此去解释人的眼镜是如何看到物体的。

杨立昆以此发明出一种能够实用的图像识别的算法，称为卷积神经网络，简写为CNN，图像识别中最流行的算法就是卷积神经网络。

计算机实际上是把一幅图转化为一大堆数字，通过训练就知道数字代表什么含义。如果用上节课的方法去训练费时费力，而且一旦图片发生旋转、缩放，计算机就认不出来。但是人眼的效率很高，看过一次汽车和摩托车之后，就能立刻把它们的区别分辨出来，下次看到这个摩托车，即使方向(或者位置)变化了，也能识别出来。

CPU，中央处理器，通用性强，但是并行能力差；
GPU，图形处理器，代表产商是英伟达，之前是用在游戏图像渲染，后来发现可以用于AI，特点是专用型强，并行能力强，类似一万个小学生(只会加减乘除)；
NPU，神经网络处理器，专门计算人工智能的处理器，专业性和并行能力都比GPU强，可用于实时美颜。

(1) CPU与GPU到底有什么区别？—脚本之家