IEArch - 基础知识

一、总论

智能体系结构(Intelligent Architecture)是我大三上学期报的一门选修课。这门课的主要实验目的是搭建一个人工神经网络(可能是卷积神经网络)的加速器。在接触这门课前我对于这个名词一无所知。

现在来看,大概是这个意思,人工神经网络是一种模拟人脑神经结构的数学模型,这个数学模型需要计算机辅助实现。但是这个数学模型跟计算机原有的冯诺依曼体系有些不搭配。我们常见的计算机一般将存储和数据处理分离,但是显然我们脑子不是这样的,我们的脑子的存储和数据架构并没有分开,而且存储的形式也不是一种固态的仓库,而更像是一种数据加工过程的趋势。所以我们考虑搭建新的硬件架构,去适应人工神经网络这个数学模型,一旦适应了,就起到了 “加速” 的作用,这也是被称为 “加速器” 的原因。


二、计算机的抽象

这个思考在和香老师聊天的过程中逐渐清晰起来。香老师醉心于量子信息和量子计算,她考虑到我对于这些东西一窍不通,所以特别贴心地给我翻译成了 “用量子的方式学一遍计组”,据香老师的说法,这种新的量子架构可能可以解决 NP 问题(或者 NP == P 问题,主要是我也不清楚)。我之前也接触过一些 GPU,当时感觉 GPU 的架构虽然与 CPU 有些差距,但是还是可以生搬硬套一个理论抽象出共性。现在我初步看了看这个加速器的架构,感觉很多特点已经没法用计组的那一套理论去理解了。

量子计算机,GPU,加速器,这三个东西的架构或多或少都远离了传统的计算机处理器,那么我们要不要还将其判定为计算机呢?当遇到一个难以解决的问题的时候,是不是如果软件解决不了,我们就可以从硬件上直接对其进行改造呢?如果将计算机的抽象前进一步,是不是就可以将思路更加打开呢?

抽象更进一步的同时,是对于 “学科” 的迷茫,我到底是学什么的?我的能力的极限在哪里?比如说如果猪肉不好吃,我应该去骂养猪的是傻逼;如果我是一个胆大妄为的人,我或许会黑掉一家银行,让我的余额变得多多的,可以买最好吃的猪肉;如果我是一个有理想的人,或许我会用我的计算机技术辅助对于猪肉基因的改造,让猪肉更加可口。无论我是怎样的人,我觉得有一个原则是不会变的,就是:我绝不会去碰任何一口活着的猪,这是农学生干的事情。

智能体系结构就是这样一个模糊的东西,我之前理解的人工智能,是用软件模拟人脑,这很计算机,因为计算机软件的一大功能就是对于客观世界的模拟,我没有任何意见。但是硬件模拟,而且似乎甚至为了这个数学模型,我们去开发新的材料,新的元器件,来做加速器。看上去就像是在搭建一个人工的神经元,实在是太震撼了。

ReRAM 对于电压敏感的特性与神经元细胞膜上离子门控通道的特性很像,CrossBar 的设计与灰质的解剖结构也很像。可以说,我们在亲手搭建一个人脑。一个硅基的人脑。那么这个硅脑,是否还是计算机的范畴呢?


三、人工神经网络 (Artificial Neural Network)

3.1 神经元 (Neural)

正如我们所见,这是一个神经元,神经元有很多个树突,用于接受其他神经元或者感觉细胞传递而来的神经递质,一般只有一个轴突,用于向其他神经元传递递质。神经元通过收集各个树突传递来的神经递质,打开不同的离子门控通道,当细胞膜电位超过阈值,就会触发动作电位,释放神经递质。我们可以利用这样的一个模型来对这个神经元建模。

o=f(WIb)o = f(WI-b)

其中 II 是输入信号向量,WW 是输入信号权值向量,bb 是阈值,ff 是非线性映射关系,oo 是输出信号。我们用这个式子很精炼的概括了一个神经元的特征。

3.2 神经网络 (Neural Network)

很多个神经元在不同层(指信号迭代的次数)就可以构成神经网络。我们对其进行模型训练,训练可以通过影响权值的大小,来获得更加精确的结果,这个过程与人脑的记忆过程具有很高的相似性。

我们称第一层为输入层,最后一层是输出层,中间的层我们称其为隐层

image-20220909091040713

在训练中,我们一般不改变非线性映射,而只改变权重向量。

我们管比较简单的网络叫做感知机

image-20220909091252400

3.3 学科坐标

人工神经网络在学科坐标中大概是这个位置,顺带说一句 “启发” 的英文是 inspiration,启发式在我粗浅的理解下,似乎就是人们已经没法硬钢解决这个问题了,所以就通过模仿或者瞎猜一个算法路径去解决问题。

image-20220909091102314

这幅图还没有画全,神经网络里还有一个包含是深度学习,深度学习又名 “深度学习网络”。所谓的 “深度 “指的是神经网络的层数很多。

3.4 反向传播 (Back Propagation)


四、数学原理

开始前先放上大佬的话

年轻人,你不曾真正懂得数学,你只是习惯了而已。— 冯诺伊曼

Young man, in mathematics you don't understand things. You just get used to them.—John von Neumann

4.1 卷积

认输,根本学不会。