Contenu soutenance

This commit is contained in:
Leopold Clement 2021-08-31 15:34:14 +02:00
parent a70bd52d87
commit dbe8868d03

View file

@ -29,6 +29,7 @@
\setbeamercolor{progress bar}{fg=ENSJaunePorte, bg=ENSGrisBeton}
\usepackage{amsmath}
\usepackage{minted}
\usepackage{xspace}
\newcommand{\R}{\mathbb{R}}
@ -40,6 +41,7 @@
\newcommand{\coap}{\emph{CoAP}}
\newcommand{\coapthon}{\emph{CoAPthon}}
\newcommand{\rtt}{\emph{RTT}}
\newcommand{\rto}{\emph{RTO}}
\newcommand{\varrtt}{\emph{VARRTT}}
\newcommand{\code}[1]{\mintinline[breaklines, breakafter=.]{python}{#1}}
@ -55,38 +57,164 @@
\section{Problèmatique}
\begin{frame}{Le laboratoire}
Stage réalisé au Laboratoire des Signaux et Système (L2S), au pôle télécoms et réseaux, dans l'équipe Réseaux, Optimisation Conjointe et codage de Source (ROCS).
\end{frame}
\begin{frame}{La congestion}
\cite{xiaoTCPDrincSmartCongestion2019}
\begin{columns}[c,onlytextwidth]
\column{0.45\textwidth}
Différence entre le nombre de paquets entrant et sortant dans un routeur.
\pause
\begin{exampleblock}{Résumé}
Congestion = embouteillage de paquets.
\end{exampleblock}
\pause
\column{0.45\textwidth}
Les conséquence sont : \pause
\begin{itemize}[<+->]
\item Le ralongement du \rtt{},
\item la perte de paquets.
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}{Le \coap{}}
\begin{columns}[c,onlytextwidth]
\column{0.45\textwidth}
\begin{figure}[htp]
\centering
\includegraphics[width=\textwidth]{puml/temporal_transaction_valide.png}
\caption{Transaction \coap{}}
\end{figure}
\column{0.45\textwidth}
Identique à utilisé que \emph{HTTP}.
Utilise \emph{UDP} et pas \emph{TCP}.
\pause
On attend un acquittement.
Si le \rto{} s'écoule, on retransmé.
\pause
Le \rto{} est tiré aléatoirement dans un intervalle.
\end{columns}
\end{frame}
\begin{frame}{L'apprentissage par renforcement}
\begin{columns}[c,onlytextwidth]
\column{0.45\textwidth}
\begin{figure}[htp]
\centering
\includegraphics[width=\textwidth]{png_img/Markov_Decision_Process_example.png}
\caption{processus markovien}
\end{figure}
\pause
\column{0.45\textwidth}
\begin{equation}
R = \sum_{i = 1} ^\infty r _ i \gamma ^ i
\label{eq:rl:R}
\end{equation}
\pause
On cherche $\pi : \mathbb{S} \rightarrow \mathbb{A}$ pour maximiser $R$.
\pause
\begin{itemize}[<+->]
\item $s$ : l'observation,
\item $a$ : l'action,
\item $r$ : la récompense.
\end{itemize}
\end{columns}
\end{frame}
\section{Modelisation}
\begin{frame}{Structure du protocole}
\begin{columns}[c,onlytextwidth]
\column{0.45\textwidth}
Utilisation : \pause
\begin{itemize}[<+->]
\item Obtention de $s_t$,
\item calcule et application de $a_t = \pi(s_t)$,
\item attente,
\item calcule de $s_{t+1}$.
\end{itemize}
\pause
\column{0.45\textwidth}
Phase d'exploitation : \pause
\begin{itemize}[<+->]
\item Pré-entrainement,
\item déploiment,
\item entrainement en place.
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}{Observation}
\begin{frame}{Observation disponibles}
On ne dispose que des \rtt{} et du nomre de retransmission, ainsi on utilise :
\begin{itemize}[<+->]
\item $\eta = \frac{RTT_{min}}{\overline{RTT}}$
\item $\nu = \frac{n_{retransmission}}{n_{message}}$
\item $VARRTT = \frac{RTT_S}{RTT_L}$ à partir de \begin{align*}
RTT_S &:= \alpha_S \cdot r + \left( 1 - \alpha_S \right) \cdot RTT_S \\
RTT_L &:= \alpha_L \cdot r + \left( 1 - \alpha_L \right) \cdot RTT_L \\
\alpha_S &\gg \alpha_L
\end{align*}
\end{itemize}
\end{frame}
\begin{frame}{Observation utilisées}
Pour chaque capteur $i$ : \begin{equation}
s ^ {\left( i \right)}= \begin{bmatrix} \nu\\ \eta \\ VARRTT \end{bmatrix}
\end{equation}
Pour le réseau total :\begin{equation}
S = \begin{bmatrix} s ^ {(0)} & \cdots & s^{(N)} \end{bmatrix}
\label{eq:modele:mat}
\end{equation}
Pour plus de détail, voir \cite{xiaoTCPDrincSmartCongestion2019}.
\end{frame}
\begin{frame}{Action}
On choisi $\mathbb{A} = \R ^ N$.
Soit $c_t$ le vecteur des \rto{}.
\pause
\begin{equation}
c_{t+1} ^ {\left( i \right) }= c_t ^{\left( i \right)}\cdot \begin{cases}
1 + a _ t ^ {\left( i \right)} & \text{si } a _ t ^{\left( i \right)} \ge 0 \\
\frac{1}{1 - a _ t ^ {\left( i \right)}} & \text{si } a _ t ^{\left( i \right)} < 0
\end{cases}
\end{equation}
\end{frame}
\begin{frame}{Récompense}
\begin{multline}
r = - \beta _ \nu \cdot \frac{\sum_{k=1}^N n^e _ k}{\sum_{k=1}^N n^t_k}
- \beta_\text{echec} \cdot n_\text{echec}
- \beta_{RTT} max_{k} \cdot \overline{RTT} _ k\\
+ \beta_\text{equite} \cdot \frac{\left[ \sum_{k = 1}^N \frac{n^e_k}{n^t_k} \right] ^ 2 }{N \cdot \sum_{k = 1}^N \left( \frac{n^e_k}{n^t_k} \right)^2 }
\end{multline}
\pause
\begin{block}{Équité}
Le dernier terme est l'équité, c'est une mesure de la répartition équitable des ressources. \cite{jainQuantitativeMeasureFairness1998}
\end{block}
\end{frame}
\section{Implémentation}
\begin{frame}{Module}
\begin{frame}{Modules}
\begin{columns}[c,onlytextwidth]
\column{0.30\textwidth}
\begin{figure}[htp]
\centering
\includegraphics[width=\textwidth]{puml/struc_base.png}
\caption{Utilisation des modules dans notre implémentation.}
\end{figure}
\column{0.65\textwidth}
\begin{description}
\item[CoAPthon] implémentation de \coap{} en python.
\item[TensorFlow] outils pour l'apprentissage machine.
\end{description}
\end{columns}
\end{frame}
\begin{frame}{Structure}
@ -98,27 +226,57 @@
\end{frame}
\begin{frame}{Les superviseurs}
\begin{columns}[c,onlytextwidth]
\column{0.45\textwidth}
\code{SuperviseurLocal} : \begin{itemize}
\item enregistre les \rtt{},
\item enregistre les retransmission,
\item genere le vecteur d'état,
\item fournit le \rto{} au client.
\end{itemize}
\column{0.45\textwidth}
\code{SuperviseurGlobal} : \begin{itemize}
\item genere la matrice,
\item distribue les actions.
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}{La classe \code{maquette}}
Fourni une interface GYM grâce à \code{maquette.step(action)}.
\end{frame}
\section{Tests}
\begin{frame}{Longueure de l'apprentissage}
\begin{frame}{Longueur de l'apprentissage}
L'apprentissage est trop long pour être tester sans simulateur.
\pause
\begin{exampleblock}{Ordre de grandeur}
Avec $1000$ :
$T_c = 30 s \Rightarrow T_p = 8 h$
Avec $10000$ :$T_c = 30 s \Rightarrow T_p = 3j $
\end{exampleblock}
\end{frame}
\begin{frame}{Distribution du \rtt{}}
\begin{figure}[htp]
\centering
\includegraphics[width=0.7 \textwidth]{png_img/distri_rtt_distant.png}
\caption{Distribution du \rtt{} et évolution de $RTT_L$ et $RTT_S$}
\label{fig:res:rtt_distant}
\end{figure}
\end{frame}
\begin{frame}{Validation de \varrtt{}}
\begin{figure}[htp]
\centering
\includegraphics[width=0.7 \textwidth]{png_img/varrtt_demo.png}
\caption{Évolution de $VARRTT$ lors d'un changement de charge du réseau.}
\label{fig:res:varrtt}
\end{figure}
\end{frame}
\begin{frame}[standout]{}
\begin{frame}[standout]{}
Conclusion
\end{frame}
\appendix