GENERATING TRAINING DATA SETS FOR POWER OUTPUT PREDICTION

Embodiments the present invention set forth techniques for generating training data sets for power output detection. In some embodiments, the techniques include receiving a set of data samples of features of at least one power generation device, determining, for each data sample, a distance between the features of the data sample and features of other data samples, identifying at least one outlier data sample of the data sample set, the identifying being based on the distance determined for each data sample, and generating a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

BACKGROUND

Field of the Various Embodiments

Embodiments of the present disclosure relate generally to power generation devices, and, more specifically, to generating training data sets for power generation output prediction.

Description of the Related Art

Advances in the field of machine learning and increases in computing power have led to machine learning models that are capable of predicting the output of power generation devices. For example, a photovoltaic device, such as a solar panel, can generate power for delivery to a power grid, storage in a storage device (e.g., a battery), or supply to another device (e.g., a factory machine). However, the power output of a power generation device, such as a photovoltaic device, can vary based on a variety of factors, such as solar irradiance, a cloud coverage, ambient temperature, humidity, geographic location, time of day, photovoltaic device type, or the like. The use of the collected power can be adjusted based on predicted features (e.g., weather forecasts) and corresponding predictions of the power output. As a first example, a factory machine can be scheduled to be online and operating during periods of high predicted power output, and can be scheduled to be offline for maintenance during periods of low predicted power output. As a second example, the factory machine can be scheduled and budgeted to operate on solar power during periods of high predicted power output, and can be scheduled and budgeted to operate on other power sources during periods of low predicted power output.

Predicting the maximum possible power output of a power generation device can be difficult due to the number and interrelationships of features that can affect power output. For example, some types of power generation devices can be more affected by ambient temperature than other types of power generation devices. In order to generate accurate predictions, machine learning models can be used to predict the power output of a particular power generation device based on a given set of features. Machine learning models are particularly useful for such predictions because the learning capabilities of the models can reflect the interrelationships between the complex set of features.

In order to generate a machine learning model with such capabilities, data samples can be collected from a set of power generation devices. Each data sample includes one or more features of the power generation device and the power output of the power generation device. For example, for a photovoltaic device, the features can include solar irradiance, cloud coverage, and ambient temperature, which can be collected from an on-site weather station or from a weather service provider for the location of an installed photovoltaic system. That is, the photovoltaic data samples can include photovoltaic device features, such as DC voltage of the photovoltaic panels; meteorological data; and the electric power output of the photovoltaic panels. Further, each data sample can be represented as a multi-dimensional vector. The data samples can be used as a training data set to train a machine learning model. After training, the trained machine learning model can be applied to a set of features of a particular power generation device in order to predict its power output.

One disadvantage with using machine learning models to predict power output is the difficulty of determining which data samples to use for the training data model. For example, the output of a power generation device can be affected by factors other than the aforementioned features, such as an equipment failure or an administrative decision to operate the power generation device below its maximum power output. In some cases, market regulations could require a system operator of a power generation facility to operate power generation devices below a maximum output. In some other cases, power interconnection regulations can require a power generation facility to limit the generation of power to the power consumed by the power generation facility and to refrain from exporting power to other facilities or a power grid. As a result of these and/or other considerations, some data samples can reflect an incorrect or inconsistent relationship between the particular features and a corresponding power output. In particular, as compared with a maximum achievable output of the power generation device in a maximum potential power generation mode, the measured power output of a power generation device could be reduced due to other factors. If the training data set includes unrepresentative data samples, the machine learning model trained on the training data set could underestimate or overestimate power output based on a given set of features. These inaccuracies can cause or contribute to inefficiency, such as scheduling a factory machine to operate based on an overestimated predicted power output and/or scheduling a factory machine to be offline based on an underestimated predicted power output.

As the foregoing illustrates, what is needed in the art are improved training data sets for power output prediction.

SUMMARY

In some embodiments, a computer-implemented method includes receiving a set of data samples of features of at least one power generation device, determining, for at least some of the data samples, a distance between the features of the data sample and features of other data samples, identifying at least one outlier data sample of the data sample set, the identifying being based on the distances determined for the data samples, and generating a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

In some embodiments, a system includes a memory that stores instructions, and a processor that is coupled to the memory and, when executing the instructions, is configured to receive a set of data samples of features of at least one power generation device, determine, for at least some of the data samples, a distance between the features of the data sample and features of other data samples, identify at least one outlier data sample of the data sample set, the identifying being based on the distances determined for the data samples, and generate a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

In some embodiments, one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of receiving a set of data samples of features of at least one power generation device, determining, for at least some of the data samples, a distance between the features of the data sample and features of other data samples, identifying at least one outlier data sample of the data sample set, the identifying being based on the distances determined for the data samples, and generating a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

In some embodiments, a computer-implemented method includes receiving a set of data samples of features of a power generation device, and processing the set of data samples using a machine learning model to predict a power output of the power generation device, wherein the machine learning model has been trained on a set of data samples excluding at least one outlier data sample, and wherein the at least one outlier data sample has been determined based on a distance between features of the outlier data sample and features of other data samples of the set of data samples.

