3 \usepackage{beamerthemefemto}
5 \usepackage[latin1]{inputenc}
6 \usepackage[T1]{fontenc}
7 \usepackage{amsfonts,amsmath,amssymb,stmaryrd}
8 \usepackage[frenchb]{babel}
12 \DeclareGraphicsExtensions{.jpg, .png , .pdf, .bmp, .pdftex}
15 \title{Parallelization and optimization \\
16 of the neuromorphic simulation code.
17 Application on the MNIST problem}
19 \author{Rapha\"el Couturier, Michel Salomon}
21 \institute[FEMTO-ST Institute]{\textit{FEMTO-ST - DISC Department - AND Team}}
23 \date{November 2 \& 3, 2015 / Besançon \\
24 Dynamical Systems and Brain-inspired Information Processing Workshop}
26 % ____ _____ ____ _ _ _____
27 % | _ \| ____| __ )| | | |_ _|
28 % | | | | _| | _ \| | | | | |
29 % | |_| | |___| |_) | |_| | | |
30 % |____/|_____|____/ \___/ |_|
34 \setbeamertemplate{background}{\titrefemto}
40 \setbeamertemplate{background}{\pagefemto}
42 \begin{frame}{Introduction} % Slide 1
43 % 1 - Photonic implementation of reservoir computing through NLDDE in Laurent's team
45 % -> Success of reservoir computing
46 % -> Hardware implementation allowing fast processing
47 % 3 - Simulation by a Matlab code - pre and post-processing by computer
48 % -> Drawback = redhibitory computation time
52 \item Emergence of hardware RC implementation
54 Analogue electronic; {\bf optoelectronic}; fully optical
56 {\scriptsize Larger {\em et al.} - {\it Photonic information processing beyond Turing: an optoelectronic
57 implementation of reservoir computing}, Opt. Express 20, 3241-3249 (2012)}
60 \item Study processing conditions
61 \item Tuning parameters
62 \item Pre and post-processing by computer
70 \item Study the concept of Reservoir Computing
71 \item Design a faster simulation code
72 \item Apply it to new problems
77 \begin{frame}{Outline}
78 \setbeamertemplate{section in toc}[sections numbered]
82 \section{Neuromorphic processing}
84 \begin{frame}{Delay Dynamics as a Reservoir} % Slide 2
86 % Reprendre le schema de la figure 2 du pdf NTC de Laurent
87 {Spatio-temporal viewpoint of a DDE ({\NoAutoSpaceBeforeFDP \tiny Larger {\em et al.} - Opt. Express 20:3 2012})\\}
89 \includegraphics[width=7.5cm]{ntc.png}
91 \item $\delta \tau \rightarrow \mbox{temporal spacing}; \tau_D \rightarrow \mbox{time delay}$
92 \item $f(x) \rightarrow \mbox{nonlinear transformation}; h(t) \rightarrow \mbox{impulse response}$
95 % Slide 21 + equation a retard du NTC
97 {Computer simulation with an Ikeda type NLDDE}
99 \tau \frac{dx}{dt}(t)=-x(t)+\beta \sin^2 [\alpha\,x(t-\tau_D)+\rho\,u_{\mbox{in}}(t-\tau_D)+\Phi_0]
102 $\alpha \rightarrow \mbox{feedback scaling}; \beta \rightarrow \mbox{gain}; \rho \rightarrow \mbox{amplification};
103 \Phi_0 \rightarrow \mbox{offset}$
107 \begin{frame}{Photonic Reservoir Computing} % Slide 3
109 {Optoelectronic setup ({\NoAutoSpaceBeforeFDP \tiny Larger~{\em et al.}~-~Opt.~Express~20:3~2012})\\}
112 \includegraphics[width=7.5cm]{photonic-RC.png}
116 {Spoken digits recognition task}
118 \item Input data $\rightarrow$ {\small matrix obtained by Lyon ear model transformation}
119 \item Output data $\rightarrow$ {\small matrix describing the spoken digit}
124 \begin{frame}{Spoken Digits Recognition} % Slide 4
126 {Input (pre-processing) \\}
128 \item Lyon ear model transformation \\
129 $\rightarrow$ 60 samples $\times$ 86 frequency channels
130 \item Channels connection to reservoir (400 neurons) \\
131 $\rightarrow$ sparse and random
134 \includegraphics[width=7.5cm]{sdr.png}
137 {Reservoir transient response\\}
140 Temporal series recorded for Read-Out processing
144 \begin{frame}{Spoken Digits Recognition} % Slide 5
146 {Output (post-processing)\\}
148 \item Training of the Read-Out \\
149 $\rightarrow$ optimize $W^R$ matrix for the digits of the training set
150 \item Regression problem for $A \times W^R \approx B$
153 W^R_{\mbox{opt}}=\left(A^TA - \lambda I\right)^{-1} A^T B
157 \item $A$ = concatenates reservoir transient response for each digit
158 \item $B$ = concatenates target matrices
165 \item Dataset of 500 speech samples $\rightarrow$ 5 female speakers
166 \item 20-fold cross-validation $\rightarrow$ 20 $\times$ 25 test samples
167 \item Performance evaluation $\rightarrow$ {\bf W}ord {\bf E}rror {\bf R}ate
172 \begin{frame}{Matlab Simulation Code} % Slide 7
173 % Grandes lignes a partir du pdf de Laurent
179 \item Input data formating (1D~vector; sampling period $\rightarrow \delta \tau$)
180 \item $W^I$ initialization (randomly; normalization)
182 \item Concatenation of 1D~vectors $\rightarrow$ batch processing
183 \item Nonlinear transient computation
185 \item Numerical integration using a Runge-Kutta C routine
186 \item Computation of matrices $A$ and $B$
188 \item Training of the Read-out $\rightarrow$ More-Penrose matrix inversion
189 \item Testing of the solution (cross-validation)
193 % Inconvenient de ce code => temps de calcul
198 12 min for 306~``neurons'' on a quad-core i7 1,8~GHz (2013)
202 \section{Parallelization and optimization}
204 \begin{frame}{Parallelization Scheme} % Slide 8
208 \item Reservoir response is independent, whatever the data \\
209 $\rightarrow$ computation of matrices A and B can be parallelized
210 \item Different regression tests are also independent
217 \item Simulation code rewritten in C++
218 \item {\bf M}essage~{\bf P}assing~{\bf I}nterface~for~InterProcess~Communication
223 {Test of new idea?\\}
226 First test with Matlab and then adapt to C++ with MPI
230 \begin{frame}{Finding Optimal Parameters} % Slide 9
231 % 1 - Quels parametres et pourquoi ?
233 {What parameters can be optimized?\\}
237 \item Pitch of the Read-Out
238 \item Amplitude parameters $\rightarrow \delta; \beta; \phi_0$
239 \item Regression parameter $\rightarrow \lambda$
243 \item Number of nodes significantly improving the solution (threshold)
244 \item Input data filter (convolutional filter for images)
248 Potentially any parameter can be optimized
252 {Optimization heuristics\\}
254 \item Currently $\rightarrow$ simulated annealing \\
255 {\small (probabilistic global search controlled by a cooling schedule)}
256 \item Next $\rightarrow$ other metaheuristics like evolutionay algorithms
261 \begin{frame}{Performances of the parallel code} % Slide 10
263 {Speech recognition problem\\}
265 \item Same WER $\rightarrow$ similar classification accuracy
266 \item Reduced computation time $\rightarrow$ speedup...
270 We can study problems with huge Matlab computation time
274 \section{Performances on the MNIST problem}
276 \begin{frame}{Application on the MNIST problem} % Slide 12
277 % 1 - Decrire ce qu'est le MNIST
278 % 2 - Setup de notre reservoir
281 \begin{frame}{Comparison with other approaches} % Slide 13
282 % 1 - Convolutional Neural Networks
283 % 2 - Reservoir en pipeline (papier de 2015)
286 \begin{frame}{Comparison with other approaches} % Slide 14
287 % Tableau recapitulant les performances
290 \section{Conclusion and perspectives}
292 \begin{frame}{Conclusion and perspectives} % Slide 15
295 Many perspectives (we are just beginning)
296 Improvement of the code\\
297 Test of many ideas : number of comities\\
298 One reservoir to learn and another one to learn error and correct
300 Test other large problems in simulation before in real\\
301 => Try to test many configuration and to find optimal parameters
305 \begin{frame}{Thank you for your attention}
311 %\begin{frame}{Titre du slide}
314 % {Ceci est un femtoBlock\\}
315 % Et ici le texte dans le femtoBlock
318 % \item deuxième item
322 % {Autre femtoBlock\\}
332 %\begin{frame}{Autre titre}
335 % {Utilisation possible de block (standard)\\}
337 % \begin{block}{Titre du block}
338 % texte contenu dans le block