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

Private GIT Repository
new
[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   \begin{femtoBlock}
322     {Classification error for 10000 images\\}
323     \begin{itemize}
324     \item 1000 reservoirs of 2 neurons $\rightarrow$  error : 3.85\%\\
325     \item 1 reservoir of 2000 neurons $\rightarrow$ error : 7.14\%
326     \end{itemize}
327   \end{femtoBlock}
328   \begin{femtoBlock}
329     {Speedup\\}
330     \centering
331     \includegraphics[width=7.25cm]{speedup.pdf}
332   \end{femtoBlock}
333 \end{frame}
334
335 \begin{frame}{Exploring ways to improve the results} % Slide 13
336   \begin{femtoBlock}
337     {Using the parallel NTC code\\}
338      \begin{itemize}
339     \item using many small reservoirs and using one read out\\
340     \item using a simple 3x3 convolution
341     \item best result: around 3\%
342     \end{itemize}
343     % 1 - Partitionnement d'un reservoir en plein de petits sous-reservoirs
344     % 2 - Pre-traitement pour convolution
345   \end{femtoBlock}
346   \smallskip
347   \begin{femtoBlock}
348     {Using the Ogger library\\}
349     % Parler des travaux de Niels
350     % 1 - Augmentation du jeu de donnees par des images deformees
351     % 2 - Comites de reservoir
352   \end{femtoBlock}
353 \end{frame}
354
355 \begin{frame}{Comparison with other approaches} % Slide 14
356   \begin{femtoBlock}
357     {Convolutional Neural Networks\\}
358     % 1 - Convolutional Neural Networks
359   \end{femtoBlock}
360   \begin{femtoBlock}
361     {Multilayer reservoir computing}
362     % 2 - Reservoir en pipeline (papier des belges de 2015)
363   \end{femtoBlock}
364 \end{frame}
365
366 \begin{frame}{Comparison with other approaches} % Slide 15
367   % Tableau recapitulant les performances
368 \end{frame}
369
370 \section{Conclusion and perspectives}
371
372 \begin{frame}{Conclusion and perspectives} % Slide 16
373   \begin{femtoBlock}
374     {Results\\}
375     \begin{itemize}
376     \item A parallel code allowing fast simulations
377     \item An evaluation on the MNIST problem
378     \end{itemize}
379   \end{femtoBlock}
380   \smallskip
381   \begin{femtoBlock}
382     {Future works\\}
383     \begin{itemize}
384     \item Further code improvement
385     \item Use of several reservoirs
386       \begin{itemize}
387       \item Committees
388       \item Correct errors of a reservoir by another one
389       \end{itemize}
390     \item Other applications
391       \begin{itemize}
392       \item Simulation of lung motion
393       \item Airflow prediction
394       \item etc.
395       \end{itemize}
396     \end{itemize}
397   \end{femtoBlock}
398   %Many perspectives (we are just beginning)
399   %Improvement of the code\\
400   %Test of many ideas : number of comities\\
401   %One reservoir to learn and another one to learn error and correct
402   %them\\
403   %Test other large problems in simulation before in real\\
404   %=> Try to test many configuration and to find optimal parameters
405 \end{frame}
406
407 \begin{frame}{Thank you for your attention}
408   \begin{center}
409     \LARGE Questions ?
410   \end{center}
411 \end{frame}
412   
413 %\begin{frame}{Titre du slide}
414
415 %       \begin{femtoBlock}
416 %               {Ceci est un femtoBlock\\}
417 %               Et ici le texte dans le femtoBlock
418 %               \begin{itemize}
419 %                       \item premier item
420 %                       \item deuxième item
421 %               \end{itemize}%
422 %       \end{femtoBlock}
423 %       \begin{femtoBlock}
424 %               {Autre femtoBlock\\}
425 %               \begin{itemize}
426 %                       \item bla bla
427 %                       \item bla bla
428 %               \end{itemize}
429 %       \end{femtoBlock}
430 %\end{frame}
431
432 %\section{Titre2}
433
434 %\begin{frame}{Autre titre}
435
436 %       \begin{femtoBlock}
437 %               {Utilisation possible de block (standard)\\}
438                 
439 %               \begin{block}{Titre du block}
440 %               texte contenu dans le block
441 %               \begin{itemize}
442 %                       \item bla bla
443 %                       \item bla bla
444 %               \end{itemize}
445 %               \end{block}
446 %       \end{femtoBlock}
447         
448 %\end{frame}
449  
450 \end{document}
451 %  _____ ___ _   _ 
452 % |  ___|_ _| \ | |
453 % | |_   | ||  \| |
454 % |  _|  | || |\  |
455 % |_|   |___|_| \_|
456 %