光伏功率预测方法
技术领域
本发明涉及数据处理技术领域,具体涉及一种光伏功率预测方法。
背景技术
传统的光伏功率预测方法,主要通过神经网络对光伏电站的历史气象数据和发电数据进行学习,具体是通过梯度下降法不断调整神经网络的参数,最终使得训练样本在模型上误差最小。
理论上,含有隐藏层的神经网络可以拟合任意的单值函数。但是,在采用传统的梯度下降法对进行神经网络训练的过程中,容易使神经网络中的网络参数陷入局部最优。当陷入局部最优之后,网络参数就会停止变化,即便继续对神经网络进行训练,训练集上的误差也会不再减小。
发明内容
有鉴于此,本发明实施例提供一种光伏功率预测方法,以避免现有技术陷入局部最优之后训练误差不再减小的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明公开了一种光伏功率预测方法,包括:
确定光伏电站的历史气象数据和历史输出功率;
对所述历史气象数据和所述历史输出功率进行预处理;
基于预处理后的历史气象数据和历史输出功率,构建神经网络模型;
对所述神经网络模型进行训练;
判断所述神经网络模型中的网络参数是否陷入局部最优;
若所述神经网络模型中的网络参数陷入局部最优,则对所述网络参数进行启发式搜索及自适应调整;
确定下一预测周期的气象数据预测信息,并通过训练得到的模型,得到下一预测周期的输出功率预测信息。
可选地,在上述光伏功率预测方法中,对所述网络参数进行启发式搜索及自适应调整,包括:
存储所述网络参数对应的当前模型参数和当前模型损失;
依据所述当前模型参数,计算得到与所述当前模型参数对应的随机网络参数;
判断所述随机网络参数的随机模型损失是否小于所述当前模型损失;
若所述随机网络参数的随机模型损失小于所述当前模型损失,则以所述随机网络参数对应的随机模型参数更新所述当前模型参数,以所述随机模型损失更新所述当前模型损失;
若所述随机网络参数的随机模型损失大于等于所述当前模型损失,则保持所述当前模型参数和所述当前模型损失不变;
返回计算得到与所述当前模型参数对应的随机网络参数的步骤,直至返回的次数大于等于次数阈值,以所述当前模型参数作为所述训练得到的模型的网络参数。
可选地,返回计算得到与所述当前模型参数对应的随机网络参数的步骤,直至返回的次数大于等于次数阈值,以所述当前模型参数作为所述训练得到的模型的网络参数,包括:
迭代次数加1;
判断所述迭代次数是否大于等于迭代阈值;所述迭代阈值等于所述次数阈值加1;
若所述迭代次数小于迭代阈值,则执行返回计算得到与所述当前模型参数对应的随机网络参数的步骤;
若所述迭代次数大于等于迭代阈值,则以所述当前模型参数作为所述训练得到的模型的网络参数。
可选地,在上述光伏功率预测方法中,所述存储所述网络参数对应的当前模型参数和当前模型损失,包括:
确定所述网络参数对应的当前模型参数;
依据所述当前模型参数,计算得到所述当前模型参数的当前模型损失;
将所述当前模型参数和所述当前模型损失进行存储。
可选地,在上述光伏功率预测方法中,所述依据所述当前模型参数,计算得到与所述当前模型参数对应的随机网络参数,包括:
以模型方差作为所述当前模型参数中各个参数的方差,进行高斯随机计算,得到与所述当前模型参数中各个参数对应的所述随机网络参数。
可选地,在上述光伏功率预测方法中,所述模型方差所采用的计算公式为:
其中,σ为所述模型方差,R为所述神经网络模型的最小损失。
可选地,在上述光伏功率预测方法中,所述进行高斯随机计算所采用的公式为:
其中,f(x)为生成所述随机网络参数的概率密度函数,x为与所述当前模型参数对应的随机网络参数,μ为所述当前模型参数。
可选地,在上述光伏功率预测方法中,所述光伏电站的历史气象数据包括:所述光伏电站在训练周期内每天的地面温度、湿度、风速以及地面辐照度。
可选地,在上述光伏功率预测方法中,所述对所述历史气象数据和所述历史输出功率进行预处理,包括:
对所述历史气象数据和所述历史输出功率进行清洗;
将经过清洗后的所述历史气象数据和所述历史输出功率进行特征归一化。
可选地,在上述光伏功率预测方法中,所述对所述历史气象数据和所述历史输出功率进行清洗,包括:
判断所述历史气象数据和/或所述历史输出功率是否存在异常值或数据缺失;
若所述历史气象数据和/或所述历史输出功率存在异常值,则将所述异常值进行剔除;
若所述历史气象数据和/或所述历史输出功率存在数据缺失,则对缺失的数据进行插值补充。
可选地,在上述光伏功率预测方法中,所述将经过清洗后的所述历史气象数据和所述历史输出功率进行特征归一化,所采用的计算公式为:
其中,xnorm为归一化后的特征值,xmin为特征的最小值,xmax为特征的最大值,x为数据的原特征值。
可选地,在上述光伏功率预测方法中,所述基于预处理后的历史气象数据和历史输出功率,构建神经网络模型,包括:
设置所述神经网络模型的激活函数;
以相应个数的神经元构建所述神经网络模型的输入层,用于设置所述预处理后的历史气象数据;
以相应个数的所述神经元构建所述神经网络模型的输出层,用于设置所述预处理后的历史输出功率;
构建所述输入层与所述输出层之间的至少一个隐藏层。
可选地,在上述光伏功率预测方法中,设置所述神经网络模型的激活函数,包括:
将所述神经网络模型的激活函数设置为线性整流ReLU函数。
可选地,在上述光伏功率预测方法中,所述输入层与所述输出层之间包括三个所述隐藏层。
可选地,在上述光伏功率预测方法中,所述对所述神经网络模型进行训练,包括:
通过梯度下降法对所述网络参数进行反复迭代。
基于上述本发明实施例提供的光伏功率预测方法,首先确定光伏电站的历史气象数据和历史输出功率,对所确定的历史气象数据和历史输出功率进行预处理;然后基于预处理后的历史气象数据和历史输出功率构建神经网络模型,对神经网络模型进行训练;并在判断得到神经网络模型中的网络参数陷入局部最优之后,对网络参数进行启发式搜索及自适应调整,使得神经网络模型能够跳出局部最优,得以继续减小训练误差;此时,即可基于上述训练得到的模型,根据下一预测周期的气象数据预测信息,得到下一预测周期的输出功率预测信息;相比现有技术,提高了预测准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例提供的一种光伏功率预测方法的流程图;
图2示出了本申请实施例提供的一种数据采集示意图;
图3至图5示出了本申请实施例提供的光伏功率预测方法的三种流程图;
图6示出了本申请实施例提供的神经网络模型示意图;
图7至图8示出了本申请实施例提供的光伏功率预测方法的两种流程图;
图9示出了现有技术中神经网络模型陷入局部最优后模型误差变化示意图;
图10示出了本申请实施例提供的应用启发式搜索后的神经网络模型的模型误差变化示意图;
图11示出了传统神经网络模型的光伏功率预测结果示意图;
图12示出了本申请实施例提供的神经网络模型的光伏功率预测结果示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,本申请中提及的陷入局部最优,在某种程度上等同于陷入局部最优点。
本申请实施例提供一种光伏功率预测方法,以避免现有技术陷入局部最优之后训练误差不再减小的问题。
请参见图1,该光伏功率预测方法主要包括以下步骤:
S101、确定光伏电站的历史气象数据和历史输出功率。
其中,光伏电站的历史气象数据包括:光伏电站在训练周期内每天的地面温度、湿度、风速以及地面辐照度。
在实际应用中,光伏电站在训练周期内每天的地面温度、湿度、风速以及地面辐照度为:每天每个整点的地面温度、湿度、风速以及地面辐照度。历史输出功率也同样为:与每天每个整点的历史气象数据对应的输出功率。
需要说明的是,确定光伏电站的历史气象数据和历史输出功率的方式可参见现有技术,或者参见下面示出的方式1。
方式1:请参见图2,通过光伏电站中的上位机201和PLC控制器202,对光伏电站在训练周期内每天每个整点的地面温度、湿度、风速以及地面辐照度进行采集。在实际应用中,可在光伏电站中安装PT100铂热电阻203、485型湿度传感器206、高精度数字风速计205以及EKOMS-602辐照度计204,分别对光伏电站的每天每个整点的地面温度、湿度、风速以及地面辐照度进行采集,进而使光伏电站中的PLC控制器202能够通过RS485通信的方式,接收PT100铂热电阻203、485型湿度传感器206、高精度数字风速计205以及EKOMS-602辐照度计204所采集到的数据,再通过以太网将上述数据上传至上位机201中。通过上述方式1,确定光伏电站的历史气象数据和历史输出功率,也可视为通过对光伏电站搭建数据采集系统,以获得光伏电站的历史气象数据和历史输出功率。最后,将所采集到的数据存入数据库中,作为光伏功率预测模型的训练样本。
在实际应用中,通过PT100铂热电阻203、485型湿度传感器206、高精度数字风速计205以及EKOMS-602辐照度计204,所采集到的光伏电站的每天每个整点的地面温度、湿度、风速、地面辐照度数据,以及所确定的历史输出功率,可如下表所示:
在实际采集光伏电站的每天每个整点的地面温度、湿度、风速以及地面辐照度的过程中,考虑到光伏电站在夜间不出力,只需采集每天5:00-19:00的整点数据即可。
需要说明的是,对光伏电站在训练周期内每天每个整点的地面温度、湿度、风速以及地面辐照度进行采集,所采用的传感器除了上述示出的传感器外,还可以采用其他传感器,本申请不作具体限定,均属于本申请的保护范围。
还需要说明的是,除了训练周期内每天每个整点外,实际应用中也可以取每天中任何其他时间点的地面温度、湿度、风速、地面辐照度以及历史输出功率进行后续处理,均属于本申请的保护范围。
S102、对历史气象数据和历史输出功率进行预处理。
需要说明的是,对历史气象数据和历史输出功率进行处理的作用主要是将数据进行格式标准化、异常数据清除、错误纠正以及重复数据的清除。
对历史气象数据和历史输出功率进行预处理的具体过程可参见现有技术,或者参见图3示出的具体流程。
S103、基于预处理后的历史气象数据和历史输出功率,构建神经网络模型。
需要说明的是,基于预处理后的历史气象数据和历史输出功率,构建所得到的神经网络模型,更贴近实际状况,通过该神经网络模型进行训练更能保证训练结果的准确度。
基于预处理后的历史气象数据和历史输出功率,构建神经网络模型的具体过程可参见现有技术,或者参见图5示出的具体流程。
S104、对神经网络模型进行训练。
需要说明的是,对神经网络模型进行训练为:对执行步骤S103基于预处理后的历史气象数据和历史输出功率,构建神经网络模型之后所得的神经网络模型进行训练。
在实际应用中,可以通过梯度下降法对网络参数进行反复迭代,直到训练集在神经网络模型上的误差最小,来实现对于神经网络的训练。在训练过程中主要包括输入的前向传播与误差的反向传播两个部分。
具体的,前向传播可由下式表示:
其中,为第l层第i个神经元的输入,为该神经元的输出,f为该层的激活函数,为第l-1层第j个神经元与第l层第i个神经元之间的权值。
误差的反向传播公式可用下式描述:
其中,E代表总体误差,E(i)代表第i个样本所带来的误差,代表总体误差对的梯度;代表总体误差对的梯度。
S105、判断神经网络模型中的网络参数是否陷入局部最优。
其中,可通过判断训练集上的误差是否发生变化的方式,判断神经网络中的网络参数是否陷入局部最优。具体的,若训练集上的误差不发生变化,则视为判断出神经网络模型中的网络参数陷入局部最优。
需要说明的是,除了通过误差是否发生变化的方式判断神经网络模型中的网络参数是否陷入局部最优外,判断神经网络模型中的网络参数是否陷入局部最优还可以参见现有技术的其他方式,本申请不作具体限定,均属于本申请的保护范围。
若判断出神经网络模型中的网络参数陷入局部最优,则执行步骤S106。
S106、对网络参数进行启发式搜索及自适应调整。
在实际应用中,对网络参数进行启发式搜索及自适应调整的具体过程可参见图7示出的流程,当然,其他能够使神经网络模型具有跳出局部最优能力的方案也在本申请的保护范围内。
S107、确定下一预测周期的气象数据预测信息,并通过训练得到的模型,得到下一预测周期的输出功率预测信息。
其中,下一预测周期的气象数据预测信息包括:下一预测周期的地面温度、湿度、风速以及地面辐照度。
实际应用中,可通过光伏电站的预测系统来确定下一预测周期的气象数据预测信息,或者,也可以通过第三方系统,比如天气预报、当地气象系统等提供的数据来确定;此处不做具体限定,视其应用环境而定即可。
确定下一预测周期的气象数据预测信息之后,将其代入上述训练所得到的模型,可得到下一预测周期的输出功率预测信息。
在实际应用中,该下一预测周期可以是指当前日期的第二天,但并不仅限于此,也可以是下一周、下一月甚至下一季度,视其具体应用环境而定即可,均在本申请的保护范围内。
本实施例提供的光伏功率预测方法,通过上述过程,在神经网络模型中的网络参数陷入局部最优时,对网络参数进行启发式搜索及自适应调整,使得神经网络模型具有跳出局部最优的能力,避免了陷入局部最优之后训练误差不再减小的问题。
值得说明的是,现有技术中也存在一些避免网络参数陷入局部最优的方法,主要是依靠改变参数的初始值进行多次训练和采用随机梯度下降法替代全局梯度下降的方式,来避免训练过程中陷入局部最优。该方法虽然可通过改变参数的初始值和采用随机梯度下降法替代全局梯度下降的方式,避免网络参数陷入局部最优,但是改变初始值进行多次训练,初始值的取值太过于依赖经验,且随机性太大不能保证训练所得模型的准确度,而采用随机梯度下降法替代全局梯度下降的方式,虽然训练速度较快,训练周期较短,但是在参数进行迭代的过程中波动性较大,所得模型的精度较低。
而本实施例提供的光伏功率预测方法,通过对网络参数进行启发式搜索和自适应调整,来避免网络参数陷入局部最优,相较于改变参数的初始值避免网络参数陷入局部最优的方式,本实施例不需依赖经验改变初始值即可跳出局部最优,保证了训练所得模型的准确度;再者,相较于采用随机梯度下降法替代全局梯度下降的方式,本实施例在参数进行迭代的过程中波动性较小,保证了所得模型的精度;最后,相较于现有的方法,本实施例所得的模型更接近全局最优。
图3为图1中的步骤S102对历史气象数据和历史输出功率进行预处理的一种实施方式,包括S301至S302两个步骤:
S301、对历史气象数据和历史输出功率进行清洗。
需要说明的是,对历史气象数据和历史输出功率进行清洗的具体过程可参见现有技术,或者参见图4示出的具体流程。
如图4所示,步骤S301包括S401至S403三个步骤:
S401、判断历史气象数据和/或历史输出功率是否存在异常值或数据缺失。
需要说明的是,判断历史气象数据和/或历史输出功率是否存在异常值,主要通过绘制数值曲线进行判断,异常值表现为曲线上的毛刺。而判断历史气象数据和/或历史输出功率是否存在数据缺失,主要通过判断在固定时段内,数据的数量是否缺少,若数据的数量缺少,则视为存在数据缺失。
还需要说明的是,判断是否存在异常值或数据缺失的方式还可参见现有技术的其他方式,本申请不作具体限定,均属于本申请的保护范围。
当执行步骤S401判断历史气象数据和/或历史输出功率是否存在异常值或数据缺失之后,若判断出历史气象数据和/或历史输出功率存在异常值,则执行步骤S402;若判断出历史气象数据和/或历史输出功率存在数据缺失,则执行步骤S403。
S402、将异常值进行剔除。
需要说明的是,当通过绘制数值曲线的方式判断出历史气象数据和/或历史输出功率存在异常值之后,将所绘制的数值曲线上的毛刺作为异常值,并将其进行剔除。
S403、对缺失的数据进行插值补充。
需要说明的是,当判断出存在数据缺失之后,主要通过前后两个时间点的数据进行线性插值,将缺失的数据进行插值补充。
在实际应用中,对缺失的数据进行插值补充所采用的公式为:
其中,y为缺失数据的插值,y1为离缺失数据最近的前一个时间点的数据,y2为离缺失数据最近的后一个时间点的数据。
需要说明的是,将异常值进行剔除和对缺失的数据进行插值补充的方式还可以参见现有技术,本申请不作具体限定,均属于本申请的保护范围。
步骤S301之后,即可执行步骤S302。
S302、将经过清洗后的历史气象数据和历史输出功率进行特征归一化。
需要说明的是,将经过清洗后的历史气象数据和清洗后的历史输出功率进行特征归一化是为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。
在实际应用中,将经过清洗后的历史气象数据和历史输出功率进行特征归一化,所采用的计算公式为:
其中,xnorm为归一化后的特征值,xmin为特征的最小值,xmax为特征的最大值,x为数据的原特征值。
图3和图4仅为步骤S102的一种实现形式,实际应用中,还可以采用其他形式进行数据预处理,此处不做具体限定,均在本申请的保护范围内。
图5为图1中的步骤S103基于预处理后的历史气象数据和历史输出功率,构建神经网络模型的一种实施方式,包括S501至S504四个步骤:
S501、设置神经网络模型的激活函数。
其中,通过设置神经网络模型的激活函数可决定神经网络模型的激活方式。具体的,可将神经网络模型的激活函数设置为ReLU(Rectified Linear Unit,线性整流)函数。
进一步的,ReLU函数为:与其他激活函数相比,ReLU函数具有梯度恒定的特点,便于神经网络模型在训练过程中快速收敛,缩短训练周期。
S502、以相应个数的神经元构建神经网络模型的输入层,用于设置预处理后的历史气象数据。
需要说明的是,神经网络模型输入层的神经元个数与所要设置预处理后的历史气象数据的数据类型有关。由于预处理后的历史气象数据包括了:预处理后的每天每个整点的地面温度、湿度、风速以及地面辐照度,所以可将神经网络模型输入层的神经元的个数确定为4,分别用于输入每天每个整点的地面温度、湿度、风速以及地面辐照度。
S503、以相应个数的神经元构建神经网络模型的输出层,用于设置预处理后的历史输出功率。
需要说明的是,神经网络模型输出层的神经元个数与所要设置预处理后的历史输出功率有关。由于处理后的历史输出功率仅包括了历史输出功率这一类型的数据,所以可将神经网络模型输出层的神经元的个数确定为1,用于输出每天每个整点的历史输出功率。
S504、构建输入层与输出层之间的至少一个隐藏层。
需要说明的是,构建神经网络模型隐藏层的层数,一般会根据所解决问题的需要,决定神经网络模型隐藏层的层数。
在实际应用中,可将光伏功率预测的神经网络模型隐藏层的层数设置为3,也即输入层与输出层之间包括三个隐藏层,以及将各个隐藏层中的神经元个数设置为8。
其中,神经网络中的输入层、隐藏层以及输出层的具体设置情况,可参见图6。图中的input layer代表输入层,hidden layer代表隐藏层,output layer代表输出层。
还需要说明的是,步骤S501至S504的执行顺序并不仅限于上述执行顺序,无论先执行哪一步骤后执行哪一步骤,亦或几个步骤同时执行均不影响本申请的具体实现,均属于本申请的保护范围。
仍需要说明的是,基于预处理后的历史气象数据和历史输出功率,所构建神经网络模型可以为:采用BP神经网络算法构建的神经网络模型。其中,采用BP神经网络算法对光伏电站的历史数据进行学习,可视为对神经网络进行训练的过程。
还需要说明的是,图5可以和图3及图4中任一附图结合得到其他附图,就不再一一示出,均属于本申请的保护范围。
图7为图1中的步骤S106对网络参数进行启发式搜索及自适应调整的一种实施方式,包括以下步骤:
S701、存储网络参数对应的当前模型参数和当前模型损失。
需要说明的是,存储网络参数对应的当前模型参数和当前模型损失可参见现有技术,或者参见图8示出的具体流程。
S702、依据当前模型参数,计算得到与当前模型参数对应的随机网络参数。
具体的,可以将模型方差作为当前模型参数中各个参数的方差,进行高斯随机计算,得到与当前模型参数中各个参数对应的随机网络参数。
进一步的,模型方差所采用的计算公式为:其中,σ为模型方差,R为神经网络模型的最小损失。进行高斯随机计算所采用的公式为:其中,f(x)为生成随机网络参数的概率密度函数,x为与当前模型参数对应的随机网络参数,μ为当前模型参数。
S703、判断随机网络参数的随机模型损失是否小于当前模型损失。
其中,执行步骤S703判断随机网络参数的随机模型损失是否小于当前模型损失后,若判断出随机网络参数的随机模型损失小于当前模型损失,则执行步骤S704;若判断出随机网络参数的随机模型损失大于等于当前模型损失,则执行步骤S705。
S704、以随机网络参数对应的随机模型参数更新当前模型参数,以随机模型损失更新当前模型损失。
需要说明的是,以随机网络参数对应的随机模型参数更新当前模型参数,也即为以随机网络参数对应的随机模型参数替换当前模型参数。以随机模型损失更新当前模型损失,也即为以随机模型损失替换当前模型损失。
S705、保持当前模型参数和当前模型损失不变。
需要说明的是,保持当前网络模型不变为:不将随机网络参数对应的随机模型参数更新当前模型参数;保持当前模型损失不变为:不将随机模型损失更新当前模型损失。
然后返回步骤S702,直至返回的次数大于等于次数阈值,以该当前模型参数作为训练得到的模型的网络参数。此过程具体可以是如下所述:
S706、迭代次数加1。
需要说明的是,每执行一次步骤S702依据当前模型参数,计算得到与当前模型参数对应的随机网络参数,迭代次数累加1。
S707、判断迭代次数是否大于等于迭代阈值。
其中,迭代阈值等于次数阈值加1;且该迭代阈值和次数阈值均为根据用户需求所设定的设定值,其具体取值可根据应用环境和用户需求确定,本申请不作具体限定,均属于本申请的保护范围。
当判断出迭代次数大于等于迭代阈值后,也即在返回的次数大于次数阈值的情况下,执行步骤S708;当判断出迭代次数小于迭代阈值后,也即在返回的次数大于次数阈值的情况下,则返回执行S702的步骤,直至迭代次数大于等于迭代阈值。
需要说明的是,当判断出迭代次数小于迭代阈值后,也即说明,迭代次数还未超过设定值后,还可以继续进行迭代。此时,应当继续返回执行步骤S702,直至迭代次数大于等于迭代阈值。
S708、以当前模型参数作为训练得到的模型的网络参数。
需要说明的是,当判断出迭代次数大于等于迭代阈值后,也即说明,迭代次数已经超过设定值后,应当以当前模型参数作为训练得到的模型的网络参数。
结合图1至图7,下面以一个具体的实例,进一步对步骤S106对网络参数进行启发式搜索及自适应调整进行说明。
(1)存储模型参数L=[W(1)、W(2)、W(3)、W(4),b(1)、b(2)、b(3)、b(4)]作为当前的最优参数,同时,记录该组参数L下的模型损失R。
(2)若迭代次数大于等于设定值,结束启发式搜索,将参数组L中存储的参数作为最后的模型参数。若迭代次数小于设定值,则对模型的各参数值,以当前存储的参数组L为中心,产生一个高斯随机数。
若以参数为例,对应的随机数可由下式产生:
其中,
f(x)为生成随机网络参数的概率密度函数,x为与当前模型参数对应的随机网络参数,μ为当前模型参数,代表L中存储的R代表当前的最小损失,也即为神经网络模型的最小损失。
(3)对步骤(2)中随机产生的参数组L′,计算训练样本在该参数组L′上的损失R′,若R小于R′,则令R=R′,L=L′,以及将迭代次数加1后,返回执行步骤(2)。
在本实施例中,通过启发式搜索及自适应调整的方式,在当前最优参数的基础之上不断产生新的高斯随机数,并通过反复计算训练误差,反复迭代参数,使得神经网络模型具有跳出局部最优的能力,避免了神经网络模型陷入局部最优而导致训练误差无法再继续减小的问题,也即为使模型的参数在尽可能保持目前模型最优性能的前提下,不断探索新的可能取值。
还需要说明的是,图7可以和图3至图5中任一附图结合得到其他附图,就不再附图示出,均属于本申请的保护范围。
在图7的基础之上,图8示出了步骤S701的一种实施方式,包括S801至S803三个步骤:
S801、确定网络参数对应的当前模型参数。
需要说明的是,当判断出网络参数陷入局部最优之后,确定陷入局部最优时的网络参数,并以陷入局部最优时的网络参数确定出对应的当前模型参数。
S802、依据当前模型参数,计算得到当前模型参数的当前模型损失。
其中,依据当前模型参数,通过误差损失计算,得到当前模型损失。
S803、将当前模型参数和当前模型损失进行存储。
执行步骤S801和S802后,可得到当前模型参数和当前模型损失,进而将所得到当前模型参数和当前模型损失进行存储。
需要说明的是,上述示出存储网络参数对应的当前模型参数和当前模型损失的方式,仅为一种可实施方式,还可通过现有技术其他方式,存储网络参数对应的当前模型参数和当前模型损失,本申请对存储网络参数对应的当前模型参数和当前模型损失的方式不作具体限定,均属于本身的保护范围。
还需要说明的是,图8可以和图3至图5中任一附图结合得到其他附图,就不再一一示出,均属于本申请的保护范围。
下面结合模型误差变化示意图,请参见图9,对神经网络陷入局部最优以及应用本发明可避免陷入局部最优作进一步的解释说明。
在对神经网络进行训练的过程中,训练样本集上的误差变化如图9所示。由图9可知,随着训练周期的延长,在训练后期,训练误差基本不再变化,当训练误差不再变化后,代表神经网络模型可能陷入了局部最优点。
在神经网络模型陷入局部最优点后,如若对陷入局部最优点的网络参数进行启发式搜索及自适应调整,所得的训练误差在搜索过程中的变化如图10所示。由图10可知,对陷入局部最优点的参数进行启发式搜索后,可发现训练误差在原有基础之上进一步减小。
再者,利用测试集验证本申请所提供的光伏功率预测方法的性能,请参见图11和图12。图11为传统的神经网络模型所得的光伏功率预测结果,其中,传统的神经网络模型无参数启发式搜索及自适应调整,所采用的激活activation函数为sigmoid(Sigmoidfunction)函数。
由图11可知,传统的神经网络模型所得的光伏功率预测结果中的实际取值true-value曲线和预测取值predict-value曲线的均方根误差error为4.54。由图12可知,本申请所提供的光伏功率预测结果中的实际取值true-value曲线和预测取值predict-value曲线的均方根误差error为3.13。
通过将传统的神经网络模型所得的光伏功率预测结果(图11)与采用本申请提供的具有启发式搜索及自适应调整的神经网络模型的光伏功率预测结果(图12)进行对比,可知本申请所提供的光伏功率预测所得的模型误差更小,预测效果更好,准确度越高,相较于现有技术的预测方式具有一定的优越性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。