圣经网络算法

本文介绍了神经网络算法的基础,包括人工神经元模型、激活函数、神经网络模型以及工作方式,重点讲解了BP(误差反向传播)算法在前馈神经网络中的应用。 BP算法通过不断调整神经元间的连接权,使网络输出更接近期望值,适用于有导师学习场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、神经网络算法简介

神经网络(NN)或者人工神经网络(ANN)是指用大量的简单计算单元(神经元)构成非线性系统,在一定程度上模拟了大脑的信息处理、存储和检索等功能。BP网络的误差反向后传学习算法,是最常用的神经网络算法。它利用输出后的误差来估计输出层的直接前导层误差,再利用这个误差更新前一层的误差,如此反传下去获得所有其他各层的误差估计。

记得之前模式识别的老师说,神经网络算法就像一个黑盒子,不知道里面具体的样子,输入到黑盒子里就可以得到结果,所以这也是有少数人不信任这个算法的原因之一。

背景啥的就不过多赘述了。

二、人工神经元模型

神经网络由许多并行运算、功能简单的神经元组成,神经元是构成神经网络的基本元素。神经元模型如图所示。

图中 �1−�� 是从其他神经元传来的输入信号, ��� 表示从神经元j到神经元i的连接权值, � 表示一个阈值(或者成为偏置),则神经元i的输入与输出的关系表示为:

����=∑�=1������−�

��=�(����)

�� 表示神经元i的输出,函数f称为激活函数或转移函数,net称为净激活。若将阈值看成神经元i的一个输入 �0 的权重 ��0 ,则式子可以简化为:

����=∑�=1������

若用X表示输入向量,用W表示权重向量即:

�=[�0,�1,�2,...,��]

则神经元的输出可以表示为向量相乘的形式:

����=��

��=�(����)=�(��)

若神经元的净激活net为正,则该神经元处于激活状态,否则,神经元处于抑制状态。

三、常用激活函数

激活函数的选择是构建神经网络的重要环节,下面是几种常用的激活函数,前三个属于线性函数,后三个为非线性函数。

(1)线性函数

�(�)=��+�

(2)斜面函数

(3)阈值函数

(4)S形函数

�(�)=11+�−��(0<�(�)<1)

导函数为

�′(�)=��−��(1+�−��)2=��(�)[1−�(�)]

(5)双极S形函数

�(�)=21+�−��−1,(−1<�(�)<1)

导函数为

�′(�)=2��−��(1+�−��)2=�[1−�(�)2]2

BP算法要求激活函数可导,所以S型函数和双极型S函数适合用在BP神经网络中。

四、神经网络模型

(1)前馈神经网络

(2)反馈神经网络

(3)自组织网络

前馈网络也称前向网络。只在训练过程中有反馈信号,在分类过程中也只向前行传送,直到达到输出层,层间没有向后的反馈信号。BP神经网络就属于前馈网络。在实际应用中,绝大多数神经网络模型都采用BP网络和它的变形形式。

反馈神经网络是一种从输出到输入都具有反馈链接的神经网络,结构比前馈网络复杂得多。典型的反馈神经网络有Elman网络、Hopfield网络。

自组织神经网络是一种无导师学习网络。通过自动寻找样本中的内在规律和本质属性,自组织、自适应的改变网络参数与结构。

五、神经网络工作方式

神经网络分为学习和工作两种状态

神经网络学习状态:

神经网络的学习主要是指使用学习算法来调整神经元间的连接权,使得网络输出更符合实际。学习算法主要分为有导师和无导师学习两类。有导师是将一组训练集送入网络,根据网络的实际输出与期望输出间的差别来调整连接权。无导师学习抽取样本集合中蕴含的统计特性,并以神经元之间的连接权的形式存于网络中。

有导师学习算法步骤:

(1)从样本集合中取一个样本 (��,��) ,其中 �� 是输入, �� 是期望输出。

(2)计算网络的实际输出O。

(3)求 �=��−� 。

(4)根据D调整权矩阵W;

(5)对每个样本重复上述过程,直到对整个样本集来说,误差不超过固定范围为止。

Delta学习规则:

Delta学习规则是一种简单的有导师学习算法:

���(�+1)=���(�)+�(��−��)��(�)

式中:

��� ————神经元j到神经元i的连接权

�� ————神经元i的期望输出

�� ————神经元i的实际输出

�� ————表示神经元k的状态,处于激活状态为1,处于抑制状态为0或-1(根据激活函数选择)

� ————学习速度的常数

简单来讲就是,若神经元的实际输出比期望输出大,则减小所有输入为正连接的权重,反之同理。

六、BP神经网络算法

BP神经网络的学习过程主要由四部分组成:输入模式顺传播。输出误差逆传播、循环记忆训练、学习结果判别。

BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值