slideshow.tex (7666B)
1 \documentclass{beamer} 2 \usetheme{Warsaw} 3 \usepackage[T1]{fontenc} 4 \usepackage[utf8]{inputenc} 5 \usepackage[french]{babel} 6 \usepackage{tikz} 7 \usepackage{tikz-uml} 8 \usetikzlibrary{positioning,chains,fit,shapes,calc,arrows,decorations.text} 9 10 \title[MI024 Sujet 7]{MI024~: PIAD\\Vers une machine d'apprentissage persistante} 11 \author{Étienne Simon} 12 \date\today 13 14 \newcommand{\nmlp}{\textsc{nmlp}} 15 16 \begin{document} 17 18 \begin{frame} 19 \titlepage 20 \end{frame} 21 22 \begin{frame}{Problématique} 23 Des modèles entrainés pendent plusieurs heures sont jetés après avoir été analysés. 24 \vspace{0.5em} 25 \begin{itemize} 26 \item Gaspillage du temps de calcul. 27 \end{itemize} 28 \vspace{2em} 29 \pause 30 Travail à effectuer~: 31 \vspace{0.5em} 32 \begin{itemize}[<+->] 33 \item Créer une plateforme d'apprentissage persistante à partir de \nmlp{} 34 \vspace{0.5em} 35 \item Implémentant un modèle en particulier… 36 \end{itemize} 37 \end{frame} 38 39 \begin{frame}{Contexte} 40 Apprentissage sur des données hétérogènes. 41 42 \begin{figure}[h] 43 \centering 44 \scalebox{0.5}{ 45 \begin{tikzpicture} 46 [coder/.style={->,ultra thick,postaction={decorate,decoration={raise=1ex,text along path,text align=center,text={|\sffamily|#1}}}}] 47 48 \node [draw,rectangle,rounded corners,minimum size=3cm] (latent space) {Espace latent \(Z\)}; 49 \path (latent space.south)+(-4,-4) node [draw,rectangle,minimum size=2cm] (view 1) {Vue \(X_1\)}; 50 \path (latent space.south)+(0,-4) node [draw,rectangle,minimum size=2cm] (view 2) {Vue \(X_2\)}; 51 \path (latent space.south)+(4,-4) node [draw,rectangle,minimum size=2cm] (view 3) {Vue \(X_3\)}; 52 \draw [coder=encodeur] (view 1.95) to [bend left=15] (latent space.-125); 53 \draw [coder=d{é}codeur] (latent space.-115) to [bend left=15] (view 1.85); 54 \draw [coder=encodeur] (view 2.95) to [bend left=15] (latent space.-95); 55 \draw [coder=d{é}codeur] (latent space.-85) to [bend left=15] (view 2.85); 56 \draw [coder=encodeur] (view 3.95) to [bend left=15] (latent space.-65); 57 \draw [coder=d{é}codeur] (latent space.-55) to [bend left=15] (view 3.85); 58 \draw (latent space.center)+(0,1) node {\(\times z_1\)}; 59 \draw (latent space.center)+(1,0.5) node {\(\times z_2\)}; 60 \draw (latent space.center)+(-0.5,-1) node {\(\times z_3\)}; 61 \draw (view 1.center)+(0.5,0.5) node {\scriptsize\(\times x_1^1\)}; 62 \draw (view 1.center)+(-0.5,-0.5) node {\scriptsize\(\times x_1^2\)}; 63 \draw (view 2.center)+(-0.5,0.5) node {\scriptsize\(\times x_2^3\)}; 64 \draw (view 2.center)+(0,-0.5) node {\scriptsize\(\times x_2^2\)}; 65 \draw (view 3.center)+(0.5,0.5) node {\scriptsize\(\times x_3^2\)}; 66 \end{tikzpicture} 67 } 68 \caption{Relation entre les différents espaces} 69 \label{fig:latent_space_presentation} 70 \end{figure} 71 \vspace{-2em} 72 \pause 73 \begin{itemize}[<+->] 74 \item Données avec plusieurs vues. 75 E.g. le mot «~chat~» et l'image d'un chat sont deux vues du concept {\emph chat}. % TODO mettre l'image d'un chat = WIN 76 \item Utilisation de \emph{MLP}s pour l'apprentissage des encodeurs et décodeurs. 77 Minimisation de \( \Delta(decoder_3(encoder_1(x_1^2)), x_3^2) \). 78 \end{itemize} 79 \end{frame} 80 81 \begin{frame}{Solution} 82 \begin{figure}[h] 83 \centering 84 \scalebox{0.6}{ 85 \begin{tikzpicture} 86 [action/.style={->,ultra thick,postaction={decorate,decoration={raise=1ex,text along path,text align=center,text={|\sffamily|#1}}}}] 87 \node [draw, cylinder, shape border rotate=90, minimum height=4cm, minimum width=3.5cm, aspect=2.5, label={[above]Bases de données}] (database) {}; 88 \path (database.center)+(0,0.75) node [draw] (views) {Vues}; 89 \path (database.center)+(0,-0.75) node [draw,align=center] (data) {Données \\ d'apprentissage}; 90 \path (database.west)+(-3,-1) node [draw, rectangle, rounded corners] (supervisor) {Superviseur}; 91 \draw [<->, ultra thick] (views) to (supervisor); 92 \draw [->, ultra thick] (data) to (supervisor); 93 \umlactor[x=-10,y=1.8]{Administrateur} 94 \draw [action=initialise] (Administrateur) to (views); 95 \draw [action=configure] (Administrateur) to (supervisor); 96 \end{tikzpicture} 97 } 98 \caption{Diagramme (informel) présentant l'architecture de la solution logicielle.} 99 \label{fig:architecture} 100 \end{figure} 101 Deux opérations~: 102 \begin{itemize} 103 \item L'initialisation des vues se fait avec {\tt view\_ctl}. 104 \item La configuration du superviseur se fait avec {\tt supervisor}. 105 \end{itemize} 106 \end{frame} 107 108 \begin{frame}{Détails} 109 Le binaire {\tt view\_ctl} est l'interface de la base de données, permettant de~: 110 \begin{itemize} 111 \pause 112 \item Créer une nouvelle vue (création interactive ou par fichier de configuration de séquences de modules \nmlp{}) 113 \pause 114 \item Lister les vues 115 \pause 116 \item Supprimer une vue 117 \end{itemize} 118 \pause 119 {\tt supervisor} est l'interface des algorithmes d'apprentissage et de test, permettant~: 120 \pause 121 \begin{itemize}[<+->] 122 \item L'agrégation de vues en un modèle. 123 \item Apprendre ce modèle sur un jeu de données (met à jour les vues dans la base de données.) 124 \item Tester ce modèle sur un jeu de données. 125 \end{itemize} 126 \end{frame} 127 128 \begin{frame}[fragile]{Démonstration} 129 \scalebox{0.7}{\texttt{\$ view\_ctl add 'demo in' fourclass\_input\_5.cfg -d demodb}} \newline 130 \scalebox{0.7}{\texttt{\$ view\_ctl add 'demo out' fourclass\_output\_5.cfg -d demodb}} \newline 131 \pause 132 \scalebox{0.7}{\texttt{\$ supervisor \textbf{test} -d demodb fourclass\_test supervisor.cfg '4 in' '4 out'}} \newline 133 \scalebox{0.7}{\texttt{Error from view fourclass input to view fourclass input: 1.52195}} \newline 134 \scalebox{0.7}{\texttt{Error from view fourclass input to view fourclass output: 1.04658}} \newline 135 \scalebox{0.7}{\texttt{Error from view fourclass output to view fourclass input: 2.09861}} \newline 136 \scalebox{0.7}{\texttt{Error from view fourclass output to view fourclass output: 2.9957}} \newline 137 \pause 138 \scalebox{0.7}{\texttt{\$ supervisor \textbf{train} -d demodb fourclass\_train supervisor.cfg '4 in' '4 out'}} \newline 139 \pause 140 \scalebox{0.7}{\texttt{\$ supervisor \textbf{test} -d demodb fourclass\_test supervisor.cfg '4 in' '4 out'}} \newline 141 \scalebox{0.7}{\texttt{Error from view fourclass input to view fourclass input: 0.00351782}} \newline 142 \scalebox{0.7}{\texttt{Error from view fourclass input to view fourclass output: 0.655877}} \newline 143 \scalebox{0.7}{\texttt{Error from view fourclass output to view fourclass input: 0.518831}} \newline 144 \scalebox{0.7}{\texttt{Error from view fourclass output to view fourclass output: 1.97268e-06}} \newline 145 \end{frame} 146 147 \begin{frame}{\emph{Livrable}} 148 Quelques notes sur le \emph{livrable}~: 149 \vspace{0.5em} 150 \begin{itemize} 151 \item L'ensemble du projet est sur un dépôt Mercurial. 152 \vspace{0.5em} 153 \item Le code est entièrement commenté et une documentation développeur est compilable avec Doxygen. 154 \vspace{0.5em} 155 \item Présence de tests unitaires. 156 \vspace{0.5em} 157 \item Aucune dépendance n'a été ajouté à \nmlp{} (usage extensif de Boost) 158 \vspace{0.5em} 159 \item Les exécutables ainsi que la documentation sont compilables avec un simple script CMake. 160 \end{itemize} 161 \end{frame} 162 163 % Conclusion, ouverture 164 % Manque dataset, mais c'est ok, code cool et bien documenté. 165 \begin{frame}{Conclusion} 166 Le sujet a été un peu modifié en cours de route. 167 \vspace{1em} 168 \pause 169 170 \textbf{It works!} 171 \vspace{1em} 172 \pause 173 174 Quelques points négatifs~: 175 \vspace{0.5em} 176 \begin{itemize}[<+->] 177 \item Les tests ont été réalisés sur des problèmes de classification seulement.\\ 178 L'apprentissage sur du multi-vues est déjà codé, mais non testé. 179 \vspace{0.5em} 180 \item L'algorithme d'apprentissage est assez lent (non optimisé). 181 \end{itemize} 182 \end{frame} 183 184 % Questions ? 185 \begin{frame} 186 \begin{center} 187 \Huge Questions ? 188 \end{center} 189 \end{frame} 190 191 \end{document}