At least one technical advantage of the disclosed techniques is the improved accuracy of maximum possible power output predictions by machine learning models trained on the training data set. For example, based on a predicted power output and a measured power output of a power generation device, an alerting system can determine whether the power generation device is operating in a maximum potential power generation (MPPG) mode. Due to the improved accuracy, power output predictions can be relied upon with greater confidence for resource planning and scheduling. Further, machine learning models can be more rapidly and successfully trained using the training data set due to improved consistency of the included data samples. Thus, training machine learning models based on the training data set can be accomplished with greater efficiently and reduced time and energy expenditure. Also, due to the improved speed and likelihood of success of training, the machine learning models can be retrained and deployed on an updated training data set more quickly, thus improving the adaptability of the machine learning models to new data. Also, the training data set can include a larger variety of data points that are collected from a wider variety of power generation devices and/or under a wider variety of circumstances. As a result, machine learning models that are trained on the training data set have a wider range of robustness in terms of the combinations of features for which predictions can be accurately generated. Finally, excluding outliers from the training data set can avoid a problem in which a machine learning model trained with non-MPPG data points could underestimate the achievable power output of other power generation devices, resulting in the collection of additional non-MPPG data points that diminish future predictions. Identifying and excluding the non-MPPG data points from this vicious cycle can therefore improve the cycle of accurate predictions and the operation of power generation devices in an MPPG mode based on the predictions. These technical advantages provide one or more technological improvements over prior art approaches.

DETAILED DESCRIPTION

FIG.1is a system100configured to implement one or more embodiments. As shown, a server101within system100includes a processor102and a memory104. The memory104includes a data set106, a training data set generator engine116, a training data set122, a machine learning trainer124, and a power output prediction engine126. The power output prediction engine126includes a machine learning model128.

As shown, the system100receives a set of features110-1of a power generation device108-1. As an example, for a photovoltaic device, the features110-1can include solar irradiance, cloud coverage, ambient temperature, geographic location, humidity, time of day, photovoltaic device type, a power output114of the photovoltaic device108-1, or the like. The set of features110-1can be based on data received from the power generation device108-1and/or from another source, such as an on-site weather station or from a weather service provider for the location of an installed photovoltaic system. The system100receives the set of features110-1from the power generation device set108-1and generates a data set106. The data set106can include a set of data samples112, each associating some features110of the power generation device108-1with a power output114. The system100can store the features110of a set of power generation devices in the data set106.

As shown, the training data set generator engine116is a program stored in the memory104and executed by the processor102to generate a training data set122based on the data set106of collected features110-1. In particular, the training data set generator engine116identifies at least some of the data samples112of the data set106as either an outlier data sample118or a non-outlier data sample120. The training data set generator engine116generates the training data set122that includes at least one of the non-outlier data samples120and excludes at least one of the outlier data samples118.

The training data set generator engine116classifies at least some of the data samples112as either an outlier data sample118or a non-outlier data sample120. In some embodiments, the non-outlier data samples120are data samples112collected from power generation devices108that are operating in an MPPG mode, and the outlier data samples118are data samples112collected from power generation devices118that are operating in a non-MPPG mode. In some embodiments, the non-outlier data samples120are data samples112for which the power output114is consistent with the other features110of the data sample112, and the outlier data samples118are data samples112for which the power output114is not consistent with the other features110of the data sample112. In some embodiments, the non-outlier data samples120are data samples112that have a similar relationship between the features110and the power output114as other data samples112of the data set106, and the outlier data samples118are data samples112that do not have a similar relationship between the features110and the power output114as other data samples112of the data set106. In some embodiments, the data samples112are collected from a single power generation device108that is sometimes operating in an MPPG mode and sometimes operating in a non-MPPG mode, the machine learning model128is trained on only the MPPG-mode data samples. The predictions of the machine learning model128can be used to determine whether the single power generation device108is currently operating in an MPPG mode or a non-MPPG mode.

In particular, the training data set generator engine116classifies the data samples112as outlier data samples118or non-outlier data samples120based on distances between the features110of one data sample112, including power output114, and the features110of the other data samples112, including power output114. For example, the data set106can represent the data samples112within a feature space, where each axis of the feature space represents a type of feature110, such as solar irradiance, ambient temperature, power output114, or the like. The training data set generator engine116determines a distance within the feature space between the features110of a data sample112and the features110of other data samples112of the data set106. In some embodiments, the training data set generator engine116performs a K-nearest-neighbor determination between the features of one data sample and the features of the other data samples112. For example, the training data set generator engine116can determine the distance based on a subset of nearest data samples112within the feature space, such as a subset of the K nearest data samples112within the feature space.

In some embodiments, the training data set generator engine116classifies the data samples112as outlier data samples118or non-outlier data samples120based on one or more rules. For example, the training data set generator engine116could store compare a solar generation measurement of a photovoltaic device with a nameplate capacity of an AC/DC inverter of the photovoltaic device. If the solar generation measurement matches the nameplate capacity, the training data set generator engine116could determine that the power output of the photovoltaic device is being limited to a non-MPPG mode, and that data samples112collected from the photovoltaic device are outlier data samples118. In some embodiments, the training data set generator engine116applies one or more rules to classify the data samples112in addition to (e.g., before) other techniques, such as applying a K-nearest-neighbor determination to the remaining data samples112.

Based on the determined distances, the training data set generator engine116identifies outlier data samples118among the data samples112of the data set106. In some embodiments, the training data set generator engine116identifies the data samples112based on a comparison of a power output feature of the data sample and a power output measurement during a maximum potential power generation (MPPG) mode of a power generation device associated with the data sample112. For example, the training data set generator engine116can evaluate at least some of the data samples112in order to determine whether the data sample112is an outlier data sample118(e.g., a data sample112having a larger aggregate distance than some of the other data samples112) or a non-outlier data sample120(e.g., a data sample112having a smaller aggregate distance than some of the other data samples112). In some embodiments, the training data set generator engine116determines and applies weights to the respective features110in order to adjust the identification of outlier data samples118of the data set106. In some embodiments, the training data set generator engine116applies a large weight to the distance between power outputs114of power generation devices108. Applying a large weight to the distances of the power outputs114applied can highlight the operation of a particular power generation device108below the maximum potential power generation (MPPG) mode of the power generation device108.

