神经网络
受到人脑神经系统的启发,早期的神经科学家构造了一种模仿人脑神经系统的数学模型,称为人工神经网络,简称神经网络。
👀 在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可学习的参数。
1.人脑神经网络
人类大脑是人体最复杂的器官,由神经元、神经胶质细胞、神经干细胞和血管组成。其中,神经元(Neuron),也叫神经细胞(Nerve Cell),是携带和传输信息的细胞,是人脑神经系统中最基本的单元。每个神经元有上千个突触和其他神经元相连接。这些神经元和它们之间的连接形成巨大的复杂网络,其中神经连接的总长度可达数千公里。
典型的神经元结构大致可以分为细胞体和细胞突起:
1️⃣ 细胞体(Soma)中的神经细胞膜上有各种受体和离子通道,胞膜的受体可与相应的化学物质神经递质结合,引起离子通透性及膜内外电位差发生改变,产生相应的生理活动:兴奋或抑制。
2️⃣ 细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突。
树突(Dendrite)可以接收刺激并将兴奋传入细胞体。每个神经元可以有一或多个树突。
轴突(Axon) 可以把自身的兴奋状态从胞体传送到另一个神经元或其他组织。每个神经元只有一个轴突。
- 神经元可以接收其他神经元的信息,也可以发送信息给其他神经元。
- 神经元之间没有物理连接,两个“连接”的神经元之间留有20纳米左右的缝隙,并靠突触(Synapse)进行互联来传递信息,形成一个神经网络,即神经系统。
- 一个神经元可被视为一种只有两种状态的细胞:兴奋或抑制。
- 神经元的状态取决于从其他的神经细胞收到的输入信号量,以及突触的强度(抑制或加强)。当信号量总和超过了某个阈值时,细胞体就会兴奋,产生电脉冲,电脉冲沿着轴突并通过突触传递到其他神经元。
- 一个人的智力不完全由遗传决定,大部分来自于生活经验,也就是说人脑神经网络是一个具有学习能力的系统。
- 在人脑神经网络中,每个神经元本身并不重要,重要的是神经元如何组成网络。
- 不同神经元之间的突触有强有弱,其强度是可以通过学习(训练)来不断改变的,具有一定的可塑性,不同的连接形成了不同的记忆痕迹。
🌐 赫布理论(Hebbian Theory)或赫布规则(Hebbian Rule,或 Hebb’s Rule):“当神经元A的一个轴突和神经元B很近,足以对它产生影响,并且持续地、重复地参与了对神经元B的兴奋,那么在这两个神经元或其中之一会发生某种生长过程或新陈代谢变化,以致神经元A作为能使神经元B兴奋的细胞之一,它的效能加强了。”
- 如果两个神经元总是相关联地受到刺激,它们之间的突触强度增加。这样的学习方法被称为赫布型学习(Hebbian learning)。
- Hebb 认为人脑有两种记忆:长期记忆和短期记忆。
【短期记忆持续时间不超过一分钟,如果一个经验重复足够的次数,此经验就可储存在长期记忆中。】 - 短期记忆转化为长期记忆的过程就称为凝固作用。人脑中的海马区为大脑结构凝固作用的核心区域。
2.人工神经网络
人工神经网络是为模拟人脑神经网络而设计的一种计算模型,它从结构、实现机理和功能上模拟人脑神经网络。
人工神经网络与生物神经元类似,由多个节点(人工神经元)互相连接而成,可以用来对数据之间的复杂关系进行建模。
- 不同节点之间的连接被赋予了不同的权重,每个权重代表了一个节点对另一个节点的影响大小。
- 每个节点代表一种特定函数,来自其他节点的信息经过其相应的权重综合计算,输入到一个激活函数中并得到一个新的活性值(兴奋或抑制)。
- 从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的连接而构成的自适应非线性动态系统。
首个可学习的人工神经网络是赫布网络,采用一种基于赫布规则的无监督学习方法。
🙈🙈🙈 Hebb规则
Hebb学习规则是Donald Hebb在1949年提出的一种学习规则,用来描述神经元的行为是如何影响神经元之间的连接的。通俗的说,就是如果相连接的两个神经元同时被激活,显然可以认为这两个神经元之间的关系应该比较近,因此将这两个神经元之间连接的权值增加,而一个被激活一个被抑制,显然两者之间的权值应该减小。
此外,Hebb还有依据非常注明的话,“neurons that fire together, wire toghther”,这句话就是对权值如何更新的一个解释,同被激活者连接的权重理应增加。
公式表示为:
w
i
j
(
t
+
1
)
=
w
i
j
(
t
)
+
α
x
i
x
j
w_{ij}(t+1)=w_{ij}(t)+\alpha{x_i}{x_j}
wij(t+1)=wij(t)+αxixj
即表明神经元
x
i
x_i
xi和
x
j
x_j
xj的连接权重由两者输出决定。
定义输入
x
i
x_i
xi为第
i
i
i个神经元节点的值,
w
i
j
w_{ij}
wij为第
i
i
i个和第
j
j
j个节点之间的权值,则每个样本作为节点初始化的权值
w
i
j
w_{ij}
wij定义为:
W
i
j
=
x
i
x
j
W_{ij}={x_i}{x_j}
Wij=xixj
则
N
N
N个样本的权值经过
N
N
N次更新为:
W
i
j
(
N
)
=
∑
n
=
1
N
x
i
(
n
)
x
j
(
n
)
W_{ij}(N)=\sum_{n=1}^{N}{x_{i}(n)x_{j}(n)}
Wij(N)=∑n=1Nxi(n)xj(n)
因此,训练阶段很简单,仅仅是将所有样本的信息以权值求和的形式存储起来。故,最终的权值存储的是每个样本的记忆,而测试阶段是需要利用这些权值恢复记忆。
那么。这里的权值更新就是利用了Hebb学习规则。
- 感知器是最早的具有机器学习思想的神经网络,但其学习方法无法扩展到多层的神经网络上。
- 直到1980年左右,反向传播算法才有效地解决了多层神经网络的学习问题,并成为最为流行的神经网络学习算法。
由于人工神经网络可以用作一个通用的函数逼近器(一个两层的神经网络可以逼近任意的函数),因此可以将人工神经网络看作一个可学习的函数,并将其应用到机器学习中。
👉👉👉【在《神经网络与深度学习》中,人工神经网络主要是作为一种映射函数,即机器学习中的模型。】
理论上,只要有足够的训练数据和神经元数量,人工神经网络就可以学到很多复杂的函数。
把一个人工神经网络塑造复杂函数的能力称为网络容量(Network Capacity),这与可以被储存在网络中的信息的复杂度以及数量相关。
3.神经网络的发展历史
神经网络的发展大致经过五个阶段:
- 第一阶段:模型提出
第一阶段为1943年~1969年,是神经网络发展的第一个高潮期。在此期间,科学家们提出了许多神经元模型和学习规则,包括MP模型、Hebbian法则、感知器。
【在这一时期,神经网络以其独特的结构和处理信息的方法,在许多实际应用领域(自动控制、模式识别等)中取得了显著的成效。】 - 第二阶段:冰河期
第二阶段为1969年~1983年,是神经网络发展的第一个低谷期。在此期间,神经网络的研究处于常年停滞及低潮状态。
《感知器》一书,指出了神经网络的两个关键缺陷:一是感知器无法处理“异或”回路问题;二是当时的计算机无法支持处理大型神经网络所需要的计算能力。
但在这一时期,依然有不少学者提出了很多有用的模型或算法,包括反向传播算法(BackPropagation, BP)、带卷积核子采样操作的多层神经网络、新知机(Neocognitron)。 - 第三阶段:反向传播算法引起的复兴
第三阶段为1983年~1995年,是神经网络发展的第二个高潮期,在这个时期中,反向传播算法重新激发了人们对神经网络的兴趣。
在这个时期提出的神经网络主要包括Hopfield网络【一种用于联想记忆(Associative Memory)的神经网络】、玻尔兹曼机(Boltzmann Machine)。
真正引起神经网络第二次研究高潮的是反向传播算法。反向传播算法是迄今最为成功的神经网络学习算法。目前在深度学习中主要使用的自动微分可以看作反向传播算法的一种扩展。
💫💫💫💫💫 然而,梯度消失问题(Vanishing Gradient Problem)阻碍神经网络的进一步发展,特别是循环神经网络**。 - 第四阶段:流行度降低
第四阶段为1995年~2006年,在此期间,支持向量机和其他更简单的方法(例如线性分类器)在机器学习领域的流行度逐渐超过了神经网络。
虽然神经网络可以很容易地增加层数、神经元数量,从而构建复杂的网络,但其计算复杂性也会随之增长。当时的计算机性能和数据规模不足以支持训练大规模神经网络。
⭐⭐⭐ 与20世纪90年代中期兴起的统计学习理论和以支持向量机为代表的机器学习模型相比,神经网络的理论基础不清晰、优化困难、可解释性差等缺点更加凸显。 - 第五阶段:深度学习的崛起
第五阶段为从2006年开始至今,在这一时期研究者逐渐掌握了训练深层神经网络的方法,使得神经网络重新崛起。
🌟 2006年Hinton等人通过逐层预训练来学习一个深度信念网络,并将其权重作为一个多层前馈神经网络的初始权重,再用反向传播算法进行精调。这种“预训练+精调”的方式可以有效地解决深度神经网络难以训练的问题。
👉👉👉 在强大的计算能力和海量的数据规模支持下,计算机已经可以端到端地训练一个大规模网络,不再需要借助预训练的方式。