多元回归与神经网络的应用摘要本文主要是通过整理分析数据,以得出题目中所给出的i x 与j y 的函数关系.由于数据并不是很充足,我们选择了所有数据为样本数据和部分数据为验证数据。
我们首先采用了多元回归方法,由于数据之间并没有明显的线性或者其它函数关系,模型很难选择,得到的结论对于1y 来说残值偏大,效果很差,于是我们引用了BP 神经网络,经过选择合适的参数,多次训练得到合适的网络,拟合得到了相对精确的结果,并进行了验证,最后将三种模型进行了对比。
关键字: 多元线性回归 多元非线性回归 最小二乘法 牛顿法 BP 神经网络1.问题重述现实生活中,由于客观事物内部规律的复杂性及人们认识程度的限制,人们常收集大量的数据,基于数据的统计分析建立合乎基本规律的数学模型,然后通过计算得到的模型结果来解决实际问题.回归分析法和神经网络是数学建模中常用于解决问题的有效方法.本文要解决的主要问题是:通过对所给数据的分析,分别用回归方法或神经网络来确立x i 与y i之间的函数关系,并验证结论。
2.问题分析题目要求我们使用神经网络或回归方法来做相关数据处理,相比较之下,我们对回归方法比较熟悉,所以首先选取了回归方法。
得到相关函数,并分析误差,再利用神经网络模型建立合理的网络,进行误差分析并和前者比较,得出合理的结论。
3.符号说明4.模型建立与求解4.1多元回归方法它是研究某个变量与另一些变量的函数关系.主要内容是从一组样本数据出发,通过合理分析得到正确的函数关系,建立相应的表达式,并通过相关软件处理得到相应的系数。
4.1.1多元线性回归方法1.回归模型的一般形式为:Y=01122...m m X X X ββββε+++++其中01,,...,m βββ是待估计参数,e 是随机误差即残差。
残差ε服从均数为0,方差为2σ的正态分布。
这就是线性回归的数学模型。
12Y y y ⎧⎫⎪⎪=⎨⎬⎪⎪⎩⎭,X =1114491494501504111x x x x xx ⎛⎫ ⎪ ⎪⎪⎪ ⎪ ⎪ ⎪⎝⎭,01234ββββββ⎛⎫⎪ ⎪⎪ ⎪= ⎪ ⎪ ⎪⎪ ⎪⎝⎭,12εεε⎛⎫= ⎪⎪⎝⎭, 那么多元线性回归数学模型可也写成矩阵形式:Y X βε=+ 其中ε的分量是独立的。
2.参数β的最小二乘估计.为了估计参数β,我们采用最小二乘估计法.设014,,...,b b b 分别是参数014,,...,βββ的最小二乘估计,则回归方程为^01144...y b b x b x =+++由最小二乘法知道,014,,...,b b b 应使得全部观察值y α与回归值^y α的偏差平方和Q 达到最小,即使2^Q y y ααα=⎛⎫-∑⎪⎝⎭=最小所以Q 是014,,...,b b b 的非负二次式,最小值一定存在。
根据微积分中的极值原理,014,,...,b b b 应是下列正规方程组的解:^^20,20,j jQQ y yb y y x b αααααααδδδδ⎛⎫ ⎪=--= ⎪⎝⎭⎛⎫ ⎪=--= ⎪⎝⎭∑⎧⎨⎩∑显然,正规方程组的系数矩阵是对称矩阵,用A 来表示,则'A X X =,则其右端常数项矩阵B 亦可以用矩阵X 和Y 来表示:'B X Y =,所以可以得到回归方程的回归系数:()11''b A B X X X Y --==3.由于利用偏回归方程和i Q 可以衡量每个变量在回归中所起的作用大小(即影响程度),设h S 是p 个变量所引起的回归平方和,1hS 是(p-1)个变量所引起的回归平方和(即除去i x ),则偏回归平方和i Q 为12*pj j h j ij iii jhb Q b S Sb B B c==-=-=∑∑就是去掉变量i x 后,回归平方和所减少的量。
4.建立模型453423121x b x b x b x b b y i ⨯+⨯+⨯+⨯+=5.模型的求解我们通过MATLAB ,求得其回归系数,并最终得到i x 与i y 的函数关系:1234112342339.849916.811411.548967.541415.5485,164.55800.1874 1.797629.972812.4426,y x x x x y x x x x ⎧=-++-⎪⎨=-+-++⎪⎩ 同时通过MATLAB 可以得出i x 与i y 的误差结果如下:由此,我们可得出结论,采用多元线性回归得出的函数关系对于1y 残差太大,效果很差,对于2y 的拟合也并不是很完美。
4.1.2非线性回归方法1.数据标准化我们选用的是非线性模型LSE 的Gauss-Newton 算法:采用Z-score 标准化法,即对序列12,,...,m x x x 进行变换:iisx x y --=, (1其中,11Nii Nx x -==∑,2111N i s i N x x =-=-⎛⎫-∑ ⎪⎝⎭,则构成新序列,均值为0,方差为1.。
首先考虑单参数的非线性回归模型: (),iiifx Yβε=+其残差平方和函数为()()21,N i S i i f Y X ββ==-⎡⎤∑⎣⎦要使()S β取极小值,则令其一阶导数为0,来求β.一个近似的方法是用Taylor 近似展开来代替。
设β的初值为1β,则在1β点附近函数有近似Taylor 展式:()()()()111,,,iiidfff d X X X βββββββ≈+-可以求的其导数值,简记为: ()()11,iidfd X Z ββββ=∣则()()()()()()221111111,.NNi i S i i i i i f Y X Z Y Z ββββββββ====⎡⎤⎡⎤----∑∑⎢⎥⎣⎦⎣⎦即为线性回归()()11.iii Z Y βββε=+的残差和.上式被称为拟线性模型.其最小二乘估计是)()()]()([)()()(1~'111'1211111~2ββββββββY Z Z Z Z Z Y ni ini ii-===⋅=∑∑如果我们有β的初值,就可以得到另一个新值,进而可以得到一个序列,写出一个迭代表达式,即1n β+与nβ的关系。
若在迭代过程中有1n β+=nβ,即()S β的一阶导数为0,此时()S β取得一个极值。
为了避免迭代时间过长或迭代来回反复,可以引入进步长控制函数nt,'11[Z()Z()]nn n n n n dSt d ββββββ-+=-'1'2[Z()Z()]()[Y (X,)]n n n n n n t Z f βββββ-=--nt由计算机程序根据误差自动调整.上述算法一般称为Gauss-Newton 算法.2.建立非线性回归模型:采用多元二次多项式函数 设函数:22112233445161271381492102312211241231334144y b b x b x b x b x b x b x x b x x b x x b x b x x b x x b x b x x b x=++++++++++++++通过Gauss-Newton 算法和MATLAB 计算最终得出以下结果:212341121221314223243342412212575.940129.457127.81901597.99601695.57780.87100.466535.3093 2.1549 1.289824.79770.912131.894694.336757.08592483.447814.5988 5.8585y x x x x x x x x x x x x x x x x x x x x y x x =--+-++--+-++++-=--234112221314223243342412.5802302.89100.48880.09558.72100.49710.2123 3.04590.141024.6923 5.203310.1871x x x x x x x x x x x x x x x x x x ⎧⎪⎪⎪⎪⎪⎨+-++⎪⎪⎪+-+--+-⎪⎪+⎩通过MATLAB 编写相应程序所得结果如下:12,y y的残差图由图可以明显看出误差很大,拟合效果不好。
综合多元非线性和多元线性这两种模型,我们可以发现y1并不适合这两种模型,y2模拟相对较好,但误差并没有足够小,不再我们的预期效果之内。
于是我们采用了BP 神经网络。
4.2神经网络4.2.1模型的原理BP (Back Propagation)神经网络是一种多层前馈神经网络。
其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。
相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight ),隐含层神经元将传递过来的信息进行整合,通常还会在整合过程添加一个阈值,这是模仿生物学中神经元必须达到一定阈值才会触发的原理。
输入层神经元数量由输入样本的维数决定,输出层神经元数量由输出样本的维数决定,隐藏层神经元合理选择。
然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。
此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。
BP 网络的核心是数学中的“负梯度下降”理论,即BP 的误差调整方向总是沿着误差下降最快的方向进行。
.相关传递函数(或激励函数):阈值型(一般只用于简单分类的MP 模型中)0,0()1,0x f x x <⎧=⎨>=⎩线性型(一般只用于输入和输出神经元) ()f x x = S 型(常用于隐含层神经元)1()1xf x e -=+ 或 1()1x x e f x e ---=+BP 神经网络模型通常还会在激励函数的变量中耦合一个常数以调整激励网络的输出幅度。
4.2.2 模型的建立与求解步骤1、准备训练网络的样本我们此次的BP网络是一个4输入2输出的网络,如下表所示:步骤2、确定网络的初始参数步骤3、初始化网络权值和阈值因为是4个输入因子8个隐含层神经元,则第一层与第二层之间的权值w(t)ij ⨯的随机数矩阵:为84[-0.044 0.325 -0.099 0.149-0.031 0.180 0.332 0.3500.2393 0.364 0.206 0.1870.1475 0.248 0.394 0.322-0.005 0.191 0.163 0.269 0.1475 0.307 0.139 0.192 -0.026 0.339 0.300 0.023 -0.072 0.394 0.013 0.233]神经网络的阈值是用来激活神经元而设置的一个临界值,有多少个神经元就会有多少个阈值,则第二层神经元的阈值(t)ij B 为81⨯ 的矩阵: [-0.0580.212 0.230 0.264 0.345 0.391 0.284 0.190]T同理,第二层与第三层之间的权值(t)jk w 为28⨯ 的随机数矩阵: [0.364 -0.091 0.331 0.322 0.176 -0.084 0.081 0.144 0.190 -0.039 0.142 0.004 0.214 0.20 -0.075 -0.003] 同理,第三层阈值(t)jk B 为21⨯ 的矩阵:[-0.038 0.002] 步骤4、计算第一层神经元的输入与输出假设第一层神经元中放置的是线性函数,所以网络第一层输入和输出都等于实际输入样本的值, 所以第一层输出值1O =X 。