From 88cde357214cc947024948a51385874dd0ac5159 Mon Sep 17 00:00:00 2001 From: NotXia <35894453+NotXia@users.noreply.github.com> Date: Thu, 10 Oct 2024 21:26:19 +0200 Subject: [PATCH] Add A3I missing data + RUL --- .../a3i.tex | 1 + .../img/_rul_heatmap.pdf | Bin 0 -> 67520 bytes .../sections/_missing_data.tex | 75 +++++++++++++++++- .../sections/_remaining_useful_life.tex | 61 ++++++++++++++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 src/year2/artificial-intelligence-in-industry/img/_rul_heatmap.pdf create mode 100644 src/year2/artificial-intelligence-in-industry/sections/_remaining_useful_life.tex diff --git a/src/year2/artificial-intelligence-in-industry/a3i.tex b/src/year2/artificial-intelligence-in-industry/a3i.tex index c99f200..c4c03b0 100644 --- a/src/year2/artificial-intelligence-in-industry/a3i.tex +++ b/src/year2/artificial-intelligence-in-industry/a3i.tex @@ -15,5 +15,6 @@ \input{./sections/_anomaly_detection_low_dim.tex} \input{./sections/_anomaly_detection_high_dim.tex} \input{./sections/_missing_data.tex} + \input{./sections/_remaining_useful_life.tex} \end{document} \ No newline at end of file diff --git a/src/year2/artificial-intelligence-in-industry/img/_rul_heatmap.pdf b/src/year2/artificial-intelligence-in-industry/img/_rul_heatmap.pdf new file mode 100644 index 0000000000000000000000000000000000000000..90dfafbc6a8fc1ad7f350c80ae82c1ae558dc2ea GIT binary patch literal 67520 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

