本发明涉及一种神经网络估值方法及系统具体涉及一种基于神经网络统计学模型的房地产估值方法及系统。
背景技术:
传统房地产评估方法估价的结果由于评估人员在经济属性、时间准度、市场内涵和市场层次等方面对估价对象的性质有着不同的理解,致使评估结果存在较大差异。传统估价方法往往注重市场信息,很少引入数理模型对不同房产的差别进行科学考量,过于依赖评估人员经验,且建筑成本、市场价格以及投资收益等参数在市场经济中是不确定以及随时变化的,这大大增加了评估者搜集和预测的难度,从而难以保证评估结果的准确性和可靠性。传统评估方法的核心是运用加权平均结构模型,这种评估方法的本质是线性的,而房产价值评估的理论本质具有特定的非线性。同时,评估指标的权重系数确定具有较大的主观任意性,也致使评估结果随评估人员的自身素质和经验影响很大,估价结果的可信度难免降低。
目前也有部分将神经网络引入房地产评估方法的作法,但由于采用的案例数量较少、指标选取不足、案例存在错误等原因,尚未引入集群思想、分布式算法,造成估价不准确。
中国专利《基于人工神经网络统计学模型的房地产价值估算方法》专利号201210283427.8,披露了一种利用神经网络进行房地产估值的方法,但是该专利没有对输入项的影响因子进行量化,导致标准不一致,输出结果不准确,该方法只采用一个神经网络进行估价也会导致输出结果不准确。
技术实现要素:
为了解决上述问题,本发明提出一种基于神经网络统计学模型的房地产估值方法,包括下述步骤:
S1:建立人工神经网络集群训练库,按照行政区、物业类型、片区、小区的分类方式建立神经网络集群训练库,包括,行政区神经网络、物业类型神经网络、片区神经网络和小区神经网络,将样本数据导入每个神经网络训练库,由此形成神经网络集群训练库;
S2:确定每个神经网络训练库中每个样本的影响因子;
S3:对每个神经网络训练库中每个样本的影响因子按照预设量化标准进行等级量化,得出每个样本影响因子量化值;
S4:采用所述每个神经网络训练库中每个样本的影响因子量化值对神经网络进行训练,得出每个神经网络设定参数;
S5:存储步骤S4确定的每个神经网络设定参数;
S6:依照步骤S3中的量化标准对待估房产的影响因子进行等级量化得出待估房产影响因子量化值,按照步骤S5存储的每个神经网络设定参数,在每个神经网络中以待估房产影响因子量化值为输入项得出每个神经网络对待估房产的估价;
S7:选择步骤S6中不同神经网络所得出的神经网络待估房产估价乘以预设权重值得出待估房产最终估价。
进一步的,所述步骤S2中的影响因子为商业中心距离、交通状况、物管费、容积率、绿化率、建成年代、行政区、楼盘品牌、建筑面积、楼层、朝向、景观和装饰装修中的若干项或全部。
所述步骤S4中对每个神经网络进行训练随机分配70%-100%比例总样本作训练数据,0-30%比例总样本作为测试数据;
所述神经网络设定参数为神经元权值;
所述步骤S3还包括利用聚类去重算法、清洗算法对数据库中样本数据进行处理的步骤。
进一步的,在已经完成训练的神经网络训练库中,依次按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序选择三个神经网络对待估房产进行估价并乘以权重值得出待估房产最终估价;
所述选择的三个神经网络对应的权重值按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序依次设置为0.5、0.3、0.2;
每个神经网络采用分布式算法运算。
进一步的,所述步骤S4中对各神经网络训练采用如下步骤:
S41对于网络进行初始化,用较小的随机数初始化网络的权值Wij和Wjk,设置学习步长η,令迭代次数n=0;
S42从训练样本中取一训练样本,把样本中有关房地产评估的影响因素和1个评估结果输入网络中;
S43对于输入的训练样本,评估模型前向计算网络隐含层各节点的输入信号和输出信号;
S44计算评估模型中输出层节点的输入信号和输出信号;
S45由训练样本的期望输出和上一步得到的评估模型网络的实际输出,计算出输出误差e;
S46根据输出误差e反向计算评估模型隐含层各节点与输出层节点之间的连接权值修正量ΔWjk,并对这些权值Wjk进行更新;
S47计算输入层各节点与隐含层各节点之间的连接权值修正量ΔWij,并对这些权值Wij进行更新;
S48输入下一个训练样本;此时若有训练样本则转向第三步S43继续训练,否则执行下一步(已完成一次迭代);
S49更新迭代次数n,即n=n+1,判断n是否满足迭代次数,若n达到迭代次数或其他结束条件满足时,算法计算完成;否则返回到S43继续。
进一步的,所述步骤S4中采用Levenberg-Marquardt回归公式对每个神经网络进行训练。
为了保证上述方法的实施,本发明还提出一种基于神经网络统计学模型的房地产估值系统,包括训练单元、神经网络单元、评估单元,
所述神经网络单元按照行政区、物业类型、片区、小区的分类方式建立神经网络集群训练库,包括行政区神经网络、物业类型神经网络、片区神经网络和小区神经网络,所述训练单元将样本数据导入每个神经网络训练库;
所述训练单元确定每个神经网络训练库中每个样本的影响因子;
所述训练单元对每个神经网络训练库中每个样本的影响因子按照预设量化标准进行等级量化,得出每个样本影响因子量化值;
所述训练单元采用所述每个神经网络训练库中每个样本的影响因子量化值对神经网络进行训练,得出每个神经网络设定参数并存储所述每个神经网络设定参数;
评估单元依照量化标准对待估房产的影响因子进行等级量化得出待估房产影响因子量化值,训练单元存储的每个神经网络设定参数,在每个神经网络中以待估房产影响因子量化值为输入项得出每个神经网络对待估房产的估价,评估单元依照不同神经网络所得出的神经网络待估房产估价乘以预设权重值得出待估房产最终估价。
进一步的,所述影响因子为商业中心距离、交通状况、物管费、容积率、绿化率、建成年代、行政区、楼盘品牌、建筑面积、楼层、朝向、景观和装饰装修中的若干项或全部。
所述训练单元对每个神经网络进行训练随机分配70%-100%比例总样本作训练数据,0-30%比例总样本作为测试数据;
神经网络设定参数为神经元权值;
所述训练单元利用聚类去重算法、清洗算法对数据库中样本数据进行处理。
进一步的,评估单元在已经完成训练的神经网络训练库中,依次按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序选择三个神经网络对待估房产进行估价并乘以权重值得出待估房产最终估价;
所述选择的三个神经网络对应的权重值按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序依次设置为0.5、0.3、0.2;
每个神经网络采用分布式算法运算。
进一步的,训练单元对各神经网络训练采用如下步骤:
S41对于网络进行初始化,用较小的随机数初始化网络的权值Wij和Wjk,设置学习步长η,令迭代次数n=0;
S42从训练样本中取一训练样本,把样本中有关房地产评估的影响因素和1个评估结果输入网络中;
S43对于输入的训练样本,评估模型前向计算网络隐含层各节点的输入信号和输出信号;
S44计算评估模型中输出层节点的输入信号和输出信号;
S45由训练样本的期望输出和上一步得到的评估模型网络的实际输出,计算出输出误差e;
S46根据输出误差e反向计算评估模型隐含层各节点与输出层节点之间的连接权值修正量ΔWjk,并对这些权值Wjk进行更新;
S47计算输入层各节点与隐含层各节点之间的连接权值修正量ΔWij,并对这些权值Wij进行更新;
S48输入下一个训练样本;此时若有训练样本则转向第三步S43继续训练,否则执行下一步(已完成一次迭代);
S49更新迭代次数n,即n=n+1,判断n是否满足迭代次数,若n达到迭代次数或其他结束条件满足时,算法计算完成;否则返回到S43继续。
进一步的,训练单元采用Levenberg-Marquardt回归公式对每个神经网络进行训练。
本发明的有益效果为:
1、神经网络选取样本估值不依赖于人工经验,利用训练后的神经网络得出的评估结果的可信度较高。
2、通过多个神经网络进行估价,通过神经网络选择机制能有效的选取合适的神经网络进行预估,再通过评判机制对选择的神经网络的预估结果按照重要性赋予权重,大大提高最后评估结论的准确度。通过按照行政区、物业类型、片区、小区来确定神经网络,依据不同的神经网络来进行房地产估价,依据不同的情况来选择神经网络乘以不同的权重来确定最终的估值,可以提高估值的准确性。
3、分布式算法让算法运算速度比现有技术大大提高。
4、该方法覆盖面广,无论该小区有无案例均可估价。
5、通过对影响因子按预设量化标准进行等级量化,减少了人为因素对于估值的影响,使得神经网络的训练和估值按照统一的标准进行,提高了估值的准确性。
附图说明
图1为本发明房地产评估方法的流程图
图2为本发明房地产评估系统的结构图
图3为本发明神经网络训练步骤图
图4为本发明数据采集结构图
图5为本发明神经网络估值模型流程图
具体实施方式
图1为本发明房地产评估方法的流程图
图2为本发明房地产评估系统的结构图
图3为本发明神经网络训练步骤图
图4为本发明数据采集结构图
图5为本发明神经网络估值模型流程图
本发明提出一种基于神经网络统计学模型的房地产估值方法,包括下述步骤:
S1:建立人工神经网络集群训练库,按照行政区、物业类型、片区、小区的分类方式建立神经网络集群训练库,包括,行政区神经网络、物业类型神经网络、片区神经网络和小区神经网络,将样本数据导入每个神经网络训练库,由此形成神经网络集群训练库;
通过按照行政区、物业类型、片区、小区来确定神经网络,依据不同的神经网络来进行房地产估价,依据不同的情况来选择神经网络乘以不同的权重来确定最终的估值,可以提高估值的准确性。
S2:确定每个神经网络训练库中每个样本的影响因子;
S3:对每个神经网络训练库中每个样本的影响因子按照预设量化标准进行等级量化,得出每个样本影响因子量化值;
通过对影响因子按预设量化标准进行等级量化,减少了人为因素对于估值的影响,使得神经网络的训练和估值按照统一的标准进行,提高了估值的准确性。
在本发明的一个实施列中采用如下表格所示的标准进行影响因子量化:
S4:采用所述每个神经网络训练库中每个样本的影响因子量化值对神经网络进行训练,得出每个神经网络设定参数;
针对行政区、物业类型、片区、小区的神经网络训练库进行训练,神经网络在进行评估时针对行政区、物业类型、片区、小区类建立神经网络价格评估模型,最后综合不同的神经网络价格评估结果来确定最终的估价,提高了估价的准确性。
S5:存储步骤S4确定的每个神经网络设定参数;
S6:依照步骤S3中的量化标准对待估房产的影响因子进行等级量化得出待估房产影响因子量化值,按照步骤S5存储的每个神经网络设定参数,在每个神经网络中以待估房产影响因子量化值为输入项得出每个神经网络对待估房产的估价;
S7:选择步骤S6中不同神经网络所得出的神经网络待估房产估价乘以预设权重值得出待估房产最终估价。
通过不同的神经网络估值乘以权重值获得最终估值提高了估值的准确性。
所述影响因子为商业中心距离、交通状况、物管费、容积率、绿化率、建成年代、行政区、楼盘品牌、建筑面积、楼层、朝向、景观、装饰装修中的若干项或全部。
在已经完成训练的神经网络训练库中,依次按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序选择三个神经网络对待估房产进行估价并乘以权重值得出待估房产最终估价;
所述选择的三个神经网络对应的权重值按照小区神经网络、片区神经网络、物业类型神经网络、行政区神经网络的顺序依次设置为0.5、0.3、0.2;
若小区已确定小区神经网络设定参数,选择片区神经网络和物业类型神经网络,其中,小区神经网络取权重0.5,片区神经网络取权重0.3,物业类型神经网络取权重0.2;
若小区没有确定小区神经网络设定参数,选择片区神经网络和物业类型神经网络和行政区神经网络,其中,片区神经网络取权重0.5,物业类型神经网络取权重0.3,行政区神经网络预取权重0.2。
在对房产进行估值时,房产所在的小区对估值有最大的影响,其次是房产所在的片区和房产的物业类型,故在小区神经网络的设定参数已经确定的情况下,小区神经网络估值占最大的权重,小区神经网络参数没有确定的情况下片区神经网络估值占最大的权重。其次占权重较大的依次是物业类型神经网络估值和行政区神经网络估值。
每个神经网络采用分布式算法运算。
每个神经网络采用分布式算法有以下优点:
1、稀有资源可以共享。
2、通过分布式计算可以在多台计算机上平衡计算负载。
3、可以把程序放在最适合运行它的计算机上。
所述步骤S4中对每个神经网络进行训练采用Levenberg-Marquardt回归公式。
Levenberg-Marquardt回归公式对于过参数化问题不敏感,能有效处理冗余参数问题,使代价函数陷入局部极小值的机会大大减小。
所述步骤S4中对每个神经网络进行训练随机分配70%-100%比例总样本作训练数据,0-30%比例总样本作为测试数据;
通过较大比例的样本数据对神经网络进行训练,小比例样本数据进行验证和测试,提高了神经网络估值的准确性。
所述神经网络设定参数为神经元权值。
所述步骤S3还包括利用聚类去重算法、清洗算法对数据库中样本数据进行处理的步骤。
通过对样本数据聚类去重和数据清洗,减少了无效样本数据对神经网络训练的影响,提高了神经网络估值的准确性。
下面结合实施例对本发明中的神经网络进行具体说明
一、样本的选择和预处理
本发明一实施例中,将原始数据进行去重,聚类剔除异常值,补全缺失值,并对交易日期做出修正,得到所需个输入变量的数值以及一个输出变量的数值,准备输入神经网络的学习样本。
二、学习型神经网络的结构设计
1、输入层和输出层的设计
本发明一实施例中,输入层节点数为16,即输入向量X={x1,x2,…,x16},分别对应房地产批量评估系统中市场比较法的16个主要影响因素,即板块片区、建筑结构、装修状况、建筑类型、所处楼层、房屋朝向、房屋户型、房屋成新。输出层节点数为l,即变量y,为待评估房地产对象的每平方米单价,单位为m2,其输出值为实际成交价格。
2、隐含层节点数的设计
本发明一实施例中,首先设置较少的隐层节点训练网络,然后逐渐增加隐层节点数,用同一样本集进行模型网络的训练,从而确定网络误差最小时对应的隐含层节点数。
本发明一实施例中,结合本发明神经网络模型的输入层、输出层节点数目,经过多次实验可以得出最佳隐含层节点数目为10,此时的网络误差精度最小,即该模型的学习和收敛效果最好。
3、传递函数与训练方法的选择
在一实施例中,采用线性特征函数
F(x)=kx
在另一实施例中,采用域值特征函数
在另一实施例中,采用S形逻辑特征函数(sigmoid函数)
在另一实施例中,采用双曲正切特征函数
在这里,由于输入向量X={x1,x2,…,x16}和输出向量y=(y)之间不满足线性关系,因此模型选择单极性sigmoid函数作为转移函数。
本发明一实施例中采用标准神经网络算法的δ学习规则,即误差的梯度下降(Gradient Descent)算法对网络进行学习。
4、评估模型的核心算法
在一实施例中,本发明的神经网络模型是一个三层神经网络,其中输入层节点数为M=16个,用于接收输入信号,任意一个神经元用i表示,X={x1,x2,…,x16}表示输入层的输入向量;隐含层节点数为N=10个,任意一个神经元用j来表示;输出层的节点数为K=1,且任意一个神经元用k表示;输入层任一神经元i与隐含层任一神经元j的连接权值为Wij;隐含层任一神经元j与输出层任一神经元k的连接权值为Wjk。令Oiw表示输入层节点i的输出,netj代表节点j的输入。另外,这里用f()表示传递函数为S形逻辑特征函数(sigmoid函数)。
房地产评估系统的神经网络算法主要分为两步,第一步是模型的工作信号的正向传播过程:
输入层的一个神经元节点i(i=1,2,…,16)的输出为:
Oi=Xi
隐含层的一个神经元节点j(j=1,2,…,10)的输入为:
隐含层的一个神经元节点j(j=1,2,…,10)的输出为:
输出层神经元k=1的输入为:
输出层神经元k=1的输出为:
输出层神经元k=1的输出误差信号为:
ek=Ok-yk
yk表示期望输出,在系统中就代表实际成交代价y。在神经网络算法学习中,为了使学习以尽可能快的减小误差的方式进行,在房地产评估模型中对误差的计算采用了广义的δ规则,其误差函数为:
因为k=1,所以输出层节点总误差函数为:
第二步是评估模型的误差信号反向传播过程:
连接权值的修改由下式计算:
Wjk(t+1)=Wjk(t)+ΔWjk
其中,Wjk(t)及Wjk(t+1)分别是时刻t及t+1从节点j至节点k的连接权值;ΔWjk是权值的变化量。为了使连接权值沿着e的负梯度方向下降,逐层修改连接权值,网络逐渐收敛,评估模型中算法的权值修正量与误差对权值的偏微分成正比,即
其中η为增益因子,又因为:
令
所以有:
下面分两种情况计算δk
第一种情况:节点k是输出层上的节点,此时,Ok=yk,则
由于:
所以:
第二种情况:节点k不是输出层上的节点,这表示连接权值是作用于隐含层上的节点,此时δk的计算公式为:
其中,是一个隐函数求导问题,直接给出结果,即
所以
这表明,内层节点的δ值是通过上一层节点的δ值来计算的。
3、评估模型算法的实现步骤
由上面的分析可以知道,评估模型的核心算法是由正向传播与反向传播组成的。正向传播用于进行网络计算,根据房地产评估的输入的多个要素,求出输出层结果即待评估房地产的每平方米单价;反向传播用于,用于评估模型的预测与实际值之间的误差,逐层传递,并修改网络连接各层的权值,以使网络能进行正确的计算,一旦评估模型的网络经过训练稳定后,则就只需要正向传播,不需要再进行反向传播。这样稳定的模型就可以用于实际的房地产评估。因此,对于房地产评估系统中评估模型核心算法的具体步骤可归纳为:
Step1:对于网络进行初始化,用较小的随机数初始化网络的权值Wij和Wjk,设置学习步长η,令迭代次数n=0;
Step2:从训练样本中取一训练样本,把样本中有关房地产评估的影响因素和1个评估结果输入网络中;
Step3:对于输入的训练样本,评估模型前向计算网络隐含层各节点的输入信号和输出信号;
Step4:计算评估模型中输出层节点的输入信号和输出信号;
Step5:由训练样本的期望输出和上一步得到的评估模型网络的实际输出,计算出输出误差e;
Step6:根据输出误差e反向计算评估模型隐含层各节点与输出层节点之间的连接权值修正量ΔWjk,并对这些权值Wjk进行更新;
Step7:计算输入层各节点与隐含层各节点之间的连接权值修正量ΔWij,并对这些权值Wij进行更新;
Step8:输入下一个训练样本;此时若有训练样本则转向第三步继续训练,否则执行下一步(已完成一次迭代);
Step9:更新迭代次数n,即n=n+1,判断n是否满足迭代次数,若n达到迭代次数或其他结束条件满足时,算法计算完成;否则返回到Step3继续。
评估模型核心算法的实现步骤如图3所示。
三、现有技术基于标准神经网络算法的智能批量评估模型的缺陷分析
标准的神经网络算法是多层(至少三层)网络,具有理论上逼近任意非线性连续函数的能力,而信息处理的大部分问题可归纳为数学映射,通过选择一定的非线性和连接强度调节规律,神经网络就可解决任何一个信息处理问题。尽管在理论上的可行性,但这种经典的神经网络在房地产评估模型中,从实际运用中体现出一定的不足:
1、评估模型的收敛速度缓慢
神经网络算法本质上是梯度下降法,其最小化目标函数非常复杂(其等值面远不是超球面),因此必然会出现“锯齿形现象”,这决定了神经网络算法效率较低。
2、评估模型不能保证收敛到全局最小点
由于神经网络学习规则采用了按误差函数梯度下降的方向进行收敛,这就意味着由能量函数构成的连接权空间不仅是只有一个极小点的抛物面,而且是存有多个局部极小点的超曲面。因此,神经网络的收敛过程很可能在遇到局部极小极值时便被“冻结”,而无法最终收敛到全局最小点。另外,导致神经网络陷入局部极小点的另一个原因是神经网络学习规则采用了按误差函数梯度下降的方向进行收敛的。梯度下降学习方法,总是在寻找坡度最大的地段向下滑行,直到达到局部最小值为止。因此,无法保证收敛到全局最小点。
3、评估模型的网络的泛化能力较差
神经网络的泛化能力,又叫推广能力,是指神经网络在训练完成以后输入其训练样本之外的新数据时获得正确输出的能力。
四、本发明智能批量评估模型的优化策略
神经网络的参数很多,但对网络性能和识别结果有明显影响的主要有:初始权值、隐层节点数、网络训练步数、网络学习率和动量参数。本发明神经网络算法的改进主要由两种途径:采用启发式学习算法,另一种则是采用更有效的优化算法。
1、启发式学习算法
(1)附加动量神经网络算法
附加动量法使网络在修正权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响,它允许网络忽略网络上的微小变化特性。在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用则可能滑过这些极小值。
它的实质就是改变学习率来提高网络性能,其网络连接权的迭代关系式由传统神经网络算法改为:
wji(t+1)=wji(t)+η[(1-α)D(t)+αD(t-1)]
其中,D(t)表示t时刻的负梯度
D(t-1)表示t-1时刻的负梯度
η为学习率
α∈[0,1]为动量因子
当α=0时,权值的修正只与当前负梯度有关系,当α=1时,权值修正就完全取决于上一次循环的负梯度了。
该方法是在反向传播的基础上在每一个权值的变化上加上一项正比于前次权值变化量的值,并根据反向传播法来产生新的权值变化。根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。附加动量神经网络算法,总是力图使在同一梯度方向上的修正量增加。动量因子越大,同一梯度方向上的“动量”也越大。
在附加动量神经网络算法中,可以采用较大的学习率,而不会造成学习过程的发散,因为当修正过量时,该算法总是可以使修正量减小,以保持修正方向向着收敛的方向进行;另一方面附加动量神经网络算法总是加速同一梯度方向的修正量。和传统神经网络的算法相比,添加附加动量项后,上式中的系数增大为η(1-α),从而有利于加快脱离饱和区,收敛速率较快,学习时间较短。
(2)有自适应1r的梯度下降法
在附加动量神经网络算法中,学习率是一个常数,在整个训练的过程中保持不变,学习算法的性能对于学习率的选择非常敏感,学习率过大,算法可能振荡而不稳定;学习率过小,则收敛速度慢,训练的时间长。因此,考虑改变学习率,实现对它的动态在线调整,可以大大提高收敛速度。
自适应学习算法实质上就是在在训练过程中对学习速率进行自动调整。学习速率的调整原则上是使它在每一步保持尽可能大的值,而又不致使学习过程失去稳定性。学习速率可以根据误差变化的信息和误差函数对连接权梯度变化的信息进行启发式调整,也可以根据误差函数对学习速率的梯度直接进行调整。
对于批处理可以根据总误差变化的信息进行启发式调整,其规则是:
1)若总误差e减小,则学习率增加;
2)若总误差e增加,则学习率减小。
(3)自适应学习速率的附加动量算法
当采用前述的动量法时,神经网络算法可以找到更优的解;而当采用自适应学习速率法时,神经网络算法可以缩短训练时间。采用这两种方法也可以用来训练神经网络,该算法即称为自适应学习速率的附加动量算法。
该方法采取了附加动量项与学习率自调整法相结合的方法。在训练的过程中,力图使算法稳定,而同时又使学习的步长尽量地大,学习率则是根据局部误差曲面作出相应的调整。其权值的调整过程可表示为:
虽然这种方法是以上二者的结合,其学习收敛速度要比附加动量项法快得多,但与自适应学习率法相差不是很明显,有些情况下,其收敛速度比自适应学习率法还慢。
动量因子与学习速率的修正原则是:如某k次修正使e进一步减小,则下一步(k+1)次的η放大且α>O;如某k次修正反而使e增大,则下一步(k+1)次的η减小且α=O。这种改进能部分地改善神经网络算法的收敛性能。
2、基于数值最优化理论的训练算法
(1)共轭梯度法
共轭梯度法是梯度法的一种改进方法,可以改变梯度法共振和收敛性差的缺点。其基本思想是寻找与负梯度方向和上一次搜索方向共轭的方向作为新的搜索方向,从而加快训练速度,并提高训练精度。与梯度下降法不同,基于数值优化的算法不仅利用了目标函数的一阶导数信息,而且往往利用了目标函数的二阶导数信息。它可以描述为:
其中,xk为网络的所有权值和阀值组成的向量
S(xk)为由x各分量组成的向量空间的搜索方向
αk为在S(xk)方向上使f(x(k+1))达到极小的步长
这样,网络权值的寻优便可分为以下两步:①首先确定当前迭代的最佳搜索方向;②在此方向上寻求最优迭代步长。
共扼梯度法力图避免梯度下降法收敛速度较慢和计算复杂的缺点,首先,沿负梯度方向进行搜索,然后,沿当前搜索的共扼方向进行搜索,从而可以迅速达到最优值。共扼梯度法比大多数常规的梯度法收敛快,并且只需增加很少的存储量和计算量。对于权值很多的网络,采用共扼梯度法不失为一种较好的选择。共扼梯度法是重要的无约束最优化方法,实质就是使得最速下降方向具有共扼性,并据此搜索目标函数极值,从而提高算法的有效性和可靠性。
下面介绍几种常用的共轭梯度算法:
1)Fletcher-Reeves算法
该算法可以描述为:
P0=-g0
xk+1=xk+αkPk
Pk=-gk+βkPk+1
其中:xk表示第k次循环的权值
g0表示第一次循环时的梯度
gk表示当前的梯度
αk表示学习率
βk是梯度的变换参数
2)Polak-Ribiere共轭梯度法
该算法的修正系数为:
其中:gk表示当前的梯度
gk-1表示k-1次的梯度
βk是梯度的变换参数
2、Levenberg-Marquardt算法
Levenberg-Marquardt(LM)算法是梯度下降法与Gauss-Newton高斯一牛顿法的结合,对于训练次数和准确度,LM算法明显优于共轭梯度法及变学习率的神经网络(Back Propagation)算法。LM算法是高斯-牛顿法的改进形式。既有高斯-牛顿法的局部特性又具有梯度法的全局特性。由于利用了近似的二阶导数信息,因此,LM算法比梯度法快得多。
设yij代表第i个训练样本的第j个期望输出,y′ij为网络输出,是权值w和输入xi的函数,则:
其中:p代表训练样本的数目
rk代表第i个训练样本的第j个输出的残差
令:
w=[1w(1,1)1w(1,2)...1w(s1,R)1b(1)...1b(s1)2w(1,1)...3b(sM)...]T
其中:w为权值
b为阈值
SM代表M层的神经元个数(M=1,2,3…)
权值及阀值的变化可以看成Δw对于牛顿法是:
式中:是指标函数V(w)的Hessian阵;表示梯度。令:
那么:
其中:J(w)是Jacobian阵;S(w)为误差函数,即:
对于Gauss-Newton算法,则有:
Δw=-[JT(w)J(w)]-1J(w)e(w)
而LM算法是Gauss-Newton算法的改进,即:
Δw=-[JT(w)J(w)+μI]-1J(w)e(w)
其中:μ为大于零的常数;I为单位矩阵。
从上式中可看出,如果μ很大,LM算法近似于梯度下降法。若μ趋近于O时,LM算法近似于Gauss—Newton算法。因为利用了二阶导数信息,LM算法比梯度法快得多。而且[JTJ+μI]是正定的,也就是说,wji(t+1)=wji(t)+η[(1-α)D(t)+αD(t-1)]的解总是存在的。从这个意义上说,LM算法优于Gauss—Newton算法。因为对于Gauss—Newton算法,JTJ是否满秩还是一个潜在的问题。
下面结合本发明实施例的具体测试数据来对本发明进行说明
对第一实施例的测试数据:
测试方法:Matlab中应用程序Neural Net Fitting,选取10个神经元,随机分配70%作为训练数据,15%作为验证数据,15%作为测试数据,经训练之后形成神经网络,以此对测试集进行运算得出结果,与给定价格相比较。
测试步骤:按照影响因素、归一化、训练算法3种条件是否区分及组合进行测试,共18组数据。
本次算法测试涉及有效案例1140条,按照偏差的幅度及偏差比例两种方式进行统计。
(1)按差异幅度统计:按偏差小于500元/㎡、500-1000元/㎡、1000-2000元/㎡、2000-3000元/㎡、3000-4000元/㎡、4000-5000元/㎡、大于5000元/㎡七个区间分别统计不同测试范围的偏差的个数及其占总案例的比例,见表1。
(2)按差异比例统计:偏差占审核通过单价比例按小于5%、5%-10%、10%-20%、20%-30%、大于30%五个区间分别统计不同测试范围的偏差的个数及其占总案例的比例,见表2。
表1:测试结果表(差异幅度)
表2:测试结果表(差异比例)
分析结果
根据以上统计结果,将相关数据进行一一对比,得出以下结论:
在回归方法方面,Leveberg-Marquardt明显优于Bayesian Regularization的结果。本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成的,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。