]> AND Private Git Repository - presentation_reservoir.git/blob - reservoir.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ajout 1er speedup
[presentation_reservoir.git] / reservoir.tex
1 \documentclass{beamer}
2
3 \usepackage{beamerthemefemto}
4
5 \usepackage[latin1]{inputenc}
6 \usepackage[T1]{fontenc}
7 \usepackage{amsfonts,amsmath,amssymb,stmaryrd}
8 \usepackage[frenchb]{babel}
9
10
11 \usepackage{graphicx}
12 \DeclareGraphicsExtensions{.jpg, .png , .pdf, .bmp, .pdftex}
13
14
15 \title{Parallelization and optimization \\
16 of the neuromorphic simulation code.
17 Application on the MNIST problem} 
18
19 \author{Rapha\"el Couturier, Michel Salomon}
20
21 \institute[FEMTO-ST Institute]{\textit{FEMTO-ST - DISC Department - AND Team}}
22
23 \date{November 2 \& 3, 2015 / Besançon \\
24   Dynamical Systems and Brain-inspired Information Processing Workshop}
25
26 %  ____  _____ ____  _   _ _____ 
27 % |  _ \| ____| __ )| | | |_   _|
28 % | | | |  _| |  _ \| | | | | |  
29 % | |_| | |___| |_) | |_| | | |  
30 % |____/|_____|____/ \___/  |_|  
31
32
33 \begin{document}
34 \setbeamertemplate{background}{\titrefemto}
35
36 \begin{frame}[plain]
37 \titlepage
38 \end{frame}
39  
40 \setbeamertemplate{background}{\pagefemto}
41
42 \begin{frame}{Introduction} % Slide 1
43   % 1 - Photonic implementation of reservoir computing through NLDDE in Laurent's team
44   % 2 - Motivation
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
49   \begin{femtoBlock}
50     {Background}
51     \begin{itemize}
52     \item Emergence of hardware RC implementation
53       \begin{center}
54         Analogue electronic; {\bf optoelectronic}; fully optical
55       \end{center}
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)}
58     \item Simulation code 
59       \begin{itemize}
60       \item Study processing conditions
61       \item Tuning parameters
62       \item Pre and post-processing by computer
63       \end{itemize}
64     \end{itemize}
65   \end{femtoBlock}
66   \medskip
67   \begin{femtoBlock}
68     {Motivation}
69     \begin{itemize}
70     \item Study the concept of Reservoir Computing
71     \item Design a faster simulation code
72     \item Apply it to new problems
73     \end{itemize}
74   \end{femtoBlock}
75 \end{frame}
76
77 \begin{frame}{Outline}
78 \setbeamertemplate{section in toc}[sections numbered] 
79 \tableofcontents
80 \end{frame}
81
82 \section{Neuromorphic processing}
83
84 \begin{frame}{Delay Dynamics as a Reservoir} % Slide 2
85   \begin{femtoBlock}
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})\\}
88     \centering
89     \includegraphics[width=7.5cm]{ntc.png}
90     \begin{itemize}
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}$
93     \end{itemize}
94   \end{femtoBlock}
95   % Slide 21 + equation a retard du NTC
96   \begin{femtoBlock}
97     {Computer simulation with an Ikeda type NLDDE}
98     $$
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]
100     $$
101     \centering
102     $\alpha \rightarrow \mbox{feedback scaling}; \beta \rightarrow \mbox{gain}; \rho \rightarrow \mbox{amplification};
103     \Phi_0 \rightarrow \mbox{offset}$
104   \end{femtoBlock}
105 \end{frame}
106
107 \begin{frame}{Photonic Reservoir Computing} % Slide 3
108   \begin{femtoBlock}
109     {Optoelectronic setup ({\NoAutoSpaceBeforeFDP \tiny Larger~{\em et al.}~-~Opt.~Express~20:3~2012})\\}
110     \vspace{0.25cm}
111     \centering
112     \includegraphics[width=7.5cm]{photonic-RC.png}
113     \vspace{0.25cm}
114   \end{femtoBlock}
115   \begin{femtoBlock}
116     {Spoken digits recognition task}
117     \begin{itemize}
118     \item Input data $\rightarrow$ {\small matrix obtained by Lyon ear model transformation}
119     \item Output data $\rightarrow$ {\small matrix describing the spoken digit}
120     \end{itemize}
121   \end{femtoBlock}
122 \end{frame}
123
124 \begin{frame}{Spoken Digits Recognition} % Slide 4
125   \begin{femtoBlock}
126     {Input (pre-processing) \\}
127     \begin{itemize}
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 
132     \end{itemize}
133     \centering
134     \includegraphics[width=7.5cm]{sdr.png}
135   \end{femtoBlock}
136   \begin{femtoBlock}
137     {Reservoir transient response\\}
138     \vspace{0.125cm}
139     \centering
140     Temporal series recorded for Read-Out processing
141   \end{femtoBlock}
142 \end{frame}
143
144 \begin{frame}{Spoken Digits Recognition} % Slide 5
145   \begin{femtoBlock}
146     {Output (post-processing)\\}
147     \begin{itemize}
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$
151       \vspace{-0.25cm}
152       $$
153       W^R_{\mbox{opt}}=\left(A^TA - \lambda I\right)^{-1} A^T B
154       $$
155       \vspace{-0.5cm}
156       \begin{itemize}
157       \item $A$ = concatenates reservoir transient response for each digit
158       \item $B$ = concatenates target matrices
159       \end{itemize}
160     \end{itemize}
161   \end{femtoBlock}
162   \begin{femtoBlock}
163     {Testing\\}
164     \begin{itemize}
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
168     \end{itemize}
169   \end{femtoBlock}
170 \end{frame}
171
172 \begin{frame}{Matlab Simulation Code} % Slide 7
173   % Grandes lignes a partir du pdf de Laurent
174   \begin{femtoBlock}
175     {Main lines\\}
176     \begin{enumerate}
177     \item Pre-processing
178       \begin{itemize}
179       \item Input data formatting (1D~vector; sampling period $\rightarrow \delta \tau$)
180       \item $W^I$ initialization (randomly; normalization)
181       \end{itemize}
182     \item Concatenation of 1D~vectors $\rightarrow$ batch processing
183     \item Nonlinear transient computation
184       \begin{itemize}
185       \item Numerical integration using a Runge-Kutta C routine
186       \item Computation of matrices $A$ and $B$
187       \end{itemize}
188     \item Training of the Read-out $\rightarrow$ More-Penrose matrix inversion
189     \item Testing of the solution (cross-validation)
190     \end{enumerate}
191   \end{femtoBlock}
192   \smallskip
193   % Inconvenient de ce code => temps de calcul
194   \begin{femtoBlock}
195     {Computation time\\}
196     \vspace{0.125cm}
197     \centering
198     12 min for 306~``neurons'' on a quad-core i7 1,8~GHz (2013)
199   \end{femtoBlock}
200 \end{frame}
201
202 \section{Parallelization and optimization}
203
204 \begin{frame}{Parallelization Scheme} % Slide 8
205   \begin{femtoBlock}
206     {Guidelines\\}
207     \begin{itemize}
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
211     \end{itemize}
212   \end{femtoBlock}
213 \end{frame}
214
215 \begin{frame}{Parallelization Scheme} % Slide 9
216   \begin{femtoBlock}
217     {In practice\\}
218     \begin{itemize}
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
223     \end{itemize}
224   \end{femtoBlock}
225   \smallskip
226   \begin{femtoBlock}
227     {Performance on speech recognition problem\\}
228     \begin{itemize}
229     \item Same WER $\rightarrow$ similar classification accuracy
230     \item Reduced computation time
231     \end{itemize}
232     \centering
233     \vspace{0.125cm}
234     {\bf We can study problems with huge Matlab computation time}
235   \end{femtoBlock}
236   \medskip
237   \begin{femtoBlock}
238     {Testing a new idea?\\}
239     \vspace{0.25cm}
240     \centering
241     First test with Matlab and then adapt to C++ with MPI
242   \end{femtoBlock}
243 \end{frame}
244
245 \begin{frame}{Finding Optimal Parameters} % Slide 10
246   % 1 - Quels parametres et pourquoi ?
247   \begin{femtoBlock}
248     {What parameters can be optimized?\\}
249     \begin{itemize}
250     \item Currently
251       \begin{itemize}
252       \item Pitch of the Read-Out
253       \item Amplitude parameters $\rightarrow \delta; \beta; \phi_0$
254       \item Regression parameter $\rightarrow \lambda$
255       \end{itemize}
256     \item Next
257       \begin{itemize}
258       \item Number of nodes significantly improving the solution (threshold)
259       \item Input data filter (convolution filter for images)
260       \end{itemize}
261     \end{itemize}
262     \centering
263     Potentially any parameter can be optimized
264   \end{femtoBlock}
265   \smallskip
266   \begin{femtoBlock}
267     {Optimization heuristics\\}
268     \begin{itemize}
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
272     \end{itemize}
273   \end{femtoBlock}
274 \end{frame}
275
276 \section{Performances on the MNIST problem}
277
278 \begin{frame}{Application on the MNIST problem} % Slide 11
279   \begin{femtoBlock}
280     {Task of handwritten digits recognition\\}
281     \centering
282     \vspace{0.125cm}
283     National Institute of Standards and Technology database
284     \begin{itemize}
285     \item Training dataset $\rightarrow$ american census bureau employees
286     \item Test dataset $\rightarrow$ american high school students
287     \end{itemize}
288   \end{femtoBlock}
289   \smallskip
290   \begin{femtoBlock}
291     {Mixed-NIST database is widely used in machine learning\\}
292     \centering
293     \vspace{0.125cm}
294     Mixing of both datasets and improved images
295     \begin{columns}
296       \begin{column}{7.5cm}
297         \begin{itemize}
298         \item Datasets
299           \begin{itemize}
300           \item Training $\rightarrow$ 60,000 samples
301           \item Test $\rightarrow$ 10,000 samples
302           \end{itemize}
303         \item Grayscale Images      
304           \begin{itemize}
305           \item Normalized to fit into a $20\times20$ pixel bounding box
306           \item Centered and anti-aliased
307           \end{itemize}
308         \end{itemize}
309       \end{column}
310       \begin{column}{3cm}
311         \centering
312         \includegraphics[width=3cm]{mnist.png}
313       \end{column}
314     \end{columns}
315   \end{femtoBlock}
316   % 1 - Decrire ce qu'est le MNIST
317   % 2 - Setup de notre reservoir
318 \end{frame}
319
320 \begin{frame}{Performances of the parallel code} % Slide 12
321   % To be completed
322   \includegraphics[width=7.5cm]{speedup.pdf}
323 \end{frame}
324
325 \begin{frame}{Exploring ways to improve the results} % Slide 13
326   % Tableau recapitulant les performances
327 \end{frame}
328
329 \begin{frame}{Comparison with other approaches} % Slide 14
330   % 1 - Convolutional Neural Networks
331   % 2 - Reservoir en pipeline (papier de 2015)
332 \end{frame}
333
334 \begin{frame}{Comparison with other approaches} % Slide 15
335   % Tableau recapitulant les performances
336 \end{frame}
337
338 \section{Conclusion and perspectives}
339
340 \begin{frame}{Conclusion and perspectives} % Slide 16
341   \begin{femtoBlock}
342     {Results\\}
343     \begin{itemize}
344     \item A parallel code allowing fast simulations
345     \item An evaluation on the MNIST problem
346     \end{itemize}
347   \end{femtoBlock}
348   \begin{femtoBlock}
349     {Future works\\}
350     \begin{itemize}
351     \item Further code improvement
352     \item Use of several reservoirs
353       \begin{itemize}
354       \item Committees
355       \item Correct errors of a reservoir by another one
356       \end{itemize}
357     \end{itemize}
358   \end{femtoBlock}
359   %Many perspectives (we are just beginning)
360   %Improvement of the code\\
361   %Test of many ideas : number of comities\\
362   %One reservoir to learn and another one to learn error and correct
363   %them\\
364   %Test other large problems in simulation before in real\\
365   %=> Try to test many configuration and to find optimal parameters
366 \end{frame}
367
368 \begin{frame}{Thank you for your attention}
369   \begin{center}
370     \LARGE Questions ?
371   \end{center}
372 \end{frame}
373   
374 %\begin{frame}{Titre du slide}
375
376 %       \begin{femtoBlock}
377 %               {Ceci est un femtoBlock\\}
378 %               Et ici le texte dans le femtoBlock
379 %               \begin{itemize}
380 %                       \item premier item
381 %                       \item deuxième item
382 %               \end{itemize}%
383 %       \end{femtoBlock}
384 %       \begin{femtoBlock}
385 %               {Autre femtoBlock\\}
386 %               \begin{itemize}
387 %                       \item bla bla
388 %                       \item bla bla
389 %               \end{itemize}
390 %       \end{femtoBlock}
391 %\end{frame}
392
393 %\section{Titre2}
394
395 %\begin{frame}{Autre titre}
396
397 %       \begin{femtoBlock}
398 %               {Utilisation possible de block (standard)\\}
399                 
400 %               \begin{block}{Titre du block}
401 %               texte contenu dans le block
402 %               \begin{itemize}
403 %                       \item bla bla
404 %                       \item bla bla
405 %               \end{itemize}
406 %               \end{block}
407 %       \end{femtoBlock}
408         
409 %\end{frame}
410  
411 \end{document}
412 %  _____ ___ _   _ 
413 % |  ___|_ _| \ | |
414 % | |_   | ||  \| |
415 % |  _|  | || |\  |
416 % |_|   |___|_| \_|
417 %