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 formatting (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
215 \begin{frame}{Parallelization Scheme} % Slide 9
219 \item Simulation code rewritten in C++
220 \item Eigen C++ library for linear algebra operations
221 \item InterProcess~Communication \\
222 $\rightarrow$ {\bf M}essage~{\bf P}assing~{\bf I}nterface
227 {Performance on speech recognition problem\\}
229 \item Same WER $\rightarrow$ similar classification accuracy
230 \item Reduced computation time
234 {\bf We can study problems with huge Matlab computation time}
238 {Testing a new idea?\\}
241 First test with Matlab and then adapt to C++ with MPI
245 \begin{frame}{Finding Optimal Parameters} % Slide 10
246 % 1 - Quels parametres et pourquoi ?
248 {What parameters can be optimized?\\}
252 \item Pitch of the Read-Out
253 \item Amplitude parameters $\rightarrow \delta; \beta; \phi_0$
254 \item Regression parameter $\rightarrow \lambda$
258 \item Number of nodes significantly improving the solution (threshold)
259 \item Input data filter (convolution filter for images)
263 Potentially any parameter can be optimized
267 {Optimization heuristics\\}
269 \item Currently $\rightarrow$ simulated annealing \\
270 {\small (probabilistic global search controlled by a cooling schedule)}
271 \item Next $\rightarrow$ other metaheuristics like evolutionary algorithms
276 \section{Performances on the MNIST problem}
278 \begin{frame}{Application on the MNIST problem} % Slide 11
280 {Task of handwritten digits recognition\\}
283 National Institute of Standards and Technology database
285 \item Training dataset $\rightarrow$ american census bureau employees
286 \item Test dataset $\rightarrow$ american high school students
291 {Mixed-NIST database is widely used in machine learning\\}
294 Mixing of both datasets and improved images
296 \begin{column}{7.5cm}
300 \item Training $\rightarrow$ 60,000 samples
301 \item Test $\rightarrow$ 10,000 samples
303 \item Grayscale Images
305 \item Normalized to fit into a $20\times20$ pixel bounding box
306 \item Centered and anti-aliased
312 \includegraphics[width=3cm]{mnist.png}
316 % 1 - Decrire ce qu'est le MNIST
317 % 2 - Setup de notre reservoir
320 \begin{frame}{Performances of the parallel code} % Slide 12
322 {Classification error for 10000 images\\}
324 \item 1000 reservoirs of 2 neurons $\rightarrow$ error : 3.85\%\\
325 \item 1 reservoir of 2000 neurons $\rightarrow$ error : 7.14\%
331 \includegraphics[width=7.25cm]{speedup.pdf}
335 \begin{frame}{Exploring ways to improve the results} % Slide 13
337 {Using the parallel NTC code\\}
338 % 1 - Partitionnement d'un reservoir en plein de petits sous-reservoirs
339 % 2 - Pre-traitement pour convolution
343 {Using the Ogger library\\}
344 % Parler des travaux de Niels
345 % 1 - Augmentation du jeu de donnees par des images deformees
346 % 2 - Comites de reservoir
350 \begin{frame}{Comparison with other approaches} % Slide 14
352 {Convolutional Neural Networks\\}
353 % 1 - Convolutional Neural Networks
356 {Multilayer reservoir computing}
357 % 2 - Reservoir en pipeline (papier des belges de 2015)
361 \begin{frame}{Comparison with other approaches} % Slide 15
362 % Tableau recapitulant les performances
365 \section{Conclusion and perspectives}
367 \begin{frame}{Conclusion and perspectives} % Slide 16
371 \item A parallel code allowing fast simulations
372 \item An evaluation on the MNIST problem
379 \item Further code improvement
380 \item Use of several reservoirs
383 \item Correct errors of a reservoir by another one
385 \item Other applications
387 \item Simulation of lung motion
388 \item Airflow prediction
393 %Many perspectives (we are just beginning)
394 %Improvement of the code\\
395 %Test of many ideas : number of comities\\
396 %One reservoir to learn and another one to learn error and correct
398 %Test other large problems in simulation before in real\\
399 %=> Try to test many configuration and to find optimal parameters
402 \begin{frame}{Thank you for your attention}
408 %\begin{frame}{Titre du slide}
411 % {Ceci est un femtoBlock\\}
412 % Et ici le texte dans le femtoBlock
415 % \item deuxième item
419 % {Autre femtoBlock\\}
429 %\begin{frame}{Autre titre}
432 % {Utilisation possible de block (standard)\\}
434 % \begin{block}{Titre du block}
435 % texte contenu dans le block