您的当前位置:首页正文

神经网络模型

2023-04-03 来源:易榕旅网
Neural Network

神经网络模型

一、神经网络模型简介

1.1 概述

人工神经网络(Artificial Neural Network, ANN),亦称为神经网络(Neural Network, NN),是由大量处理单元(神经元, Neurons)广泛互联而成的网络,是对人脑的抽象、简化和模拟,反映人脑的基本特性。人工神经网络的研究是从人脑的生理结构出发来研究人的智能行为,模拟人脑信息处理的功能。它是根植于神经科学、数学、统计学、物理学、计算机科学等学科的一种技术。其应用领域包括:建模、时间序列分析、预测、模式识别和控制等,并在不断的拓展。

图1 人工神经元示意图

人类大脑皮层中大约包含100亿个神经元,60万亿个神经突触以及它们的连接体。神经元之间通过相互连接形成错综复杂而又灵活多变的神经网络系统。其中,神经元是这个系统中最基本的单元,它主要由细胞体、树突、轴突和突触组成,它的工作原理如图1所示。人工神经元是近似模拟生物神经元的数学模型,是人工神经网络的基本处理单元,同时也是一个多输入单输出的非线性元件(见下图2所示)。每一连接都有突触连接强度,用一个连接权值来表示,即将产生的信号通过连接强度放大,人工神经元接收到与其相连的所有神经元的输出的加权累积,加权总和与神经元的网值相比较,若它大于网值,人工神经元被激活。当它被激活时,信号被传送到与其相连的更高一级神经元。

-1-

Neural Network

图2 人工神经元模型示意图

1.2 神经网络的特点

(1)具有高速信息处理的能力

人工神经网络是由大量的神经元广泛互连而成的系统,并行处理能力很强,因此具有高速信息处理的能力。

(2)知识存储容量大

在人工神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及其连线只表示一部分信息,而不是一个完整具体概念。只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。

(3)具有很强的不确定性信息

处理能力由于人工神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的对不确定性信息的处理能力。即使输入信息不完全、不准确或模糊不清,人工神经网络仍然能够联想思维存在于记忆中的事物的完整图像。只要输入的模式接近于训练样本,系统就能给出正确的推理结论。

(4)具有很强的健壮性

正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识别系统,如:专家系统等,具有另一个显著的优点:健壮性。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微损伤之后,并不会失去原有事物的全部记

-2-

Neural Network

忆。神经网络也有类似的情况。因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工作。

(5)一种具有高度非线性的系统

人工神经网络同现行的计算机不同,是一种非线性的处理单元。只有当人工神经元对所有的输入信号的综合处理结果超过某一阀值后才输出一个信号。因此人工神经网络是一种具有高度非线性的系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能信息处理能力和模拟人脑智能行为能力的一大飞跃。

二、神经网络的数学模型

目前,已发展了几十种神经网络模型,主要类型有:连接型神经网络模型,如Hopficld模型、Feldmann模型等;玻尔兹曼机模型,如Hinton模型等;多层感知器模型如Rumelhart模型等;自组织网络模型如Kohonen模型等;径向基函数模型等。这些模型大多数处于理论阶段,开发并投入实际计算使用的模型屈指可数。下面主要介绍数据挖掘工具SAS、SPSS和Clementine支持的最重要的两类模型:基于BP算法的多层感知机神经网络模型和径向基函数神经网络模型。

2.1 基于BP算法的多层感知器(MLP)神经网络模型

在众多神经网络模型中,前馈型神经网络是人工神经网络中应用最为广泛的一种网络类型,而这其中应用最广泛的是多层感知器(Multilayer Perceptron, MLP)神经网络。多层感知机神经网络的研究始于20 世纪50 年代,但一直进展不大。直到1985 年,Rumelhart 等提出了误差反向传递学习算法(Error Back Propagation, BP算法),实现了Minsky的多层网络设想。

BP算法有输入层节点、输出层节点,还可有一个或多个隐含层节点。对于输入信号,要先向前传播到隐含层节点,经作用函数后,再把隐节点的输出信号传播到输出节点,最后给出输出结果。

-3-

Neural Network

图3基于BP算法的多层感知器神经网络模型

BP算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层。每一层神经元的状态只影响下一层神经元的状态。如果输出层得不到期望的输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使得误差信号最小。

节点作用的激励函数通常选取S型(Sigmoid)函数,如

