一种基于
分数阶bp
神经网络的选股信息推荐方法与系统
技术领域
1.本发明属于机器学习技术领域,具体涉及一种基于自适应参数的分数阶bp神经网络的选股信息推荐方法与系统。
背景技术:
2.在金融市场中,尽管人们总是假设市场是有效的,包括强式有效、半强式有效和弱式有效,但一些权威文献发现,有效市场假说在某些时期可能失效。因此,通过考虑多种选股因素选择合适的股票,有机会提高投资收益。目前,有越来越多的学者关注多因素选股模型,以提高投资回报。在大数据时代,庞大的数据量既带来机遇也带来挑战。
3.随着机器学习方法与理论的发展,机器学习方法被广泛应用于各个工程领域,包括金融工程。bp神经网络是最流行的神经网络之一,其中的神经网络
权重是通过整数阶梯度下降算法实现更新的。近年来,分数阶导数被应用于梯度下降算法中并取得了良好的性能。由于分数阶导数的一些优良品质,如长记忆特性,分数阶梯度下降算法可能比整数阶梯度下降算法具有更好的优化能力和更短的收敛时间。但是,在一些传统文献中,分数阶神经网络的理论成果并没有得到充分的利用,例如神经网络权重的上界的存在性只是一个假设条件,由于很难获得假设的网络权重的上界以及与权重相关的其他上界,学习率的上界很难计算并应用于实验中。因此,在实际实验中,学习率的设定是固定的,这就导致了理论与实际相脱离。
技术实现要素:
4.本发明的目的在于克服现有技术的不足,提供一种基于分数阶bp神经网络的选股信息推荐方法与系统,基于自适应参数的分数阶bp神经网络,可高效、精确地建立不同股票指标的权重组合和投资组合绩效之间的系统关系,利用该系统关系对股票性能指标权重进行优化,进而为投资者提供符合预期的权重推荐信息。
5.本发明方法所采用的技术方案如下:一种基于分数阶bp神经网络的选股信息推荐方法,包括如下步骤:
6.将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;
7.根据所述数据集,选择分数阶bp神经网络的激活
函数、网络结构、初始参数以及学习参数,设计分数阶bp神经网络的自适应学习率;
8.使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率;
9.对神经网络模型进行训练,记录最终神经网络模型的参数与网络权重;
10.将训练得到的神经网络模型参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系;
11.根据所述函数关系,对投资组合性能指标进行优化,输出优化后的股票性能指标
权重和投资组合性能指标,获得选股信息推荐结果。
12.在优选的实施例中,所述实际输出公式为:
13.oi=g2(vg1(wxi))
14.其中,oi为神经网络的实际输出;g1(
·
)为隐藏层的激活函数,g2(
·
)为输出层的激活函数;w为隐藏层的权重,v为输出层的权重;xi为神经网络的输入。
15.在优选的实施例中,设计分数阶bp神经网络的自适应学习率,为:
[0016][0017]
其中:
[0018][0019][0019][0019]
表示所有输入样本xi的euclidean范数的最大值,其中i=1,2,
…
,l;b是caputo分数阶导数表达式中积分区间的下端值;γ是caputo分数阶导数的阶数;n代表隐藏层的神经元数量,d代表输出层的神经元数量;表示k次迭代中隐藏层激活函数g1、隐藏层激活函数g1的一阶导数g1′
、损失函数f
ij
的一阶导数f
ij
'、损失函数f
ij
的二阶导数f
ij”中的最大值,j=1,2,...,d;表示k次迭代中神经网络权重u的euclidean范数的最大值;
[0020]
为分数阶bp神经网络的自适应学习率设计一个激活函数,用于放大自适应学习率并采用自适应学习率的变化趋势来训练神经网络,其中放大更新后的网络训练学习率为:
[0021][0022]
y是一个正数。
[0023]
进一步优选地,所述使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率,包括:
[0024]
定义caputo分数阶微积分,给定一个正整数z和一个介于z-1和z之间的caputo分数阶导数阶数γ,损失函数f(
·
)的caputo分数阶导数表示为:
[0025][0026]
其中f
(z)
(τ)=dzf(τ)/dτz,t是积分区间的上端,γ(
·
)是gamma函数,
[0027]
根据caputo分数阶微积分的定义,将隐藏层权重w和输出层权重v的更新法则描述如下:
[0028][0029]
[0030]
其中:
[0031][0032][0033]
p=1,2,...,n,s=1,2,...,c;
[0034]
其中,为i维实数集合,为i
×
j维实数集合;对于给定的样本神经网络的输入神经网络的理想输出函数ε为实际输出oi和理想输出yi之间的误差;
[0035]
随着每次训练迭代,得到更新后的网络权重u,基于更新后的网络权重u更新权重范数最大值根据更新后的权重范数最大值获得更新后的网络训练学习率使用更新后的网络训练学习率对神经网络进行训练。
[0036]
本发明系统所采用的技术方案如下:一种基于分数阶bp神经网络的选股信息推荐系统,包括以下模块:
[0037]
数据集分组模块,用于将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;
[0038]
参数选择及设计模块,用于根据所述数据集,选择分数阶bp神经网络的激活函数、网络结构、初始参数以及学习参数,设计分数阶bp神经网络的自适应学习率;
[0039]
参数更新模块,用于使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率;
[0040]
训练模块,用于对神经网络模型进行训练,记录最终神经网络模型的参数与网络权重;
[0041]
函数关系构建模块,用于将训练得到的神经网络模型参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系;
[0042]
推荐结果输出模块,用于根据所述函数关系,对投资组合性能指标进行优化,输出优化后的股票性能指标权重和投资组合性能指标,获得选股信息推荐结果。
[0043]
与现有技术相比,本发明的有益效果包括:
[0044]
1、本发明基于自适应参数分数阶bp神经网络,可高效、精确地建立不同股票指标的权重组合和投资组合绩效之间的系统关系,利用该系统关系对股票性能指标权重进行优化,应用于选股决策支持系统,为投资者提供符合预期的选股建议。
[0045]
2、本发明的自适应参数分数阶bp神经网络具有收敛能力,能够保证学习过程收敛,为投资者提供一个切实可靠的投资参考。此外,在自适应参数分数阶bp神经网络的自适应学习率表达式中,几个假设上界被几个可计算的可操作性上界所取代,解决了仿真脱离理论的问题;并且改进后的学习率进一步乘以一个适当的正数,提高了选股决策的预测精度和收敛速度。
附图说明
[0046]
图1为本发明实施例的基于分数阶bp神经网络的选股信息推荐方法的流程图。
[0047]
图2为自适应参数分数阶bp神经网络的实际输出与理想输出之间的误差ε收敛图。
[0048]
图3为自适应参数分数阶bp神经网络的训练误差收敛图。
[0049]
图4为本发明实施例的基于分数阶bp神经网络的选股信息推荐系统的可视化界面示意图。
具体实施方式
[0050]
下面结合附图和实施例对本发明做进一步的说明,但本发明的实施方式不限于此。
[0051]
实施例1
[0052]
参见图1,本实施例为基于分数阶bp神经网络的选股信息推荐方法,包括如下步骤:
[0053]
s1、将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集。
[0054]
本实施例中,本步骤将包括股票指标权重组合和投资组合绩效的选股数据划分为k组。
[0055]
s2、根据步骤s1得到的数据集,选择自适应参数分数阶bp神经网络的激活函数、网络结构、初始参数以及学习参数,设计自适应参数分数阶bp神经网络的自适应学习率,进而提高预测的准确性。
[0056]
在本实施例中,步骤s2具体包括:
[0057]
s21、定义为i维实数集合,为i
×
j维实数集合。对于给定的样本其中和三层分数阶bp神经网络被用于建立输入xi和输出yi之间的回归关系。自适应参数分数阶bp神经网络的结构和相关参数定义如下:
[0058]
神经网络的实际输出oi:
[0059]
神经网络模型的三层结构{c,n,d}:c、n和d分别代表输入层、隐藏层和输出层的神经元数量;
[0060]
神经网络的权重w和v:隐藏层的权重为w,输出层的权重为v,其中:
[0061][0062]
为权重w的元素;
[0063][0064]
为权重v的元素。并定义:
[0065]
u=[w1,w2,...,wn,v1,v2,...,vd]
[0066]
给定一个正数ur,初始权重u0的每个元素都在-ur和ur之间随机生成。
[0067]
激活函数g1(
·
)和g2(
·
):g1(
·
)为隐藏层的激活函数,g2(
·
)为输出层的激活函
数。常用的激活函数是sigmoid函数。
[0068]
损失函数f
ij
(
·
):其中i=1,2,...,l,j=1,2,...,d;常用的损失函数是二次函数。
[0069]
caputo分数阶导数的阶数γ:给定一个正整数z,阶数γ的值在z-1和z之间。
[0070]
分数阶梯下降法的学习率h:h>0。
[0071]
s22、神经网络的实际输出oi被描述为:
[0072]
oi=g2(vg1(wxi))
ꢀꢀ
(1)
[0073]
实际输出oi和理想输出yi之间的误差ε如下:
[0074][0075]
其中f
ij
(vjg1(wxi))=(g2(vjg1(wxi))-y
ij
)2。误差ε的收敛图如图2所示。
[0076]
为了简单起见,定义:χ
ij
=vjg1(wxi),f
ij
=f
ij
(χ
ij
),f
ij
'=df
ij
/dχ
ij,
ξ
ip
=w
p
x
i,
g1=g1(ξ
ip
),g1'=dg1/dξ
ip
,以及
[0077]
s23、计算迭代中的最大值和
[0078][0079][0080]
其中k为当前迭代数,(g1')r,(g
1”)r,(f
ij
')r,(f
ij”)r,ur分别表示g1,g1',g
1”,f
ij
',f
ij”,u在第r次迭代时对应的值;表示非负整数,‖
·
‖表示euclidean范数。表示k次迭代中激活函数g1、激活函数g1的一阶导数g1'、损失函数f
ij
的一阶导数f
ij
'、损失函数f
ij
的二阶导数f
ij”中的最大值,表示k次迭代中神经网络权重u的euclidean范数的最大值,这些值是可以计算的。
[0081]
s24、设计分数阶bp神经网络的自适应学习率,具体如下:
[0082][0083]
其中:
[0084][0085][0086][0086]
表示所有输入样本xi(i=1,2,
…
,l)的euclidean范数的最大值;b是caputo分数阶导数表达式中积分区间的下端值。
[0087]
s25、为分数阶bp神经网络的自适应学习率设计一个激活函数θ(
·
),其功能是放大原始自适应学习率并采用原始自适应学习率的变化趋势来训练神经网络。其中放大更新后的网络训练学习率为:
[0088][0089]
其中y是一个正数。
[0090]
在自适应参数分数阶bp神经网络的自适应学习率表达式中,几个假设上界被几个可计算的可操作性上界所取代,解决了仿真脱离理论的问题。并且改进后的学习率进一步乘以一个适当的正数,提高了选股决策的预测精度和收敛速度。
[0091]
s3、根据步骤s2所选择的参数和设计的自适应学习率,使用自适应参数分数阶bp神经网络对步骤s1获取的数据集进行学习,并且在每一次迭代中更新神经网络的网络权重和自适应学习率,直到达到最大迭代数。
[0092]
在本实施例中,步骤s3具体包括:
[0093]
s31、给出caputo分数阶微积分的定义如下:
[0094]
定义1:给定一个正整数z和一个介于z-1和z之间的阶数γ,损失函数f(
·
)的caputo分数阶导数表示为:
[0095][0096]
其中f
(z)
(τ)=dzf(τ)/dτz,t是积分区间的上端,b是积分区间的下端,γ(
·
)是gamma函数,
[0097]
s32、根据caputo分数阶微积分的定义,即定义1,隐藏层权重w和输出层权重v的更新法则描述如下:
[0098][0099][0100]
其中:
[0101][0102][0103]
p=1,2,...,n,s=1,2,...,c,以及j=1,2,...,d。
[0104]
s33、随着每次训练迭代,得到更新后的网络权重u,基于更新后的网络权重根据式(4)更新权重范数最大值紧接着,将更新后的权重范数最大值代入式(6),获得更新后的网络训练学习率使用更新后的网络训练学习率对神经网络进行训练,直至达到最大迭代数。
[0105]
s4、为了提高泛化能力,采用交叉验证法来进行分数阶bp神经网络模型的训练,记录最终神经网络模型的参数与网络权重。
[0106]
在本实施例中,步骤s4具体包括:
[0107]
根据步骤s1获得的k组数据,基于交叉验证法,选择一组数据作为测试数据,其他k-1组数据用于训练神经网络。从k-1组数据中选取k-2组数据作为训练数据,其余一组为验证数据;因此,一共需要进行k-1次实验,根据k-1次实验的训练结果,计算平均训练和平均验证训练误差的收敛图如图3所示。选择平均验证最小的神经网络模型,将该神经网络模型应用于测试用以说明训练得到的网络模型在测试集上的性能。
[0108]
s5、将步骤s4训练得到的网络模型参数和网络权重代入式(1),即可构建股票性能指标权重和投资组合性能指标的函数关系。
[0109]
s6、根据步骤s5获取的函数关系,对特定的投资组合性能指标进行优化,最终输出优化后的股票性能指标权重和投资组合性能指标,获得选股信息推荐结果,给投资者提供投资建议。并且,通过可视化界面,展示优化后的股票性能指标权重以及对应的投资组合性能指标,更直观地显示了选股信息推荐结果,满足了选股信息推荐的需求,如图4所示。
[0110]
实施例2
[0111]
与实施例1基于相同的发明构思,本实施例提供的是一种基于分数阶bp神经网络的选股信息推荐系统,包括以下模块:
[0112]
数据集分组模块,用于将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;
[0113]
参数选择及设计模块,用于根据所述数据集,选择分数阶bp神经网络的激活函数、网络结构、初始参数以及学习参数,设计分数阶bp神经网络的自适应学习率;
[0114]
参数更新模块,用于使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率;
[0115]
训练模块,用于对神经网络模型进行训练,记录最终神经网络模型的参数与网络权重;
[0116]
函数关系构建模块,用于将训练得到的神经网络模型参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系;
[0117]
推荐结果输出模块,用于根据所述函数关系,对投资组合性能指标进行优化,输出优化后的股票性能指标权重和投资组合性能指标,获得选股信息推荐结果。
[0118]
上述各模块分别用于执行实施例1的相应步骤,其详细过程已在实施例1中进行充分的描述,在此不赘述。
[0119]
本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
技术特征:
1.一种基于分数阶bp神经网络的选股信息推荐方法,其特征在于,包括如下步骤:将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;根据所述数据集,选择分数阶bp神经网络的激活函数、网络结构、初始参数以及学习参数,设计分数阶bp神经网络的自适应学习率;使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率;对神经网络模型进行训练,记录最终神经网络模型的参数与网络权重;将训练得到的神经网络模型参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系;根据所述函数关系,对投资组合性能指标进行优化,输出优化后的股票性能指标权重和投资组合性能指标,获得选股信息推荐结果。2.根据权利要求1所述的选股信息推荐方法,其特征在于,所述实际输出公式为:o
i
=g2(vg1(wx
i
))其中,o
i
为神经网络的实际输出;g1(
·
)为隐藏层的激活函数,g2(
·
)为输出层的激活函数;w为隐藏层的权重,v为输出层的权重;x
i
为神经网络的输入。3.根据权利要求1所述的选股信息推荐方法,其特征在于,设计分数阶bp神经网络的自适应学习率,为:其中:其中:其中:其中:表示所有输入样本x
i
的euclidean范数的最大值,其中i=1,2,
…
,l;b是caputo分数阶导数表达式中积分区间的下端值;γ是caputo分数阶导数的阶数;n代表隐藏层的神经元数量,d代表输出层的神经元数量;表示k次迭代中隐藏层激活函数g1、隐藏层激活函数g1的一阶导数g1’
、损失函数f
ij
的一阶导数f
ij
'、损失函数f
ij
的二阶导数f
ij”中的最大值,j=1,2,...,d;表示k次迭代中神经网络权重u的euclidean范数的最大值;为分数阶bp神经网络的自适应学习率设计一个激活函数,用于放大自适应学习率并采用自适应学习率的变化趋势来训练神经网络,其中放大更新后的网络训练学习率为:y是一个正数。4.根据权利要求3所述的选股信息推荐方法,其特征在于,所述使用分数阶bp神经网络
对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率,包括:定义caputo分数阶微积分,给定一个正整数z和一个介于z-1和z之间的caputo分数阶导数阶数γ,损失函数f(
·
)的caputo分数阶导数表示为:其中f
(z)
(τ)=d
z
f(τ)/dτ
z
,t是积分区间的上端,γ(
·
)是gamma函数,根据caputo分数阶微积分的定义,将隐藏层权重w和输出层权重v的更新法则描述如下:下:其中:其中:p=1,2,...,n,s=1,2,...,c;其中,为i维实数集合,为i
×
j维实数集合;对于给定的样本神经网络的输入神经网络的理想输出函数ε为实际输出o
i
和理想输出y
i
之间的误差;随着每次训练迭代,得到更新后的网络权重u,基于更新后的网络权重u更新权重范数最大值根据更新后的权重范数最大值获得更新后的网络训练学习率使用更新后的网络训练学习率对神经网络进行训练。5.根据权利要求4所述的选股信息推荐方法,其特征在于,神经网络的实际输出o
i
和理想输出y
i
之间的误差ε如下:其中f
ij
(v
j
g1(wx
i
))=(g2(v
j
g1(wx
i
))-y
ij
)2。6.根据权利要求1所述的选股信息推荐方法,其特征在于,所述方法还包括如下步骤:通过可视化界面,展示优化后的股票性能指标权重以及对应的投资组合性能指标。
7.一种基于分数阶bp神经网络的选股信息推荐系统,其特征在于,包括以下模块:数据集分组模块,用于将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;参数选择及设计模块,用于根据所述数据集,选择分数阶bp神经网络的激活函数、网络结构、初始参数以及学习参数,设计分数阶bp神经网络的自适应学习率;参数更新模块,用于使用分数阶bp神经网络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率;训练模块,用于对神经网络模型进行训练,记录最终神经网络模型的参数与网络权重;函数关系构建模块,用于将训练得到的神经网络模型参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系;推荐结果输出模块,用于根据所述函数关系,对投资组合性能指标进行优化,输出优化后的股票性能指标权重和投资组合性能指标,获得选股信息推荐结果。8.根据权利要求7所述的选股信息推荐系统,其特征在于,所述实际输出公式为:o
i
=g2(vg1(wx
i
))其中,o
i
为神经网络的实际输出;g1(
·
)为隐藏层的激活函数,g2(
·
)为输出层的激活函数;w为隐藏层的权重,v为输出层的权重;x
i
为神经网络的输入。9.根据权利要求7所述的选股信息推荐系统,其特征在于,设计分数阶bp神经网络的自适应学习率,为:其中:其中:其中:其中:表示所有输入样本x
i
的euclidean范数的最大值,其中i=1,2,
…
,l;b是caputo分数阶导数表达式中积分区间的下端值;γ是caputo分数阶导数的阶数;n代表隐藏层的神经元数量,d代表输出层的神经元数量;表示k次迭代中隐藏层激活函数g1、隐藏层激活函数g1的一阶导数g1’
、损失函数f
ij
的一阶导数f
ij
'、损失函数f
ij
的二阶导数f
ij”中的最大值,j=1,2,...,d;表示k次迭代中神经网络权重u的euclidean范数的最大值;为分数阶bp神经网络的自适应学习率设计一个激活函数,用于放大自适应学习率并采用自适应学习率的变化趋势来训练神经网络,其中放大更新后的网络训练学习率为:y是一个正数。10.根据权利要求9所述的选股信息推荐系统,其特征在于,所述使用分数阶bp神经网
络对所述数据集进行学习,在每一次迭代中更新分数阶bp神经网络的网络权重和自适应学习率,包括:定义caputo分数阶微积分,给定一个正整数z和一个介于z-1和z之间的caputo分数阶导数阶数γ,损失函数f(
·
)的caputo分数阶导数表示为:其中f
(z)
(τ)=d
z
f(τ)/dτ
z
,t是积分区间的上端,γ(
·
)是gamma函数,根据caputo分数阶微积分的定义,将隐藏层权重w和输出层权重v的更新法则描述如下:下:其中:其中:p=1,2,...,n,s=1,2,...,c;其中,为i维实数集合,为i
×
j维实数集合;对于给定的样本神经网络的输入神经网络的理想输出函数ε为实际输出o
i
和理想输出y
i
之间的误差;随着每次训练迭代,得到更新后的网络权重u,基于更新后的网络权重u更新权重范数最大值根据更新后的权重范数最大值获得更新后的网络训练学习率使用更新后的网络训练学习率对神经网络进行训练。
技术总结
本发明属于机器学习领域,为基于分数阶BP神经网络的选股信息推荐方法与系统,包括步骤:将包括股票指标权重组合和投资组合绩效的选股数据划分为k组,得到分组后的数据集;选择分数阶BP神经网络的激活函数、网络结构、初始参数以及学习参数,设计自适应学习率;对数据集进行学习,更新网络权重和自适应学习率;对模型进行训练,记录最终参数与网络权重;将训练的参数和网络权重代入神经网络的实际输出公式,构建得到股票性能指标权重和投资组合性能指标的函数关系,对投资组合性能指标进行优化,获得选股信息推荐结果。本发明可高效、精确地建立不同股票指标的权重组合和投资组合绩效之间的系统关系,为投资者提供符合预期的权重推荐信息。重推荐信息。重推荐信息。
技术研发人员:
杨建辉 马铭洁
受保护的技术使用者:
华南理工大学
技术研发日:
2022.12.14
技术公布日:
2023/3/7