From 0f62d4cc7837ade5e2b5f34a3d09a910bd211511 Mon Sep 17 00:00:00 2001 From: Michel Salomon Date: Thu, 29 Oct 2015 15:08:01 +0100 Subject: [PATCH] Upgrade of parallelization slides --- reservoir.tex | 121 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 73 insertions(+), 48 deletions(-) diff --git a/reservoir.tex b/reservoir.tex index 594ad47..48ecec8 100644 --- a/reservoir.tex +++ b/reservoir.tex @@ -16,7 +16,7 @@ of the neuromorphic simulation code. Application on the MNIST problem} -\author{Rapha\"el Couturier, {\bf Michel Salomon}} +\author{Rapha\"el Couturier, Michel Salomon} \institute[FEMTO-ST Institute]{\textit{FEMTO-ST - DISC Department - AND Team}} @@ -69,7 +69,7 @@ Application on the MNIST problem} \begin{itemize} \item Study the concept of Reservoir Computing \item Design a faster simulation code - \item Apply it to a new problem + \item Apply it to new problems \end{itemize} \end{femtoBlock} \end{frame} @@ -88,7 +88,7 @@ Application on the MNIST problem} \centering \includegraphics[width=7.5cm]{ntc.png} \begin{itemize} - \item $\delta_t \rightarrow \mbox{temporal spacing}; \tau_D \rightarrow \mbox{time delay}$ + \item $\delta \tau \rightarrow \mbox{temporal spacing}; \tau_D \rightarrow \mbox{time delay}$ \item $f(x) \rightarrow \mbox{nonlinear transformation}; h(t) \rightarrow \mbox{impulse response}$ \end{itemize} \end{femtoBlock} @@ -173,77 +173,102 @@ Application on the MNIST problem} % Grandes lignes a partir du pdf de Laurent \begin{femtoBlock} {Main lines\\} - \begin{itemize} - \item Numerical integration to compute the nonlinear transient - response (runge kuta in C) - \item[] $\Rightarrow$ computation of matrices $A$ and $B$ - \item Computation of the Readout - \item Test of the solution (cross validation) - \end{itemize} + \begin{enumerate} + \item Pre-processing + \begin{itemize} + \item Input data formating (1D~vector; sampling period $\rightarrow \delta \tau$) + \item $W^I$ initialization (randomly; normalization) + \end{itemize} + \item Concatenation of 1D~vectors $\rightarrow$ batch processing + \item Nonlinear transient computation + \begin{itemize} + \item Numerical integration using a Runge-Kutta C routine + \item Computation of matrices $A$ and $B$ + \end{itemize} + \item Training of the Read-out $\rightarrow$ More-Penrose matrix inversion + \item Testing of the solution (cross-validation) + \end{enumerate} \end{femtoBlock} + \smallskip % Inconvenient de ce code => temps de calcul \begin{femtoBlock} {Computation time\\} - 12 min for 500 words recognition (2013) + \vspace{0.125cm} + \centering + 12 min for 306~``neurons'' on a quad-core i7 1,8~GHz (2013) \end{femtoBlock} \end{frame} \section{Parallelization and optimization} \begin{frame}{Parallelization Scheme} % Slide 8 - \begin{itemize} - \item Rewrite the code in C++ - \item Parallelization with MPI (Message Passing Interface) - \item Computation of data response (sound, image) is independent so - it can be parallelized (computation of matrices A and B) - \item Different regression tests are also independent - \item Test of new idea? First test with matlab and then adapt to C++ - with MPI - \end{itemize} - % 1 - Comment le paralleliser - % 2 - Langage et bibliotheque -\end{frame} - -\begin{frame}{Finding the Optimal Parameters} % Slide 9 - % 1 - Quels parametres et pourquoi ? \begin{femtoBlock} - {What parameters can be optimized?\\} - Currently: + {Guidelines\\} \begin{itemize} - \item Pitch - \item Delta - \item Beta - \item Phi - \item Lambda + \item Reservoir response is independent, whatever the data \\ + $\rightarrow$ computation of matrices A and B can be parallelized + \item Different regression tests are also independent \end{itemize} - Next: + \end{femtoBlock} + \smallskip + \begin{femtoBlock} + {In practice\\} \begin{itemize} - \item Number of nodes that significantly improve the solution (threshold) - \item Input filter (convolutional filter for images) - \item Potentially any parameters + \item Simulation code rewritten in C++ + \item {\bf M}essage~{\bf P}assing~{\bf I}nterface~for~InterProcess~Communication \end{itemize} - + \end{femtoBlock} + \smallskip + \begin{femtoBlock} + {Test of new idea?\\} + \vspace{0.25cm} + \centering + First test with Matlab and then adapt to C++ with MPI \end{femtoBlock} \end{frame} -\begin{frame}{Finding the Optimal Parameters} % Slide 10 - % 2 - Optimisation par recuit simule +\begin{frame}{Finding Optimal Parameters} % Slide 9 + % 1 - Quels parametres et pourquoi ? \begin{femtoBlock} - {Optimization heuristics\\} + {What parameters can be optimized?\\} \begin{itemize} - \item Now: Simulated annealing - \item[] $\Rightarrow$ probabilistic technique for approximating the global optimum of a given function. - \item Next: maybe other heuristics + \item Currently + \begin{itemize} + \item Pitch of the Read-Out + \item Amplitude parameters $\rightarrow \delta; \beta; \phi_0$ + \item Regression parameter $\rightarrow \lambda$ + \end{itemize} + \item Next + \begin{itemize} + \item Number of nodes significantly improving the solution (threshold) + \item Input data filter (convolutional filter for images) + \end{itemize} \end{itemize} + \centering + Potentially any parameter can be optimized \end{femtoBlock} + \smallskip \begin{femtoBlock} - {Similar results with the SDR problem\\} + {Optimization heuristics\\} + \begin{itemize} + \item Currently $\rightarrow$ simulated annealing \\ + {\small (probabilistic global search controlled by a cooling schedule)} + \item Next $\rightarrow$ other metaheuristics like evolutionay algorithms + \end{itemize} \end{femtoBlock} \end{frame} -\begin{frame}{Performances} % Slide 11 - % 1 - Taux d'erreur en terme de classification - % 2 - Gain en temps d'execution / speedup curve +\begin{frame}{Performances of the parallel code} % Slide 10 + \begin{femtoBlock} + {Speech recognition problem\\} + \begin{itemize} + \item Same WER $\rightarrow$ similar classification accuracy + \item Reduced computation time $\rightarrow$ speedup... + \end{itemize} + \centering + \vspace{0.25cm} + We can study problems with huge Matlab computation time + \end{femtoBlock} \end{frame} \section{Performances on the MNIST problem} -- 2.39.5