The training data set generator engine116generates a training data set122that includes the non-outlier data samples120and excludes at least one of the outlier data samples118. That is, while the power output114is included in the set of features110used to determine the distances between the data samples112, the training data set122associates some of the features110of each data sample112with a power output114of the data sample112. In some embodiments in which the training data set generator engine116applies a weight to the distances between power outputs114, the outlier data samples118include data samples112that are collected from power generation devices108operating in a non-MPPG mode, and the non-outlier data samples118include data samples112that are collected from power generation devices108operating in an MPPG mode.

The machine learning model128generates a predicted power output130of a power generation device108based on a set of features110of the power generation device108. The machine learning model128can be, for example, an artificial neural network including a series of layers of neurons. Each neuron multiples an input by a weight, processes a sum of the weighted inputs using an activation function, and provides an output of the activation function as the output of the artificial neural network and/or as input to a next layer of the artificial neural network.

As shown, the machine learning trainer124is a program stored in the memory104and executed by the processor102to train the machine learning model128using the training data set122to predict power outputs114of power generation devices108based on a set of features110. For at least some of the data samples112of the training data set122, the machine learning trainer118predicts a power output114based on other features110of the data sample112. If the power output114stored in the training data set122and the predicted power output130do not match, then the machine learning trainer124adjusts the parameters of the machine learning model128to reduce the difference. The machine learning trainer124trains the machine learning model128until the performance metric indicates that the correspondence of the power outputs114of the training data set122and the predicted power outputs130is within an acceptable range of accuracy.

As shown, the power output prediction engine126is a program stored in the memory104and executed by the processor102to generate, by the machine learning model128, a predicted power output130of a power generation device108based on other power features110of the power generation device108. For example, the power output prediction engine126receives a set of features110-2for a power generation device108-2, wherein the set of features110-2does not include the power output114. The power output prediction engine126provides the set of features110-2as input to the machine learning model128. The power output prediction engine126receives the output of the machine learning model128as the predicted power output130of the power generation device108-2. In some embodiments, the power output prediction engine126translates an output of the machine learning model128into the predicted power output130, e.g., by scaling the output of the machine learning model128and/or adding an offset to the output of the machine learning model128.

Some embodiments of the disclosed techniques include different architectures than as shown inFIG.1. As a first such example and without limitation, various embodiments include various types of processors102. In various embodiments, the processor102includes a CPU, a GPU, a TPU, an ASIC, or the like. Some embodiments include two or more processors102of a same or similar type (e.g., two or more CPUs of the same or similar types). Alternatively or additionally, some embodiments include processors102of different types (e.g., two CPUs of different types; one or more CPUs and one or more GPUs or TPUs; or one or more CPUs and one or more FPGAs). In some embodiments, two or more processors102perform a part of the disclosed techniques in tandem (e.g., each CPU training the machine learning model128over a subset of the training data set122). Alternatively or additionally, in some embodiments, two or more processors102perform different parts of the disclosed techniques (e.g., a first CPU that executes the machine learning trainer124to train the machine learning model128, and a second CPU that executes the power output prediction engine126to determine the predicted power outputs130of power generation devices108using the trained machine learning model128).

As a second such example and without limitation, various embodiments include various types of memory104. Some embodiments include two or more memories104of a same or similar type (e.g., a Redundant Array of Disks (RAID) array). Alternatively or additionally, some embodiments include two or more memories104of different types (e.g., one or more hard disk drives and one or more solid-state storage devices). In some embodiments, two or more memories104store a component in a distributed manner (e.g., storing the training data set122in a manner that spans two or more memories104). Alternatively or additionally, in some embodiments, a first memory104stores a first component (e.g., the training data set122) and a second memory104stores a second component (e.g., the machine learning trainer124).

As a third such example and without limitation, some disclosed embodiments include different implementations of the machine learning trainer124and/or the power output prediction engine126. In some embodiments, at least part of the machine learning trainer124and/or the power output prediction engine126is embodied as a program in a high-level programming language (e.g., C, Java, or Python), including a compiled product thereof. Alternatively or additionally, in some embodiments, at least part of the machine learning trainer124and/or the power output prediction engine126is embodied in hardware-level instructions (e.g., a firmware that the processor102loads and executes). Alternatively or additionally, in some embodiments, at least part of the machine learning trainer124and/or the power output prediction engine126is a configuration of a hardware circuit (e.g., configurations of the lookup tables within the logic blocks of one or more FPGAs). In some embodiments, the memory104includes additional components (e.g., machine learning libraries used by the machine learning trainer124and/or the power output prediction engine126).

As a fourth such example and without limitation, instead of one server101, some disclosed embodiments include two or more servers101that together apply the disclosed techniques. Some embodiments include two or more servers101that perform one operation in a distributed manner (e.g., a first server101and a second server101that respectively train the machine learning model128over different parts of the training data set122). Alternatively or additionally, some embodiments include two or more servers101that execute different parts of one operation (e.g., a first server101that processes the machine learning model128, and a second server101that translates an output of the machine learning model128into a predicted power output130). Alternatively or additionally, some embodiments include two or more servers101that perform different operations (e.g., a first server101that trains the machine learning model128, and a second server101that executes the power output prediction engine126). In some embodiments, two or more servers101communicate through a localized connection, such as through a shared bus or a local area network. Alternatively or additionally, in some embodiments, two or more servers101communicate through a remote connection, such as the Internet, a virtual private network (VPN), or a public or private cloud.