6e7 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 IQ0} literal 0 HcmV?d00001 diff --git a/src/year2/artificial-intelligence-in-industry/sections/_missing_data.tex b/src/year2/artificial-intelligence-in-industry/sections/_missing_data.tex index 4a126f8..c992303 100644 --- a/src/year2/artificial-intelligence-in-industry/sections/_missing_data.tex +++ b/src/year2/artificial-intelligence-in-industry/sections/_missing_data.tex @@ -225,4 +225,77 @@ However, regression only relies on the data on one side (past or future) and eac \begin{remark} With Gaussian processes, as we have both the prediction and the confidence interval, likelihood can be used as evaluation metric. -\end{remark} \ No newline at end of file +\end{remark} + +\begin{remark} + With Gaussian processes, by predicting points far away from the training observations (i.e., extrapolation), the mean starts to fall to $0$. Only when there is a period, predictions outside the reference observations can be reasonably made. +\end{remark} + +\begin{remark} + As the reference observations and the trained kernel are detached, it is possible to change reference observations without retraining. +\end{remark} + +\begin{description} + \item[Inference] + As changing reference observations can be done without retraining the kernel, the whole series can be used when doing inference to obtain more accurate results. + + To fill missing values, there are two main strategies: + \begin{descriptionlist} + \item[Prediction] + Use the mean as filling value. + + \item[Sampling] + Use mean and variance to sample a point to fill the missing value. Clipping might be needed to make the sampled point valid (e.g., prevent negative values for traffic). + \end{descriptionlist} + \begin{remark} + Using the mean results in a smoother filling, while sampling produces more realistic data. + \end{remark} +\end{description} + + +\subsection{Multiplicative ensemble} + +\begin{remark} + Gaussian process alone only accounts for covariance and do not consider input-dependent variance (i.e., variance of the traffic at the same week day and time on different days). +\end{remark} + +\begin{remark} + Variance scales via multiplication but not summation: + \[ Var(x + \alpha) = Var(x) \qquad Var(\alpha x) = \alpha^2 Var(x) \] + for a constant $\alpha$. +\end{remark} + +\begin{description} + \item[Multiplicative ensemble] + Product of the outputs of two models $f$ and $g$: + \[ g(x, \lambda) f(x, \theta) \] + More specifically, the training process aims to obtain: + \[ g(x_i, \lambda) f(x_i, \theta) \approx y_i \Rightarrow f(x_i, \theta) \approx \frac{y_i}{g(x_i, \lambda)} \] + In other words, $f$ is trained on a series with variance altered by $g$. + + For this specific problem, $f$ is a Gaussian process and $g$ a standard deviation model. +\end{description} + +\begin{description} + \item[Standard deviation model] + A simple standard deviation model consists of mapping time intervals to their standard deviations. This approach is sensitive to the choice of the granularity of the interval (time unit in this problem): + \begin{itemize} + \item If it has too many missing values or too little samples, it is not enough to compute a reliable standard deviation. + \item If it is too coarse, the computed standard deviation is not useful. + \end{itemize} + + \begin{remark} + From empirical considerations, the central limit theorem is observable starting from $30$ samples. Therefore, $30$ data points are enough to make a reasonably stable prediction of the standard deviation. + \end{remark} + + As the final model might be too coarse, the following can be done: + \begin{descriptionlist} + \item[Upsampling] + Use a finer grain unit (i.e., x-axis, time unit in this problem) and fill missing values through linear interpolation. + + \item[Smoothing] + Smooth the upsampled data through a low-pass filter. + + For this problem, an exponentially weighted moving average works best as recent data are more relevant. + \end{descriptionlist} +\end{description} \ No newline at end of file diff --git a/src/year2/artificial-intelligence-in-industry/sections/_remaining_useful_life.tex b/src/year2/artificial-intelligence-in-industry/sections/_remaining_useful_life.tex new file mode 100644 index 0000000..572c7ad --- /dev/null +++ b/src/year2/artificial-intelligence-in-industry/sections/_remaining_useful_life.tex @@ -0,0 +1,61 @@ +\chapter{Remaining useful life: Turbofan engines} + + +\section{Data} + +\begin{remark} + Maintenance can be of three types: + \begin{descriptionlist} + \item[Reactive maintenance] + Repair when something is broken. + + \item[Preventive maintenance] + Periodically change something, in a conservative way, before it breaks. + + \item[Predictive maintenance] + Change when something is close to break. + \end{descriptionlist} + + Remaining useful life (RUL) is a metric useful for predictive maintenance. +\end{remark} + +The dataset contains run-to-failure experiments on NASA turbofan engines. Excluding domain specific features, the main columns are: +\begin{descriptionlist} + \item[\texttt{machine}] Index of the experiment. + \item[\texttt{cycle}] Time step of the experiment. + \item[\texttt{rul}] Remaining useful life. +\end{descriptionlist} + + +From the dataset heatmap, the following can be observed: +\begin{itemize} + \item Rows with a uniform blue or red color represent features that contain frequent short-lived variations (i.e., peeks) that skew the standard deviation. + \item Some features show a trend synced with the experiments (see rows around 15 at the y-axis with blue peeks at the end of each experiment). +\end{itemize} +\begin{figure}[H] + \centering + \includegraphics[width=0.95\linewidth]{./img/_rul_heatmap.pdf} + \caption{ + \parbox[t]{0.7\linewidth}{ + Heatmap of the dataset. On the top line, each section represents an experiment. + } + } +\end{figure} + + +\subsection{Data splitting} + +As the dataset is composed of experiments, standard random sampling will mix experiments and leak information. Therefore, sampling is done on the experiments in chronological order (train first). + +\begin{remark} + When splitting, the train data should be representative of the test data. Moreover, the test set should be representative of the real world. +\end{remark} + + +\section{Approaches} + + +\subsection{Regressor} + +Predict RUL with a regressor $f$ and set a threshold to trigger maintenance: +\[ f(x, \theta) \leq \varepsilon \] \ No newline at end of file