各位小伙伴们,大家好,我是杜同学。今天想与大家分享一下神经网络的起源,从感知机模型到BP神经网络,其中会包括前向传播、反向传播等相关知识。当然,看这篇帖子之前,希望大家具备一些先导知识,特别是高等数学中链式求导以及求偏导的基础知识。相信这对大家来说肯定也不是问题啦。
一、神经网络发展史
- 单个神经元模型(1943年):神经网络的起源可以追溯到1943年,当时神经生理学家沃伦·麦卡洛克和沃尔特·皮茨提出了一个简单的神经元模型,称为麦卡洛克-皮茨模型。它模拟了神经元的基本功能。
- 感知器模型(1957年):弗兰克·罗森布拉特于1957年提出了感知器模型,它是一种最早的人工神经网络模型。感知器模型是一种单层的前馈神经网络,能够解决线性可分问题。
- 多层感知器(1980年代):多层感知器(Multilayer Perceptron,MLP)是一种具有多个隐藏层的前馈神经网络。在1980年代,研究人员发现多层感知器可以通过使用反向传播算法进行训练,从而解决更为复杂的非线性问题。
- 支持向量机(SVM)与核方法(1990年代):1990年代出现了支持向量机(Support Vector Machine,SVM)以及核方法的发展。虽然SVM并非传统意义上的神经网络,但它在机器学习领域的发展对神经网络的发展起到了积极的推动作用。
- 反向传播算法的重要性(1986年):1986年,大卫·鲍姆和保罗·鲍姆提出了反向传播算法,该算法能够有效地训练多层感知器。反向传播算法通过计算网络中每个参数的梯度来进行权重的更新,从而实现了神经网络的有效训练。
- 深度学习的崛起(2000年代):2000年代,随着计算机性能的提升和大规模数据集的可用性增加,深度学习逐渐崭露头角。深度学习使用深层神经网络来进行特征学习和表示学习,取得了在图像识别、语音识别和自然语言处理等领域的重大突破。
- 卷积神经网络(CNN)的突破(2010年代):卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于图像处理的神经网络模型。在2012年,由于深度学习和卷积神经网络惊人的表现,以至于深度学习领域如日中天。
二、神经元的构成以及功能
什么是神经元呢?我们口口相传的神经网络就是由神经元构成的,它是构成神经网络的基本单位。从生物学角度来讲,神经元即神经元细胞,是神经系统最基本的结构和功能单位。简单来讲,一个神经元由树突(Dendrites),细胞核(Cell nucleus)、轴突(axon)构成。细胞核具有联络和整合输入信息并传出信息的作用。树突短而分枝多,直接由细胞体扩张突出,形成树枝状,其作用是接受其他神经元轴突传来的冲动并传给细胞体。轴突长而分枝少,为粗细均匀的细长突起,其作用是接受外来刺激,再由细胞体传出。下面这几张图就是神经元的结构,各位看官老爷可以进行对比观看。
从生物学角度来讲,平常我们的大脑中的神经系统就像图片上一样工作的。咱们举个例子,比如说我们看到一座大山,觉得它非常宏伟,就这件事而言,大家可能觉得很简单呀,我大眼一看,就知道那非常壮观、宏伟。其实背后的原理是这样的,当我们的眼睛看到大山的一刻,大山就会由我们大脑中的视觉皮层转化为一种特殊的"信号"了,而这些信号就相当于图片中神经元的树突的输入数据,将这些信号传给树突后,树突将其汇入细胞核,细胞核具有联络和整合输入信息并传出信息的作用,细胞核会将接收的信号汇总起来,与神经元自身的阈值进行比较,如何输入的信号量大于自身的门限值,然后该细胞核会再通过轴突传递给下一个神经元,如此往复,直至经过大量分析,得出我们看到的大山很壮观、很巍峨的输出结果。
总结一下,神经元具有以下特点:
1.树突、轴突、突触分别相当于细胞体的输入端、输出端及输入/输出接口(I/O),并且多输入单输出。
2.兴奋型和抑制型突触决定神经细胞兴奋和抑制(分别对应输出脉冲串频率高低),其中脉冲串代表神经元的信息。
3. 细胞体膜内外电位差(由突触输入信号总和)的升高超过阈值产生脉冲,神经细胞进入兴奋状态。
4. 突触延迟使输入与输出间有固定时滞。
这就是神经元的工作原理和过程,不知道大家是否看懂了呢?
三、MP神经网络模型
1943年,基于生物神经网络的麦卡洛克-皮茨神经元模型(McCulloch-Pitts′ neuron model)诞生。它由心理学家Warren McCulloch和数学家Walter Pitts合作提出。
MP模型的基本思想是抽象和简化生物神经元的特征性成分。同时MP模型的特点和之前总结的生物神经元基本一致,具体对应如下:
- 每个神经元都是一个多输入单输出的信息处理单元。
- 神经元输入分兴奋性输入和抑制性输入两种类型。
- 神经元具有空间整合特性和阈值特性。
- 神经元输入与输出间有固定的时滞,主要取决于突触延搁。
- 神经元本身是非时变的,即其突触时延和突触强度均为常数。
所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型,它实际上就是对单个神经元的一种建模。
M-P神经元(一个用来模拟生物行为的数学模型):接收n个输入(通常是来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值 𝜃进行比较(作减法),最后经过激活函数(模拟神经元“抑制”和“激活”)处理得到输出(通常是给下一个神经元)。
MP神经元的基本数学建模如下,随着模型的不同,函数f也会不同。
从MP神经元的个数为分类标准,当只有一个MP神经元构成的模型为单层感知机或者为逻辑回归模型。当MP的神经元有多个且多层时,就构成了多层感知机或者多层神经网络。
- 单个M-P神经元:单层感知机( sgn阶跃函数作为激活函数f)、逻辑回归模型( sigmoid作激活函数f).
- 多个M-P神经元:多层神经网络.
简而言之,MP神经元的发明,真正让生物学中的神经元的功能得以在现实中实现,为后续感知机模型、BP神经网络以及更复杂的网络打下了坚实的基础。
四、感知机模型以及优化过程
1.感知机模型
感知机是Frank Rosenblatt在1957年提出的概念,最简单的人工神经网络,即单层的人工神经网络,是最基础的神经网络模型结构。
它是由两层神经元构成的神经网络,即输入层和输出层。输入层接收外界输入信号,只进行信息存储。输出层是M-P神经元。感知机是有监督的学习可以用于简单的二分类。模型的示意图如下: 假设模型给定的输入值为 :
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{N}, y_{N}\right)\right\}
T={(x1,y1),(x2,y2),…,(xN,yN)},同时输出层的MP神经元的激活函数f我们选用sgn阶跃函数,公式如下:
y
=
sgn
(
w
T
x
−
θ
)
=
{
1
,
w
T
x
−
θ
≥
0
0
,
w
T
x
−
θ
≤
0
y=\operatorname{sgn}\left(w^{T} x-\theta\right)=\left\{\begin{array}{ll} 1, & w^{T} x-\theta \geq 0 \\ 0, & w^{T} x-\theta \leq 0 \end{array}\right.
y=sgn(wTx−θ)={1,0,wTx−θ≥0wTx−θ≤0
其中,𝑥∈ℝ^𝑛 为样本的特征向量,是感知机模型的输入, 𝑤,𝜃是感知机模型的参数,w∈ℝ^𝑛为权重,𝜃为阈值。
假设当模型输出为0时为负类,输出为1时为正类。这样就可以做到二分类的目的啦。
为了大家能够便于理解,我们举一个几何直观的例子:
从几何角度来讲,给定一个线性可分的数据集T,感知机的学习目标是求得能对数据集T中的正负样本完全正确划分的超平面,其中 𝑤^𝑇 𝑥−𝜃即为超平面方程。
2.优化策略以及过程
五、神经网络类型
六、BP神经网络
七、优化过程
参考资料
[1] https://www.zhihu.com/question/408206230?utm_id=0 by作者:盐选科普
[2] https://xueqiu.com/3993902801/83328505 by作者:书生剑客