式中Q为调整激励函数形式的Sigmoid参数。

图4 S型(Sigmoid)函数曲线

设含有n 个节点的任意网络,各节点之特性为Sigmoid型参数。为简便起见,指定网络只有一个输出y,任一节点i的输出为Oi,并设有N个样本

(xk,yk)(k=1,2,3,…,N),对某一输入Xk,网络输出为yk节点i的输出为Oik,节点j的输入为:

-4-

Neural Network

并将误差函数定义为:

其中ŷk为网络实际输出,定义Ek=(yk-ŷk)2,

如果有M层,而第M 层仅含输出节点,第1 层为输入节点,则BP算法为:

-5-

Neural Network

第 1 步,选取初始权值W;

第 2 步,重复以下循环过程直至收敛:

a. 对于k=1到N

a) 计算Oik,netjk和ŷk的值(正向过程); b) 对各层从M到2反向计算(反向过程); b. 对同一节点j∈M,由上面两个公式计算δjk; 第 3 步,修正权值:

从上述BP算法可以看出,BP模型把一组样本的I/O问题变为一个非线性优化问题,它使用的是优化中最普通的梯度下降法,也可以使用其它方法。如果把神经网络看成输入到输出的映射,则这个映射是一个高度非线性映射。

设计一个神经网络专家系统重点在于模型的构成和学习算法的选择。一般来说,结构是根据所研究领域及要解决的问题确定的。通过对所研究问题的大量历史资料数据的分析及目前的神经网络理论发展水平,建立合适的模型,并针对所选的模型采用相应的学习算法,在网络学习过程中,不断地调整网络参数,直到输出结果满足要求。

2.2 径向基函数(RBF)神经网络模型

前馈型神经网络是人工神经网络中应用最为广泛的一种网络类型,目前,基于BP算法的多层感知器神经网络在各个领域中得到较多的应用,但是BP 神经网络学习过程的收敛与初值密切有关,并且学习过程还可能出现局部收敛,这是实际应用中难点。

径向基函数(Radial Basis Function, RBF)神经网络为一种性能良好的前馈型人工神经网络,它是基于人脑的神经元细胞对外界反应的局部性而提出的,是一种新颖有效的前馈式神经网络,具有较高的运算速度。特别是它的较强的非线性映射能力,能以任意精度全局逼近一个非线性函数,使其在很多领域得到了广泛应用。

-6-

Neural Network

RBF神经网络通常具有三层的网络结构,包括输入层、隐含层、输出层,网络模型的拓扑结构也如图3所示。

图3基于BP算法的多层感知器神经网络模型

在 RBF神经网络中,隐含层节点通过基函数执行一种非线性变化,将输入空间映射到一个新的空间,输出层节点则在该新的空间实现线性加权组合。RBF神经网络中最常用的基函数是高斯函数,即对于任意的输入向量X∈RN (RN为输入样本集),它定义为

式中Ri(x)为隐含层第i 个单元的输出,X 为N 维输入向量,Ci为隐含层第i 个单元高斯函数的中心点,σi为第i 个隐节点的归一化参数,即该隐节点的宽度,Nr为隐含层节点数。

图5 用期望值及方差作为参数表示的高斯函数曲线

-7-

Neural Network

径向基函数神经网络的隐含神经元的输出函数被定义为具有径向对称的基函数(即径向基函数),而基函数的中心向量被定义为网络输入层到隐含层的连接权向量。这个特点使得隐含层对输入样本有一个聚类的作用。其中中心向量为类均值,它的个数代表聚类的类数。这样,由于基函数对输入激励产生一个局部化的响应,仅当输入落在输入空间的一个很小的指定区域时,隐含单元才作出有意义的非零响应。

RBF神经网络中的学习方法,由于RBF神经网络中待确定的参数有两类:基函数中心点、宽度以及网络的权值。因此,网络的学习过程分为两步:首先确定基函数中心点和宽度,其次是权值学习。

RBF网络学习,整个训练过程分为非监督学习和监督学习两个阶段。非监督学习阶段采用K-means 聚类方法对训练样本的输入量进行聚类,找出聚类中心Ci 及 σ 参数,然后进行监督学习阶段。由于当Ci 及 σi确定之后,RBF 网络从输入到输出就成了一个线性方程组,因此监督学习阶段可以采用最小二乘法求解网络的输出权值wi。即用有监督学习算法调整隐含层到输出层的权重,算法步骤如下:

