范文一:神经网络模型
基于matlab的BP神经网络在人口预测中的应用 Research on Neural Network Prediction
Studies on applying artificial neural networks to some forecasting problems
摘要:人口预测是对未来进行预测的各环节中的一个重要方面。准确地预测未来
人口的发展趋势,具有重大的理论意义和实用意义。传统的人口预测方法在非线
性规划情况下都无法达到较好的预测效果,准确率难以保证。本文采用BP神经
网络方法建模进行预测,并采用matlab6.5实现,预测了1991年到2080的人口
数量,达到了较好的预测效果。
关键字:BP神经网络,人口预测,matlab6.5
传统的人口预测方法主要是逻辑斯蒂方程法、常微分方程法、动态预测法,这些
方法都需要对数据进行模型假设,在人口预测领域具有一定的作用。但是很多情
况下,特别是非线性规划情况下都无法达到较好的模拟效果,基于此的人口预测
模型的预测结果往往会出现较大的偏差,准确率难以保证。而神经网络方法,根
据输入数据,通过网络节点的抑制激活自动决定影响某种性能的参数及影响程
度,自动形成模型,对数据曲线的许多情况,特别是非线性的情况能达到较好的
模拟效果。鉴于我国人口的复杂性,所以采用了BP神经网络方法建模来预测我国的人口数量发展情况。
神经网络模型是由多个神经元组成的广泛互连的神经网络,能够模拟生物神经系
统真实世界及物体之间所做出的交互反应。人工神经网络处理信息是通过信息样
本对神经网络的训练,使其具有人的大脑的记忆、辨识能力,完成各种信息处理
功能。它具有良好的自学习、自适应、联想记忆、并行处理和非线形转换的能力,
避免了复杂的数学推导,在样本缺损和参数漂移的情况下,仍能保证稳定的输出。
人工神经网络这种模拟人脑智力的特性,已经成功地应用于众多领域。目前应用
较多的模型是前馈多层式网络中的BP反向传播模型(如图1)。
图1 BP反向传播模型 输入单元:
Opt=p(t),t=l,2,…,m
m
netw,,,Onet,,()隐层单元:,其中,j=1,2,..,2m+1 pjtjj,pjpjt,1
21m,
netw,,,Fnet,,()输出单元:,其中,为网络输出,为 sigmoid 函F,,pjpj,1
数,w为权值,为阀值。 ,
学习过程由信号的正向传播与误差的逆向传播两个过程组成。正向传播时,模式
作用于输入层,经过隐层处理后,传向输出层。若输出层未能得到期望的输出,
则转入误差的逆向传播阶段,将输出误差按某种子形式,通过隐层向输入层逐层
返回,并“分摊”给各层的所有单元,从而获得各层单元节点的参考误差或称误
差信号,以作为修改各单元节点权值的依据。为克服一般BP算法收敛速度慢、局部极值的缺陷,本文采用动量——自适应调整算法(公式1)。
wkwkkDk(1)()()(),,,, (1) 其中w(k)为k时刻的权值向量,为 k 时刻的负梯度,D(k-1)DkEWk()/(),,,,
,为k-1时刻的负梯度,为学习率,k为训练步数。
网络层次的确定:
神经网络理论Kolmogorov定义已经证明:经充分学习的三层BP网络可以逼近任何函数,因此采用三层的神经网络结构。
神经网络各层节点数的确定:
神经网络各层节点数的确定是直接影响网络模拟成功与否的关键技术,在这里我
们采用相空间重构技术(GP算法)从人口时间序列中提取系统信息作为模型结构
参数选择的依据。不失一般性,令P(t)为观测到的人口时序数(t=0,1,…N),可得m 维人口相空间矢量:
YmTptptTptmT(,)(),(),,((1)),,,,(2) n 其中,n=l,2,…,N ,m为嵌入维数,T为时间延迟,N’ = N - (m-t)T。通过N’ 个矢量在m维人口相空间中描述出人口动力系统轨迹,当m>2d+l时(d为吸引子关联维数),可重视原吸引子的几何特征。对于T的处理, M.T.Rosenstein等人在数值实验中提出运用自相关函数下降到初始值的1-1/e的时滞作为延迟时间,嵌入
维数m是通过相关积分计算出关联维数来确定的。GP算法得到由离散人口序数
YfY,()p(t)重构的m维人口相空间,在m维人口相空间中状态转移形式为:nn,1
Y其中为人口相空间矢量,再结合公式(2)展开: n
((1),...,(1(1)))((),((1)))ptptmTfptptmT,,,,,,,(3) 为了方便计算和直观起见,上式记为:
ptmTFptptmT(1(1))((),...,((1))),,,,,,(4) 这时F(*)是一个m维矢量到一维实数的映射,运用三层BP神经网络模型多输入单输出的函数逼近功能来实现。在三层BP神经网络结构中,输入层和输出层节
点数分别为m、1,隐含层节点数根据神经网络优化理论确定为2m+1。由相空间重构技术计算出嵌入维数m=4,关联维数d=2.23。所以网络的输入层节点数为
4个,中间隐层节点数为9个,输出为1个。
模型的实现分为三部分,包括样本数据的处理、模型训练和人口预测。我们用 Matlab 的神经网络工具箱来编程实现(程序见附录2)。
样本数据的获取和处理
我们在中国国家统计局网站上得到了所需要的原始样本数据(表1),由于05年数据的样本容量和前面几年的数据偏差较大,并且和中国国际统计据网站上的数
据差距也较大,从预测准确的目的出发,我们去掉了05年的数据。 表1:原始样本数据
年份 1991 1992 1993 1994 1995 1996 1997 人数 1158230 1171710 1185170 1198500 1211210 1223890 1236260 年份 1998 1999 2000 2001 2002 2003 2004 人数 1248100 1259090 1265830 1220559 1258951 1260498 1253065
为加快网络的训练速度,我们对神经网络的输入、输出数据进行了的一定的预处
理(表2)。Matlab 提供的预处理方法有归一化处理、标准化处理和主成分分析。
我们采用了最常用的一种方法——归一化处理,即将输入、输出数据映射到[-1,1]范围内,训练结束后再反映射到原数据范围。对样本数据 P(t)进行归一化处理: 'n式中n为所有统计数据中最大值的整数位数,这里n=6。 PtPt()()/10,
表2:经过处理的样本数据(其中前9个是训练样本数据,第10个是检验样本数据)
样本 输入值 输出值
1 0.1158230 0.1171710 0.1185170 0.1198500 0.1211210
2 0.1171710 0.1185170 0.1198500 0.1211210 0.1223890
3 0.1185170 0.1198500 0.1211210 0.1223890 0.1236260
4 0.1198500 0.1211210 0.1223890 0.1236260 0.1248100
5 0.1211210 0.1223890 0.1236260 0.1248100 0.1257860
6 0.1223890 0.1236260 0.1248100 0.1257860 0.1265830
7 0.1236260 0.1248100 0.1257860 0.1265830 0.1220559
8 0.1248100 0.1257860 0.1265830 0.1220559 0.1258951
9 0.1257860 0.1265830 0.1220559 0.1258951 0.1260498
10 0.1265830 0.1220559 0.1258951 0.1260498 0.1253065
模型的训练
在模型训练起初依据样本数据的归一化预处理设定了训练的目标误差E为1e-6,利用训练样本数据(1991-2003年的数据)来选择训练函数,运行检验数据得到
的误差E和均方差MSE最小的即为最好的训练函数。选择训练函数时我们反复利
用matlab工具箱自带的训练函数。经过反复的实验,我们最后选择了traingdx(带动量,自适应学习速率的梯度下降法)训练函数,误差E和均方差MSE均达到最小。计算迭代次数上限10000次时就可满足1e-6的误差限要求,训练效果(图2)。然后利用检验样本数据(2004年的数据)检验模型的准确性和稳定性,预测的误
差E为 1.462672295121648e-005,均方差MSE为1.171249499453727e-006。
Performance is 1.17125e-006, Goal is 1e-006010
-110
-210
-310
-410
-5Training-Blue Goal-Black10
-610
-71002004006008001000120014001600180020002067 Epochs
图2 模型训练曲线
人口预测
利用上述模型我们预测了2005年到2080年的人口数据(附录1)。在进行预测
时候用每四年的人口数据预测第五年的人口数,这样循环迭代下去。从预测曲线
(图3)可以看出在2020年以后人口数量就趋于稳定了,在一个小范围内波动,
6大概是在(千人)左右波动。 1.25710,
6
x 101.28
1.26
1.24
1.22
1.2
1.18
1.16
1.141990200020102020203020402050206020702080
图3 人口预测曲线 准确地预测未来人口的发展趋势,具有重大的理论意义和实用意义。准确性和稳
定性。以往研究表明神经网络预测的结果要比其传统预测结果有更高的准确性。
考虑到我国人口的复杂性,本文采用BP神经网络方法建模来预测我国的人口数量发展情况,达到较好的预测效果。其建模方法可以为其他的方面的预测提供一
定的参考作用,但是选择训练函数时采用很高的是大量试验的方法,还需要更进
一步的提高。
附录1:1991年至2080年的人口预测数据:
年份 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
人口 1158230 1171710 1185170 1198500 1211210 1223890 1236260 1248100 1257860 1265830 年份 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 人口 1220559 1258951 1260498 1252919 1246315 1260070 1258752 1255955 1253285 1258948 年份 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 人口 1257279 1256972 1255397 1258177 1256715 1257295 1256148 1257753 1256595 1257364 年份 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 人口 1256463 1257518 1256627 1257342 1256623 1257379 1256694 1257293 1256721 1257289 年份 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 人口 1256761 1257241 1256789 1257225 1256816 1257195 1256839 1257178 1256860 1257157 年份 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 人口 1256878 1257142 1256894 1257127 1256908 1257114 1256921 1257103 1256932 1257093 年份 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 人口 1256941 1257084 1256950 1257076 1256958 1257069 1256964 1257063 1256970 1257057 年份 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 人口 1256975 1257052 1256980 1257048 1256984 1257044 1256988 1257041 1256991 1257038 年份 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 人口 1256994 1257035 1256996 1257033 1256998 1257031 1257000 1257029 1257002 1257027
附录2:matlab6.5实现程序
%----------------------
%BP神经网络
%----------------------
close all;
clear all;
clc;
%为最后画图定义数据
X = [1991:1:2080];
Y = [1991:1:2080];
%初始化Y的部分数据为后面画图做准备
Y(1991-1990) = 1158230;
Y(2) = 1171710;
Y(3) = 1185170;
Y(4) = 1198500;
Y(5) = 1211210;
Y(6) = 1223890;
Y(7) = 1236260;
Y(8) = 1248100;
Y(9) = 1257860;
Y(10) = 1265830;
Y(11) = 1220559;
Y(12) = 1258951;
Y(13) = 1260498;
%输入的学习样本数据
P=[0.1158230 0.1171710 0.1185170 0.1198500 ;
0.1171710 0.1185170 0.1198500 0.1211210 ;
0.1185170 0.1198500 0.1211210 0.1223890 ;
0.1198500 0.1211210 0.1223890 0.1236260 ;
0.1211210 0.1223890 0.1236260 0.1248100 ;
0.1223890 0.1236260 0.1248100 0.1257860 ;
0.1236260 0.1248100 0.1257860 0.1265830 ;
0.1248100 0.1257860 0.1265830 0.1220559 ;
0.1257860 0.1265830 0.1220559 0.1258951 ;
0.1265830 0.1220559 0.1258951 0.1260498 ;
];
P = P';
%输出的学习样本数据目标 T=[0.1211210 0.1223890 0.1236260 0.1248100 0.1257860 0.1265830 0.1220559
0.1258951 0.1260498 0.1253065 ];
%BP网络设计
net = newff(minmax(P),[4,1],{'tansig','purelin'});%创建一个BP网络
%利用带动量,自适应学习速率的梯度下降法来训练网络
%数据训练前的网络拟合结果 A1 = sim(net,P);
%设置训练参数
net.trainFcn = 'traingdx';%设置训练函数,带动量,自适应学习速率的梯度下
降法
net.trainParam.epochs = 10000; %迭代次数10000次
net.trainparam.goal = 1e-6;%设置训练的目标误差
net=train(net,P,T);%trainning
%数据训练后的网络拟合结果 disp('网络拟合的结果') A2 = sim(net,P)
E = T - A2;
MSE = mse(E);%计算均方差误差性能值
disp('数据训练后的网络拟合结果误差')
E
disp('均方差误差性能值') MSE
%验证数据
disp('验证数据')
pt = [0.1265830 0.1220559 0.1258951 0.1260498 ];
pt = pt';
A2004 = sim(net,pt);
E2004 = 0.1253065 - A2004;
disp('2004年的数据为:') A2004
disp('E的值为:')
E2004
Y(2004-1990) = A2004*1e7;
%预测数据 in1 = 0.1220559;
in2 = 0.1258951;
in3 = 0.1260498;
in4 = A2004;
for i=2005:2080
pt = [in1 , in2 ,in3 ,in4];
pt = pt';
Y(i-1990) = sim(net,pt);
in1 = in2;
in2 = in3;
in3 = in4;
in4 = Y(i-1990);
Y(i-1990) = Y(i-1990)*1e7;
end
%作图
%在这里需要加个断点调试,否则会覆盖train图
Xlabel='年份';
Ylabel='人口数';
plot(X,Y,X,Y,'*');
范文二:神经网络模型
神經網絡模型
神經網絡可分為生物神經網絡和人工神經網絡兩大類。
生物神經網絡:Biological Neural Networks:一般指生物的大腦神經元,細胞,觸點等組成的網絡,用於產生生物的意識,幫助生物進行思考和行動。人的心智活動基礎是神經系統,其基本功能及結構的單元是神經元,又稱神經細胞;這些神經細胞經由特定的方式相互聯接成一複雜無比的網路,身體內部或外界環境的訊息就透過這樣的神經網路傳遞和處理。神經信號基本上是膜電位變化的傳遞;不同的細胞會受到不同的刺激,但傳出的膜電位變化都差異不大,真正決定的內涵是神經細胞之間的聯接。例如感光神經細胞經過幾層細胞的聯接,信號再送入大腦某特定感光的部位。雖然信號傳遞方式都一樣,但因為它是從感光細胞傳來的,所以代表光線的刺激,而不是痛覺信號。由最初單純每一個感光細胞是否感受到亮光的信號,經過許多層次的運算,最後我們即可感知一個視覺的畫陎,這些資訊運算處理的基礎也就是各個神經細胞之間的聯結網路。當一個神經細胞伸出軸突要尋找接觸對象時,有許多不同的分子(或者在其它的細胞表陎,或者在細胞分泌出的基質中)會作為路標,沿途指引方向。當然這個神經細胞本身也必須帶有一些受體分子,才能夠認識這些路標分子。神經細胞的性質是受它所帶的這一群分子所決定,但它不是固定不變的。不斷的刺激可以造成信號傳遞鏈中某些分子性質的長期改變,或是突觸傳遞信號的強度改變,這些變化可能是感覺適應及記憶的基礎。
人工神經網絡:類神經網路,Artificial Neural Networks:一般是指用計算機 模擬 人腦的結構,用許多小的處理單元模擬生物的神經元,用算法實現人腦的識別、記憶、思考過程。應用於圖像、語言、聲音等的識別,複雜的計算,以及趨勢預測等領域。人工類神經網路使用數個微處理器,用來當做人腦之中的神經元,將它們組合成人腦的神經網路結構型態,然後選定一個數學推論出來的演算法,將這演算法置入這個類神經網路中,最後選定你所要讓類神經網路學習的東西,將它轉成類神經網路所能接受的型態,經由介陎輸入,則類神經網路就開始學習,並且自己調整每個微處理器:神經元:之間的加權值,直到符合你所要學習的目標。
神經網絡系統的組成元件包括處理數據的基本元件Neuron及Neuron互相連接的橋樑Link,不同數量的Neuron組成網絡層即Network Layer,不同的網絡層平行排列成神經網絡系統架構,而接受數據輸入的網絡層我們稱為輸入層Input Layer,相反網絡計算結果輸出的介陎我們稱為輸出層Output Layer,負責網絡內
部計算即界符輸入及輸出的網絡層,我們稱為隱藏層Hidden Layer,經過以上神經網絡系統元件介紹後,相信各位對神經網絡系統結構已經有了初步籃圖。根據外國學者及專家研究結果所得,使用三層網絡架構基本上可以模擬,分析及解決大部份的複雜問題,所以三層神經網絡系統係現時最流行使用及具效率的分析架構,而他們証實使用四層架構即兩層隱藏層加一層輸入及輸出層的數量已經係上限,他們更發現使用五層或以上的神經網絡層組合架構不但沒有提高系統本身分於析及預測的準確度,相反還會降低系統整體運作速度及執行效率。
下圖為三層的神經網絡系統及模型架構,圖表中,位於最左邊垂直排列的一層為輸入層,當中包括,個輸入Neuron及,個Bias Neuron,而位於最右邊是輸出層包括,個輸出Neuron,而介符兩者間為內部隱藏計算層包括,個Neuron及,個Bias Neuron,如下圖:
f(x)稱為Activation function,而f(x)本身可以使用Linear,Step,Ramp,Sigmoid或Gaussian不同種類的函數代替,而現時較流行的神經網絡分析系統均使用Sigmoidal function,而上述模型中f(x)為其中Sigmoidal function之一類,稱為Logistic Sigmoid function。
神經網絡的學習訓練程序係使用系統分析的主要程序,分析人員需要將整理好的學習訓練個案載入網絡系統中,系統不斷從相關數據裹接受訓練並且當學習訓練程序到達預先設定好的終止條件後,學習訓練程序便會終止。基本上分析人員可以利用以上學習訓練結果去進行分析,分類及預測等不同範疇應用,現時學習訓練主要有兩種分類方法:
:1:指導性學習訓練Supervised Learning,每筆學習訓練的個案必須提供與其有關之既定結果一併給神經網絡接受學者訓練,系統以便根據每筆數據與其相關結果不斷進行內部網絡相關參數調整及更新,從而決定最適合的對應函數之相關參數。現時最流行的神經網絡學習訓練演算法是Back-propagation Training
Algorithm,由於計算過程牽涉向量函數Vector Function,而微分Derivative向量函數我們稱為Gradient,故有稱Gradient Descent Algorithm,下列為主要數學公式去執行有關演算法:
上列公式中,,代表神經網絡系統學習訓練速率Learning Rate,而,為Momentum Term代表指向某方向並且增加神經網絡系統訓練學習速度的參數。 :2:非指導性學習訓練Unsupervised Learning,相反每筆學習訓練的個案沒有提供與其有關之既定結果給神經網絡接受學者訓練,系統需要根據載入的學習訓練的個案不斷進行內部網絡相關參數調整及更新,並且自行決定學習訓練的個案整體不同特徵,Kohonen Learning是其中例子。
類神經網路是利用大量的神經元來模擬人腦的基本單元,其網路建構的目標在於映射輸入與輸出之間關係的數學。基本神經網路架構有三層,分別為輸入層(Input Layer)、隱藏層(Hidden Layer)和輸出層(Output Layer) ,如圖一所示,圖中每一個圈圈稱為節點(Node)或神經元(Neuron),每一個神經元都是以平行方式進行資料處理,其中輸入層是將外界的資訊輸入到網路,隱藏層則將輸入資料進行處理,但使用者看不到整個資料處理過成,故稱為隱藏層,輸出層則將處理的結果傳送出去。
神經網路的特性:
1. 高度平行處理能力: 神經網路利用大量的神經元仿生物的神經系統而具有高
度平行處理的能力。
2. 學習與記憶能力:神經網路調整網路的權重值來學習並記億輸入與輸出資料的
關係。
3. 容錯能力:網路有大量的鏈結,當部份鏈結失效,網路還是可以提供相當正確
的輸出。
神經網路的缺點:
1. 類神經網路因為其中間變數:即隱藏層:可以是一層或二層,數目也可設
為任意數目,而且有學習速率等參數需設定,工作相當費時。
2. 類神經網路以迭代方式更新鍵結值與閥值,計算量大,相當耗費電腦資源。
3. 類神經網路的解有無限多組,無法得知哪一組的解為最佳解。
4. 類神經網路訓練的過程中無法得知需要多少神經元個數,太多或太少的神
經元均會影響系統的準確性,因此往往需以試誤的方式得到適當的神經元個
數。
5. 類神經網路因為是以建立數值結構:含加權值的網路:來學習,其知識結
構是隱性的,缺乏解釋能力。而歸納學習以建立符號結構:如:決策樹:來
學習,其知識結構是顯性的,具解釋能力。
類神經網路依照學習模式可以區分成兩大類:
1. 監督式學習(Supervised learning)
監督式學習是以迭代方式不斷修正神經網路中的權值(Weight),在修正的過程中我們希望輸出(Output)結果符合期待(Desired)的結果。在每一個訓練例子,給于神經網路一個輸入值和期望輸出值,這個期望輸出值便扮演老師的角色,不斷監督神經網路去修正權值,在整個訓練過程中不段修正權值,來修正神經網路輸入值與期望輸出值之間的誤差,直到誤差小於一定的臨界值或權值不再改變才會停止訓練。
2. 非監督式學習(Unsupervised learning)
非監督式學習僅需要提供輸入資料,不需要期望輸出資料,也就是說它不需要誤差訊息去改善神經網路的輸出,僅需要依照輸入資料便可以判斷其類別。 所以,我們知道非堅督式學習神經網路通常是利用在分類的問題上陎。而監督式神經網路則是用在模型訓練。
參考資料來源:
http://home.pacific.net.hk/~phoebech/neuralnet.htm#title3
http://zh.wikipedia.org/w/index.php?title=%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&variant=zh-hant
http://tw.knowledge.yahoo.com/question/question?qid=1306032514785
http://zh.wikipedia.org/w/index.php?title=%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&variant=zh-hant
http://www.csie.nctu.edu.tw/~kensl/AIrpt.htm
范文三:神经网络模型
神经网络模型
模拟人类实际神经网络的数学方法问世以来,人们已慢慢习惯了把这种人工神经网络直接称为神经网络。神经网络在系统辨识.模式识别,智能控制等领域有着广泛而吸引人的前景。特别在智能控制中,人们对神经网络的自学习功能尤其感兴趣,并且把神经网络这一重要特点看作是解决自动控制中按制器适应能力这个难题的关键钥匙之一。神经网络的基础在于神经元。神经元是以生物神经系统的神经细胞为基础的生物模型。在人们对生物神经系统进行研究,以探讨人工智能的机制时,把神经元数学化,从而产生了神经元数学模型。大量的形式相同的神经元连结在-起就组成了神经网络。神经网络是一个高度非线性动力学系统。虽然,每个神经元的结构和功能都不复杂,但是神经网络的动态行为则是十分复杂的;因此,用神经网络可以表达实际物理世界的各种现象。神经网络模型是以神经元的数学模型为基础来拥述的。神经网络模型由网络拓扑.节点特点和学习规则来表示。神经网络对人们的巨大吸引力主要在下列几点:1.并行分布处理。2.高度鲁棒性和容错能力。3.分布存储及学习能力。4.能充分逼近复杂的非线性关系。在控制领域的研究课题中,不确定性系统的控制问题长期以来都是控制理论研究的中心主题之一,但是这个问题一直没有得到有效的解决。利用神经网络的学习能力,使它在对不确定性系统的控制过程中自动学习系统的特性,从而自动适应系统随时间的特性变异,以求达到对系统的最优控制;显然这是一种十分振奋人心的意向和方法。人工神经网络的模型现在有数十种之多,在这一章中,主要介绍应用较多的典型的神经网络模型。这些模型包括BP网络、Hopfield网络、ART网络和Kohonen网络。1.1神经网络的基本机理和结构神经网络的基本组成单元是神经元,在数学上的神经元模型是和在生物学上的神经细胞对应的。或者说,人工神经网络理论是用神经元这种抽象的数学模型来描述客观世界的生物细胞的。很明显,生物的神经细胞是神经网络理论诞生和形成的物质基础和源泉。这样,神经元的数学描述就必须以生物神经细胞的客观行为特性为依据。因此,了解生物神经细胞的行为特性就是一件十分重要而必须的事了。神经网络的拓朴结构也是以生物学解剖中神经细胞互连的方式为依据的。对神经细胞相互作用情况的揭露也是十分重要的。1.1.1神经元及其行为机理神经元是神经网络基本元素。只有了解神经元才能认识神经网络的本质。在这一节介绍神经元的生物学解副,信息的处理与传递
方式,工作功能以及其数学模型。一、神经元的生物学解剖在人体内,神经元的结构形式并非是完全相同的;但是,无论结构形式如何,神经元都是由一些基本的成份组成的。神经元的生物学解剖可以用图1-1所示的结构表示。从图中可以看出:神经元是由细胞体,树突和轴突三部分组成。图1-1神经元的解剖1.细胞体细胞体是由很多分子形成的综合体,内部含有一个细胞核、核糖体、原生质网状结构等,它是神经元活动的能量供应地,在这里进行新陈代谢等各种生化过程。神经元也即是整个细胞,整个细胞的最外层称为细胞膜。2.树突细胞体的伸延部分产生的分枝称为树突,树突是接受从其它神经元传人的信息的入口。3.轴突细胞体突起的最长的外伸管状纤维称为轴突。轴突最长可达1米以上。轴突是把神经元兴奋的信息传出到其它神经元的出口。突触,是一个神经元与另一个神经元之间相联系并进行信息传送的结构。突触如图1-2所示。它由突触前成分,突触间隙和突触后成分组成。突触前成分是一?个神经元的
-轴突末梢。突触间隙是突触前成分与后成分之间的距离空间,间隙一般为200300Å。突触后成分可以是细胞体,树突或轴突。突触的存在说明:两个神经元的细胞质并不直接连通,两者彼此联系是通过突触这种结构接口的。有时.也把突触看作是神经元之间的连接。图1-2突触结构目前,根据神经生理学的研究,已经发现神经元及其问的突触起码有不同的4种行为。神经元的4种生物行为有:(1)能处于抑制或兴奋状态;(2)能产生爆发和平台两种情况;(3)能产生抑制后的反冲;(4)具有适应性。突触的4种生物行为有:(1)能进行信息综合;(2)能产生渐次变化的传送;(3)有电接触和化学接触等多种连接方式;(4)会产生延时激发。目前,人工神经网络的研究仅仅是对神经元的第一种行为和突触的第一种行为进行模拟,其它行为尚未考虑。所以,神经网络的研究只是处于起步的初级阶段,后边还有大量的工作等人们去探讨和研究。目前,神经网络的研究已向人们展示了其美好的前景;只要按阶段不断取得进展,神经元和突触的其它行为是完全可以实现人工模拟的。二.神经元的信息处理与传递1.神经元的兴奋与抑制人工神经网络对神经元的兴奋与抑制进行模拟,故而首先应了解神经元的兴奋与抑制状态。一个神经元的兴奋和抑制两种状态是由细胞膜内外之间不同的电位差来表征的。在抑制状态,细胞膜内外之间有内负外正的电位差,这个电位差大约在-50--100mv之间。在兴奋状态,则产生内正外负的相反电位差,这时表现为约60-100mv的电脉冲。细胞膜内外的电位差是由膜内外的离子浓度不同导致的。细胞的兴奋电脉冲宽度一般大约为1ms。神经元的兴奋过程电位变化如图1-3所示。图1-3.神经元的兴奋过程电位变化2.神
经元的信息传递及阀值特性对神经细脑的研究结果表明:神经元的电脉冲几乎可以不衰减地沿着轴突传送到其它神经元去。由神经元传出的电脉冲信号通过轴突,首先到达轴突末梢,这时则使其中的囊泡产生变化从而释放神经递质,这种神经递质通过突触的间隙而进入到另一个神经元的树突中。树突上的受体
子浓度差产生变化;能够接受神经递质从而去改变膜向离子的通透性.使膜外内离
进而使电位产生变化。显然,信息就从一个神经元传送到另一个神经元中。当神经元接受来自其它神经元的信息时,膜电位在开始时是按时间连续渐渐变化的。当膜电位变化经超出一个定值时,才产生突变上升的脉冲,这个脉冲接着沿轴突进行传递。神经元这种膜电位高达一定阀值才产生脉冲传送的特性称阀值特性。这种阀值特性从图1-3中也可以看出。神经元的信息传递除了有阀值特性之外,还有两个特点。一个是单向性传递,即只能从前一级神经元的轴突
信息末梢传向后一级神经元的树突或细胞体,不能反之。另一个是延时性传递.通过突触传递,通常会产生0.5-1ms的延时。3.神经元的信息综合特性神经元对来自其它神经元的信息有时空综合特性。在神经网络结构上,大量不同的神经元的轴突末梢可以到达同一个神经元的树突并形成大量突触。来源不同的突触所释放的神经递质都可以对同一个神经元的膜电位变化产生作用。因此,在树突上,神经元可以对不同来源的输入信息进行综合。这就是神经元对信息的空间综合特性。对于来自同一个突触的信息,神经元可以对于不同时间传人的信息进行综合。故神经元对信息有时间综合特性。4.神经元、突触的D/A、A/D特性从神经元轴突上传递的信息是等幅、恒宽、编码的离散电脉冲信号,故而是一个数字量。但在突触中神经递质的释放和树突中膜电位的变化是连续的。故而,这时说明突触有D/A功能。在神经元的树突膜电位高过一定阀值时,则又变成电脉冲方式由轴突传送出去。故而,这个过程说明神经元有A/D功能。很明显,信息通过一个神经元传递时,神经元对信息执行了D/A、A/D转换过程。从上面可知,神经元对信息的处理和传递有阀值,D/A、A/D和综合等一系列特性和功能。三、神经元的数学模型从神经元的特性和功能可以知道,神经元是一个多输入单输出的信息处理单元,而且,它对信息的处理是非线性的。根据神经元的特性和功能,可以把神经元抽象为一个简单的数学模型。工程上用的人工神经元模型如图1-4所示。图1-4神经元的数学模型在图1-4中,X1,X2,…,Xn是神经元的输入,即是来自前级n个神经元的轴突的信息A是i神经元的阎值;Wi1,Wi2…,Win分别是i神经元对X1,X2,…,Xn的权系数,也即突触的传递效率;Yi是i神经元的输出;f[?]是激发函数,它决定i神
经元受到输人X1,X2,…,Xn的共同刺激达到阀值时以何种方式输出。从图1-4的神经元模型,可以得到神经元的数学模型表达式:(1-1)图1-5.典型激发函数对于激发函数f[?]有多种形式,其中最常见的有阶跃型、线性型和S型三种形式,这三种形式如图1-5所示。为了表达方便;令:(1-2)则式(1-1)可写成下式:Yi=F[Ui];(1-3)显然,对于阶跃型激发涵数有:(1-4)对于线性型激发函数,有:f(Ui)=Ku;(1-5)对于S型激发函数,有:(1-6)对于阶跃型激发函数,它的输出是电位脉冲,故而这种激发函数的神经元称离散输出模型。对于线性激发函数,它的输出是随输入的激发总量成正比的;故这种神经元称线性连续型模型。对于用s型激发函数,它的输出是非线性的;故这种神经元称非线性连续型模型。上面所叙述的是最广泛应用而且人们最熟悉的神经元数学模型;也是历史最长的神经元模型。近若干年来,随着神经网络理论的发展,出现了不少新颖的神经元数学模型,这些模型包括逻辑神经元模型,模糊神经元模型等,并且渐渐也受到人们的关注和重视。
范文四:神经网络模型
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的输出为O,并设有N个样本i
(x,y)(k=1,2,3,?,N),对某一输入X,网络输出为y节点i的输出为O,节点j的输kkkkik入为:
-4-
Neural Network 并将误差函数定义为:
2其中?为网络实际输出,定义E=(y-?), kkkk
如果有M层,而第M 层仅含输出节点,第1 层为输入节点,则BP算法为:
-5-
Neural Network
第 1 步,选取初始权值W;
第 2 步,重复以下循环过程直至收敛:
a. 对于k=1到N
a) 计算O,net和?的值(正向过程); ikjkk
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神
N N经网络中最常用的基函数是高斯函数,即对于任意的输入向量X?R(R为输入样本集),它定义为
式中R(x)为隐含层第i 个单元的输出,X 为N 维输入向量,C为隐含层第i 个ii单元高斯函数的中心点,σ为第i 个隐节点的归一化参数,即该隐节点的宽度,i
N为隐含层节点数。 r
图5 用期望值及方差作为参数表示的高斯函数曲线
-7-
Neural Network
径向基函数神经网络的隐含神经元的输出函数被定义为具有径向对称的基函数(即径向基函数),而基函数的中心向量被定义为网络输入层到隐含层的连接权向量。这个特点使得隐含层对输入样本有一个聚类的作用。其中中心向量为类均值,它的个数代表聚类的类数。这样,由于基函数对输入激励产生一个局部化的响应,仅当输入落在输入空间的一个很小的指定区域时,隐含单元才作出有意义的非零响应。
RBF神经网络中的学习方法,由于RBF神经网络中待确定的参数有两类:基函数中心点、宽度以及网络的权值。因此,网络的学习过程分为两步:首先确定基函数中心点和宽度,其次是权值学习。
RBF网络学习,整个训练过程分为非监督学习和监督学习两个阶段。非监督学习阶段采用K-means 聚类方法对训练样本的输入量进行聚类,找出聚类中心C及 σ 参数,然后进行监督学习阶段。由于当C及 σ确定之后,RBF 网络i i i
从输入到输出就成了一个线性方程组,因此监督学习阶段可以采用最小二乘法求解网络的输出权值w。即用有监督学习算法调整隐含层到输出层的权重,算法i
步骤如下:
(1) 用最小、最大规范化方法,使属性归一到网络的处理范围;
(2) 用径向基函数计算中间层的输出Y; h
(3) 输出层第j 个神经单元的输出结果根据公式:
计算。式中Yhi是隐含层第i 个神经元的输出值;Wji是隐含层第i 个神经元至输出层第j个神经元的权重系数;函数f取Sigmoid函数形式,即f(x)=1/(1+exp(-x/x))。 0
(4) 采用公式ΔY=Y(1-Y)(d-Y)计算输出层误差,d是第j个神经元的期望输jjjjjj
出,Y是隐含层第j 个神经元的实际输出值。 j
对权重系数进行调整,公式是ΔW=α?ΔY(1-Y)(d-Y),W?=W+ΔW jjjjjj
式中α是学习速率。
-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 欠费月数 0.0065 0.01 1% 2 在网月数 0.0098 0.01 1% 3 三个月双停次数 0.0117 0.01 1% 4 两个月本地被叫次数的平均值 0.0174 0.02 2% 5 三个月欠费标准差 0.0182 0.02 2% 6 对端号码数 0.019 0.02 2% 7 三个月漫游通话比例平均值 0.0194 0.02 2% 8 两个月本地主叫次数的平均值 0.0198 0.02 2% 9 主叫计费时长 0.0199 0.02 2% 10 三个月长途费平均值 0.0232 0.02 2% 10 最近三月停机次数 0.0259 0.03 3% 12 两个月账本总余额平均值 0.0306 0.03 3% 13 三个月单停次数 0.0336 0.03 3% 14 三个月充值次数的平均值 0.041 0.04 4% 15 信息费占比 0.0877 0.09 9% 16 投诉次数 0.0881 0.09 9% 17 主叫时长标准差 0.1016 0.1 10% 18 三个月长途通话比例平均值 0.1025 0.1 10% 19 充值次数 0.1038 0.1 10% 20 三个月ARPU标准差 0.1063 0.11 11% 21 两个月账单金额平均值 0.1141 0.11 11%
-18-
范文五:神经网络模型
第十九章神经网络模型
§1 神经网络简介
人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及 功能的一种抽象数学模型。自1943 年美国心理学家W. McCulloch 和数学家W. Pitts 提 出形式神经元的抽象数学模型—MP 模型以来,人工神经网络理论技术经过了50 多年 曲折的发展。特别是20 世纪80 年代,人工神经网络的研究取得了重大进展,有关的理 论和方法已经发展成一门界于物理学、数学、计算机科学和神经生物学之间的交叉学科。 它在模式识别,图像处理,智能控制,组合优化,金融预测与管理,通信,机器人以及 专家系统等领域得到广泛的应用,提出了40 多种神经网络模型,其中比较著名的有感 知机,Hopfield 网络,Boltzman 机,自适应共振理论及反向传播网络(BP)等。在这 里我们仅讨论最基本的网络模型及其学习算法。
1.1 人工神经元模型
下图表示出了作为人工神经网络(artificial neural network,以下简称NN)的基本 单元的神经元模型,它有三个基本要素:
(i)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权 值为正表示激活,为负表示抑制。
(ii)一个求和单元,用于求取各输入信号的加权和(线性组合)。
(iii)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范 围内(一般限制在(0,1)或(?1,1)之间)。
此外还有一个阈值 k
θ (或偏置k k b = ?θ )。
以上作用可分别以数学式表达出来:
Σ
=
p
j
k kj j
1 = u w x
, k k k v = u ?θ , ( ) k k y =? v
式中 p x , x , , x 1 2 L 为输入信号, k k kp w ,w , ,w 1 2 L 为神经元k 之权值, k u 为线性组合结
果, k
θ 为阈值,? (?)为激活函数, k y 为神经元k 的输出。
若把输入的维数增加一维,则可把阈值 k
θ 包括进去。例如
Σ=
=
p
j
k kj j
0 v w x
, ( ) k k y =? u
此处增加了一个新的连接,其输入为1 0 x = ? (或+1),权值为k k w =θ 0 (或k b ),如
下图所示。
-231-
激活函数? (?)可以有以下几种:
(i)阈值函数
? ? ?
≥
=
0, 0
1, 0
( )
v
v
? v (1)
即阶梯函数。这时相应的输出 k y 为
? ? ?
≥
=
0, 0
1, 0
k
k
v
v
y k
其中 Σ=
= ?
p
j
k kj j k
1 v w x
θ ,常称此种神经元为M ? P模型。
(ii)分段线性函数
? ?
?
? ?
?
?
≤ ?
+ ?
≥
=
0, 1
(1 ), 1 1
2
1
1, 1
( )
v
v v
v
? v (2)
它类似于一个放大系数为 1 的非线性放大器,当工作于线性区时它是一个线性组合器, 放大系数趋于无穷大时变成一个阈值单元。
(iii)sigmoid 函数
最常用的函数形式为
1 exp( )
( ) 1
v
v
α
?
+ ?
= (3)
参数α > 0可控制其斜率。另一种常用的是双曲正切函数
1 exp( )
1 exp( )
2
( ) tanh
v
v v v
+ ?
? ?
= ??
?
??
? = ? (4)
这类函数具有平滑和渐近性,并保持单调性。
Matlab 中的激活(传递)函数如下表所示:
函数名 功 能
purelin 线性传递函数
-232-
hardlim 硬限幅传递函数
hardlims 对称硬限幅传递函数
satlin 饱和线性传递函数
satlins 对称饱和线性传递函数
logsig 对数S 形传递函数
tansig 正切S 形传递函数
radbas 径向基传递函数
compet 竞争层传递函数
各个函数的定义及使用方法,可以参看Matlab 的帮助(如在Matlab 命令窗口运行 help tansig,可以看到tantig 的使用方法,及tansig 的定义为1
1
( ) 2 2 ?
+
= e? v
? v )。
1.2 网络结构及工作方式
除单元特性外,网络的拓扑结构也是NN 的一个重要特性。从连接方式看NN 主要 有两种。
(i)前馈型网络
各神经元接受前一层的输入,并输出给下一层,没有反馈。结点分为两类,即输入 单元和计算单元,每一计算单元可有任意个输入,但只有一个输出(它可耦合到任意多 个其它结点作为其输入)。通常前馈网络可分为不同的层,第i层的输入只与第i ?1层 输出相连,输入和输出结点与外界相连,而其它中间层则称为隐层。
(ii)反馈型网络
所有结点都是计算单元,同时也可接受输入,并向外界输出。
NN 的工作过程主要分为两个阶段:第一个阶段是学习期,此时各计算单元状态不 变,各连线上的权值可通过学习来修改;第二阶段是工作期,此时各连接权固定,计算 单元状态变化,以达到某种稳定状态。
从作用效果看,前馈网络主要是函数映射,可用于模式识别和函数逼近。反馈网络 按对能量函数的极小点的利用来分类有两种:第一类是能量函数的所有极小点都起作 用,这一类主要用作各种联想存储器;第二类只利用全局极小点,它主要用于求解最优 化问题。
§2 蠓虫分类问题与多层前馈网络
2.1 蠓虫分类问题
蠓虫分类问题可概括叙述如下:生物学家试图对两种蠓虫(Af 与Apf)进行鉴别, 依据的资料是触角和翅膀的长度,已经测得了9 支Af 和6 支Apf 的数据如下:
Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70), (1.48,1.82),(1.54,1.82),(1.56,2.08).
Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).
现在的问题是:
(i)根据如上资料,如何制定一种方法,正确地区分两类蠓虫。
(ii)对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3 个标本,用所得 到的方法加以识别。
(iii)设Af 是宝贵的传粉益虫,Apf 是某疾病的载体,是否应该修改分类方法。 如上的问题是有代表性的,它的特点是要求依据已知资料(9 支Af 的数据和6 支
Apf 的数据)制定一种分类方法,类别是已经给定的(Af 或Apf)。今后,我们将9 支 -233-
Af 及6 支Apf 的数据集合称之为学习样本。
2.2 多层前馈网络
为 解 决 上 述问题, 考虑一个其结构如下图所示的人工神经网络,
激活函数由
1 exp( )
( ) 1
v
v
α
?
+ ?
=
来决定。图中最下面单元,即由所示的一层称为输入层,用以输入已知测量值。在
我们的例子中,它只需包括两个单元,一个用以输入触角长度,一个用以输入翅膀长度。 中间一层称为处理层或隐单元层,单元个数适当选取,对于它的选取方法,有一些文献 进行了讨论,但通过试验来决定,或许是最好的途径。在我们的例子中,取三个就足够 了。最上面一层称为输出层,在我们的例子中只包含二个单元,用以输出与每一组输入 数据相对应的分类信息.任何一个中间层单元接受所有输入单元传来的信号,并把处理 后的结果传向每一个输出单元,供输出层再次加工,同层的神经元彼此不相联接,输入 与输出单元之间也没有直接联接。这样,除了神经元的形式定义外,我们又给出了网络 结构。有些文献将这样的网络称为两层前传网络,称为两层的理由是,只有中间层及输 出层的单元才对信号进行处理;输入层的单元对输入数据没有任何加工,故不计算在层 数之内。
为了叙述上的方便,此处引人如下记号上的约定:令s 表示一个确定的已知样品标 号,在蠓虫问题中,s = 1,2,L,15,分别表示学习样本中的15 个样品;当将第s个样 品的原始数据输入网络时,相应的输出单元状态记为Os (i = 1,2)
i ,隐单元状态记为 ?
) 3 , 2 , 1 ( = j H sj
,输入单元取值记为I s (k = 1,2)
k 。请注意,此处下标i, j,k 依次对应于
输出层、中间层及输入层。在这一约定下,从中间层到输出层的权记为ij w ,从输入层 到中间层的权记为jk w 。如果ij w , jk w 均已给定,那么,对应于任何一组确定的输入 ( , ) 1 2
I s I s ,网络中所有单元的取值不难确定。事实上,对样品s而言,隐单元j的输入 是
Σ
=
2
k 1
s
jk k
s
j = h w I (5)
相应的输出状态是
Σ
2
1 = = =
( ) ( )
k
s
jk k
s
j
H
?
h
?
w
I sj
(
6)
由此,输出单元 i 所接收到的迭加信号是
-234-
Σ Σ Σ
= = =
= =
3
1
3
1
2
1
( )
j j k
s
ij jk k
sj
ij
s
i h w H w ? w I (7)
网络的最终输出是
( ) ( ) ( ( ))
3
1
2
1
3
1
Σ Σ Σ
= = =
= = =
j k
s
ij jk k
j
sj
ij
s
i
s
i O ? h ? w H ? w ? w I (8)
这里,没有考虑阈值,正如前面已经说明的那样,这一点是无关紧要的。还应指出的是, 对于任何一组确定的输入,输出是所有权{ , } ij jk w w 的函数。
如果我们能够选定一组适当的权值{ , } ij jk w w ,使得对应于学习样本中任何一组Af 样品的输入( , ) 1 2
I s I s ,输出( , ) (1,0) 1 2 Os Os = ,对应于Apf 的输入数据,输出为(0,1),
那么蠓虫分类问题实际上就解决了。因为,对于任何一个未知类别的样品,只要将其触 角及翅膀长度输入网络,视其输出模式靠近(1,0)亦或(0,1),就可能判断其归属。当然, 有可能出现介于中间无法判断的情况。现在的问题是,如何找到一组适当的权值,实现 上面所设想的网络功能。
2.3 向后传播算法
对于一个多层网络,如何求得一组恰当的权值,使网络具有特定的功能,在很长一
段时间内,曾经是使研究工作者感到困难的一个问题,直到1985 年,美国加州大学的
一个研究小组提出了所谓向后传播算法(Back-Propagation),使问题有了重大进展,这 一算法也是促成人工神经网络研究迅猛发展的一个原因。下面就来介绍这一算法。 如前所述,我们希望对应于学习样本中Af 样品的输出是(1,0),对应于Apf 的输出 是(0,1),这样的输出称之为理想输出。实际上要精确地作到这一点是不可能的,只能 希望实际输出尽可能地接近理想输出。为清楚起见,把对应于样品s 的理想输出记为 { s}
i T ,那么
= Σ ?
i s
s
i
s
i
, E W T O
( )2
2
( ) 1 (9)
度量了在一组给定的权下,实际输出与理想输出的差异,由此,寻找一组恰当的权的问 题,自然地归结为求适当W 的值,使E(W)达到极小的问题。将式(8)代入(9),有 Σ Σ Σ
= =
= ?
s i j k
s
ij jk k
s
i
,
2
3
1
2
1 E W T w w I
[ ( ( ))]
2
( ) 1 ? ? (10)
易知,对每一个变量ij w 或ij w 而言,这是一个连续可微的非线性函数,为了求得其极 小点与极小值,最为方便的就是使用最速下降法。最速下降法是一种迭代算法,为求出 E(W)的(局部)极小,它从一个任取的初始点0 W 出发,计算在0 W 点的负梯度方向 — ( ) 0 ?E W ,这是函数在该点下降最快的方向;只要( ) 0 0 ?E W ≠ ,就可沿该方向移动
一小段距离,达到一个新的点( ) 1 0 0 W =W ?η?E W ,η 是一个参数,只要η 足够
小,
定能保证( ) ( ) 1 0 E W
对于隐单元到输出单元的权 ij w 而言,最速下降法给出的每一步的修正量是 -235-
= Σ ? = Σ
?
?
Δ = ?
s s
sj
s
i
sj
s
i
s
i
s
i
ij
ij T O h H H
w
w η E η [ ]? '( ) η δ
此处令
' ( )[ s ]
i
s
i
s
i
s
i δ =? h T ?O (12)
对输入单元到隐单元的权 jk w
= Σ ?
?
?
Δ = ?
s i 11) (
sj
sj
ij
s
i
s
i
s
i
jk
T O h w h I w
w E jk
,
η η [ ]? '( ) ? '( ) = Σ = Σ s
s
k
s
j
s i
s
k
sj
ij
s
i
, η δ w ? h I η δ I
' ( ) (13) 此处
= Σ
i
s
ij i
sj
s
j δ ? '(h ) w δ
从(11)和(13)式可以看出,所有权的修正量都有如下形式,即
Δ = Σ
s
sq
sp
pq w η δ v (14)
指标 p 对应于两个单元中输出信号的一端,q 对应于输入信号的一端,v 或者代表H 或 者代表I 。形式上看来,这一修正是“局部”的,可以看作是Hebb 律的一种表现形式。 还应注意, s
i δ
由实际输出与理想输出的差及s
i h 决定,而s
j δ 则需依赖s
δ i
算出,因此,
这一算法才称为向后传播算法。稍加分析还可知道,利用由(11)~(13)式所给出的 计算安排,较之不考虑sp
δ 的向后传播,直接计算所有含? '的原表达式,极大地降低了
计算工作量。这组关系式称作广义δ ?法则,它们不难推广到一般的多层网络上去。 利用这一迭代算法,最终生成在一定精度内满足要求的{ , } ij jk w w 的过程,称为人 工神经网络的学习过程。可以看出,这里所提供的学习机制是元与元之间权的不断调整, 学习样本中任何一个样品所提供的信息,最终将包含在网络的每一个权之中。参数η 的 大小则反映了学习效率。
为了更有效地应用 BP 算法,我们做出如下一些补充说明。
(i)在式(11)与(13)中, ij jk Δw ,Δw 表示为与所有样品s有关的求和计算。 实际上,我们还可以每次仅考虑输入一个样品所造成的修正,然后,按照随机选取的顺 序,将所有样品逐个输入,不断重复这一手续,直至收敛到一个满意的解为止。 (ii)在如上的算法中,利用实际输出与理想输出差的平方和作为度量{ , } ij jk w w 优 劣的标准,这并不是唯一的度量方式,完全可以从其它的函数形式出发,例如从相对熵 出发,导出相应的算法。
(iii)在如上的讨论中使用的是最速下降法,显然,这也不是唯一的选择,其它的 非线性优化方法,诸如共轭梯度法,拟牛顿法等,都可用于计算。为了加速算法的收敛 速度,还可以考虑各种不同的修正方式。
(iv)BP 算法的出现,虽然对人工神经网络的发展起了重大推动作用,但是这一 算法仍有很多问题.对于一个大的网络系统,BP 算法的工作量仍然是十分可观的,这 主要在于算法的收敛速度很慢。更为严重的是,此处所讨论的是非线性函数的优化,那 么它就无法逃脱该类问题的共同困难:BP 算法所求得的解,只能保证是依赖于初值选
取的局部极小点。为克服这一缺陷,可以考虑改进方法,例如模拟退火算法,或从多个 -236-
随机选定的初值点出发,进行多次计算,但这些方法都不可避免地加大了工作量。
2.4 蠓虫分类问题的求解
下面利用上文所叙述的网络结构及方法,对蠓虫分类问题求解。编写 Matlab 程序 如下:
clear
p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;
1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00
1.28,2.00;1.30,1.96];
p=[p1;p2]';
pr=minmax(p);
goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];
plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')
net=newff(pr,[3,2],{'logsig','logsig'});
net.trainParam.show = 10;
net.trainParam.lr = 0.05;
net.trainParam.goal = 1e-10;
net.trainParam.epochs = 50000;
net = train(net,p,goal);
x=[1.24 1.80;1.28 1.84;1.40 2.04]';
y0=sim(net,p)
y=sim(net,x)
§3 处理蠓虫分类的另一种网络方法
3.1 几个有关概念
在介绍本节主要内容之前,首先说明几个不同的概念。在上一节中,我们把利用
BP 算法确定联接强度,即权值的过程称为“学习过程”,这种学习的特点是,对任何一 个输入样品,其类别事先是已知的,理想输出也已事先规定,因而从它所产生的实际输 出与理想输出的异同,我们清楚地知道网络判断正确与否,故此把这一类学习称为在教 师监督下的学习;与它不同的是,有些情况下学习是无监督的,例如,我们试图把一组 样品按其本身特点分类,所要划分的类别是事先未知的,需要网络自身通过学习来决定, 因而,在学习过程中,对每一输入所产生的输出也就无所谓对错,对于这样的情况,显 然BP 算法是不适用的。
另一个有关概念是所谓有竞争的学习。在上节所讨论的蠓虫分类网络中,尽管我们 所希望的理想输出是(1,0)或(0,1),但实际输出并不如此,一般而言,两个输出单元均 同时不为0。与此不同,我们完全可以设想另外一种输出模式:对应任何一组输入,所 有输出单元中,只允许有一个处于激发态,即取值为1,其它输出单元均被抑制,即取 值为0。一种形象的说法是,对应任何一组输入,要求所有的输出单元彼此竞争,唯一 的胜利者赢得一切,失败者一无所获,形成这样一种输出机制的网络学习过程,称为有 竞争的学习。
3.2 最简单的无监督有竞争的学习
本节叙述一种无监督有竞争的网络学习方法,由此产生的网络可用来将一组输入样 品自动划分类别,相似的样品归于同一类别,因而激发同一输出单元,这一分类方式,
是网络自身通过学习,从输入数据的关系中得出的。
蠓虫分类问题对应有教师的网络学习过程,显然不能由如上的方法来解决。但在这 种无监督有竞争的学习阐明之后,很容易从中导出一种适用于有监督情况的网络方法; 此外,本节所介绍的网络,在数据压缩等多种领域,都有其重要应用。
-237-
考虑一个仅由输入层与输出层组成的网络系统,输入单元数目与每一样品的测量值 数目相等,输出单元数目适当选取。每一个输入单元与所有输出单元联接,第j 个输入 元到第i 个输出元的权记为ij w ,同层单元间无横向联接。无妨假设所有输入数值均已 规化到[?1,1]之间,又因为是有竞争的学习,输出单元只取0 或1 两个值,且对应每一 组输入,只有一个输出元取1。
取 1 的输出元记为i*,称之为优胜者.对于任何一组输入s,规定优胜者是有最大 净输入的输出元,即对输入( , , ) 1 n I = I L I 而言,
=Σ ≡ ?
j
i ij j i h w I W I (15)
取最大值的单元,其中i W 是输出元i 所有权系数组成的向量,也就是说
W I W I i i ? ≥ ? * , (?i) (16)
如果权向量是按照
j Σ =
w2 1的方式标准化的,(16)式等价于
| | | | * W I W I i i ? ≤ ? , (?i) (17) ij
即优胜者是其标准化权向量最靠近输入向量的输出元。令1 * = i O ,其余的输出 = 0 i O 。这样的输出规定了输入向量的类别,但为了使这种分类方式有意义,问题化 为如何将学习样本中的所有样品,自然地划分为聚类,并对每一聚类找出适当的权向量。 为此,采用如下的算法:随机取定一组不大的初始权向量,注意不使它们有任何对称性。 然后,将已知样品按照随机顺序输入网络。对输入样品s,按上文所述确定优胜者i*, 对所有与i*有关的权作如下修正
( ) * i* j
sj
i j Δw =η I ? w (18)
所有其它输出单元的权保持不变。注意到1 * = i O ,O 0(i i* ) i = ≠ ,所有权的修正公式 可统一表示为
( ) * i* j
sj
i j i Δw =ηO I ? w
这一形式也可视为 Hebb 律的一种表现。(18)式的几何意义是清楚的,每次修正将优 胜者的权向量向输入向量移近一小段距离,这使得同一样品再次输入时,i*有更大的 获胜可能。可以合理地预期,反复重复以上步骤,使得每个输出单元对应了输入向量的 一个聚类,相应的权向量落在了该聚类样品的重心附近。当然,这只是一个极不严密的
说明。
特别应当指出,上述算法,对于事先按照Σ = 1 I 标准化了的输入数据更为适用, j
整个过程不难由计算机模拟实现。
为了更有效地使用如上算法,下面对实际计算时可能产生的问题,作一些简要说明。 首先,如果初始权选择不当,那么可能出现这样的输出单元,它的权远离任何输入 向量,因此,永远不会成为优胜者,相应的权也就永远不会得到修正,这样的单元称之 为死单元。为避免出现死单元,可以有多种方法。一种办法是初始权从学习样本中抽样 选取,这就保证了它们都落在正确范围内;另一种办法是修正上述的学习算法,使得每 一步不仅调整优胜者的权,同时也以一个小得多的η 值,修正所有其它的权。这样,对 于总是失败的单元,其权逐渐地朝着平均输入方向运动,最终也会在某一次竞争中取胜。 此外,还存在有多种处理死单元的方法,感兴趣的读者可从文献中找到更多的方法。 -238-
另外一个问题是这一算法的收敛性。如果式(18)或(19)中反映学习效率的参数 η 取为一个固定常数,那么权向量永远不会真正在某一有限点集上稳定下来。因此,应 当考虑在公式中引进随学习时间而变化的收敛因子。例如,取= t = t ?a 0 η η( ) η , 0
3.3 LVQ 方法
上述有竞争学习的一个最重要应用是数据压缩中的向量量子化方法(Vector
Quantization)。它的基本想法是,把一个给定的输入向量集合I s分成M 个类别,然后 用类别指标来代表所有属于该类的向量。向量分量通常取连续值,一旦一组适当的类别 确定之后,代替传输或存储输入向量本身,可以只传输或存储它的类别指标。所有的类 别由M 个所谓“原型向量”来表示,我们可以利用一般的欧氏距离,对每一个输入向 量找到最靠近的原型向量,作为它的类别。显然,这种分类方法可以通过有竞争的学习 直接得到。一旦学习过程结束,所有权向量的集合,便构成了一个“电码本”。 一般而言,上述无监督有竞争的学习,实际提供了一种聚类分析方法,对如蠓虫分 类这种有监督的问题并不适用。1989 年,Kohonen 对向量量子化方法加以修改,提出 了一种适用于有监督情况的学习方法,称为学习向量量子化(Learning Vector
Quantization),该方法可用于蠓虫分类问题。在有监督的情况下,学习样品的类别是事 先已知的,与此相应,每个输出单元所对应的类别也事先作了规定,但是,代表同一类 别的输出单元可以不止一个。
在 LVQ 中,对于任一输入向量,仍按无监督有竞争的方式选出优胜者i*,但权的 修正规则则依输入向量的类别与i*所代表的是否一致而不同,确切地说,令
??
??
?
? ?
?
Δ =
不一致情况
一致情况
( )
( )
*
*
*
i j
sj
i j
sj
I w
I w
w i j
η
η
前一种情况,修正和无监督的学习一致,权朝向样品方向移动一小段距离;后一种 则相反,权向离开样品方向移动,这样就减少了错误分类的机会。
对于上述的蠓虫分类问题,我们编写 Matlab 程序如下:
clear
p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;
1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00
1.28,2.00;1.30,1.96];
p=[p1;p2]'
pr=minmax(p)
goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]
net = newlvq(pr,4,[0.6,0.4])
net = train(net,p,goal)
Y = sim(net,p)
x=[1.24 1.80;1.28 1.84;1.40 2.04]'
sim(net,x)
习 题 十 九
1. 利用BP 算法及sigmoid 函数,研究以下各函数的逼近问题
-239-
(i) , 1 100 ( ) = 1 ≤ x ≤
x
f x
(ii)
2
( ) sin , 0
π
f x = x ≤ x ≤
对每一函数要完成如下工作:
① 获取两组数据,一组作为训练集,一组作为测试集;
② 利用训练集训练一个单隐层的网络;用测试集检验训练结果,改变隐层单元数, 研究它对逼近效果的影响。
2. 给定待拟合的曲线形式为
f (x) = 0.5 + 0.4sin(2πx)
在 f (x)上等间隔取11 个点的数据,在此数据的输出值上加均值为0,均方差σ = 0.05 的正态分布噪声作为给定训练数据,用多项式拟合此函数,分别取多项式的阶次为1, 3 和11 阶,图示出拟合结果,并讨论多项式阶次对拟合结果的影响。__