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

Private GIT Repository
Outline of the missing slides content
[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     % 1 - Partitionnement d'un reservoir en plein de petits sous-reservoirs
339     % 2 - Pre-traitement pour convolution
340   \end{femtoBlock}
341   \smallskip
342   \begin{femtoBlock}
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
347   \end{femtoBlock}
348 \end{frame}
349
350 \begin{frame}{Comparison with other approaches} % Slide 14
351   \begin{femtoBlock}
352     {Convolutional Neural Networks\\}
353     % 1 - Convolutional Neural Networks
354   \end{femtoBlock}
355   \begin{femtoBlock}
356     {Multilayer reservoir computing}
357     % 2 - Reservoir en pipeline (papier des belges de 2015)
358   \end{femtoBlock}
359 \end{frame}
360
361 \begin{frame}{Comparison with other approaches} % Slide 15
362   % Tableau recapitulant les performances
363 \end{frame}
364
365 \section{Conclusion and perspectives}
366
367 \begin{frame}{Conclusion and perspectives} % Slide 16
368   \begin{femtoBlock}
369     {Results\\}
370     \begin{itemize}
371     \item A parallel code allowing fast simulations
372     \item An evaluation on the MNIST problem
373     \end{itemize}
374   \end{femtoBlock}
375   \smallskip
376   \begin{femtoBlock}
377     {Future works\\}
378     \begin{itemize}
379     \item Further code improvement
380     \item Use of several reservoirs
381       \begin{itemize}
382       \item Committees
383       \item Correct errors of a reservoir by another one
384       \end{itemize}
385     \item Other applications
386       \begin{itemize}
387       \item Simulation of lung motion
388       \item Airflow prediction
389       \item etc.
390       \end{itemize}
391     \end{itemize}
392   \end{femtoBlock}
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
397   %them\\
398   %Test other large problems in simulation before in real\\
399   %=> Try to test many configuration and to find optimal parameters
400 \end{frame}
401
402 \begin{frame}{Thank you for your attention}
403   \begin{center}
404     \LARGE Questions ?
405   \end{center}
406 \end{frame}
407   
408 %\begin{frame}{Titre du slide}
409
410 %       \begin{femtoBlock}
411 %               {Ceci est un femtoBlock\\}
412 %               Et ici le texte dans le femtoBlock
413 %               \begin{itemize}
414 %                       \item premier item
415 %                       \item deuxième item
416 %               \end{itemize}%
417 %       \end{femtoBlock}
418 %       \begin{femtoBlock}
419 %               {Autre femtoBlock\\}
420 %               \begin{itemize}
421 %                       \item bla bla
422 %                       \item bla bla
423 %               \end{itemize}
424 %       \end{femtoBlock}
425 %\end{frame}
426
427 %\section{Titre2}
428
429 %\begin{frame}{Autre titre}
430
431 %       \begin{femtoBlock}
432 %               {Utilisation possible de block (standard)\\}
433                 
434 %               \begin{block}{Titre du block}
435 %               texte contenu dans le block
436 %               \begin{itemize}
437 %                       \item bla bla
438 %                       \item bla bla
439 %               \end{itemize}
440 %               \end{block}
441 %       \end{femtoBlock}
442         
443 %\end{frame}
444  
445 \end{document}
446 %  _____ ___ _   _ 
447 % |  ___|_ _| \ | |
448 % | |_   | ||  \| |
449 % |  _|  | || |\  |
450 % |_|   |___|_| \_|
451 %