FIG.2is an illustration of training a machine learning model using the training data set ofFIG.1, according to one or more embodiments. The training can be, for example, an operation of the machine learning trainer124ofFIG.1.

As shown, one or more modules202transmit data from one or more power generation devices108to a data collector unit206. As shown, the power generation device108is a photovoltaic device and the collected data includes photovoltaic data. However, the concepts illustrated inFIG.2could be applied to other types of power generation devices108and features, such as wind power generation devices, hydroelectric power generation devices, geothermal power generation devices, or the like.

One or more weather data sources204transmit data about weather conditions to the data collector unit206. The data collector unit206generates a data set106of data samples112-1,112-2, each data sample112including a set of features110-1,110-2for one of the power generation devices108. For example, the features110for each data sample112can include a solar irradiance feature (e.g., a measurement of irradiance of the power generation device108-1). The sets of features110-1,110-2can include a weather feature (e.g., humidity, precipitation, or the like, as measured during a time of a data sample collection). The sets of features110-1,110-2can include a cloud coverage feature (e.g., an ultraviolet index indicating a measurement of cloudiness during a time of a data sample collection). The sets of features110-1,110-2can include an ambient temperature feature. The sets of features110-1,110-2can include a geographic location feature (e.g., a latitude, longitude, and/or elevation of the first power generation device108-1). The sets of features110-1,110-2can include a power generation device type feature (e.g., an equipment type of the first power generation device108-1). The sets of features110-1,110-2can include a data sample time feature (e.g., a time of day of a data sample collection). The sets of features110-1,110-2can include a power output feature (e.g., a power output generated by the first power generation device108-1during a period of a data sample collection). The sets of features110-1,110-2can include one or more fixed or static features, such as a fixed location of the power generation device108-1. The sets of features110-1,110-2can include one or more dynamic features, and can include an indication of a date and/or time of recording such a feature, such as a timestamp. In some embodiments, the data collector unit206stores each of the data samples112as a multidimensional vector.

The data sample set106includes the features110-1received from the data collector unit206from one or more power generation devices108. The data set106can include a set of data samples112, each associating some features110of each power generation device108with a power output114. The power output can be, for example, a measurement of output voltage, output current, output power, energy storage, or the like. The one or more other power generation device108can be of a same or similar types, or of different types. In some embodiments, the data set106includes an identifier of the particular power generation device108that provided each data sample112.

The training data set generator engine116identifies at least some data samples112of the data set106as either an outlier data sample118or a non-outlier data sample120. The training data set generator engine116includes the non-outlier data samples120of the data set106in the training data set122and excludes at least one of the outlier data samples118of the data set106from the training data set122. In particular, the training data set generator engine116distinguishes between outlier data samples118and non-outlier data samples120based on determinations of distances between the features110of one data sample112and the features110of the other data samples112. For example, the data set106represents the data samples112within a feature space, where each axis of the feature space represents a type of feature110, such as solar irradiance, ambient temperature, power output, or the like. In some embodiments, the training data set generator engine116normalizes each numerical feature110of at least some of the data samples112, such as by scaling and offsetting each numerical feature110to fit a statistical range. The training data set generator engine116determines a distance within the feature space between the features110of a data sample112and the features110of other data samples112of the data set106. The distance can be calculated, for example, as a Minkowski distance such as a Manhattan distance or a Euclidean distance, a Mahalanobis distance, a cosine similarity, or the like. For a particular data sample112, the training data set generator engine116can determine the distance with regard to the other data samples112based on an aggregation of individual distance determinations with regard to individual other data samples112, such as an arithmetic mean or arithmetic median of the individual distance determinations.

In some embodiments, the training data set generator engine116includes a machine learning model that learns to identify outlier data samples118among the data samples112of the data set106. For example, in some embodiments, the training data set generator engine116identifies the outlier data samples based on a K-nearest-neighbor determination. For example, the training data set generator engine116can determine the distance based on a subset of nearest data samples112within the feature space, such as a subset of the K nearest data samples112within the feature space. In some embodiments, the training data set generator engine116selects, from the features110, a subset of features110for the training data set122. For example, the training data set generator engine116can evaluate the feature space to determine independence and/or correlations among the features110and remove features110that are redundant with other features110. Removing some of the features can reduce the complexity of the feature space.

Based on the determined distances, the training data set generator engine116identifies outlier data samples118among the data samples112of the data set106. For example, the training data set generator engine116can evaluate at least some of the data samples112in order to determine whether the data sample112is an outlier data sample118(e.g., a data sample112having a larger aggregate distance than some of the other data samples112) or a non-outlier data sample120(e.g., a data sample112having a smaller aggregate distance than some of the other data samples112). In some embodiments, the training data set generator engine116identifies the outlier data samples118as the data samples112having a determined distance that is above a threshold distance. For example, the training data set generator engine116can identify the outlier data samples118as the data samples112having aggregate distance above a threshold distance, and can identify the non-outlier data samples120as the data samples112having a distance below the threshold distance. In some embodiments, the training data set generator engine116identifies the data samples112based on a ranking of the data samples112. In some embodiments, the training data set generator engine116ranks the data samples112by the determined distances and identifies, as the outlier data samples118, the data samples112that are within a top portion of the ranking. In some embodiments, the training data set generator engine116identifies the outlier data samples118as the data samples112within an upper fixed number or percentile of the largest distances of the data samples112, and identifies the non-outlier data samples120as the data samples112that are not within the upper fixed number or percentile of the largest distances of the data samples112. In some embodiments, the training data set generator engine116adjusts the selection of the non-outlier data samples120in order to improve the balance of the training data set122, such as selecting a comparable number of non-outlier data samples120for each of two or more clusters of data samples that occur within the feature space.

