一、基本概念

神经网络中最基本的成分是神经元模型。

在生物神经网络中,每个神经元与其它神经元相连,当它“兴奋”时,就会像相连的神经元发送化学物质,从而改变这个神经元内的电位;如果某种神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

从计算机科学的角度,神经网络就是一个包含 许多参数的数学模型,这个模型是若干个函数相互(嵌套)代入而得。

二、神经网络结构

一般的神经网络的模型如下图所示:

神经网络结构图绘制 神经网络构造_自动驾驶

每一层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络称为“多层前馈神经网络”。
其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出,即输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。

三、基础神经网络模型

1.感知机

感知机(Perceptron)是由两层神经元组成。

神经网络结构图绘制 神经网络构造_深度学习_02


输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。

由上图可得,单层感知机能够容易的实现逻辑与、或、非运算

注意:
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能的神经元,其学习能力非常有限,针对与、或、非问题都是线性可分的问题,若两类问题是线性可分的,即存在一个线性超平面能将它们分开,利用单层感知机可以实现这个功能,
但是针对非线性问题,单层感知机无法实现,例如简单的异或问题。

要解决非线性问题,需要使用多层功能神经元,针对异或问题,可以采用两层感知机解决。

输入层和输出层之间的神经元,称为隐层或者隐含层,隐含层和输出层神经元都拥有激活函数的功能神经元。

2.BP网络

“BP网络”:是利用BP算法训练的多层前馈神经网络。

神经网络结构图绘制 神经网络构造_神经网络_03

(1)BP算法

接下来讲解BP算法
误差逆传播(error BackPropagation,简称BP)算法,BP算法不仅可用于多层前馈神经网络,还可以用于其他类型的神经网络,例如训练递归神经网络,但通常说的“BP网络”时,一般是指用BP算法训练的多层前馈神经网络。

针对一个神经网络中,我们需要求解的参数有:输入层到隐层连接的权值,隐层到输出层的权值,隐层的每个神经元的阈值,以及输出层的每个神经元的阈值。

BP算法基于梯度下降(gradient descent)策略,即针对误差项保留一阶梯度,以目标的负梯度方向对参数进行调整,就可以找到一个最优的结果.

具体过程:
对于每个训练样例,现将输入示例提供给输入神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权重和阈值进行调整。该迭代过程循环进行,直到达到默写停止条件为止。

(2)累积BP算法

上面介绍的“标准BP算法”,它每次仅针对一个训练样本更新连接权值和阈值,存在一定的缺点:

a.参数更新频繁,增加网络负荷;
b.对不同的样例进行更新的效果可能会出现“抵消”现象。
因此为了达到同样的累计误差极小点,标准BP算法往往需要更多次数的迭代。

针对以上的缺点,提出了累计误差逆传播(accumulated error backpropagation)算法:它在读取整个训练集一遍后才对参数进行更新,其参数更新的频率低得多。

(3)BP网络存在过拟合

BP网络存在过拟合问题,即训练误差持续降低,但是测试误差却可能上升。
解决方案:
第一种策略:早停
将数据分为训练集和验证集,训练集用来计算梯度、更新连接权重和阈值,验证集用来估计误差,若训练集误差降低但是验证集误差升高,则停止训练,同时返回具有最小验证集误差的连续权重和阈值。
第二种策略:正则化
在误差目标函数中增加一个用于描述网络复杂度的部分。

3.RBF网络

RBF(Radial Basis Function,径向基函数)网络,是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元的激活函数,而输出层则是对隐层神经元输出的线性组合。

通常采用两步法过程来训练RBF网络:
第一步:确定神经元的中心,常用的方法包括随机采样,聚类等;
第二步:,利用BP算法等来确定参数。

4.竞争型学习网络

(1)竞争型学习概念

竞争型学习是神经网络中一种常用的无监督学习策略。
在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制,这种抑制亦称为“胜者通吃”原则。

(2)代表网络

ART网络
SOM网络

5.深度学习模型网络

典型的深度学习模型就是很深层的神经网络,即增加隐层的数目,则相应的权重、阈值以及激活函数均会增加。针对这种多隐层的神经网络难以直接使用经典算法(例如B算法)来实现,因为误差在多隐层中逆传播时,会发散难以达到收敛稳定的状态。
解决方案:
方案一:“预训练+微调”

基本思想是:每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层引接点的输入,这称为“预训练”;在预训练全部完成后,再对整个网络进行“微调”。
代表网络:深度信念网络(deep belief network,简称DBN)。

方案二:“权共享”

基本思想:让一组神经元使用相同的连接权重。
代表网络:卷积神经网络(Convolutional Neural Network,CNN)