关键词:黄金价格预测,神经网络,BP算法,GA算法,GA-BP算法
1、引言
黄金价格变动的长期趋势中,在一段较长时期内有某些确定的基本因素起作用,即有一定的趋势性,但又受许多随机因素的影响,在众多的因素之中,美元、原油和黄金有着传统的大三角相互关系,近几年来,国内学者越来越多关注美元十年国债收益率、美国CPI对于金价的影响。众多因素影响下的金价具有异质性和非线性的特征,本文拟用GA-BP神经网络进行黄金价格研究。
本文在选取样本数据时,除了采用黄金价格收盘价外,还采用当期的美元指数、原油价格、美元十年国债收益率、美国CPI等宏观数据相结合;同时,对随机设定权值与阈值与事先确定权值阅值两种情况进行比较,发现后者的稳定性和准确性都较高。GA-BP算法,为研究非线性多变量黄金系统预测问题,提供了一种新的思路,具有一定的理论意义和工程应用价值。
2、基于遗传算法的BP神经网络(GA-BP算法)
本文采用GA-BP算法针对黄金价格进行预测建模分析,该算法无需对复杂、非线性且具有严重不确定性金融系统的提出经验性假设条件,直接利用黄金价格以及相关宏观经济数据的输入/输出数据进行学习并进行预测。
2.1.GA算法
遗传算法(Genetic Algorithm-GA)是基于达尔文进化论的思想,模拟生物进化过程的计算方法,是一种基于自然选择和基因遗传学原理的优化搜索方法,按照一定的适应值函数及一系列遗传操作对各个体进行筛选,从而使适应值高的个体被保留下来,组成新的群体,新群体中各个体适应度不断提高,直至满足一定的极限条件。
用遗传算法优化神经网络体现了遗传算法和神经网络结合的思想,同样,神经网络也是模拟生物大脑神经网络机制的计算模型,所以遗传算法的研究与神经网络的研究有若干共同点:
神经网络进行的是个体的学习,而遗传算法进行的是个体群的学习;从搜索方法看,神经网络基本上是一个局部搜索方法,每次在解空间的当前解的近邻来搜索下一个解,遗传算法总体上是一个全局搜索方法,其次在解空间设定一群体解,并经过选择淘汰,交叉和变异的方法来决定下一批搜索点。
显然,遗传算法和神经网络各有所长,两者取长补短,相互结合可以形成更优化的搜索算法,日前,国内外正在这方面展开积极的研究。2.2遗传算法优化BP神经网络权值算法步骤
遗传算法优化BP网络权值的步骤如下:
①编码:初始化种群P0,包括交叉规模、交叉概率Pc、突变概率Pm以及对WIHij和WHOij初始化;在本文初始编码中,采用实数进行编码:设定染色体编码长度S为:S=m*r+r*n+r+n;并按照[WHI,WHO,BH,BO]的先后顺序进行编码(WHI为输入层至隐层权值向量,WHO为隐层至输出层权值向量,BH为隐层阈值向量,BO为输出层阈值向量)。并令初始种群数为60,初始设定种群代数为800代。
②适应值计算:计算每一个个体评价函数,并将其排序;可按下式概率值选择网络个体:,其中fi为个体i的适应值,可用误差平方和E来衡量,即:fi。其中i=1,…,N为染色体数;k=1,…,n为输出层节点数;p=1,…,r为学习样本数;Tk为教师信号。结合BP网络,将初始染色体编码解码后,对应至神经网络各层权值阈值。然后通过BP算法计算预测数据与实际数据之间的误差Ei。通过上述公式可计算概率pi然后通过轮盘赌选择原则选择染色体执行进化操作。
遗传操作:
③产生随机概率Pi与交叉概率Pc进行比较,若Pi<Pc,则执行多点交叉操作:即对父个体Gi和Gi+1引交叉操作产生新子个体Gi和Gi+1'即在选择的两个染色体随机设定两个断点,交叉交换对应断点间的基因。没有进行交叉操作的个体进行直接复制;
④产生随机概率Pi与交叉概率Pm进行比较,若Pi<Pm,则执行变异操作:突变产生Gi的新个体Gi'即针对选择染色体(Chromosome)随机选择基因位,随机产生一[0,1)的随机数替换原染色体对应基因位上的基因;
⑤将新个体插入到下一代种群Pi+1中,并重新计算新个体的评价函数;
⑥计算ANN的误差平方和,若达到预定值εGA,则转⑦,否则转③,继续进行遗传操作;
以GA遗传出的优化初值作为初始权值,用BP算法训练网络,直到指定精度εBP(εBP<εGA)。达到所要求的性能指标后,将最终群体中的最优个体解码即可得到优化后的网络连接权系数。
3、仿真实验
3.1样本选取范围设定
本文将美元指数、原油价格、美元十年国债收益率、美国CPI美选入神经网络的输入数据,输出数据为下一周的伦敦金价收盘价。
本章选取2006年1月9日至2009年4月8日的伦敦金价周收盘价及国际宏观经济指标的周数据作为训练学习数据。选取2009年4月9日-2009年10月26日的相应数据作为测试数据。
GA-BP算法初始染色体设置如下:从输入层至隐层的权值为0.55,隐层至输出层的权值为0.85;隐层和输出层的阈值分别为0.55,0。遗传算法参数设定:种群代数(Generation)=250,种群规模(Population)=50;交叉概率Pc=0.6,变异概率Pm=0.05;
神经网络参数设置如下:隐层节点范围[3,13];最大迭代次数(Max Epochs)=500;训练误差(Setting Performance)=0.01。
3.2初始网络权值与阈值设定策略
本文采取如下策略设定的初始权值与阈值:将所获训练数据依据时间长度等分为三组,分别进行BP算法仿真预测,初步确定权值的取值范围[O.4,0.55],阈值的取值范围[0,0.85]。本文设定BP算法参数如下:从输入层至隐层的权值为0.4,隐层至输出层的权值为0.55;隐层和输出层的阈值分别为0.85,0。
3.3GA-BP算法实验结果分析
采用Matlab语言在PC Pentium4/CPU3.OGHz/RAMl.OG上编程实现上述GA-BP算法。
结果与分析
采用Matlab语言在PC Pentium4/CPU3.0GHz/RAMl.0G上编程实现上述GA—BP算法。为了测试算法的有效性,将针对伦敦金价的预测与传统BP算法预测效率及结果进行比较。
实验1:GA—BP算法与传统神经网络模型对网络优化比较
(1)将本章所采用的GA—BP算法与传统BP算法进行比较结果如表1所示。GA—BP算法与传统的BP算法,在迭代次数还是预测精度上均优于后者。
(2)如表1所示,GA—BP算法与其他神经网络算法相比,在训练ANN网络过时迭代次数上少,但是算法整体计算时间较长。这是因为GA收敛是依靠类似于穷举法的启发式搜索,再加之网络结构的复杂性,要运算的数据相当大。
实验2:GA—BP算法对伦敦黄金价格预测结果
(1)利用GA—BP算法对2009年4月9日-2009年10月26日的伦敦金价周收盘价格作预测,GA算法经过大约125代的搜索后染色体的平均适应度趋于稳定。
将GA算法优化后的权值代入BP神经网络经过3次迭代达到训练误差设定要求。
(2)在预测稳定性方面,本章采用的GA—BP预测误差能够控制在10%以内,GA—BP滚动预测伦敦黄金周收盘价格与实际值走势一致。
(3)GA—BP算法预测结果回归效果如图2所示,R=0.9933,Output=0.92。Target-0.015,说明GA-BP算法其拟合预测效果较好。
4、结论
本文采用GA-BP算法针对黄金价格进行预测建模分析,该算法直接利用黄金价格以及相关宏观经济数据的输X/输出数据进行学习并进行预测。
针对BP算法寻优具有精确性,但易陷入局部极小、收敛速度慢的缺点,设计基于遗传算法的神经网络模型对黄金价格进行预测。仿真结果表明,基于遗传算法的神经网络模型能够发挥遗传算法具有较强搜索能力,同时结合神经网络学习能力,可以发挥两种算法各自的优势。GA-BP算法能够较好预测黄金价格的走势。
作者:李京 来源:《金融经济》2010年第1期