diff --git a/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_13440.png b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_13440.png new file mode 100644 index 0000000..e9d9637 Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_13440.png differ diff --git a/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png new file mode 100644 index 0000000..e6f10c4 Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png differ diff --git a/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png new file mode 100644 index 0000000..f00bb16 Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png differ diff --git a/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png new file mode 100644 index 0000000..4e6c1c8 Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png differ diff --git a/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png new file mode 100644 index 0000000..a0a232e Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png differ diff --git a/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg b/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg new file mode 100644 index 0000000..7a15dfd Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg differ diff --git a/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg b/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg new file mode 100644 index 0000000..e93adfd Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg differ diff --git a/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg b/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg new file mode 100644 index 0000000..ed1971f Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg differ diff --git a/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg b/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg new file mode 100644 index 0000000..ee4f6cd Binary files /dev/null and b/Reports/Thesis/images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg differ diff --git a/Reports/Thesis/sections/background.aux b/Reports/Thesis/sections/background.aux index 252bfd6..116863e 100644 --- a/Reports/Thesis/sections/background.aux +++ b/Reports/Thesis/sections/background.aux @@ -20,17 +20,17 @@ \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces RNN model input and output visualization\relax }}{11}{figure.caption.5}\protected@file@percent } \newlabel{fig:rnn_model_visualization}{{3}{11}{RNN model input and output visualization\relax }{figure.caption.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Diffusion models}{11}{subsection.3.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Overview}{11}{subsubsection.3.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Overview}{12}{subsubsection.3.4.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Applications}{12}{subsubsection.3.4.2}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{12}{figure.caption.6}\protected@file@percent } \newlabel{fig:diffusion_example}{{4}{12}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.6}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}\protected@file@percent } \newlabel{fig:diffusion_process}{{\caption@xref {fig:diffusion_process}{ on input line 281}}{14}{Generation process}{figure.caption.7}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Visualization of the CRPS metric\relax }}{15}{figure.caption.8}\protected@file@percent } -\newlabel{fig:crps_visualization}{{5}{15}{Visualization of the CRPS metric\relax }{figure.caption.8}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Visualization of the CRPS metric\relax }}{16}{figure.caption.8}\protected@file@percent } +\newlabel{fig:crps_visualization}{{5}{16}{Visualization of the CRPS metric\relax }{figure.caption.8}{}} \@setckpt{sections/background}{ -\setcounter{page}{16} +\setcounter{page}{17} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} diff --git a/Reports/Thesis/sections/background.tex b/Reports/Thesis/sections/background.tex index 3e7bfec..5f2a628 100644 --- a/Reports/Thesis/sections/background.tex +++ b/Reports/Thesis/sections/background.tex @@ -199,12 +199,12 @@ Another more complex model that can be used is a Recurrent Neural Network (RNN). The RNN model can be used to model the NRV data. The input features are structured in a way that the model can learn the sequential patterns in the data. The model can be trained to output the quantiles for the NRV based on the input features using the pinball loss function. -Multiple types of RNN models exist. The two most common types of RNNs are the Long Short-Term Memory (LSTM) and the Gated Recurrent Unit (GRU). The GRU is a simpler version of the LSTM. The GRU has fewer parameters which results in faster training times. The GRU still can capture long-term dependencies in the data and can achieve similar performance to the LSTM. +Multiple types of RNN models exist. The two most common types of RNNs are the Long Short-Term Memory (LSTM) and the Gated Recurrent Unit (GRU). The GRU is a simpler version of the LSTM. The GRU has fewer parameters which results in faster training times. The GRU still can capture long-term dependencies in the data and can achieve similar performance to the LSTM. The GRU model has two gates, the reset gate and the update gate. The reset gate determines how much of the past information to forget, and the update gate determines how much of the new information to keep. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{images/quantile_regression/rnn/RNN_diagram.png} - \caption{RNN model input and output visualization} + \caption{RNN model input and output visualization} \label{fig:rnn_model_visualization} \end{figure} diff --git a/Reports/Thesis/sections/literature_study.aux b/Reports/Thesis/sections/literature_study.aux index 1d1a419..2198054 100644 --- a/Reports/Thesis/sections/literature_study.aux +++ b/Reports/Thesis/sections/literature_study.aux @@ -1,10 +1,10 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {section}{\numberline {5}Literature Study}{18}{section.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Electricity Price Forecasting}{18}{subsection.5.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Policies for Battery Optimization}{19}{subsection.5.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Literature Study}{19}{section.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Electricity Price Forecasting}{19}{subsection.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Policies for Battery Optimization}{20}{subsection.5.2}\protected@file@percent } \@setckpt{sections/literature_study}{ -\setcounter{page}{20} +\setcounter{page}{21} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} diff --git a/Reports/Thesis/sections/policies.aux b/Reports/Thesis/sections/policies.aux index dfdbd10..827389d 100644 --- a/Reports/Thesis/sections/policies.aux +++ b/Reports/Thesis/sections/policies.aux @@ -1,11 +1,11 @@ \relax \providecommand\hyper@newdestlabel[2]{} -\@writefile{toc}{\contentsline {section}{\numberline {4}Policies}{16}{section.4}\protected@file@percent } -\newlabel{sec:policies}{{4}{16}{Policies}{section.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Baselines}{16}{subsection.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{17}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Policies}{17}{section.4}\protected@file@percent } +\newlabel{sec:policies}{{4}{17}{Policies}{section.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Baselines}{17}{subsection.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{18}{subsection.4.2}\protected@file@percent } \@setckpt{sections/policies}{ -\setcounter{page}{18} +\setcounter{page}{19} \setcounter{equation}{7} \setcounter{enumi}{0} \setcounter{enumii}{0} diff --git a/Reports/Thesis/sections/results.tex b/Reports/Thesis/sections/results.tex index 5ec3eb4..f9cad94 100644 --- a/Reports/Thesis/sections/results.tex +++ b/Reports/Thesis/sections/results.tex @@ -40,124 +40,15 @@ TODO: ask Jonas: add urls to the correct data? via citation? A lot of data is available but only the most relevant data needs to be used. Experiments will be done to identify which data and features improve the NRV modeling. The data will be split into a training and test set. The training dataset starts depending on which data features are used but ends on 31-12-2022. The test set starts on 01-01-2023 and ends on (TODO: check the end date). This makes sure enough data is available to train the models and the test set is large enough to evaluate the models. The year 2023 is chosen as the test set because it is the most recent data available when the thesis experiments were conducted. Using data from 2022 in the test set also does not make a lot of sense because the trained models would be used to predict the future. Data from 2022 is not relevant anymore to evaluate the models. +\subsection{Quantile Regression} \input{sections/results/linear} \input{sections/results/non-linear} - -% TODO: REWORK FROM THIS POINT ON - -In this context, a simple feedforward neural network is trained to predict the quantiles for the NRV. The quantiles are then used to reconstruct the cumulative distribution function (CDF) for the NRV of a quarter. Predictions for the NRV can then be sampled from this reconstructed CDF. The neural network is trained using the pinball loss function explained in section \ref{subsubsec:quantile_regression_training}. -\\\\ -The results of the non-linear model are shown in Table \ref{tab:autoregressive_non_linear_model_results}. +\input{sections/results/gru} - -% TODO: Talk more about the results in the table. -The results of the non-linear quantile regression model, as shown in Table \ref{tab:autoregressive_non_linear_model_results}, show valuable insights into the performance of the models with different hyperparameters and input feature sets. Increasing the number of layers and hidden size in the model does not necessarily lead to better performance on the test set. The model doesn't generalize well anymore and tends to overfit the training data. The input feature set plays a huge role in the performance of the model. The model with the input features NRV, Load, PV, Wind, Net Position, and the quarter embedding with 5 dimensions performs the best. - -\begin{figure}[H] - \centering - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png} - \end{subfigure} - \hfill - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png} - \end{subfigure} - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png} - \end{subfigure} - \hfill - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png} - \end{subfigure} - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png} - \caption{Autoregressive linear model} - \end{subfigure} - \hfill - \begin{subfigure}[b]{0.49\textwidth} - \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png} - \caption{Autoregressive non-linear model} - \end{subfigure} - - \caption{Comparison for examples from test set between the autoregressive linear and non-linear models. The plots show the confidence intervals calculated from 1000 generated full-day NRV samples. The samples were generated using input features NRV, Load, Wind, PV, Net Position and the quarter embedding. The non-linear model used 8 layers with a hidden size of 256 and a dropout rate of 0.2.} - \label{fig:linear_non_linear_sample_comparison} -\end{figure} - -TODO: better comparison -Figure \ref{fig:linear_non_linear_sample_comparison} shows a comparison between the samples of autoregressive linear and non-linear models for certain examples of the test set. The non-linear model has a small increase in variance in the samples compared to the linear model. This results in some wider confidence intervals. This can be seen in example 2 of the figure. - -TODO: non autoregressive non-linear model for quantile regression - -\subsubsection{GRU Model} -The GRU model architecture is shown in Table \ref{tab:gru_model_architecture}. The model starts with an embedding layer that converts the quarter of the day into an embedding. This layer concatenates the other input features with the quarter embedding. The input of the TimeEmbedding is of shape (Batch Size, Time Steps, Input Features Size). The output of this layer is then passed to the GRU layer. The GRU layer outputs the hidden state for every time step. This results in a tensor of shape (Batch Size, Time Steps, Hidden Size). Only the last hidden state is relevant for the prediction of the NRV quantiles for the next quarter. The last hidden state should contain all the necessary information from the previous quarters to make the prediction. The last hidden state is then passed through a linear layer to output the quantiles for the NRV prediction. - -TODO: Zielige visualisatie van model nu -\begin{table}[H] -\centering -\begin{tabularx}{\textwidth}{Xr} % Set the table width to the text width -\toprule -\textbf{Layer (Type)} & \textbf{Output Shape} \\ \midrule -\midrule -Time Embedding & [B, Time Steps, Input + Time Embedding Size] \\ -\midrule -GRU & [B, Time Steps, Hidden Size] \\ -\multicolumn{2}{c}{\textit{Last state of GRU passed [B, Hidden Size]}} \\ -Linear & [B, Number of quantiles] \\ -\bottomrule -\end{tabularx} -\caption{GRU Model Architecture} -\label{tab:gru_model_architecture} -\end{table} - -Multiple experiments are conducted to find which hyperparameters and input features work best for the GRU model. The results of the GRU model are shown in Table \ref{tab:autoregressive_gru_model_results}. - -\begin{table}[H] -\centering -\begin{adjustbox}{width=\textwidth,center} -\begin{tabular}{@{}cccccccccc@{}} -\toprule -Features & Layers & Hidden Size & \multicolumn{2}{c}{MSE} & \multicolumn{2}{c}{MAE} & \multicolumn{2}{c}{CRPS} \\ -\cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9} -& & & Train & Test & Train & Test & Train & Test \\ -\midrule -NRV & & & & & & & & \\ -& 2 & 256 & 34942.89 & 39838.35 & 142.43 & 150.81 & 81.34 & 85.04 \\ -& 4 & 256 & 34705.61 & 39506.55 & 141.74 & 149.81 & 81.89 & 85.46 \\ -& 8 & 256 & 32885.71 & 37747.11 & 138.16 & 146.67 & 79.99 & 83.67 \\ -& 2 & 512 & 35362.66 & 39955.79 & 143.19 & 150.77 & 84.37 & 87.88 \\ -& 4 & 512 & 38253.89 & 43301.13 & 148.33 & 156.73 & 85.98 & 89.78 \\ -& 8 & 512 & 33131.93 & 37681.71 & 138.93 & 146.62 & 79.64 & 83.08 \\ -\midrule -NRV + Load & & & & & & & & & \\ -& 2 & 256 & 33202.80 & 38427.91 & 138.02 & 147.27 & 79.62 & 84.17 \\ -& 4 & 256 & 33600.73 & 38984.44 & 138.62 & 147.91 & 81.03 & 85.91 \\ -& 8 & 256 & 32828.61 & 38343.98 & 136.82 & 146.44 & 79.42 & 84.22 \\ -& 2 & 512 & 35979.57 & 41496.77 & 144.16 & 153.53 & 83.50 & 88.26 \\ -& 4 & 512 & 32334.73 & 38000.40 & 135.92 & 146.10 & 78.82 & 83.99 \\ -& 8 & 512 & 35177.39 & 41104.28 & 141.79 & 152.13 & 83.79 & 89.13 \\ -\midrule -NRV + Load + PV\\ + Wind & & & & & & & & & \\ -& 4 & 256 & 31594.55 & 39872.46 & 134.11 & 149.34 & 77.52 & 85.91 \\ -& 8 & 256 & 31481.22 & 39704.37 & 133.45 & 148.59 & 77.26 & 85.62 \\ -& 4 & 512 & 31368.31 & 39024.27 & 134.02 & 147.91 & 76.58 & 84.18 \\ -& 8 & 512 & 34566.66 & 42397.86 & 140.13 & 154.00 & 82.09 & 89.87 \\ -\midrule -NRV + Load + PV\\ + Wind + Net Position \\+ QE (5 dim) & & & & & & & & & \\ -& 4 & 256 & 30130.37 & 39906.53 & 130.92 & 149.78 & 75.02 & 84.88 \\ -& 8 & 256 & 28560.67 & 37675.15 & 127.77 & 145.39 & 73.77 & 83.37 \\ -& 4 & 512 & & & & & & & \\ -& 8 & 512 & 27421.85 & 35238.98 & 125.32 & 141.02 & 72.73 & 80.92 \\ -\bottomrule -\end{tabular} -\end{adjustbox} -\caption{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .} -\label{tab:autoregressive_gru_model_results} -\end{table} - TODO: Talk about the results + show plots of the samples with GRU model. Talk about the over/underestimation of the quantiles for the models. Plots have been made for this. TODO: non autoregressive stuff? diff --git a/Reports/Thesis/sections/results/gru.tex b/Reports/Thesis/sections/results/gru.tex new file mode 100644 index 0000000..e10fbe1 --- /dev/null +++ b/Reports/Thesis/sections/results/gru.tex @@ -0,0 +1,67 @@ +\subsubsection{GRU Model} +Another popular architecture to model sequential data is a recurrent neural network. There exist two main types of recurrent neural networks, the Long Short-Term Memory (LSTM) and the Gated Recurrent Unit (GRU). The GRU is a simplified version of the LSTM, which has fewer parameters and is computationally less expensive. The GRU model can be trained for quantile regression in the same way as the linear and non-linear models using the pinball loss. There is, however, a difference in how the input data is structured and provided to the model. For linear and non-linear models, the data is provided in the shape of $(batch\_size, num\_features)$. The recurrent neural network, on the other hand, expects the input data to be structured as $(batch\_size, time\_steps, num\_features\_per\_timestep)$. This is also explained in the background section about the recurrent neural network. + +The GRU model architecture to predict the NRV quantiles is shown in Table \ref{tab:gru_model_architecture}. The model starts with an embedding layer that converts the quarter of the day into an embedding. This layer concatenates the other input features with the quarter embedding. The input of the TimeEmbedding is of shape (Batch Size, Time Steps, Input Features Size). The output of this layer is then passed to the GRU layer. The GRU layer outputs the hidden state for every time step. This results in a tensor of shape (Batch Size, Time Steps, Hidden Size). Only the last hidden state is relevant for the prediction of the NRV quantiles for the next quarter. The last hidden state should contain all the necessary information from the previous quarters to make the prediction. The last hidden state is then passed through a linear layer to output the quantiles for the NRV prediction. The input and output of the model depend if the model is trained using an autoregressive or non-autoregressive way. The non-autoregressive variant of the GRU model has two days worth of time steps. This results in $92*2$ time steps. The model then needs to output $(96 * \text{number\_of\_quantiles})$ NRV quantile values. + +TODO: Zielige visualisatie van model nu +\begin{table}[H] +\centering +\begin{tabularx}{\textwidth}{Xr} % Set the table width to the text width +\toprule +\textbf{Layer (Type)} & \textbf{Output Shape} \\ \midrule +\midrule +Time Embedding & [B, Time Steps, Input + Time Embedding Size] \\ +\midrule +GRU & [B, Time Steps, Hidden Size] \\ +\multicolumn{2}{c}{\textit{Last state of GRU passed [B, Hidden Size]}} \\ +Linear & [B, Number of quantiles] \\ +\bottomrule +\end{tabularx} +\caption{GRU Model Architecture} +\label{tab:gru_model_architecture} +\end{table} + +Multiple experiments are conducted to find which hyperparameters and input features work best for the GRU model. The results of the GRU model are shown in Table \ref{tab:autoregressive_gru_model_results}. + +\begin{table}[H] +\centering +\begin{adjustbox}{width=\textwidth,center} +\begin{tabular}{@{}cccccccccc@{}} +\toprule +Features & Layers & Hidden Size & \multicolumn{2}{c}{MSE} & \multicolumn{2}{c}{MAE} & \multicolumn{2}{c}{CRPS} \\ +\cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9} +& & & Train & Test & Train & Test & Train & Test \\ +\midrule +NRV & & & & & & & & \\ +& 2 & 256 & 34942.89 & 39838.35 & 142.43 & 150.81 & 81.34 & 85.04 \\ +& 4 & 256 & 34705.61 & 39506.55 & 141.74 & 149.81 & 81.89 & 85.46 \\ +& 8 & 256 & 32885.71 & 37747.11 & 138.16 & 146.67 & 79.99 & 83.67 \\ +& 2 & 512 & 35362.66 & 39955.79 & 143.19 & 150.77 & 84.37 & 87.88 \\ +& 4 & 512 & 38253.89 & 43301.13 & 148.33 & 156.73 & 85.98 & 89.78 \\ +& 8 & 512 & 33131.93 & 37681.71 & 138.93 & 146.62 & 79.64 & 83.08 \\ +\midrule +NRV + Load & & & & & & & & & \\ +& 2 & 256 & 33202.80 & 38427.91 & 138.02 & 147.27 & 79.62 & 84.17 \\ +& 4 & 256 & 33600.73 & 38984.44 & 138.62 & 147.91 & 81.03 & 85.91 \\ +& 8 & 256 & 32828.61 & 38343.98 & 136.82 & 146.44 & 79.42 & 84.22 \\ +& 2 & 512 & 35979.57 & 41496.77 & 144.16 & 153.53 & 83.50 & 88.26 \\ +& 4 & 512 & 32334.73 & 38000.40 & 135.92 & 146.10 & 78.82 & 83.99 \\ +& 8 & 512 & 35177.39 & 41104.28 & 141.79 & 152.13 & 83.79 & 89.13 \\ +\midrule +NRV + Load + PV\\ + Wind & & & & & & & & & \\ +& 4 & 256 & 31594.55 & 39872.46 & 134.11 & 149.34 & 77.52 & 85.91 \\ +& 8 & 256 & 31481.22 & 39704.37 & 133.45 & 148.59 & 77.26 & 85.62 \\ +& 4 & 512 & 31368.31 & 39024.27 & 134.02 & 147.91 & 76.58 & 84.18 \\ +& 8 & 512 & 34566.66 & 42397.86 & 140.13 & 154.00 & 82.09 & 89.87 \\ +\midrule +NRV + Load + PV\\ + Wind + Net Position \\+ QE (5 dim) & & & & & & & & & \\ +& 4 & 256 & 30130.37 & 39906.53 & 130.92 & 149.78 & 75.02 & 84.88 \\ +& 8 & 256 & 28560.67 & 37675.15 & 127.77 & 145.39 & 73.77 & 83.37 \\ +& 4 & 512 & & & & & & & \\ +& 8 & 512 & 27421.85 & 35238.98 & 125.32 & 141.02 & 72.73 & 80.92 \\ +\bottomrule +\end{tabular} +\end{adjustbox} +\caption{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .} +\label{tab:autoregressive_gru_model_results} +\end{table} diff --git a/Reports/Thesis/sections/results/linear.tex b/Reports/Thesis/sections/results/linear.tex index 02dcd75..c8d4bc1 100644 --- a/Reports/Thesis/sections/results/linear.tex +++ b/Reports/Thesis/sections/results/linear.tex @@ -1,4 +1,4 @@ -\subsection{Linear Model} +\subsubsection{Linear Model} % TODO: explainedi nsection reference ? The simplest model to be trained for the NRV modeling is the linear model. The linear model is trained using the pinball loss function explained in the section above. The outputs of the model are values for the chosen quantiles. The linear model can be trained in an autoregressive and non-autoregressive way. Both methods will be compared to each other. The linear model is trained using the Adam optimizer with a learning rate of 1e-4. Early stopping is used with a patience of 5 epochs. The linear model is evaluated using the mean squared error (MSE), mean absolute error (MAE), and continuous ranked probability score (CRPS). The influence of the input features is also evaluated by training the models with different input feature sets. diff --git a/Reports/Thesis/sections/results/non-linear.tex b/Reports/Thesis/sections/results/non-linear.tex index d67420c..9d7ba1e 100644 --- a/Reports/Thesis/sections/results/non-linear.tex +++ b/Reports/Thesis/sections/results/non-linear.tex @@ -1,4 +1,4 @@ -\subsection{Non-Linear Model} +\subsubsection{Non-Linear Model} Adding nonlinearity to the model can be done by adding some non-linear activations between linear layers. This improves the model's ability to learn more complex patterns in the data. The model is trained the same way as the linear model for quantile regression using the pinball loss. Because a non-linear model is more complex, it is more prone to overfitting the training data. Because of this, dropout layers are added to the model to prevent overfitting. The architecture of the non-linear model is illustrated in Table \ref{tab:non_linear_model_architecture}. The autoregressive model begins with an input layer that converts the quarter of the day into an embedding. This layer concatenates the other input features with the quarter embedding. These combined features are then processed through a sequence of layers: @@ -42,7 +42,7 @@ While this non-linear model is still quite simple, it offers the flexibility in \toprule Features & Layers & Hidden Size & \multicolumn{2}{c}{MSE} & \multicolumn{2}{c}{MAE} & \multicolumn{2}{c}{CRPS} \\ \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9} - & & & Train & Test & Train & Test & Train & Test \\ + & & & AR & NAR & AR & NAR & AR & NAR \\ \midrule NRV & & & & & & & & \\ & 2 & 256 & 38117.43 & 41574.38 & 147.55 & 153.83 & 86.42 & 75.61 \\ @@ -64,6 +64,77 @@ While this non-linear model is still quite simple, it offers the flexibility in \bottomrule \end{tabular} \end{adjustbox} - \caption{Autoregressive non-linear quantile regression model results. All the models used a dropout of 0.2 .} + \caption{Non-linear quantile regression model results. All the models used a dropout of 0.2 .} \label{tab:non_linear_model_results} \end{table} + +The same behavior as the linear model is observed when looking at the metric differences between the autoregressive and non-autoregressive models. The autoregressive model performs better in terms of MSE and MAE, while the non-autoregressive model performs better in terms of CRPS. The results also give insight into the importance of the input features and hyperparameters. The addition of more input features improves the performance of the autoregressive model. The non-autoregressive model, on the other hand, does not benefit from this. The metrics are worse when more input features are added. This was also seen in the linear model. A reason for this behavior could be that the non-autoregressive model is not able to learn the complex patterns in the large set of input features. The non-autoregressive is provided with all the values for each quarter for which the quantiles need to be predicted. This increases the input size with 96 values each time a new forecast feature is added. Capturing patterns in this large input space can be a challenging task. + +% TODO: talk about hyperparameters? + +\begin{figure}[H] + \centering + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png} + \end{subfigure} + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png} + \end{subfigure} + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png} + \end{subfigure} + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png} + \caption{Autoregressive linear model} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png} + \caption{Non-autoregressive linear model} + \end{subfigure} + + \caption{Comparison of the autoregressive and non-autoregressive non-linear model examples.} + \label{fig:non_linear_model_examples} +\end{figure} + +The examples from the test set for the non-linear model are shown in Figure \ref{fig:non_linear_model_examples}. A big difference can be observed between the examples of the autoregressive and non-autoregressive models. The autoregressive model examples follow the actual NRV trend more closely than the non-autoregressive model. The mean of the samples generated by the non-autoregressive model is around zero for every quarter of the day. No clear trend can be observed in the samples. This is a clear indication that the non-autoregressive model is not able to learn the patterns in the data despite having a lower CRPS. + +\begin{figure}[ht] + \centering + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg} + \caption{AR - Train} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg} + \caption{AR - Test} + \end{subfigure} + + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg} + \caption{NAR - Train} + \end{subfigure} + \hfill + \begin{subfigure}[b]{0.49\textwidth} + \includegraphics[width=\textwidth]{images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg} + \caption{NAR - Test} + \end{subfigure} + \caption{Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).} + \label{fig:non-linear_model_quantile_over_underestimation} +\end{figure} + +% TODO: correct use of overestimation +The plots in Figure \ref{fig:non-linear_model_quantile_over_underestimation} show the over/underestimation of the quantiles outputted by the non-linear models. Looking at the plots for the autoregressive models, the observation can be made that the fraction of the real NRV values under the quantiles is too big most of the time in comparison with the ideal fraction. This means the model is estimating the quantiles too high which results in a bigger fraction of NRV values below this value. The model overestimates the quantiles. The non-autoregressive model also suffers from this problem for the training set. For the test set, the lower quantiles are estimated too high and the higher quantiles are estimated too low. The quantiles in the middle are estimated quite accurately. diff --git a/Reports/Thesis/verslag 2.synctex.gz b/Reports/Thesis/verslag 2.synctex.gz deleted file mode 100644 index 4e6f7bd..0000000 Binary files a/Reports/Thesis/verslag 2.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag 3.synctex.gz b/Reports/Thesis/verslag 3.synctex.gz deleted file mode 100644 index 6b27d17..0000000 Binary files a/Reports/Thesis/verslag 3.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag 4.synctex.gz b/Reports/Thesis/verslag 4.synctex.gz deleted file mode 100644 index ab71316..0000000 Binary files a/Reports/Thesis/verslag 4.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag 5.synctex.gz b/Reports/Thesis/verslag 5.synctex.gz deleted file mode 100644 index 8ce7981..0000000 Binary files a/Reports/Thesis/verslag 5.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag 6.synctex.gz b/Reports/Thesis/verslag 6.synctex.gz deleted file mode 100644 index 0c9b6cf..0000000 Binary files a/Reports/Thesis/verslag 6.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag 7.synctex.gz b/Reports/Thesis/verslag 7.synctex.gz deleted file mode 100644 index 23acf79..0000000 Binary files a/Reports/Thesis/verslag 7.synctex.gz and /dev/null differ diff --git a/Reports/Thesis/verslag.aux b/Reports/Thesis/verslag.aux index 5fac949..658605b 100644 --- a/Reports/Thesis/verslag.aux +++ b/Reports/Thesis/verslag.aux @@ -37,53 +37,56 @@ \abx@aux@refcontext{nyt/apasortcite//global/global} \abx@aux@cite{0}{rasul_autoregressive_2021} \abx@aux@segm{0}{0}{rasul_autoregressive_2021} -\abx@aux@page{1}{18} -\abx@aux@page{2}{18} -\abx@aux@page{3}{18} -\abx@aux@page{4}{18} +\abx@aux@page{1}{19} +\abx@aux@page{2}{19} +\abx@aux@page{3}{19} +\abx@aux@page{4}{19} \abx@aux@refcontext{nyt/apasortcite//global/global} \abx@aux@cite{0}{dumas_deep_2022} \abx@aux@segm{0}{0}{dumas_deep_2022} -\abx@aux@page{5}{19} -\@writefile{toc}{\contentsline {section}{\numberline {6}Results \& Discussion}{20}{section.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Data}{20}{subsection.6.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Linear Model}{21}{subsection.6.2}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Linear model results\relax }}{22}{table.caption.9}\protected@file@percent } -\newlabel{tab:linear_model_baseline_results}{{3}{22}{Linear model results\relax }{table.caption.9}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Mean and standard deviation of the NRV values over the quarter of the day\relax }}{23}{figure.caption.10}\protected@file@percent } -\newlabel{fig:nrv_mean_std_over_quarter}{{6}{23}{Mean and standard deviation of the NRV values over the quarter of the day\relax }{figure.caption.10}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Autoregressive linear model results with time features\relax }}{24}{table.caption.11}\protected@file@percent } -\newlabel{tab:autoregressive_linear_model_quarter_embedding_baseline_results}{{4}{24}{Autoregressive linear model results with time features\relax }{table.caption.11}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Comparison of the autoregressive and non-autoregressive linear model samples.\relax }}{25}{figure.caption.12}\protected@file@percent } -\newlabel{fig:linear_model_sample_comparison}{{7}{25}{Comparison of the autoregressive and non-autoregressive linear model samples.\relax }{figure.caption.12}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }}{26}{figure.caption.13}\protected@file@percent } -\newlabel{fig:linear_model_samples_comparison}{{8}{26}{Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }{figure.caption.13}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{27}{figure.caption.14}\protected@file@percent } -\newlabel{fig:linear_model_quantile_over_underestimation}{{9}{27}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.14}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Non-Linear Model}{27}{subsection.6.3}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Non-linear Quantile Regression Model Architecture\relax }}{28}{table.caption.15}\protected@file@percent } -\newlabel{tab:non_linear_model_architecture}{{5}{28}{Non-linear Quantile Regression Model Architecture\relax }{table.caption.15}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces Autoregressive non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }}{29}{table.caption.16}\protected@file@percent } -\newlabel{tab:non_linear_model_results}{{6}{29}{Autoregressive non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.16}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Comparison for examples from test set between the autoregressive linear and non-linear models. The plots show the confidence intervals calculated from 1000 generated full-day NRV samples. The samples were generated using input features NRV, Load, Wind, PV, Net Position and the quarter embedding. The non-linear model used 8 layers with a hidden size of 256 and a dropout rate of 0.2.\relax }}{30}{figure.caption.17}\protected@file@percent } -\newlabel{fig:linear_non_linear_sample_comparison}{{10}{30}{Comparison for examples from test set between the autoregressive linear and non-linear models. The plots show the confidence intervals calculated from 1000 generated full-day NRV samples. The samples were generated using input features NRV, Load, Wind, PV, Net Position and the quarter embedding. The non-linear model used 8 layers with a hidden size of 256 and a dropout rate of 0.2.\relax }{figure.caption.17}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1}GRU Model}{30}{subsubsection.6.3.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces GRU Model Architecture\relax }}{31}{table.caption.18}\protected@file@percent } -\newlabel{tab:gru_model_architecture}{{7}{31}{GRU Model Architecture\relax }{table.caption.18}{}} -\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }}{32}{table.caption.19}\protected@file@percent } -\newlabel{tab:autoregressive_gru_model_results}{{8}{32}{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.19}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Diffusion}{33}{subsection.6.4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {7}Policies for battery optimization}{33}{section.7}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Baselines}{33}{subsection.7.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Policies using NRV predictions}{33}{subsection.7.2}\protected@file@percent } -\abx@aux@page{6}{34} -\abx@aux@page{7}{34} -\abx@aux@page{8}{34} -\abx@aux@page{9}{34} +\abx@aux@page{5}{20} +\@writefile{toc}{\contentsline {section}{\numberline {6}Results \& Discussion}{21}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Data}{21}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Quantile Regression}{22}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}Linear Model}{22}{subsubsection.6.2.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Linear model results\relax }}{23}{table.caption.9}\protected@file@percent } +\newlabel{tab:linear_model_baseline_results}{{3}{23}{Linear model results\relax }{table.caption.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Mean and standard deviation of the NRV values over the quarter of the day\relax }}{25}{figure.caption.10}\protected@file@percent } +\newlabel{fig:nrv_mean_std_over_quarter}{{6}{25}{Mean and standard deviation of the NRV values over the quarter of the day\relax }{figure.caption.10}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Autoregressive linear model results with time features\relax }}{25}{table.caption.11}\protected@file@percent } +\newlabel{tab:autoregressive_linear_model_quarter_embedding_baseline_results}{{4}{25}{Autoregressive linear model results with time features\relax }{table.caption.11}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Comparison of the autoregressive and non-autoregressive linear model samples.\relax }}{26}{figure.caption.12}\protected@file@percent } +\newlabel{fig:linear_model_sample_comparison}{{7}{26}{Comparison of the autoregressive and non-autoregressive linear model samples.\relax }{figure.caption.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }}{27}{figure.caption.13}\protected@file@percent } +\newlabel{fig:linear_model_samples_comparison}{{8}{27}{Samples for two examples from the test set for the autoregressive and non-autoregressive linear model. The real NRV is shown in orange.\relax }{figure.caption.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{28}{figure.caption.14}\protected@file@percent } +\newlabel{fig:linear_model_quantile_over_underestimation}{{9}{28}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.14}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}Non-Linear Model}{29}{subsubsection.6.2.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces Non-linear Quantile Regression Model Architecture\relax }}{29}{table.caption.15}\protected@file@percent } +\newlabel{tab:non_linear_model_architecture}{{5}{29}{Non-linear Quantile Regression Model Architecture\relax }{table.caption.15}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }}{30}{table.caption.16}\protected@file@percent } +\newlabel{tab:non_linear_model_results}{{6}{30}{Non-linear quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.16}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }}{31}{figure.caption.17}\protected@file@percent } +\newlabel{fig:non_linear_model_examples}{{10}{31}{Comparison of the autoregressive and non-autoregressive non-linear model examples.\relax }{figure.caption.17}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }}{32}{figure.caption.18}\protected@file@percent } +\newlabel{fig:non-linear_model_quantile_over_underestimation}{{11}{32}{Over/underestimation of the quantiles for the autoregressive and non-autoregressive non-linear models. Both the quantile performance for the training and test set are shown. The plots are generated using the input features NRV, Load, Wind, PV, Net Position, and the quarter embedding (only for the autoregressive model).\relax }{figure.caption.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.3}GRU Model}{32}{subsubsection.6.2.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces GRU Model Architecture\relax }}{33}{table.caption.19}\protected@file@percent } +\newlabel{tab:gru_model_architecture}{{7}{33}{GRU Model Architecture\relax }{table.caption.19}{}} +\@writefile{lot}{\contentsline {table}{\numberline {8}{\ignorespaces Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }}{34}{table.caption.20}\protected@file@percent } +\newlabel{tab:autoregressive_gru_model_results}{{8}{34}{Autoregressive GRU quantile regression model results. All the models used a dropout of 0.2 .\relax }{table.caption.20}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Diffusion}{35}{subsection.6.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Policies for battery optimization}{35}{section.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Baselines}{35}{subsection.7.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Policies using NRV predictions}{35}{subsection.7.2}\protected@file@percent } +\abx@aux@page{6}{36} +\abx@aux@page{7}{36} +\abx@aux@page{8}{36} +\abx@aux@page{9}{36} \abx@aux@read@bbl@mdfivesum{5DC935CC8C8FAB8A3CAF97A486ED2386} \abx@aux@read@bblrerun \abx@aux@defaultrefcontext{0}{dumas_deep_2022}{nyt/global//global/global} \abx@aux@defaultrefcontext{0}{lu_scenarios_2022}{nyt/global//global/global} \abx@aux@defaultrefcontext{0}{poggi_electricity_2023}{nyt/global//global/global} \abx@aux@defaultrefcontext{0}{weron_electricity_2014}{nyt/global//global/global} -\gdef \@abspage@last{35} +\gdef \@abspage@last{37} diff --git a/Reports/Thesis/verslag.log b/Reports/Thesis/verslag.log index 2f04ce9..39dd957 100644 --- a/Reports/Thesis/verslag.log +++ b/Reports/Thesis/verslag.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 5 MAY 2024 02:15 +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 6 MAY 2024 13:49 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -1029,7 +1029,7 @@ LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be pdfTeX warning: pdflatex (file ./ea-en.pdf): PDF inclusion: found PDF version <1.7>, but at most version <1.5> allowed - + File: ea-en.pdf Graphic file (type pdf) Package pdftex.def Info: ea-en.pdf used on input line 135. @@ -1105,7 +1105,7 @@ Overfull \hbox (33.0pt too wide) in paragraph at lines 135--135 pdfTeX warning: pdflatex (file ./ugent-en.pdf): PDF inclusion: found PDF version <1.7>, but at most version <1.5> allowed - + File: ugent-en.pdf Graphic file (type pdf) Package pdftex.def Info: ugent-en.pdf used on input line 135. @@ -1166,13 +1166,13 @@ LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be [5{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}] LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be (Font) scaled to size 14.4pt on input line 100. - + File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 107. (pdftex.def) Requested size: 364.19667pt x 218.51653pt. [6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc} <./images/quantile_regression/cdf_quantiles_example.png>] - + File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 117. @@ -1182,13 +1182,13 @@ LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 6.0pt on input line 127. [7{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] [8] [9] [10] - + File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 206. (pdftex.def) Requested size: 364.19667pt x 156.63872pt. [11 <./images/quantile_regression/rnn/RNN_diagram.png>] - + File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png) Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 234. @@ -1201,7 +1201,7 @@ See the caption package documentation for explanation. LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 274. - + File: images/diffusion/diffusion_graphical_model.png Graphic file (type png) Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 278. @@ -1211,85 +1211,86 @@ LaTeX Font Info: Trying to load font information for U+bbm on input line 307. (/usr/local/texlive/2023/texmf-dist/tex/latex/bbm-macros/ubbm.fd File: ubbm.fd 1999/03/15 V 1.2 Font definition for bbm font - TH ) - + File: images/quantile_regression/crps_visualization.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 325. (pdftex.def) Requested size: 364.19667pt x 235.4849pt. -) [15 <./images/quantile_regression/crps_visualization.png>] +) [15] [16 <./images/quantile_regression/crps_visualization.png>] \openout2 = `sections/policies.aux'. - (./sections/policies.tex) [16 + (./sections/policies.tex) [17 -] [17] +] [18] \openout2 = `sections/literature_study.aux'. (./sections/literature_study.tex -LaTeX Warning: Citation 'rasul_autoregressive_2021' on page 18 undefined on input line 9. +LaTeX Warning: Citation 'rasul_autoregressive_2021' on page 19 undefined on input line 9. -[18 +[19 -]) [19] (./sections/results.tex [20 +]) [20] (./sections/results.tex [21 -] (./sections/results/linear.tex [21] [22] - +] (./sections/results/linear.tex [22] [23] + File: images/quantile_regression/nrv_mean_std_over_quarter.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/nrv_mean_std_over_quarter.png used on input line 42. (pdftex.def) Requested size: 455.24411pt x 273.14896pt. - [23 <./images/quantile_regression/nrv_mean_std_over_quarter.png>] + [24] -LaTeX Warning: Reference `fig:autoregressive_linear_model_samples' on page 24 undefined on input line 81. +LaTeX Warning: Reference `fig:autoregressive_linear_model_samples' on page 25 undefined on input line 81. - +[25 <./images/quantile_regression/nrv_mean_std_over_quarter.png>] + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 86. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png used on input line 90. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 93. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png used on input line 97. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 100. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png used on input line 104. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 107. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 10.95pt on input line 108. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png used on input line 112. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. -[24] [25 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png>] + [26 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_4320.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_6336.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_7008.png>] Overfull \hbox (11.8445pt too wide) in paragraph at lines 122--123 \T1/LinuxLibertineT-TLF/m/n/12 sam-ples of the au-tore-gres-sive model are more re-al-is-tic than the sam-ples of the non-autoregressive [] @@ -1299,119 +1300,144 @@ Underfull \hbox (badness 10000) in paragraph at lines 122--123 [] - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png used on input line 127. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png used on input line 131. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png used on input line 134. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png Graphic file (type png) Package pdftex.def Info: images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png used on input line 139. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg used on input line 151. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg used on input line 156. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg used on input line 161. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. - + File: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg Graphic file (type jpg) Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg used on input line 166. (pdftex.def) Requested size: 223.07211pt x 153.94125pt. -[26 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png>]) (./sections/results/non-linear.tex [27 <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg>]) [28{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}] - -LaTeX Warning: Reference `subsubsec:quantile_regression_training' on page 29 undefined on input line 50. - - -LaTeX Warning: Reference `tab:autoregressive_non_linear_model_results' on page 29 undefined on input line 52. - - -Underfull \hbox (badness 10000) in paragraph at lines 50--53 - - [] - - -LaTeX Warning: Reference `tab:autoregressive_non_linear_model_results' on page 29 undefined on input line 58. - -File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) - -Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 63. -(pdftex.def) Requested size: 223.07211pt x 112.49284pt. - +[27 <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_864_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_864_samples.png> <./images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP-QE-Example_4320_samples.png> <./images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Example_4320_samples.png>]) (./sections/results/non-linear.tex [28 <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_Quantile_Performance_Test.jpeg>] [29{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}] + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 67. +Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 78. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. -File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) - -Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 70. + +File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png) + +Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 82. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 74. +Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 85. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. -File: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) - -Package pdftex.def Info: images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 77. + +File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png Graphic file (type png) + +Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png used on input line 89. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. - + File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 82. +Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 92. (pdftex.def) Requested size: 223.07211pt x 112.49284pt. -[29] [30 <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png>] [31] [32] -Underfull \hbox (badness 10000) in paragraph at lines 168--176 + +File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png Graphic file (type png) + +Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png used on input line 96. +(pdftex.def) Requested size: 223.07211pt x 112.49284pt. + +File: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) + +Package pdftex.def Info: images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 99. +(pdftex.def) Requested size: 223.07211pt x 112.49284pt. + +File: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png Graphic file (type png) + +Package pdftex.def Info: images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png used on input line 104. +(pdftex.def) Requested size: 223.07211pt x 112.49284pt. + [30] + +File: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg Graphic file (type jpg) + +Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg used on input line 117. +(pdftex.def) Requested size: 223.07211pt x 153.94125pt. + +File: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg Graphic file (type jpg) + +Package pdftex.def Info: images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg used on input line 122. +(pdftex.def) Requested size: 223.07211pt x 153.94125pt. + +File: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg Graphic file (type jpg) + +Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg used on input line 127. +(pdftex.def) Requested size: 223.07211pt x 153.94125pt. + +File: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg Graphic file (type jpg) + +Package pdftex.def Info: images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg used on input line 132. +(pdftex.def) Requested size: 223.07211pt x 153.94125pt. + +Underfull \hbox (badness 4582) in paragraph at lines 135--135 +[]\T1/LinuxLibertineT-TLF/m/n/12 Figure 11: |Over/underestimation of the quan-tiles for the au-tore-gres-sive and non- + [] + +) [31 <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_4320.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_6336.png> <./images/quantile_regression/aqr_non_linear_model_samples/AQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png> <./images/quantile_regression/naqr_non_linear_model_samples/NAQR_NL_NRV_Load_Wind_PV_NP_QE-Sample_7008.png>] (./sections/results/gru.tex [32 <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/AQR_NL_Quantile_Performance_Test.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Training.jpeg> <./images/quantile_regression/quantile_performance/NAQR_NL_Quantile_Performance_Test.jpeg>]) [33] [34] +Underfull \hbox (badness 10000) in paragraph at lines 59--67 [] -Underfull \hbox (badness 10000) in paragraph at lines 168--176 +Underfull \hbox (badness 10000) in paragraph at lines 59--67 [] -Underfull \hbox (badness 10000) in paragraph at lines 168--176 +Underfull \hbox (badness 10000) in paragraph at lines 59--67 [] -Underfull \hbox (badness 10000) in paragraph at lines 168--176 +Underfull \hbox (badness 10000) in paragraph at lines 59--67 [] -Underfull \hbox (badness 10000) in paragraph at lines 168--176 +Underfull \hbox (badness 10000) in paragraph at lines 59--67 [] -) [33] [34] (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux)) +) [35] [36] (./verslag.aux (./sections/introduction.aux) (./sections/background.aux) (./sections/policies.aux) (./sections/literature_study.aux)) LaTeX Warning: There were undefined references. Package rerunfilecheck Info: File `verslag.out' has not changed. -(rerunfilecheck) Checksum: 69591E981E96AB0B0521BC78DAAADEA0;4329. +(rerunfilecheck) Checksum: 7E50B00E62AE3A64F9DC7847891FE94D;4505. Package biblatex Warning: Please (re)run Biber on the file: (biblatex) verslag @@ -1422,18 +1448,18 @@ Package logreq Info: Writing requests to 'verslag.run.xml'. ) Here is how much of TeX's memory you used: - 26915 strings out of 476025 - 492066 string characters out of 5790017 - 1882388 words of memory out of 5000000 - 46809 multiletter control sequences out of 15000+600000 + 26989 strings out of 476025 + 498139 string characters out of 5790017 + 1883388 words of memory out of 5000000 + 46866 multiletter control sequences out of 15000+600000 603223 words of font info for 88 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 83i,16n,131p,2100b,5180s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on verslag.pdf (35 pages, 5303263 bytes). +Output written on verslag.pdf (37 pages, 6373443 bytes). PDF statistics: - 508 PDF objects out of 1000 (max. 8388607) - 395 compressed objects within 4 object streams - 95 named destinations out of 1000 (max. 500000) - 373 words of extra memory for PDF output out of 10000 (max. 10000000) + 542 PDF objects out of 1000 (max. 8388607) + 412 compressed objects within 5 object streams + 99 named destinations out of 1000 (max. 500000) + 426 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Reports/Thesis/verslag.out b/Reports/Thesis/verslag.out index 0829f4e..6ca6d13 100644 --- a/Reports/Thesis/verslag.out +++ b/Reports/Thesis/verslag.out @@ -20,10 +20,11 @@ \BOOKMARK [2][-]{subsection.5.2}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000B\000a\000t\000t\000e\000r\000y\000\040\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{section.5}% 20 \BOOKMARK [1][-]{section.6}{\376\377\000R\000e\000s\000u\000l\000t\000s\000\040\000\046\000\040\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 21 \BOOKMARK [2][-]{subsection.6.1}{\376\377\000D\000a\000t\000a}{section.6}% 22 -\BOOKMARK [2][-]{subsection.6.2}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{section.6}% 23 -\BOOKMARK [2][-]{subsection.6.3}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{section.6}% 24 -\BOOKMARK [3][-]{subsubsection.6.3.1}{\376\377\000G\000R\000U\000\040\000M\000o\000d\000e\000l}{subsection.6.3}% 25 -\BOOKMARK [2][-]{subsection.6.4}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n}{section.6}% 26 -\BOOKMARK [1][-]{section.7}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000b\000a\000t\000t\000e\000r\000y\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{}% 27 -\BOOKMARK [2][-]{subsection.7.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{section.7}% 28 -\BOOKMARK [2][-]{subsection.7.2}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000u\000s\000i\000n\000g\000\040\000N\000R\000V\000\040\000p\000r\000e\000d\000i\000c\000t\000i\000o\000n\000s}{section.7}% 29 +\BOOKMARK [2][-]{subsection.6.2}{\376\377\000Q\000u\000a\000n\000t\000i\000l\000e\000\040\000R\000e\000g\000r\000e\000s\000s\000i\000o\000n}{section.6}% 23 +\BOOKMARK [3][-]{subsubsection.6.2.1}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 24 +\BOOKMARK [3][-]{subsubsection.6.2.2}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 25 +\BOOKMARK [3][-]{subsubsection.6.2.3}{\376\377\000G\000R\000U\000\040\000M\000o\000d\000e\000l}{subsection.6.2}% 26 +\BOOKMARK [2][-]{subsection.6.3}{\376\377\000D\000i\000f\000f\000u\000s\000i\000o\000n}{section.6}% 27 +\BOOKMARK [1][-]{section.7}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000f\000o\000r\000\040\000b\000a\000t\000t\000e\000r\000y\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{}% 28 +\BOOKMARK [2][-]{subsection.7.1}{\376\377\000B\000a\000s\000e\000l\000i\000n\000e\000s}{section.7}% 29 +\BOOKMARK [2][-]{subsection.7.2}{\376\377\000P\000o\000l\000i\000c\000i\000e\000s\000\040\000u\000s\000i\000n\000g\000\040\000N\000R\000V\000\040\000p\000r\000e\000d\000i\000c\000t\000i\000o\000n\000s}{section.7}% 30 diff --git a/Reports/Thesis/verslag.pdf b/Reports/Thesis/verslag.pdf index f109d49..480ae6f 100644 Binary files a/Reports/Thesis/verslag.pdf and b/Reports/Thesis/verslag.pdf differ diff --git a/Reports/Thesis/verslag.synctex.gz b/Reports/Thesis/verslag.synctex.gz index aaadf5e..87cbbb6 100644 Binary files a/Reports/Thesis/verslag.synctex.gz and b/Reports/Thesis/verslag.synctex.gz differ diff --git a/Reports/Thesis/verslag.toc b/Reports/Thesis/verslag.toc index fa37762..f79b258 100644 --- a/Reports/Thesis/verslag.toc +++ b/Reports/Thesis/verslag.toc @@ -9,22 +9,23 @@ \contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{10}{subsubsection.3.3.2}% \contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{10}{subsubsection.3.3.3}% \contentsline {subsection}{\numberline {3.4}Diffusion models}{11}{subsection.3.4}% -\contentsline {subsubsection}{\numberline {3.4.1}Overview}{11}{subsubsection.3.4.1}% +\contentsline {subsubsection}{\numberline {3.4.1}Overview}{12}{subsubsection.3.4.1}% \contentsline {subsubsection}{\numberline {3.4.2}Applications}{12}{subsubsection.3.4.2}% \contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}% \contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}% -\contentsline {section}{\numberline {4}Policies}{16}{section.4}% -\contentsline {subsection}{\numberline {4.1}Baselines}{16}{subsection.4.1}% -\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{17}{subsection.4.2}% -\contentsline {section}{\numberline {5}Literature Study}{18}{section.5}% -\contentsline {subsection}{\numberline {5.1}Electricity Price Forecasting}{18}{subsection.5.1}% -\contentsline {subsection}{\numberline {5.2}Policies for Battery Optimization}{19}{subsection.5.2}% -\contentsline {section}{\numberline {6}Results \& Discussion}{20}{section.6}% -\contentsline {subsection}{\numberline {6.1}Data}{20}{subsection.6.1}% -\contentsline {subsection}{\numberline {6.2}Linear Model}{21}{subsection.6.2}% -\contentsline {subsection}{\numberline {6.3}Non-Linear Model}{27}{subsection.6.3}% -\contentsline {subsubsection}{\numberline {6.3.1}GRU Model}{30}{subsubsection.6.3.1}% -\contentsline {subsection}{\numberline {6.4}Diffusion}{33}{subsection.6.4}% -\contentsline {section}{\numberline {7}Policies for battery optimization}{33}{section.7}% -\contentsline {subsection}{\numberline {7.1}Baselines}{33}{subsection.7.1}% -\contentsline {subsection}{\numberline {7.2}Policies using NRV predictions}{33}{subsection.7.2}% +\contentsline {section}{\numberline {4}Policies}{17}{section.4}% +\contentsline {subsection}{\numberline {4.1}Baselines}{17}{subsection.4.1}% +\contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{18}{subsection.4.2}% +\contentsline {section}{\numberline {5}Literature Study}{19}{section.5}% +\contentsline {subsection}{\numberline {5.1}Electricity Price Forecasting}{19}{subsection.5.1}% +\contentsline {subsection}{\numberline {5.2}Policies for Battery Optimization}{20}{subsection.5.2}% +\contentsline {section}{\numberline {6}Results \& Discussion}{21}{section.6}% +\contentsline {subsection}{\numberline {6.1}Data}{21}{subsection.6.1}% +\contentsline {subsection}{\numberline {6.2}Quantile Regression}{22}{subsection.6.2}% +\contentsline {subsubsection}{\numberline {6.2.1}Linear Model}{22}{subsubsection.6.2.1}% +\contentsline {subsubsection}{\numberline {6.2.2}Non-Linear Model}{29}{subsubsection.6.2.2}% +\contentsline {subsubsection}{\numberline {6.2.3}GRU Model}{32}{subsubsection.6.2.3}% +\contentsline {subsection}{\numberline {6.3}Diffusion}{35}{subsection.6.3}% +\contentsline {section}{\numberline {7}Policies for battery optimization}{35}{section.7}% +\contentsline {subsection}{\numberline {7.1}Baselines}{35}{subsection.7.1}% +\contentsline {subsection}{\numberline {7.2}Policies using NRV predictions}{35}{subsection.7.2}% diff --git a/src/training_scripts/autoregressive_quantiles.py b/src/training_scripts/autoregressive_quantiles.py index 30762a5..aaf7dc9 100644 --- a/src/training_scripts/autoregressive_quantiles.py +++ b/src/training_scripts/autoregressive_quantiles.py @@ -2,8 +2,8 @@ from src.utils.clearml import ClearMLHelper #### ClearML #### clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast") -task = clearml_helper.get_task(task_name="AQR: Linear + QE (dim 2)") -# task.execute_remotely(queue_name="default", exit_process=True) +task = clearml_helper.get_task(task_name="AQR: Non-Linear (16 - 256) + QE (dim 2)") +task.execute_remotely(queue_name="default", exit_process=True) from src.policies.PolicyEvaluator import PolicyEvaluator from src.policies.simple_baseline import BaselinePolicy, Battery @@ -67,8 +67,8 @@ else: model_parameters = { "learning_rate": 0.0001, - "hidden_size": 512, - "num_layers": 8, + "hidden_size": 256, + "num_layers": 16, "dropout": 0.2, "time_feature_embedding": 2, } @@ -89,17 +89,17 @@ time_embedding = TimeEmbedding( # dropout=model_parameters["dropout"], # ) -# non_linear_model = NonLinearRegression( -# time_embedding.output_dim(inputDim), -# len(quantiles), -# hiddenSize=model_parameters["hidden_size"], -# numLayers=model_parameters["num_layers"], -# dropout=model_parameters["dropout"], -# ) +non_linear_model = NonLinearRegression( + time_embedding.output_dim(inputDim), + len(quantiles), + hiddenSize=model_parameters["hidden_size"], + numLayers=model_parameters["num_layers"], + dropout=model_parameters["dropout"], +) -linear_model = LinearRegression(time_embedding.output_dim(inputDim), len(quantiles)) +# linear_model = LinearRegression(time_embedding.output_dim(inputDim), len(quantiles)) -model = nn.Sequential(time_embedding, linear_model) +model = nn.Sequential(time_embedding, non_linear_model) model.output_size = 1 optimizer = torch.optim.Adam(model.parameters(), lr=model_parameters["learning_rate"]) diff --git a/src/training_scripts/non_autoregressive_quantiles.py b/src/training_scripts/non_autoregressive_quantiles.py index b2afd2e..9a574c5 100644 --- a/src/training_scripts/non_autoregressive_quantiles.py +++ b/src/training_scripts/non_autoregressive_quantiles.py @@ -1,10 +1,8 @@ from src.utils.clearml import ClearMLHelper #### ClearML #### -clearml_helper = ClearMLHelper(project_name="Thesis/NAQR: Non-Linear") -task = clearml_helper.get_task( - task_name="NAQR: Non-Linear (8 - 512) + NRV + LOAD + PV + WIND + NP" -) +clearml_helper = ClearMLHelper(project_name="Thesis/NAQR: GRU") +task = clearml_helper.get_task(task_name="NAQR: GRU (2 - 256)") task.execute_remotely(queue_name="default", exit_process=True) from src.policies.PolicyEvaluator import PolicyEvaluator @@ -29,21 +27,21 @@ from src.models.time_embedding_layer import TimeEmbedding data_config = DataConfig() data_config.NRV_HISTORY = True -data_config.LOAD_HISTORY = True -data_config.LOAD_FORECAST = True +data_config.LOAD_HISTORY = False +data_config.LOAD_FORECAST = False -data_config.WIND_FORECAST = True -data_config.WIND_HISTORY = True +data_config.WIND_FORECAST = False +data_config.WIND_HISTORY = False -data_config.PV_FORECAST = True -data_config.PV_HISTORY = True +data_config.PV_FORECAST = False +data_config.PV_HISTORY = False -data_config.NOMINAL_NET_POSITION = True +data_config.NOMINAL_NET_POSITION = False data_config = task.connect(data_config, name="data_features") -data_processor = DataProcessor(data_config, path="", lstm=False) +data_processor = DataProcessor(data_config, path="", lstm=True) data_processor.set_batch_size(64) data_processor.set_full_day_skip(True) @@ -66,8 +64,8 @@ else: model_parameters = { "learning_rate": 0.0001, - "hidden_size": 512, - "num_layers": 8, + "hidden_size": 256, + "num_layers": 2, "dropout": 0.2, } @@ -75,16 +73,24 @@ model_parameters = task.connect(model_parameters, name="model_parameters") # linear_model = LinearRegression(inputDim, len(quantiles) * 96) -non_linear_model = NonLinearRegression( +# non_linear_model = NonLinearRegression( +# inputDim, +# len(quantiles) * 96, +# hiddenSize=model_parameters["hidden_size"], +# numLayers=model_parameters["num_layers"], +# dropout=model_parameters["dropout"], +# ) + +lstm_model = GRUModel( inputDim, - len(quantiles) * 96, - hiddenSize=model_parameters["hidden_size"], - numLayers=model_parameters["num_layers"], + len(quantiles), + hidden_size=model_parameters["hidden_size"], + num_layers=model_parameters["num_layers"], dropout=model_parameters["dropout"], ) -model = non_linear_model +model = lstm_model model.output_size = 96 optimizer = torch.optim.Adam(model.parameters(), lr=model_parameters["learning_rate"])