(1) 用最小、最大规范化方法,使属性归一到网络的处理范围; (2) 用径向基函数计算中间层的输出Yh; (3) 输出层第j 个神经单元的输出结果根据公式:

计算。式中Yhi是隐含层第i 个神经元的输出值;Wji是隐含层第i 个神经元至输出层第j个神经元的权重系数;函数f取Sigmoid函数形式,即f(x)=1/(1+exp(-x/x0))。

(4) 采用公式ΔYj=Yj(1-Yj)(dj-Yj)计算输出层误差,dj是第j个神经元的期望输出,Yj是隐含层第j 个神经元的实际输出值。

对权重系数进行调整,公式是ΔW=α·ΔYj(1-Yj)(dj-Yj),W´j=Wj+ΔW 式中α是学习速率。

-8-

Neural Network

三、神经网络模型的优缺点、用途、训练样本选取

3.1 优缺点

神经网络模型的优点有以下方面:

1) 很强的非线性映射拟合能力:神经网络实质上实现了一个从输入到输出的映射功能,数学理论证明三层的神经网络就能够以任意精度逼近任何非线性连续函数,这使得其特别适合于求解内部机制复杂的问题。

2) 高度的自学习、自适应能力和记忆能力:神经网络在训练时,能够通过学习自动提取输出、输出数据间的“合理规则”,并自适应的将学习内容记忆于网络的权值中。

3) 泛化能力:所谓泛化能力是指在设计模式分类器时,即要考虑网络在保证对所需分类对象进行正确分类,还要关心网络在经过训练后,能否对未见过的模式或有噪声污染的模式,进行正确的分类。也即神经网络具有将学习成果应用于新知识的能力。

4) 容错能力:BP神经网络在其局部的或者部分的神经元受到破坏后对全局的训练结果不会造成很大的影响,也就是说即使系统在受到局部损伤时还是可以正常工作的。即BP神经网络具有一定的容错能力。

神经网络模型的缺点有以下方面:

1) 局部极小化问题:从数学角度看,传统的神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上BP神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因。

2) 神经网络算法的收敛速度慢:由于神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得算法低效;又由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;神经网络模型中,为了使网络执行算法,不能使用传统的一维搜索法求

-9-

Neural Network

每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法也会引起算法低效。以上种种,导致了神经网络算法收敛速度慢的现象。

3) 神经网络结构选择不一:神经网络结构的选择至今尚无一种统一而完整的理论指导,一般只能由经验选定。网络结构选择过大,训练中效率不高,可能出现过拟合现象,造成网络性能低,容错性下降,若选择过小,则又会造成网络可能不收敛。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题。

4) 应用实例与网络规模的矛盾问题:难以解决应用问题的实例规模和网络规模间的矛盾问题,其涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题。

5) 预测能力和训练能力的矛盾问题:预测能力也称泛化能力或者推广能力,而训练能力也称逼近能力或者学习能力。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随着训练能力地提高,预测能力会得到提高。但这种趋势不是固定的,其有一个极限,当达到此极限时,随着训练能力的提高,预测能力反而会下降,也即出现所谓“过拟合”现象。出现该现象的原因是网络学习了过多的样本细节导致,学习出的模型已不能反映样本内含的规律,所以如何把握好学习的度,解决网络预测能力和训练能力间矛盾问题也是神经网络的重要研究内容。

6) 神经网络样本依赖性问题:网络模型的逼近和推广能力与学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。

3.2 用途

神经网络的应用领域包括:建模、时间序列分析、预测、模式识别和控制、语音分析、图像识别、数字水印、计算机视觉等很多领域,并在不断的拓展。下面仅列举在电信行业的一般用途。

(1)计算自变量对因变量的关联程度和重要性,以便于变量筛选和确定变量权重。这个在很多模型(如Logistic模型,决策树模型等)的建模初期,筛选变量确定权重等方面非常有用。

-10-

Neural Network

(2)通过用户行为的数据分析,发现客户群之间行为差异最显著的因素。 (3)通过用户消费的数据分析,发现客户群之间消费结构差异最显著的因素。 (4)通过分析客户各类基本属性、营销、消费等数据,发现哪些客户属性或者业务方式与客户群体间最相关。

(5)通过一些挖掘工具,神经网络算法类似时间序列类的模型(如ARIMA模型),还可以通过历史值预测未来值。

