BP神经网络设计常用的基本方法和实用技术

BP神经网络设计常用的基本方法和实用技术

分类:机器学习

尽管神经网络的研究和应用已经取得巨大成功,但在网络的开发设计方面至今仍没有一套完善的理论做指导,应用中采取的主要设计方法是,在充分了解待解决问题的基础上将经验与试探相结合,通过多次改进性试验,最终选出一个较好的设计方案。下面是在开发神经网络中常用的基本方法和实用技术。

(1)网络信息容量与训练样本数

多层神经网络的分类能力与网络信息容量相关,如果网络的权值和阈值总数nw表征网络信息容量,研究表明,训练样本数N与给定的训练误差ε之间应满足以下匹配关系:

N =nw /ε.

上式表明网络的信息容量与训练样本数之间存在合理匹配关系。在解决实际问题时,训练样本数常常难以满足以上要求。对于确定的样本数,网络参数太少则不足以表达样本中所蕴含的全部规律即发生欠拟合;而网络参数太多,则可能发生过拟合,造成网络的泛化能力减弱。所以,通过上式根据设定的网络结构和误差要求,可以评估一下大致需要多少训练样本。

(2)训练样本集的准备

训练数据的准备工作是网络设计与训练的基础,数据选择的科学合理性以及数据表示的合理性对于网络设计具有极为重要的影响。数据准备分为原始数据的收集、数据分析、变量选择和数据预处理等诸多步骤。

输入输出量的选择。

一般来讲,输出量代表系统要实现的功能目标,常常是系统的性能指标,分类问题的类别归属,或非线性函数的函数值等。输入量必须选择那些对输出影响大且能检测或提取的变量,此外还要求输入变量之间互不相关或相关性很小。如果对于某个变量是否合适作网络输入没有把握,可分别训练含有和不含有该输入变量的两个网络,对比其效果。从输入、输出量的性质来看,可分为两类:一是数值变量,一类是语言变量。数值变量指的是数值确定的连续量和离散量。而语言变量是用自然语言表示的概念,其“语言值”使用自然语言标识的事物的各个属性,比如颜色、性别、规模等。当选择语言变量作为网络输入或输出时,需将语言值进行编码转变为离散的数值量。

输入量的提取与表示。

通常需要使用信号处理与特征提取技术从原始数据中提取能够反映其特征的若干特征参数作为网络的输入。常见的典型情况有文字符号输入、曲线输入、函数自变量输入和图像输入。字符输入常常根据要识别的字符的特征进行编码之后再作为网络输入;曲线输入通常进行离散化采样,在满足香农采样定理的前提下等间隔采样,也可以根据小波变化或短时傅里叶变换的思想在曲线变化大的地方细分间隔,在曲线平坦的地方放宽间隔;函数自变量输入直接采用待拟合的曲线的自变量作为网络输入;图像输入则很少直接采用像素点的灰度值作为网络输入,通常根据识别的具体目的从图像中提取一些有用的特征参数,再根据这些参数对输入的贡献进行筛选,而这些特征提取则属于图像处理的范畴。

输出量的表示。

0,1或者-1,1表示为二分类;多个有限的离散值表示为多分类;[0,1]之间表示为逻辑回归;连续值表示为拟合。

输入输出数据的预处理。

尺度变换,也叫归一化或标准化(normalization)。进行尺度变换的原因是:网络的输入数据常常具有不同的物理意义和不同量纲,尺度变换为0~1之间使网络训练一开始就给各输入分量以同等重要地位;BP网络的神经元均采用Sigmoid激发函数,变换后可防止输出饱和;Sigmoid激发函数的输出为0~1之间,作为教师信号的输出数据如不进行变换处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小,会导致权值调整不均匀。尺度变换是一种线性变换,当样本分布不合理时,线性变换只能统一样本数据的变化范围,,而不能改变其分布规律。适合网络训练的样本分布应该比较均匀,相应的样本分布曲线应比较平坦,当样本分布不理想时,最常用是分布变换。比如对数变换或平方根、立方根等。由于变换是非线性的,其结果不仅压缩了数据变化的范围,而且改善了其分布规律。

训练集的设计。

训练样本数的确定。一般来说训练样本数越多,训练结果越能正确反映其内在规律,但样本的收集整理往往受到客观条件的限制。此外,当样本数量多到一定程度,网络的精度也很难再提高。实践表明,网络训练所需的样本数取决于输入-输出非线性映射关系的复杂度,映射关系越复杂,样本中含的噪声越大,为保证映射精度所需的样本数越多,而网络规模也越大。因此,可以参考这样一个经验规则,即:训练样本数是网络连接权总数的5~10倍。样本的选择和组织。网络训练中提取的规律蕴含在样本中,因此样本一定要有代表性。样本的选择要注意样本类别的均衡,尽量使得每个类别的数量大致相等。即使是同一类样本也要照顾到样本的多样性和均匀性。按照这种“平均主义”原则选择的样本能使网络在训练时见多识广,而且可以避免网络对样本数量多的类别“印象深”,而对样本数量少的类别“印象浅”。同类样本太集中会使得网络训练时倾向于只建立与其匹配的映射关系,而当另一类别样本集中输入时,权重的调整又转向新的映射关系而将前面的训练结果否定。当各类样本轮流集中输入时,网络的训练会出现振荡使训练时间延长。

(3)初始权值的设计

网络权值的初始化决定了网络的训练从误差曲面的哪一点开始,因此初始化方法对缩短网络的训练时间至关重要。神经元的变换函数都是关于零点对称的,如果每个节点的净输入均在零点附近,则其输出均处在变换函数的中点。这个位置是其变换最敏感的地方,必然使得网络学习速度快。为了使得各个结点的初始净输入在零点附近,有两种办法可以采用:一是使得初始权值足够小;二是使得初始权值为+1和-1的数量相等。应用中对隐含层权值可采用第一种办法,而对输出层可采用第二种办法。如果输出层权值太小,会使得隐层权值在训练初期的调整量变小,因此采用第二种权值与净输入兼顾的办法。

(4)神经网络结构设计一个人行走,若是寂寞了,寻一座霓虹灯迷离闪烁,

BP神经网络设计常用的基本方法和实用技术

相关文章:

你感兴趣的文章:

标签云: