\documentclass[aspectratio=169,10pt]{beamer}

\usetheme[progressbar=head,numbering=fraction,sectionpage=none]{metropolis}
\usepackage{graphicx}
\usepackage{ulem}
\usepackage{xcolor}
\usepackage[scale=2]{ccicons}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{hyperref}
\usepackage{xspace}
\newcommand{\themename}{\textbf{\textsc{metropolis}}\xspace}

\title{State Detection and Segmentation (SDS)}
\subtitle{May the best detector win.}

\date{}
\author{Arthur Grisel-Davy}
\institute{University of Waterloo - EET2 Project}

\begin{document}


\maketitle

\begin{frame}{Goal}
    \begin{center}
        Detect the state of the machine at any point in time.
        \includegraphics[width=0.9\textwidth]{images/trace.pdf}
    \end{center}
\end{frame}

\begin{frame}{Training Data}
    \begin{center}
        Proto Examples:
    \includegraphics[width=\textwidth]{images/protos.pdf}
    \end{center}

    \begin{itemize}
        \item Not exacts examples.
        \item Various lengths.
        \item Tile any trace completely.
    \end{itemize}
\end{frame}

\begin{frame}{Evaluation Ground}
    \begin{itemize}
        \item Synthetically generated input trace \& protos.
        \item Trace start at randomly selected sample.
        \item Score: global accuracy $\left(\dfrac{TP+TN}{TP+TN+FP+FN}\right)$
    \end{itemize}
\end{frame}

\begin{frame}{Simplest Detector}
    Label each sample with the closest proto example.
    \begin{center}
    \includegraphics[width=0.7\textwidth]{images/simplest.pdf}
    \end{center}
\end{frame}

\begin{frame}{Scoreboard}
    \begin{table}
        \begin{tabular}{l|c}
            \textbf{Detector} & Simplest\\
            \textbf{Score} & 0.32\\
        \end{tabular}
    \end{table}
\end{frame}

\begin{frame}{Confident Detector}
    The complete length of the closest proto example is assigned the label.
    \begin{center}
    \includegraphics[width=0.7\textwidth]{images/confident.pdf}
    \end{center}
\end{frame}

\begin{frame}{Scoreboard}
    \begin{table}
        \begin{tabular}{l|c|c}
            \textbf{Detector} & Simplest & Confident\\
            \textbf{Score} & 0.32 & 0.69 \\
        \end{tabular}
    \end{table}
\end{frame}


\begin{frame}{Cautious Detector}
    The complete length of the closest proto example is assigned the label, but still moves by 1 sample.
    \begin{center}
    \includegraphics[width=0.7\textwidth]{images/cautious.pdf}
    \end{center}
\end{frame}


\begin{frame}{Scoreboard}
    \begin{table}
        \begin{tabular}{l|c|c|c}
            \textbf{Detector} & Simplest & Confident & Cautious\\
            \textbf{Score} & 0.32 & 0.69 & 0.39\\
        \end{tabular}
    \end{table}
\end{frame}

\begin{frame}{Let's be smart}
    \begin{itemize}
        \item \sout{Respect Causality} $\rightarrow$ Use all data available.
        \item Proto example represent the whole trace.
        \item Try to place each example as best as possible independently.
    \end{itemize}
\end{frame}

\begin{frame}{Generous label Activation}
    \begin{center}
    \includegraphics[width=\textwidth]{images/overlap.pdf}
    \end{center}
\end{frame}


\begin{frame}{Generous label Activation}
    \begin{center}
    \includegraphics[width=\textwidth]{images/overlap_explained.pdf}
    \end{center}
\end{frame}

\begin{frame}{Inter-protos Distances}
    \begin{itemize}
        \item Minimize overlaps.
        \item Resolve overlap conflicts.
    \end{itemize}
    $\rightarrow$ Compute inter-protos distances.
\end{frame}

\begin{frame}{Inter-protos Distances}
    \begin{center}
    \includegraphics[width=\textwidth]{images/inter_distances.pdf}
    \end{center}

! Hyper-parameter: threshold placement coefficient (default=1) 
\end{frame}


\begin{frame}{Detection}
    \begin{center}
    \includegraphics[height=0.9\textheight]{images/detection.pdf}
    \end{center}
\end{frame}

\begin{frame}{Detection}
    \begin{center}
    \includegraphics[height=0.9\textheight]{images/detection_0.7.pdf}
    \end{center}
\end{frame}

\begin{frame}{Detection}
    \begin{center}
    \includegraphics[height=0.9\textheight]{images/detection_0.5.pdf}
    \end{center}
\end{frame}


\begin{frame}{Scoreboard}
    \begin{table}
        \begin{tabular}{l|c|c|c|c}
            \textbf{Detector} & Simplest & Confident & Cautious & Inter-distances\\
            \textbf{Score} & 0.32 & 0.69 & 0.39 & 0.91 - 0.99\\
        \end{tabular}
    \end{table}
\end{frame}

\begin{frame}{Future Work}
    \begin{itemize}
        \item Generate real data.
        \item Evaluate impact of imperfect protos.
        \item Evaluate possibility of incomplete proto dictionary.
        \item Evaluate possibility of automatic threshold optimization.
    \end{itemize}
\end{frame}

\begin{frame}{Real Data}
    \begin{center}
        \includegraphics[width=\textwidth]{images/real_labeled_data_1.pdf}
    \end{center}
\end{frame}

\begin{frame}{Real Data (ASUS)}
    \begin{center}
        \includegraphics[width=\textwidth]{images/detection_real_asus_1_1.pdf}
    \end{center}
\end{frame}

\begin{frame}{Real Data (LINKSYS)}
    \begin{center}
        \includegraphics[width=\textwidth]{images/detection_real_linksys_1_1.pdf}
    \end{center}
\end{frame}


\begin{frame}{Increasing Complexity}
    \begin{center}
        \includegraphics[width=\textwidth]{images/complexity.png}
    \end{center}
\end{frame}


\begin{frame}{NUC Windows Machine}
    \begin{center}
        \includegraphics[width=\textwidth]{images/detection_real_NUC1_1_1.pdf}
    \end{center}
\end{frame}

\begin{frame}{NUC Windows Machine}
    \begin{enumerate}
        \item Remove Shutdown Patterns.
    \end{enumerate}
\end{frame}

\begin{frame}{NUC Windows Machine}
    \begin{center}
        \includegraphics[width=\textwidth]{images/detection_real_NUC1_2_1.pdf}
    \end{center}
\end{frame}

\begin{frame}{NUC Windows Machine}
    \begin{enumerate}
        \item Remove Shutdown Patterns.
        \item Separate BIOS and OS states.
    \end{enumerate}
\end{frame}

\begin{frame}{NUC Windows Machine}
    \begin{center}
        \includegraphics[width=\textwidth]{images/detection_real_NUC1_3_0.9.pdf}
    \end{center}
\end{frame}

\begin{frame}{Current state}
    \begin{itemize}
        \item State detection not satisfactory on Windows machines.
        \item Confusion between Activity and Reboot.
        \item Likely very performant on PLCs data.
    \end{itemize}
\end{frame}
\end{document}