神经网络模型特别适用于数据变量个数众多,各数据变量之间的关系是不明确的,数学模型不明的,如不服从正态分布,或是非线性的,或是强耦合的,在用常规方法难以控制的情况下使用。

3.3 训练样本选取

训练神经网络的训练样本的选取很重要,它直接关系到评估结果的可信度。为了使训练的结果符合实际,通过以下两个步骤获得原始训练样本,来进行权重和阈值训练。

(1)基于深度业务理解的指标变量的准确选取,对于任何模型都是至关重要的。 (2)样本浓度控制得当,和其他模型一样,有正负样本的比例应控制在1:6左右,没有正负样本的数据,数据选取要典型。

(3)神经网络模型特别适用于数据变量个数众多,各数据变量之间的关系是不明确的,数学模型不明的,如不服从正态分布,或是非线性的,或是强耦合的数据样本的变量重要性和关联度的计算,其计算效果比关联分析,相关系数计算法都要做准确。

-11-

Neural Network

四、神经网络模型的工具实现

4.1 Clementine工具实现

4.1.1 工具和模型简介

Clementine 是一个简单的常用的数据挖掘工具,通过此平台可以采用商业技术快速建立预测性模型,并将其应用于商业活动,从而改进决策过。Clementine 参照行业标准 CRISP-DM 模型设计而成,可支持从数据到更优商业成果的整个数据挖掘过程。 在Clementine中有各种不同的模型节点,如:K-Means 节点将数据集聚类到不同分组(或聚类)。分类和回归树(C&RT)节点生成可用于预测和分类未来观测值的决策树。线性回归是一种通过拟合直线或平面以实现汇总数据和预测的普通统计方法。二元分类器节点用于创建和对比二元结果(是或否,流失或不流失等)的若干不同模型,使用户可以选择给定分析的最佳处理方法。Logistic 回归是根据输入字段值对记录进行分类的统计技术。

4.1.2 实现步骤

在Clementine中应用神经网络进行电信客户流失预测的过程如下: 首先选择数据源:本例中数据源为一个电子表格,打开Clementine在底部的选项板区中选择数据源项,双击其中的excel, 右击excel选择编辑,在导入文件中选择要用的数据源。然后在选项板中选择字段选项,选择其中的类型,进行编辑,读取所有值后将标识客户流失项设置为输出,总的挖掘过程如下图所示:

-12-

Neural Network

在设置好输出后,在建模里选择特征选项,特征选择节点会根据某组条件(例如缺失百分比)筛选可删除的预测变量字段,对于保留的预测变量,随后将对其相对于指定目标的重要性进行排序。这项的目的是用于对所有输入的项进行选择,可以用系统默认的设置,这样能保留哪些对输出(也就是客户的流失标志)有影响的项,以及各项对此的影响效果大小。能去掉哪些对输出没有影响的项。执行以后会生成一个模型,在这个特征模型里选择生成过滤节点, 在过滤节点里,我们可以看到哪些对输出没有影响的项已经被过滤了,当然这一步如果对数据非常熟悉的话,也可以直接从数据类型里来做。如下图所示:

-13-

Neural Network

接着我们在模型里面选择神经网络,编辑神经网络模型的选项,可以在里面选择要使用的方法, Clementine 提供了六种用于构建神经网络模型的训练方法:1.快速:此方法使用数据的简明规则和特征来选择合适的网络形状(拓扑)。 2.动态:此方法会创建一个初始拓扑,但可以在训练过程中增加和/或删除隐藏的单元,从而修改该拓扑。3.多重:此方法会创建几个具有不同拓扑的网络(确切数量取决于训练数据)。 4.修剪:此方法首先从一个较大的网络开始,然后会在训练过程中删除(修剪)隐藏层和输入层中最差的单元。此方法通常速度较慢,但比其他方法产生的结果要好。5.RBFN(径向基函数神经网络),6.穷举型修剪。

在模型中设置预防过度训练。此选项会将数据随机分割为两部分-训练集合和检验集合,以便于建模。如果正在使用单独的分区字段(例如分区节点创建的分区字段),预防过度训练设置则仅适用于训练分区,实际效果为“对分区进行分区”。而设置随机数种子的意义在于:如果不设置随机数种子,则每次执行节点时用于初始化网络权重的随机值的序列都会不同。这将导致即使节点设置和数据值都完全相同,节点也会在不同的运行中创建不同的模型。通过选择该选项,可以将随机种子设置为特定值,从而使结果模型具有精确的可再现性。特定的随机种子通常会生成相同的随机值序列,在这种情况下执行节点通常会产生相同的生成模型。