In some embodiments, the training data set generator engine116determines and applies weights to the respective features110in order to adjust the identification of outlier data samples118of the data set106. In some embodiments, the training data set generator engine116selects the weights based on determinations such as a distribution of at least some of the features110among the data samples112. For example, the training data set generator engine116can apply a larger weight to the distances of one data feature, such as ambient temperatures, than to the distances of other features110, such as humidity. The training data set generator engine116can determine the relative weights based on various factors, such as a variance of the feature110among the data samples112and/or a correlation of the feature110with other features110, such as power output114. In particular, the training data set generator engine116can apply a large weight to the distance between power outputs114of power generation devices108. Applying a large weight to the distances of the power outputs114applied can highlight the operation of a particular power generation device108below the maximum potential power generation (MPPG) mode of the power generation device108. For example, the set of power generation devices108with similar features110can include several power generation devices108that are operating in an MPPG mode and a one power generation device108that is operating outside of an MPPG mode. The power output114of the one power generation device108is below the power outputs114of the other power generation devices108. The system applies a large weight to the distance determinations of the power outputs114of the data samples112. As a result, the distance between the power output114of the one power generation device108and the power outputs114of other power generation devices108is large. That is, the training data set generator engine116applies a large weight to the distances between power outputs114in order to improve the identification, as outlier data samples118, of data samples112that are collected from power generation devices108operating in a non-MPPG mode.

The training data set generator engine116generates a training data set122that includes the non-outlier data samples120and excludes at least one of the outlier data samples118. In some embodiments, the training data set generator engine116further generates a training data set122that includes one or more batches of non-outlier data samples120. In some embodiments, the training data set generator engine116further generates a training data set122that includes one or more subsets of non-outlier data samples120for training the machine learning model128, one or more subsets of non-outlier data samples120for validating the structure of the machine learning model128, and/or one or more subsets of non-outlier data samples120for testing the machine learning model128after training. In some embodiments, the training data set122includes non-outlier data samples120of power generation devices operating in an MPPG mode, and excludes at least one of the outlier data samples118of power generation devices108operating in a non-MPPG mode.

The machine learning model128generates a predicted power output130of a power generation device108based on a set of features110of the power generation device108. The machine learning model128can be, for example, an artificial neural network including a series of layers of neurons. In various embodiments, the neurons of each layer are at least partly connected to, and receive input from, an input source and/or one or more neurons of a previous layer. Each neuron can multiply each input by a weight; process a sum of the weighted inputs using an activation function; and provide an output of the activation function as the output of the artificial neural network and/or as input to a next layer of the artificial neural network. In some embodiments, the machine learning model128includes one or more convolutional neural networks (CNNs) including a sequence of one or more convolutional layers. The first convolutional layer evaluates the features110of a data sample112of the training data set122using one or more convolutional filters to determine a first feature map. A second convolutional layer in the sequence receives the first feature map for each of the one or more filters as input and further evaluates the first feature map using one or more convolutional filters to generate a second feature map. A third convolutional layer in the sequence receives the second feature map as input and generates a third feature map, etc. The machine learning model128can evaluate the feature map produced by the last convolutional layer in the sequence (e.g., using one or more fully-connected layers) to generate an output.

Alternatively or additionally, in various embodiments, the machine learning model128can include memory structures, such as long short-term memory (LSTM) units or gated recurrent units (GRU); one or more encoder and/or decoder layers; or the like. Alternatively or additionally, the machine learning model128can include one or more other types of models, such as, without limitation, a Bayesian classifier, a Gaussian mixture model, a k-means clustering model, a decision tree or a set of decision trees such as a random forest, a restricted Boltzmann machine, or the like, or an ensemble of two or more machine learning models of the same or different types. In some embodiments, the power output prediction engine126includes two or more machine learning models128of a same or similar type (e.g., two or more convolutional neural networks) or of different types (e.g., a convolutional neural network and a Gaussian mixture model classifier) that the power output prediction engine126uses together as an ensemble.

The machine learning trainer124trains the machine learning model128using the training data set122to predict power outputs114of power generation devices108based on a set of features110. In various embodiments, the machine learning trainer124can use a variety of hyperparameters for choosing the neuron architecture of the machine learning model128and/or the training regimen. The hyperparameters can include, for example (without limitation), a machine learning model type, a machine learning model parameter such as a number of neurons or neuron layers, an activation function used by one or more neurons, and/or a loss function to evaluate the performance of the machine learning model128during training. The machine learning trainer124can select the hyperparameters through various techniques, such as a hyperparameter search process or a recipe.

In some embodiments, for at least some of the data samples112of the training data set122, the machine learning trainer118predicts a power output114of a data sample112based on other features110of the data sample112. If the power output114stored in the training data set122and the predicted power output130do not match, then the machine learning trainer124adjusts the parameters of the machine learning model128to reduce the difference. The machine learning trainer124can repeat this parameter adjustment process over the course of training until the predicted power outputs130are sufficiently close to or match the power outputs114stored in the training data set122. In various embodiments, during training, the machine learning trainer124monitors a performance metric, such as a loss function that indicates the correspondence between the power outputs114stored in the training data set122and the predicted power outputs130for at least some of the data samples112of the training data set122. The machine learning trainer124trains the machine learning model128through one or more epochs until the performance metric indicates that the correspondence of the power outputs114of the training data set122and the predicted power outputs130is within an acceptable range of accuracy (e.g., until the loss function is below a loss function threshold).

