The present invention relates to identifying data sources for neural networks and more particularly, to a device, method, and system for identifying matching data sources for a neural network based on very short term load prediction.
An Artificial Neural Network (ANN) is a device in which several interconnected elements process information simultaneously, adapting and learning from past patterns. The ANN may be used to predict future responses of a control system that varies with time. For example, electric power consumption in the power generation industry may vary with time. In order to operate the power generation equipment efficiently it may be useful to identify future consumption patterns. Very Short Term Load Predictor (VSTLP) provides a tool for estimating demand for the system power output over a predetermined future time period, for example, 60 minutes or less from the current point in time.
The neural-network-based very short term load predictor (VSTLP) requires that the actual load data sources be determined and made available for offline training of neural networks that are to be used for online prediction and further online training/tuning to improve prediction accuracy performance. The load data of up to five full-day-long load curves is used for offline neural network training. A full-year worth of load data at a specified time interval is stored in the VSTLP database with 10-year worth of load data for holidays stored as well. Accordingly, a need exists for a device, method, and system that make efficient use of the off-line data to provide training of ANN-based VSTLP.
The present invention is a novel device, system, and method for identifying data sources for a neural network. The exemplary method may determine load curves for each selected data set. The method may determine a global difference measure and a global similarity measure for each load curve of each selected data set. The method may then determine a set of data sets with lowest value global difference measure and determine a set of data sets with largest value global similarity measure. The method may then determine a union of the sets of lowest value difference measure and the sets of largest value similarity measure. For each set in the union the method may determine either a local similarity measure or a local difference measure and select a set of reduced data sets based on either the local similarity measure or the local difference measure.
The invention may include the following embodiments. In one exemplary embodiment the method may select the set of reduced data sets from the sets in the union based on data sets with the largest value of the local similarity measure. In another embodiment the method may select the set of reduced data sets from the sets in the union based on data sets with the smallest value of the local difference measure. In another embodiment, the data sets may be data for a one-day period and the method may modify the reference load curve based on Daylight Savings Time. In yet another embodiment, the method may select the selected data set's days based on a reference day data set. The selected data set's days may involve the method selecting the selected data sets from data sets including any weekdays between Tuesdays and Thursdays of the same week when the next day after the reference day is between Tuesday and Thursday inclusively; selecting the selected data sets from data sets including previous Mondays, Sundays and Tuesdays when the next day after the reference day is Monday; and selecting the selected data sets from data sets including previous Thursdays, Fridays and Saturdays when the next day after the reference day is Friday. The method may also select the selected data sets from data sets including previous Fridays, weekends and Mondays when the next day after the reference day is any weekend day and select the selected data sets from data sets including the previous same holidays and days preceding or following these holidays by no more than two days when the next day after the reference day is a holiday.
It is important to note that the present invention is not intended to be limited to a system or method which must satisfy one or more of any stated objects or features of the invention. It is also important to note that the present invention is not limited to the exemplary embodiments described herein. Modifications and substitutions by one of ordinary skill in the art are considered to be within the scope of the present invention, which is not to be limited except by the following claims.
These and other features and advantages of the present invention will be better understood by reading the following detailed description, taken together with the drawings herein:
The present invention provides a neural-network-based very short term load predictor (VSTLP). Aspects of VSTLP are described in greater detail and incorporated by reference herein in U.S. patent applications 2004/0249775 to Chen, 2004/0246643 to Chen, 2004/0257059 to Mansingh et al., 2004/0260489 to Mansingh et al., and 2004/0257858 to Mansingh et al. The VSTLP may require that the actual load data sources be determined and made available for offline training of neural networks that are to be used for online prediction and further online training/tuning to improve prediction accuracy performance.
The load data of up to five full-day-long load curves is used for offline neural network training. A full-year worth of load data at a specified time interval is stored in the VSTLP database with 10-years worth of load data for holidays stored as well. The dates of these load curves are used to identify the underlying load data sources. In other words, the load data sources are specified by the corresponding dates. The determination of the actual load data sources used for neural network training is done by two phases. The first phase may involve the user specifying one or more of the dates of the data sources. The second phase may involve utilizing the exemplary algorithms, described later herein, to find the remaining best matching dates that have closest load curves. The date of the first load data source may be specified by the user. The first load data set may be used to produce a reference load curve. The additional date data sets, for example four, can be either specified by the user or found by the proposed algorithms.
Referring to
The VSTLP module 1000 uses artificial neural network (ANN) techniques to predict load requirements. Since the load differs greatly for weekdays and weekends, and varies among different weekdays, and has different dynamics from time to time during individual days, the ANN-based VSTLP module 1000 has the functional capability to, among other features, distinguish between different seasons (for instance, summer and winter); distinguish between weekends, holidays and weekdays; distinguish between off-peak times and on-peak times; predict the next period (15 1-minute) load values which conform to the dynamics of recent time period(s) (for instance, the past 15 minutes); and to conform to the hourly average values of load that is forecasted by STLF module function or equivalent outside sources.
The VSTLP module 1000 may not directly take weather information as a consideration or input since such weather information is already accounted for and modeled by the STLF module. However, it should be understood that day patterns may be obtained from weather adaptive load forecasts and/or manually entered. Nevertheless weather variation information will not be directly used (although other embodiments may) in the ANN-based VSTLP 1000, but the hourly forecasted load values by the STLF are to be used to adjust the minutely forecasted load values by the ANN-based VSTLP 1000.
To account for load changes along with seasons, weekdays/weekends/holidays, and off-peak/on-peak times, the neural networks may be trained to capture the load patterns that occur at a specific season, a specific day, and a specific time period of the day. Initially, a year may be split up into spring (Months 1 to 3), summer (months 4 to 6), fall (months 7 to 9) and winter (months 10 to 12). This split can be reconfigured according to real-world load characteristics at a specific location where this VSTL module 1000 is intended for use. Load shapes for weekends (Saturdays and Sundays) for example are dissimilar to those of weekdays (Mondays through Fridays). Division between weekdays and weekends may be performed and based on constructed, real world situations. For instance, weekends may include Saturdays, Sundays and Mondays, and weekdays may include Tuesdays through Fridays. Generally, load shapes for both weekdays and weekends are generally recurrent. However, the load shapes of holidays are quite different from those of normal weekdays/weekends. Special care may be given to the treatment of holidays, in particular, big holidays such as Thanksgiving holidays and Christmas holidays. Load shapes of neighboring days preceding holidays and following holidays are also affected. For example, the period from 6:00 pm on the day immediately preceding a holiday to 9:00 pm on the day immediately following the holiday will be regarded as holiday time when collecting data for training neural networks associated with VSTLP 1000.
Shown in
The Decision Algorithm 1010 in the Daily ANN-based VSTLP diagram shown in
In the equations below, load is denoted by P. The forecast load values for the next 15 minutes can be expressed as a function of the current load and the previous N 1-minute load values:
{circumflex over (P)}n+i=fi(n, Pn, Pn−1, Pn−2, . . . , Pn−N)
Where Pn+i(1≦i≦M) is the predicted load for the future ith step (in minutes) from current time n. Pn, Pn−1, Pn−2, . . . , Pn−N are the actual load values for current time and the previous N minutes. In this illustration, M is assigned a value of 15. The choice of N depends on the complexity of load dynamics, and will be determined through a trial-and-error experimental approach along with any available a priori information on load dynamics.
It is observed that in the above equation, the dynamics are time varying. However, the time-varying effect may be neglected within any of the individual time periods that are properly segmented within an entire day of 24 hours (23 or 25 when DST is present). The load dynamics vary from one individual time period to another. Accordingly, several NNs are used to deal with time-varying load dynamics. Within each individual time period, the load dynamics can be simply represented by
{circumflex over (P)}n+i=ƒi(Pn, Pn−1, Pn−2, Pn−N)
The above equation can be rewritten in vector format as follows:
Since f1, f2, . . . , fM are all unknown, and the exact forms of these functions are not known, with historical load data available, a feed-forward neural network with proper layers may be trained to approximate such functions.
Where θ is a parameter vector that contains weights between neighboring layers, and biases for all the neurons, and is to be tuned in a way such that the discrepancy between the calculated values for the future times and actual values is minimized in terms of a performance index.
Neural networks are trained off-line using historical load data. After the completion of neural network training and validation, they are ready to be used on-line. Retraining may be done on a daily basis to tune the weights to take into account the exhibited load characteristics for the just previous day. Online update of weights may also be possible.
When actual values Pn, Pn−1, Pn−2, . . . , Pn−N are available, forecasted load values Pn+1(1≦i≦M) can be computed immediately. When some of the actual values for Pn, Pn−1, Pn−2, . . . , Pn−N are not available, estimates generated from ANN-based VSTLP at previous times will be used instead, and further future loads can be forecast. This can be done iteratively until all the minutely forecasted values for a whole hour are computed, as shown in
The Adaptive Scaling Block 3010 in the ANN-based VSTLP for Next Hour diagram
It is assumed that the number of inputs, M, will not be larger than 15. Therefore, at any instant time n, and when starting to predict the load values for the next hour, the first ANN-based VSTLP will calculate the load values for the next 15 minutes, namely, Pn+i(1≦i≦15) based on the actual previous load values. When predicting the load values for the time period from n+16 to n+30, the second ANN-based VSTLP will use some of the available minutely forecasted load values Pn+i(1≦i≦15) since actual load values for this time period are not available yet. In the same manner, the predicted load values from the second ANN-based VSTLP for the time period from n+16 to n+30 are {circumflex over Pn+i(16≦i≦30). Similarly, the third and fourth ANN-based VSTLPs will generate the predicted load values for another 15 minutes each, that is, Pn+i(31≦i≦15), and Pn+i(46≦i≦60). These four ANN-based VSTLPs all together generate predicted load values for the next 60 minutes. However, some of these forecasted load values will not be used in adaptive scaling if the time stamp associated with them is beyond the current hour. If the current time instant n is i minutes after the hour, then within the hour, for the time period from n−i+1 to n, Pn−i+1, Pn−i+2, Pn−i+3, . . . , Pn actual values are available, and for the rest of the time periods within the hour, only predicted values (circumflex over Pn+k(1≦k≦60−i) are available. The forecasted load values Pn+k(60−i+1≦k≦60−i) will be discarded or prediction for the corresponding time period will not be performed at all depending on the eventual implementation.
For example, let the scaling factor be sn, and let the hourly forecasted load value from STLF for the current hour be Pstlf. To make the minutely forecasted load values within the hour conform to the hourly forecasted load value from STLF with satisfactory accuracy, the following relationship is used:
Then the modified minutely forecasted load values for the future time period from n+1 to n+60−i within the current hour are snPn+k(1≦k≦60−i). It should be understood however, that sn is time varying with the minutely update of 15-minute sliding window of prediction. The temporal behavior of sn is also an indicator of ANN-based VSTLP's performance. If sn fluctuates around 1 with a small magnitude (or substantially around 1), it indicates that the ANN-based VSTLP performs reasonably well in the sense that the minutely forecasted load values generated from ANN-based VSTLP conform to the hourly forecasted load values from STLF with the assumption that STLF fully captures the hourly load patterns with satisfactory accuracy. In addition, it should be noted that non-conforming load(s) must be dealt with and processed separately, or filtered out to minimize or remove its influence on the prediction accuracy of the ANN-based VSTLP. Moreover, in certain instances the STLF should be greater than the largest prediction interval for which load predictions are made.
The historical load data stored in HFD/HIS 1030 must be formulated in a proper format before it can be used in training neural networks of the ANN-based VSTLP. This can be achieved by an interface program, which retrieves the historical data from HFD/HIS, reformats it and passes it to the main program responsible for neural network training. The historical data is preferably separated into two different sets. The first set of data is used to train the neural networks while the second set of data is used to evaluate the performance of the trained neural networks to avoid the over-training of the neural networks. Based on performance evaluation, the number of training epochs can be specified and final training can be achieved with all available and useful historical data. Information relating to the ANN-based VSTLP 1000, for example, the number of layers, number of neurons in each layer, activation functions, weights and biases, etc., will be saved in a file.
The structural and parametric information about the ANN-based VSTLP 1000 is retrieved to initialize neural networks of the ANN-based VSTLP. Same as for VSTLP offline training, an interface program retrieves historical load data from HFD/HIS 5030 or other online application programs that temporarily stores historical load data and passes it to the initialized neural networks for load forecast. Generated minutely forecasted load values will be used for generation, scheduling, and display purposes. In addition these load values will also be stored for after-the-fact performance evaluation.
Online updating of weights and biases of the neural networks can be done by using the immediately-past actual load values and the forecasted load values generated from the neural networks. This is done with the understanding that past load characteristics may be used to improve the accuracy of immediate future load predictions. Beyond a certain time period (e.g., a time segment that is defined for example by the Daily ANN-based VSTLP diagram), the weights and biases are discarded, and the original weights and biases are reloaded. Updating of weights and biases can also be achieved on a monthly, weekly, daily, hourly or even smaller time granularity basis depending on real world situations.
The algorithms of the first and second exemplary embodiments take into account the two requirements: the candidate load curve is similar to the user-specified reference load curve and the candidate load curve exhibits a certain degree of deviation from the reference load curve. The first requirement may require that the selected load curve stays close to the reference curve so that the main load trend exhibited by these load curves is outstanding for the neural network to capture through training. The second requirement may demand that the selected load curve vary around the reference curve so that the neural network has the capability to generalize after the training is completed.
The first load curve specified by the user is regarded as the reference load curve, denoted by Cr(t)with t∈(0,1440] (t is in minutes). The daylight savings time (DST) may be handled as such: for the long DST day, the load data for the duplicated hour is not used; for the short DST day, the load data for the second hour is duplicated for the time period from 2:00:00am-2:59:00am. With this treatment, every day has a load curve that has 1440 1-minute load data points, or 288 5-minute load data points. For illustration purposes but without loss of generality, we assume that a load curve has 1440 1-minute load data points.
The load curves of the best matching dates (yet to be identified based on the algorithms of the exemplary embodiments) may be denoted by Cim(t)for i∈[1,N] with N≦4. The load curve of any date stored in the VSTLP database may be denoted by Ckn(t)with the subscript k for identifying any date in a year, 1≦k≦365 and n for identifying the year in case of a holiday search. The objective is to find Cim(t)'s out of Ckn(t)'s.
Referring to
The system loops through the reduced set of dates Ω (block 410). The system may retrieve one load curve from the VSTLP database at a time, Ckn(t) (block 412). The system may make necessary DST adjustment t∈(0,1440] as previously discussed to each set of date data sets (block 413). For each date data set, the global difference measure and similarity measure for each curve Ckn(t) is computed (block 414). The integrated square of difference between the reference curve Cr(t) and ckn(t)
The similarity of curve Ckn(t) to the reference curve
Referring to
The system may also sort all the A2(n,k)'s to pick up the four largest values such that A2(n5,k5)≦A2(n6,k6)≦A2(n7,k7)≦A2(n8,k8) ≦A2(n,k) where the pair (n,k) identifies a unique date which is neither of the four identified dates (n5,k5), (n6,k6), (n7,k7), (n8,k8), and the reference date defining D2={(n5,k5),(n6,k6),(n7,k7),(n8,k8)} (block 518). Similarly, according to the exemplary embodiment herein the desired number is four, however, the invention is not limited to four sets. The system may then produce a union set of dates D=D1∪D2 to remove any duplicated dates so D may have at least four dates and at most eight dates according to the exemplary embodiment (block 520).
The system then loops through the set of dates D, for each date identified by the pair (n,k) (block 522). The system according to the first exemplary embodiment may compute the following local similarity measure (block 524). The local similarity measure provides the similarity of curve Ckn(t) to the reference curve Cr(t) over the time segment T={t|N1≦t≦N2} for which a neural network is trained to be responsible for providing load prediction. Defined as:
As previously discussed, an entire day is split into multiple non-overlapping time segments and for each time segment there is a neural network designed and trained to be responsible for providing load prediction. As load increments are used for training and prediction, the local similarity measure is more sensible than the local difference measure, as discussed in greater detail with regards to the second exemplary embodiment. The system sorts all the A3(n,k)'s to pick N (N≦4 depending on how many automatically generated matching dates are needed) largest values and find the corresponding dates—the best matching dates that offer best load curve matching according to the applied three matching criteria: A1, A2, A3 (block 526).
Referring to
The system may also take into account holidays when selecting dates for the reduced set of data. If the system determines the next day is a holiday, then the previous same holidays and days preceding or following these holidays by no more than two days are included in the selected set of dates (block 610). In addition the system may prevent the reference date from being used as a data set (block 612). The system may provide a reduced set of dates taking into account the day of the week of the reference date and holidays.
Incremental load curves are formed out of load curves. An incremental load curve denoted by ΔCkn(t)(t∈(0,1440]) is formed out of load curve Ckn(t)where t∈[0,1440]. The time interval used for the exemplary embodiments is 1 minute, but the invention is not limited to 1 minute increments. A variety of increments may be used, for example the increment may be 5 minutes, and in that case, t∈(0,288]. ΔCkn(t)=Ckn(t)−Ckn(t−1) for ∀t∈(0,1440]. The neural-network-based very short term load prediction provides a methodology to also base the training and prediction on load increments. To apply this methodology more effectively, load increment-based curve matching is an alternative choice.
A second exemplary algorithm 700 also may make use of the entire load curve matching as well as partial load curve matching. The second exemplary algorithm 700 follows the same action as described with regard to
The system may sort all the A1(n,k) 's to pick up the desired number lowest values such that A1(n1,k1)≦A1(n2,k2)≦A1(n3,k3)≦A1(n4,k4) ≦A1(n,k) where the pair (n,k) identifies a unique date (date k in year n) which is neither of the four identified dates (n1,k1), (n2,k2), (n3,k3), (n4,k4), and the reference date defining D1={(n1,k1),(n2,k2),(n3,k3),(n4,k4)} (block 716). According to the exemplary embodiment herein the desired number is four, however, the invention is not limited to four sets.
The system may also sort all the A2(n,k)'s to pick up the four largest values such that A2(n5,k5)≦A2(n6,k6)≦A2(n7,k7)≦A2(n8,k8) ≦A2(n,k) where the pair (n,k) identifies a unique date which is neither of the four identified dates (n5,k5), (n6,k6), (n7,k7), (n8,k8), and the reference date defining D2={(n5,k5),(n6,k6),(n7,k7),(n8,k8)} (block 718). Similarly, according to the exemplary embodiment herein the desired number is four, however, the invention is not limited to four sets. The system may then produce a union set of dates D=D1∪D2 to remove any duplicated dates so D may have at least four dates and at most eight dates according to the exemplary embodiment (block 720).
The system then loops through the set of dates D, for each date identified by the pair (n,k) (block 722). The system according to the first exemplary embodiment may compute the following local difference measure (block 724). The system loops through the set of dates D, for each date identified by the pair (n,k) and computes the local difference measure. The integrated square of difference between the reference curve ΔCr(t) and ΔCkn(t) over the time segment T={t|N1≦t≦N2} for which a neural network is trained to be responsible for providing load prediction:
An entire day is split into multiple non-overlapping time segments and for each time segment there is a neural network designed and trained to be responsible for providing load prediction. As load increments have already been used for entire curve matching, the local difference measure may be more sensible than the local similarity measure of the first exemplary embodiment. The system sorts all the A3(n,k)'s to pick N(N≦4 depending on how many automatically generated matching dates are needed) smallest values (block 726). The system finds the corresponding dates—the best matching dates that offer best load curve matching according to the applied three matching criteria: A1, A2, and A3.
The system and methods used in the first exemplary embodiment 400 and second exemplary embodiment may be implemented in a variety of ways. The exemplary embodiment uses data sets for power generation at various periods in time. The invention is not limited to power generation data. The ANN VSTLP may be used for a variety of modeling and training purposes as one skilled in the art will appreciate.
The systems and methods may be implemented using hardwired modules or programmable hardware. The systems and methods may be implemented within software that utilizes various components to implement the embodiments described herein. Aspects disclosed in the exemplary embodiment may be utilized independently or in combination with other exemplary embodiments. Moreover, it will be understood that the foregoing is only illustrative of the principles of the invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. Persons skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration rather than of limitation, and the present invention is limited only by the claims that follow.
This application is related to U.S. Provisional Patent Application Nos. 60/649,677, 60/649,877, 60/649,876, and 60/649,803, all filed on Feb. 3, 2005 which are incorporated fully herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5297015 | Miyazaki et al. | Mar 1994 | A |
5479358 | Shimoda et al. | Dec 1995 | A |
5572604 | Simard | Nov 1996 | A |
6397166 | Leung et al. | May 2002 | B1 |
7058522 | Chen | Jun 2006 | B2 |
7085660 | Mansingh et al. | Aug 2006 | B2 |
7305282 | Chen | Dec 2007 | B2 |
7321810 | Mansingh et al. | Jan 2008 | B2 |
20040133531 | Chebn et al. | Jul 2004 | A1 |
Number | Date | Country |
---|---|---|
1 478 073 | Nov 2004 | EP |
Number | Date | Country | |
---|---|---|---|
20060184472 A1 | Aug 2006 | US |
Number | Date | Country | |
---|---|---|---|
60649677 | Feb 2005 | US | |
60649877 | Feb 2005 | US | |
60649876 | Feb 2005 | US | |
60649803 | Feb 2005 | US |