有以下几种停止标准:1.默认:如果使用此设置,网络将在表现为已经达到其最佳训练状态时停止训练。 2.精确性(%):如果使用此选项,训练则会一直继续,直到达到指定的精确性。这种情况可能永远不会出现,但您可以随时中断训练,以截止到目前所达到的最佳精确性保存该网络。3.周期:如果使用此选项,训练将持续指定的周期数(传递数据的次数)。4.时间(分钟):如果使用此选项,训练将持续指定的时间长度(以分钟为单位)。5.选择内存使算法在适当的时候以牺牲一定的速度为代价使用磁盘溢出,默认情况下选中此选项。注意:以分布模式运行时,此设置可被指定的管理员选项覆盖。

选项中有几个选项应加以注意:1.继续训练现有模型,默认情况下,每次执行神经网络节点时,都会创建一个全新的网络。选择此选项,则训练会继续,直至节点成功生成最后一个网络。2.使用二进制集合编码,选择此选项,Clementine 将

-14-

Neural Network

对于集合字段使用压缩的二进制编码方案,可以将具有很多个值的集合字段用作输入,从而更加简便地构建神经网络模型。3.显示反馈图形,可看到一个显示网络精确性的图形。4.敏感度分析,敏感度分析会提供哪些输入字段对于预测输出字段最重要的相关信息。

下图为模型在生成前的选项和生成后的统计情况。

-15-

Neural Network

在执行后会在右面的窗口中生成神经网络模型,打开模型,可看到统计的数据,模型的准确度及时间等,还可在模型里导出PMML及导出SQL等。 在模型的准确度达到要求以后,将生成的模型导入到数据中,在导出模板中,选择数据库,输入服务器地址及数据库名称。如下图所示:

-16-

Neural Network

4.2 SPSS工具实现

参见文档附件《SPSS 17.0神经网络分析中文版使用指南》。

4.3 模型性能评估及脚本固化

4.3.1 模型评估

神经网络模型因为计算复杂,就模型本身来说没有相关的评估指标和方法。但是,对于模型的结果,可以从其它的角度去加以评估,以检验其准确性。比如,对于变量重要性或权重的预测结果,可以从业务理解的角度去评估其准确性,比如,对于预测数值类的结果,可以通过历史真实数据来检验其准确度和误差。

4.3.2 模型固化

对于预测数值类的结果,可以像时间序列分析的预测结果一样,直接使用。 对于变量重要性或权重的预测结果,可以直接使用权重值,为后期所用。举例如下:

选用神经网络数据挖掘模型训练价值流失样本,采用BP神经网络快速算法

-17-

Neural Network

计算,预防过度训练阀值为50%,样本训练达到90%命中率时停止训练。采用Clementine 12.0运算结果如下表,得到各指标权重,可直接使用。 编号 1 2 3 4 5 6 7 8 9 10 10 12 13 14 15 16 17 18 19 20 21 指标名称 欠费月数 在网月数 三个月双停次数 两个月本地被叫次数的平均值 三个月欠费标准差 对端号码数 三个月漫游通话比例平均值 两个月本地主叫次数的平均值 主叫计费时长 三个月长途费平均值 最近三月停机次数 两个月账本总余额平均值 三个月单停次数 三个月充值次数的平均值 信息费占比 投诉次数 主叫时长标准差 三个月长途通话比例平均值 充值次数 三个月ARPU标准差 两个月账单金额平均值 计算得到权重 取近似权重 百分比 0.0065 0.0098 0.0117 0.0174 0.0182 0.019 0.0194 0.0198 0.0199 0.0232 0.0259 0.0306 0.0336 0.041 0.0877 0.0881 0.1016 0.1025 0.1038 0.1063 0.1141 0.01 0.01 0.01 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.03 0.03 0.03 0.04 0.09 0.09 0.1 0.1 0.1 0.11 0.11 1% 1% 1% 2% 2% 2% 2% 2% 2% 2% 3% 3% 3% 4% 9% 9% 10% 10% 10% 11% 11% -18-

因篇幅问题不能全部显示,请点此查看更多更全内容