In some embodiments, the machine learning trainer124retrains the machine learning model128based on an update of the training data set122. In various embodiments, the machine learning trainer124retrains the machine learning model128periodically (e.g., once per week), in response to a change of the power generation device108(e.g., when a power generation device array is reconfigured), and/or in response to an update of the data set106(e.g., receiving new data samples112). For example, an update of the training data set122can include new data samples112about new power generation devices108, e.g., new power generation device types. An update of the training data set122can include new data samples112from the same power generation device108for which the machine learning model128is trained to predict power output130. An update of the training data set122can include supplemental data samples112indicating the power output114of power generation devices108based on new sets of features110, e.g., new or previously underrepresented weather conditions. Alternatively or additionally, in some embodiments, the machine learning trainer124retrains the machine learning model128based on additional machine learning model optimization and/or training techniques. For example, in some embodiments, the power output prediction engine126performs a hyperparameter search process during a retraining to determine whether updating at least one hyperparameter of the architecture and/or training of the machine learning model128improves the performance of the machine learning model128. If so, the machine learning trainer124performs the retraining using one or more updated hyperparameters. In some embodiments, the machine learning trainer124classifies new and/or existing data samples112of the data set106as outlier data samples118and/or non-outlier data samples120during the retraining. For example, an update of the training data set122can include corrected data samples112to replace previously incorrect data samples112, and/or can exclude some previously included data samples112that the training data set generator engine116has more recently identified as outlier data samples118. Based on the update of the training data set122, the machine learning trainer124can retrain or resume training of the machine learning model128, and/or can replace the machine learning model128with a newly trained replacement machine learning model128.

FIG.3is an illustration of predicting a power output of a power generation device by the machine learning model ofFIGS.1-2, according to one or more embodiments. The predicting can be, for example, an operation of the power output prediction engine126ofFIG.1.

As shown, one or more power modules202transmit data from a power generation device108to a data collector unit206. As shown, the power generation device108is a photovoltaic device and the collected data includes photovoltaic data. However, the concepts illustrated inFIG.3could be applied to other types of power generation devices108and features, such as wind power devices, hydroelectric power devices, geothermal power devices, or the like.

One or more weather data sources204transmit data about weather conditions to the data collector unit206. In some embodiments, the one or more weather data sources204transmit predictions of weather conditions for a prediction horizon. The data collector unit206generates a data sample112including a set of features110for the power generation device108, e.g., at least one of a solar irradiance feature, a cloud coverage feature, an ambient temperature feature, a humidity feature, a geographic location feature, a power generation device type feature, a data sample time feature, or a power output feature. In some embodiments, the data collector unit206stores each of the data samples112as a multidimensional vector.

A power output prediction engine126receives the data sample112and provides the data sample112as input to a machine learning model128. As discussed inFIG.2, the training of the machine learning model128is based on the training data set122that includes the non-outlier data samples120and excludes at least one of the outlier data samples118. The power output prediction engine126receives the output of the machine learning model128and generates a predicted power output130of the power generation device108. In some embodiments, the power output prediction engine126translates an output of the machine learning model128into the predicted power output130, e.g., by scaling the output of the machine learning model128and/or adding an offset to the output of the machine learning model128. In some embodiments, the training data set122includes non-outlier data samples120of power generation devices operating in an MPPG mode, and excludes at least one of the outlier data samples118of power generation devices108operating in a non-MPPG mode. The output of the machine learning model128represents the predicted power output130of the power generation device108-2if operating in an MPPG mode.

In some embodiments, the power output engine126initiates one or more actions based on the predicted power output130of the power generation device108. In some embodiments, the power output engine126logs the predicted power output130, e.g., including at least part of the data sample112, the output of the machine learning model128, an identifier of the power generation device108, and/or a timestamp of the data sample112. In some embodiments, the power output engine126operates one or both of a second power generation device108or a power load device, wherein the operating is based on the predicted power output of the first power generation device. For example, if the power output of the power generation device108is below a predicted power output130in an MPPG mode, the power output engine126can activate a second power generation device108to provide supplemental power and/or disable a power load to avoid exhausting the supplied power.

In some embodiments, the power output prediction engine126generates a predicted power output130of the power generation device108at a future point in time (e.g., a prediction of power output tomorrow based on a weather forecast received from the weather data source204). Further, the power output prediction engine126can transmit the predicted power output130to a solar generation forecast module302, which can use the predicted power output130in operations such as resource allocation and scheduling.

In some embodiments, the power output prediction engine126compares the predicted power output130of the power generation device108and a power output measurement of the power generation device108. For example, the power output prediction engine126can perform the comparison to determine whether the power generation device108is operating in an MPPG mode. If the predicted power output130of the power generation device108matches the power output measurement of the power generation device108, the power output prediction engine126can record an indication that the power generation device108is operating in an MPPG mode. If the predicted power output130of the power generation device108is above the power output measurement of the power generation device108, the power output prediction engine126can record an indication that the power generation device108is operating in a non-MPPG mode. Further, the power output prediction engine126can notify an alerting system304to generate an alert regarding the non-MPPG mode of the power generation device108, such as a request for diagnosis, maintenance, and/or replacement of power generation device108. if the predicted power output130of several power generation devices108do not match the power output measurements of the power generation device108, the power output prediction engine126can determine a possible occurrence of drift of the machine learning model128, and can request an update of the training data set122and/or a retraining of the machine learning model128.

