内容简介
《忆阻类脑计算》阐述基于忆阻器的神经网络设计与实现,主要包括基于忆阻器的仿生突触与仿生神经元实现方案、采用模拟值和脉冲编码的神经网络算法原理与忆阻交叉阵列实现方案、卷积神经网络算法原理与忆阻交叉阵列实现方案、全光神经网络算法原理与基于忆阻器光学特性的实现方案、忆阻阵列在稀疏编码等其他与神经网络架构相似的应用实现等内容。
目录
目录
“存储器科学与技术丛书”序
前言
第1章 站在类脑计算与忆阻器的交汇点1
1.1 类脑计算1
1.1.1 学习与泛化1
1.1.2 存算一体2
1.1.3 高能效3
1.2 类脑计算:为什么是忆阻器4
1.2.1 突触可塑性:类脑计算的物理基础4
1.2.2 忆阻器:天然的突触5
1.3 类脑计算的发展简史11
1.3.1 **代:感知器11
1.3.2 第二代:引入非线性的多层感知器12
1.3.3 第三代:从模拟计算到神经形态计算13
1.4 本书章节安排13
1.5 思考题15
参考文献16
第2章 忆阻突触17
2.1 离子迁移型17
2.1.1 导电桥型18
2.1.2 氧化物型20
2.1.3 固态电解质型23
2.2 相变型26
2.2.1 晶-非晶相变26
2.2.2 莫特相变29
2.3 铁电型32
2.3.1 基本原理32
2.3.2 常用铁电材料36
2.3.3 常用器件结构39
2.4 忆阻突触阵列41
2.4.1 潜行通路问题及解决方案42
2.4.2 多核结构45
2.4.3 三维堆叠46
2.5 本章小结48
2.6 思考题49
参考文献49
第3章 忆阻神经元53
3.1 神经元简介53
3.1.1 生物神经元53
3.1.2 神经元的简化模型58
3.2 基于非易失的相变材料62
3.2.1 设计思想62
3.2.2 相变神经元的电路实现63
3.2.3 辅助电路65
3.3 基于易失的阈值转换材料67
3.3.1 设计原理67
3.3.2 阈值转换常见机理及其神经元69
3.4 本章小结77
3.5 思考题78
参考文献78
第4章 人工神经网络的监督学习80
4.1 单层神经网络80
4.1.1 算法原理80
4.1.2 基于1T1M的突触阵列:人脸识别88
4.1.3 基于忆阻器差分对的突触阵列:三宫格识别94
4.2 深度神经网络97
4.2.1 算法原理97
4.2.2 反向传播的忆阻交叉阵列实现99
4.2.3 忆阻突触的非理想效应与对策103
4.3 本章小结110
4.4 思考题112
参考文献113
第5章 脉冲神经网络的监督学习115
5.1 脉冲传播115
5.1.1 算法原理115
5.1.2 权重更新:隐藏层到输出层116
5.1.3 权重更新:输入层到隐藏层121
5.1.4 操作流程123
5.1.5 异或问题应用125
5.1.6 问题与改进方案(1)126
5.1.7 问题与改进方案(2)127
5.2 远程监督方法130
5.2.1 算法原理131
5.2.2 基于互补器件的电路实现132
5.2.3 器件非理想效应及解决方案136
5.3 本章小结138
5.4 思考题139
参考文献140
第6章 人工神经网络的非监督学习141
6.1 寻找隐藏的数据结构141
6.2 若干算法142
6.2.1 竞争学习142
6.2.2 期望-*大化143
6.3 本章小结146
6.4 思考题146
参考文献146
第7章 脉冲神经网络的非监督学习147
7.1 赫布法则147
7.2 STDP变种1150
7.2.1 忆阻突触实现150
7.2.2 神经网络应用:图像识别152
7.3 STDP变种2157
7.3.1 忆阻突触实现157
7.3.2 应用:DVS与运动轨迹识别158
7.3.3 忆阻突触电导方差对网络性能影响161
7.4 本章小结163
7.5 思考题164
参考文献165
第8章 深度强化学习167
8.1 强化学习简介167
8.2 基于模拟值的深度Q值网络168
8.2.1 吃还是不吃?这是个问题168
8.2.2 Bellman方程169
8.2.3 Bellman方程求解173
8.2.4 深度Q值网络177
8.2.5 若干优化技术179
8.2.6 忆阻突触阵列实现182
8.3 基于脉冲的深度Q值网络184
8.3.1 脉冲Q值学习185
8.3.2 策略迁移186
8.4 本章小结186
8.5 思考题188
参考文献188
第9章 卷积神经网络189
9.1 基本原理190
9.1.1 特征提取:**层卷积核190
9.1.2 特征提取:池化191
9.1.3 特征提取:后续层卷积核191
9.1.4 分类:拍平与全连接192
9.2 二维忆阻阵列实现192
9.2.1 负权重的电路实现195
9.2.2 激活函数的电路实现196
9.2.3 平均池化的电路实现197
9.2.4 三维卷积核运算的电路实现198
9.2.5 权重更新的电路实现198
9.2.6 卷积的并行实现200
9.2.7 忆阻突触阵列的非理想效应201
9.2.8 芯片级体系结构203
9.3 三维忆阻阵列实现203
9.3.1 设计理念203
9.3.2 设计与实现实例205
9.4 本章小结208
9.5 思考题209
参考文献209
第10章 贝叶斯神经网络210
10.1 不确定性来源与量化210
10.1.1 乳腺肿瘤数据:标签交叠区难题211
10.1.2 贝叶斯神经网络:量化不确定度213
10.2 随机失效突触技术214
10.2.1 随机失效神经元/突触技术简介214
10.2.2 随机失效突触与贝叶斯神经网络的等价性217
10.2.3 蒙特卡罗-随机失效突触技术的优缺点219
10.3 基于阈值转换器件的硬件实现219
10.3.1 基于OTS的随机突触220
10.3.2 新冠肺炎胸片诊断:量化不确定度222
10.4 本章小结227
10.5 思考题227
参考文献228
第11章 全光神经网络229
11.1 光学突触器件原理229
11.2 基于集成光感器件的卷积神经网络234
11.2.1 波分复用与光频梳:高并行的光信息处理234
11.2.2 全光卷积神经网络设计235
11.3 本章小结236
11.4 思考题237
参考文献237
第12章 其他应用238
12.1 稀疏编码238
12.1.1 原理238
12.1.2 神经网络方案239
12.1.3 忆阻交叉阵列实现242
12.2 主成分分析244
12.2.1 原理245
12.2.2 忆阻交叉阵列实现249
12.3 偏微分方程求解255
12.3.1 原理255
12.3.2 忆阻交叉阵列实现258
12.3.3 问题与改进方案264
12.4 本章小结264
12.5 思考题266
参考文献267
试读
第1章 站在类脑计算与忆阻器的交汇点
1.1 类脑计算
类脑计算 (brain-inspired computing),也称神经形态计算 (neuromorphic com-puting),顾名思义,是用受大脑启发的、模仿生物学的脑神经系统来做信息处理,即广义上的计算。那么,它是怎么实现的呢?它昀吸引人的地方又在哪里呢?
1.1.1 学习与泛化
*先,类脑计算能够学习。以当前产业界的研究热点“智能驾驶”为例,正统的程序员做法是撰写如下所示的一系列 case{}语句:
switch (sensing_signals) {
case situation_1: do_1 ; break;
case situation_2: do_2 ; break;
default: do ; break;
}
程序员*先考虑由车载传感器发送过来的信号 sensing_signals有若干种可能的情况{situation_1, situation_2, },例如前方有红灯、突然冒出来一位不遵守交通规则的行人等;然后对应每一种情况,对汽车发出相应的指令 {do_1, do_2, }。
可以看到,对于这种传统的智能驾驶方案,需要人为预先编程考虑汽车行驶中可能遇到的情况,然后根据车载传感器接收的信号,判断车辆当前处于哪一种情况,进而采取相应的行动。本质上,这是把驾驶员的经验固化到代码中,是“来自人的智能”。
与此相反,类脑计算不是这样的。原则上,类脑计算对应的内存一开始是空白的,并没有预存任何处置方案。形象地说,就跟刚出生的婴儿一样,只能执行昀简单的吃喝拉撒睡。他是通过后天的一次次“试错”,逐渐学会如何与环境打交道。这种学习能力,意味着他会自己画出图纸,然后对照着施工,在施工过程中积累正反两方面的经验,自己琢磨着修改图纸,使其更合理、更高效,而不是借助外界预先画好的图纸,然后对着图纸机械地执行。
如图 1.1所示,假设有一个游猎的原始人,他发现前方有动物出现,战斗还是逃跑取决于目标是一条毒蛇,还是一只瞪羚。人的大脑视传感神经元编码后,产生不同的电脉冲信号。这些电脉冲通过神经元之间的连接向后一级传递,直到负责控制肌肉运动的神经元,并由它们做出决策——逃跑还是战斗。
图1.1 战斗还是逃跑
假设原始人对毒蛇的伤害力一无所知,他选择冲上去战斗。这在大脑信息处理层面意味着,视神经产生的毒蛇编码信号沿着“战斗”通路传递。结果可想而知,他没有吃到食物,反而被毒蛇咬了一口。从生存的角度,这是一个惩罚性质的回馈,为了增加生存概率,大脑主动地把刚才视觉产生的毒蛇编码信号到“战斗”的连接通路掐断,而把该信号到“逃跑”的连接通路增强。
上述连接通路的物质载体就是突触。突触强度的可调制性,或者说可塑性 (plasticity)是大脑自主学习能力的物理基础,而调制结果的非易失性 (nonvolatility)则是学习成果能够记忆、长期保存的关键。
大脑的这种学习能力突出地反映在系统“举一反三”的能力上。例如,系统通过多轮学习,能够正确处理一个成年行人突然横穿马路的情况,那么当跟这种情况具有较大相似性的新情况出现时,例如一个小朋友横穿马路,系统也会采取近似的处理方案。相比之下,条件判断语句 (case-switch)体系需要在对应的 case语句里事先估计并定义好横穿马路的物体形状范围。类脑计算这种举一反三的能力就是神经网络的泛化 (generalization)能力,也是类脑计算方案的一个核心优势。
1.1.2 存算一体
类脑计算是存算一体(in-memory computing)的。要理解这个概念,我们*先分析传统计算机的冯 诺依曼架构 (von Neumann architecture)。在冯 诺依曼架构中,计算单元与存储单元在物理上是分离的,因此程序与数据的读取、处理,以及处理结果的保存需要大量的存储器访问 (memory access)。众所周知,在现有的微电子材料体系和集成电路工艺等条件限制下,存储器在性能和造价上很难做到鱼与熊掌兼得。存储速度昀快的静态随机访问存储器 (static random access memory,SRAM)单位比特造价昀高,导致其在实际应用中很难做得很大;单位比特造价相对较低的磁存储器读写速度又相对较低。这就造成所谓的内存墙 (memory wall)问题。
从图1.1可以看到,生物大脑的计算架构跟上述冯 诺依曼架构是截然不同的。生物大脑的“计算”既包括神经元电脉冲的产生,也包括沿着不同通路的传递。神经元之间的连接强度不同,直接导致信号的传递路径不同,昀后的计算结果也就不同。由此可知,神经元之间的连接强度是可调的,并且调制结果是可记忆的。因此,神经元之间的突触连接既在“计算”中发挥作用,其本身也“存储”信号传递通路的信息。在生物大脑的信息处理中,并没有把“计算单元”与“存储单元”分离。
1.1.3 高能效
类脑计算预期会有革命性的能效比 (energy-efficiency ratio)。
这方面一个著名的案例是,2016年Google公司的AlphaGo大战韩国围棋九段李世石。为了战胜人类**围棋选手,据称AlphaGo动用了 1202个中央处理器(central processing unit,CPU)、176个图形处理器 (graphics processing unit,GPU),仅仅这些芯片的功耗就高达约 200kW。作为对战另一方的李世石,在数亿人观看下,仅仅消耗了数杯咖啡。从能效比的角度,AlphaGo明显胜之不武。
公开资料显示, AlphaGo的一些关键策略采用类脑神经网络算法,那么问题来了,既然是仿脑、类脑,为什么对比人类的大脑, AlphaGo的能效比会如此低下?
这里的根本原因是, AlphaGo昀底层的硬件并不是仿脑的。换句话说,执行 AlphaGo运算的昀底层单元——晶体管,并不是为了仿生神经网络的昀底层单元——神经元或者突触。在物理特性上,晶体管跟突触有本质的区别。作为神经元之间连接的突触,它的强度可以在神经网络学习过程中被调节,而且这种调节在学习完成以后是可以保存的,即记忆下来。与之相反,虽然晶体管的电导可以通过栅极电压调制,但是断电以后,这种电导调制就随即消失了。假如将栅压对晶体管的电导调制看作突触连接强度的调节,那么这里的关键问题是,晶体管的学习效果无法保存。
反映到系统层面,尽管 AlphaGo部分采用类脑神经网络的算法,但它在硬件层面仍然依赖传统的冯 诺依曼存算分离架构。
因此,类脑计算要想革命性地提升算力、能效比等关键指标,就亟需一种能够高效模仿生物突触功能的新型器件。忆阻器就是这样一种器件。
1.2 类脑计算:为什么是忆阻器
1.2.1 突触可塑性:类脑计算的物理基础
从图1.1的讨论可以看到,突触的核心特征就是可塑性。它表征的两个神经元之间连接强度可以调节。这种调节的核心原则是,导向正确输出的连接被增强,反之则被减弱。
这种调节在大脑功能层面对应的就是学习,而调节结果在学习完毕以后可以保存下来,对应的大脑功能就是记忆。
如果把学习理解成一种广义上的“计算”,记忆理解成“存储”,不难发现,这里的“计算”和“存储”跟传统计算机的原理有着本质的不同。
①数字逻辑的有限状态机。
②存算分离的冯 诺依曼架构。
图灵机原理与冯 诺依曼架构示意图如图 1.2所示。在传统的数字逻辑有限状态机中,对于当前状态 S(如图 1.2(a)中 A、B、C、H),给定输入,输出和跳转的下一个状态是确定的。换句话说,对于给定的系统,它的各个状态连接关系是固定的。在类脑计算系统中,给定同样的现状和输入,输出和跳转的下一状态是可调制的,由系统根据外界的反馈来调整。这意味着,硬件层面各状态之间的连接是可塑的,而系统层面则表现为可根据外界情况的变化自我调整,即具有学习能力。
图1.2 图灵机原理与冯 .诺依曼架构示意图
冯 诺依曼架构是近年来另一个被讨论得很多的问题。如图 1.2(b)所示,“计算”和“存储”分离曾经是一个巨大的进步。它将整个计算系统的功能划分开,然后选择不同的硬件执行不同的功能,让硬件各自优化、迭代改进。正因如此,我们才看到过去几十年支配计算机硬件发展的摩尔定律。形象地说,如同亚当 斯密在《国富论》中所言,分工和专业化带来社会生产力的巨大进步。
然而,冯 诺依曼架构发展到今天,“计算”与“存储”分离造成的内存墙等问题却妨碍了计算机技术的进步,以至于出现一个专门描述这种现象的词,即冯 诺依曼瓶颈(von Neumann bottleneck)。内存墙问题不但导致计算与存储单元的性能脱节,而且随着工艺的进步,这种差距在不断扩大。另外,数据要在计算单元与存储单元来回搬运,不仅会对总线造成重大负担,还会引发延迟、功耗等一系列问题。如果能够发展一种“存内计算”新架构,上述问题就迎刃而解了。
从上述关于有限状态机原理和冯 .诺依曼架构的讨论可以看到,假如人们希望发展类脑计算系统,那么硬件层面亟需的是可以仿生突触可塑性的新型器件。忆阻器(memristor)就是昀有力的候选方案。
1.2.2 忆阻器:天然的突触
忆阻器是一种电阻态可以调制且调制结果可以记忆的新型器件。对比突触可塑性不难发现,忆阻器从定义上天然吻合突触特性。本节对忆阻器从概念提出到实验制备,再到应用为神经形态器件 (neuromorphic devices)的时间线进行梳理。
1. 概念提出
忆阻器昀初是由美国加州大学伯克利分校的Chua[1]教授在1971年提出来的。
忆阻器概念示意图如图1.3所示。Chua发现,在4个物理量,即电压(v)、电流(i)、电荷(q)和磁通量(.)之间,只有磁通量和电荷之间的关系没有直接对应的度量。鉴于此,他提出忆阻器阻值的定义,也就是通过器件的磁通量随电荷的变化率,即
(1-1)
如果分别引进(流经该器件的)磁通量、电荷量的时间变化率,不难发现,忆阻器的单位跟电阻一样,就是欧姆。
式(1-1)的电压项在形式上是磁通量变化引起的感生电压,因此忆阻器不能理解为普通的电阻。那么,忆阻器与普通电阻的区别又在哪里呢?从式 (1-1)不难看出,忆阻器的阻值M随流经该器件的电荷量 q的变化可能变化,并且这种变化在电流消失以后,可以保存下来。这一点,从忆阻器英文定义的词根可以看到, memristor = memory + resistor。
图1.3 忆阻器概念示意图[1]
忆阻器具有两个核心特征。
①电导可连续、可逆地调制。
②电导调制的结果非易失。
值得指出的是,对忆阻器这种新型器件而言,上述两个特性缺一不可。以晶体管为例,它的源漏电导在栅压的作用下也可以连续、可逆地变化,但是一旦撤掉栅压,调制效果会立即消失。这里的物理原因是,栅压诱导出来的沟道载流子在栅压撤去后迅速弛豫了,没有记忆效应。因此,忆阻器物理实现的核心问题是,寻找各种物理机制和材料,使载流子在外加电压下的调制是连续、可逆的,而且非弛豫 (nonrelaxable)。严格说来,后者是指在器件的工作时间内,弛豫引起的电导变化可忽略。
2. 实验实现
2008年,美国惠普实验室 Strukov等[2]*次实验制备了基于氧耗尽型氧化钛 (oxygen-depleted titanium dioxide,TiOx)忆阻器。原子力显微镜下的TiOx忆阻器阵列示意图如图1.4所示[3