X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/presentation_reservoir.git/blobdiff_plain/c420ac31a3a51a6f1a318ba4e979fe02d7dcdb6d..0f62d4cc7837ade5e2b5f34a3d09a910bd211511:/reservoir.tex diff --git a/reservoir.tex b/reservoir.tex index d3ca368..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,31 +173,102 @@ Application on the MNIST problem} % Grandes lignes a partir du pdf de Laurent \begin{femtoBlock} {Main lines\\} + \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\\} + {Computation time\\} + \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 - % 1 - Comment le paralleliser - % 2 - Langage et bibliotheque + \begin{femtoBlock} + {Guidelines\\} + \begin{itemize} + \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} + \end{femtoBlock} + \smallskip + \begin{femtoBlock} + {In practice\\} + \begin{itemize} + \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 9 +\begin{frame}{Finding Optimal Parameters} % Slide 9 % 1 - Quels parametres et pourquoi ? + \begin{femtoBlock} + {What parameters can be optimized?\\} + \begin{itemize} + \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} + {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}{Finding the Optimal Parameters} % Slide 10 - % 2 - Optimisation par recuit simule -\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} @@ -220,6 +291,15 @@ Application on the MNIST problem} \begin{frame}{Conclusion and perspectives} % Slide 15 + + Many perspectives (we are just beginning) + Improvement of the code\\ + Test of many ideas : number of comities\\ + One reservoir to learn and another one to learn error and correct + them\\ + Test other large problems in simulation before in real\\ + => Try to test many configuration and to find optimal parameters + \end{frame} \begin{frame}{Thank you for your attention}