FIG.4is a flow diagram of method steps for predicting a power output of a power generation device by the machine learning model ofFIGS.1-3, according to one or more embodiments. At least some of the method steps could be performed, for example, by the training data set generator engine116ofFIG.1orFIG.2, the machine learning trainer124ofFIG.1orFIG.2, and/or the power output prediction engine126ofFIG.1orFIG.3. Although the method steps are described with reference toFIGS.1-3, persons skilled in the art will understand that any system may be configured to implement the method steps, in any order, in other embodiments.

As shown, at step402, a training data set generator engine receives a set of data samples of features of at least one power generation device. In some embodiments, the data samples include at least one of a solar irradiance feature, a cloud coverage feature, an ambient temperature feature, a humidity feature, a geographic location feature, a power generation device type feature, a data sample time feature, or a power output feature.

At step404, a training data set generator engine determines, for at least some of the data samples, a distance between the features of the data sample and features of other data samples. In some embodiments, the training data set generator engine performs a K-nearest-neighbor determination between a data sample and K nearest other data samples within a feature space.

At step406, a training data set generator engine identifies at least one outlier data sample of the set, the identifying being based on the distances determined for the data samples. In some embodiments, the training data set generator engine determines the outlier data samples based on a ranking of the distances of the data samples, such as a determination that the top 10% of the data samples with the largest distances are outlier data samples. In some embodiments, the training data set generator engine determines the outlier data samples based on a comparison of the distances with a distance threshold.

At step408, a training data set generator engine generates a training data set, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample. In some embodiments, the training data set generator engine balances selects data samples that provide a balanced training data set.

At step410, a training data set generator engine trains a machine learning model based on the training data set. In some embodiments, the machine learning trainer trains the machine learning model through a number of epochs until a loss function, determined as a difference between the power outputs of the data samples and the predicted power outputs output by the machine learning model, is below a loss function threshold.

At step412, a power output prediction engine predicts a power output of a power generation device using the trained machine learning model. The power output prediction engine predicts the power output based on the features of the power generation device. In some embodiments, a power output prediction engine initiates further actions based on the predicted power output, such as updating a solar generation forecast, generating one or more alerts, or initiating a retraining of the machine learning model.

FIG.5is another flow diagram of method steps for predicting a power output of a power generation device by the machine learning model ofFIGS.1-3, according to one or more embodiments. At least some of the method steps could be performed, for example, by the training data set generator engine116ofFIG.1orFIG.2, the machine learning trainer124ofFIG.1orFIG.2, and/or the power output prediction engine126ofFIG.1orFIG.3. Although the method steps are described with reference toFIGS.1-3, persons skilled in the art will understand that any system may be configured to implement the method steps, in any order, in other embodiments.

As shown, at step502, a training data set generator engine receives a set of data samples of features of a power generation device. In some embodiments, the data samples include at least one of a solar irradiance feature, a cloud coverage feature, an ambient temperature feature, a humidity feature, a geographic location feature, a power generation device type feature, a data sample time feature, or a power output feature.

As shown, at step504, a power output prediction engine processes the set of data samples using a machine learning model to predict a power output of the power generation device, wherein the machine learning model has been trained on a set of data samples excluding at least one outlier data sample, and wherein the at least one outlier data sample has been determined based on a distance between features of the outlier data sample and features of other data samples of the set of data samples. In some embodiments, the distances are determined according to a K-nearest-neighbor determination between the features of one data sample and the features of the other data samples of the data sample set.

In sum, training data sets for training machine learning models are disclosed in which outlier data samples are identified and excluded. An embodiment generates the training data set by receiving a set of data samples of features of at least one power generation device, such as solar irradiance, ambient temperature, or the like. The embodiment determines distances between the features of one data sample and those of the other samples. The embodiment identifies outlier data samples based on the distances determined for the data samples. The embodiment generates a training data set that includes the set of data samples excluding the identified outlier data samples. The resulting training data set more accurately reflects the maximum power output of a power generation device based on the features. Machine learning models trained using the resulting training data set can generate predictions with improved accuracy due to the exclusion of the outlier data samples from the training data set.

At least one technical advantage of the disclosed techniques is the improved accuracy of maximum possible power output predictions by machine learning models trained on the training data set. For example, based on a predicted power output and a measured power output of a power generation device, an alerting system can determine whether the power generation device is operating in a maximum potential power generation (MPPG) mode. Due to the improved accuracy, power output predictions can be relied upon with greater confidence for resource planning and scheduling. Further, machine learning models can be more rapidly and successfully trained using the training data set due to improved consistency of the included data samples. Thus, training machine learning models based on the training data set can be accomplished greater efficiently and reduced time and energy expenditure. Also, due to the improved speed and likelihood of success of training, the machine learning models can be retrained and deployed on an updated training data set more quickly, thus improving the adaptability of the machine learning models to new data. Also, the training data set can include a larger variety of data points that are collected from a wider variety of power generation devices and/or under a wider variety of circumstances. As result, machine learning models that are trained on the training data set have a wider range of robustness in terms of the combinations of features for which predictions can be accurately generated. Finally, excluding outliers from the training data set can avoid a problem in which a machine learning model trained with non-MPPG data points could underestimate the achievable power output of other power generation devices, resulting in the collection of additional non-MPPG data points that diminish future predictions. Identifying and excluding the non-MPPG data points from this vicious cycle can therefore improve the cycle of accurate predictions and the operation of power generation devices in an MPPG mode based on the predictions. These technical advantages provide one or more technological improvements over prior art approaches.

1. In some embodiments, a computer-implemented method comprises receiving a set of data samples of features of at least one power generation device; determining, for at least some of the data samples, a distance between the features of the data sample and features of other data samples; identifying at least one outlier data sample of the data sample set based on the distances determined for at least some of the set of data samples; and generating a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

2. The computer-implemented method of clause 1, wherein the features of the data samples include at least one of a solar irradiance feature, a cloud coverage feature, an ambient temperature feature, a humidity feature, a geographic location feature, a power generation device type feature, a data sample time feature, and a power output feature.

3. The computer-implemented method of clauses 1 or 2, further comprising normalizing the features of at least some of the data samples.

4. The computer-implemented method of any of clauses 1-3, wherein the identifying is based on a K-nearest-neighbor determination between the features of a first data sample and the features of other data samples.

5. The computer-implemented method of any of clauses 1-4, wherein the identifying is based at least in part on applying a rule to each of at least one of the data samples of the set.

6. The computer-implemented method of any of clauses 1-5, wherein identifying the at least one outlier data sample includes ranking the data samples by the determined distances and identifying, as the outlier data samples, data samples within a top portion of the ranking.

7. The computer-implemented method of any of clauses 1-6, wherein the distance determined for each data sample is based on a Minkowski distance between the features of the data sample and the features of other data samples.

8. The computer-implemented method of any of clauses 1-7, wherein the distance determined for each data sample is based on an arithmetic median of the distance between the features of the data sample and the features of other data samples.

9. The computer-implemented method of any of clauses 1-8, wherein identifying the at least one outlier data sample includes identifying the data samples having a determined distance that is above a threshold distance.

10. The computer-implemented method of any of clauses 1-9, wherein identifying the at least one outlier data sample is based on a comparison of a power output feature of the data sample and a power output measurement during a maximum potential power generation mode of a power generation device associated with the data sample.

11. The computer-implemented method of any of clauses 1-10, further comprising selecting, from the features, a subset of features for training the machine learning model.

12. The computer-implemented method of any of clauses 1-11, further comprising training a machine learning model based on the training data set.

13. The computer-implemented method of clause 12, further comprising retraining the machine learning model based on an update of the training data set.

14. The computer-implemented method of clauses 12 or 13, further comprising updating at least one hyperparameter associated with the machine learning model during a retraining of the machine learning model.

15. The computer-implemented method of any of clauses 12-14, further comprising predicting a power output of a first power generation device, the predicting being based on an output of the machine learning model in response to features of the first power generation device.

16. The computer-implemented method of clause 15, further comprising initiating an action based on a difference between the power output predicted for the first power generation device and a power output measurement of the first power generation device.

17. The computer-implemented method of clauses 15 or 16, wherein the power output is predicted for the first power generation device during a maximum potential power generation mode of the first power generation device based on the features of the first power generation device.

18. The computer-implemented method of any of clauses 15-17, further comprising operating one or both of a second power generation device or a power load device, wherein the operating is based on a predicted power output of the first power generation device.

19. In some embodiments, a system comprises a memory that stores instructions, and a processor that is coupled to the memory and, when executing the instructions, is configured to receive a set of data samples of features of at least one power generation device, determine, for each data sample, a distance between the features of the data sample and features of other data samples, identify at least one outlier data sample of the data sample set, the identifying being based on the distance determined for each data sample, and generate a training data set for a machine learning model, wherein the training data set includes the set of data samples excluding at least one of the at least one outlier data sample.

20. The system of clause 19, wherein the identifying is based on a K-nearest-neighbor determination between the features of each data sample and the features of the other data samples.

21. The system of clauses 19 or 20, wherein the instructions are further configured to train a machine learning model based on the training data set.

22. The system of any of clauses 19-21, wherein the instructions are further configured to predict a power output of a first power generation device, the predicting being based on an output of the machine learning model in response to features of the first power generation device.

23. In some embodiments, one or more non-transitory computer-readable media store instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of receiving a set of data samples of features of at least one power generation device; determining, for each data sample, a distance between the features of the data sample and features of other data samples; identifying at least one outlier data sample of the data sample set, the identifying being based on the distance determined for each data sample; and training a machine learning model to predict power output of power generation devices, the training being based on the set of data samples excluding at least one of the at least one outlier data sample.

24. The one or more non-transitory computer-readable media of clause 23, wherein the identifying is based on a K-nearest-neighbor determination between the features of each data sample and the features of the other data samples.

25. The one or more non-transitory computer-readable media of clauses 23 or 24, wherein the instructions further cause the one or more processors to train a machine learning model based on the training data set.

26. The one or more non-transitory computer-readable media of any of clauses 23-25, wherein the instructions further cause the one or more processors to predict a power output of a first power generation device, the predicting being based on an output of the machine learning model in response to features of the first power generation device.

27. In some embodiments, a computer-implemented method comprises receiving a set of data samples of features of a power generation device; and processing the set of data samples using a machine learning model to predict a power output of the power generation device, wherein the machine learning model has been trained on a set of data samples excluding at least one outlier data sample, and wherein the at least one outlier data sample has been determined based on a distance between features of the outlier data sample and features of other data samples of the set of data samples.

28. The computer-implemented method of clause 27, further comprising determining, based on the predicted power output and a measured power output of the power generation device, whether the power generation device is operating in a maximum potential power generation mode.