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

Private GIT Repository
Upgrade of parallelization slides
[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 formating (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   \smallskip
214   \begin{femtoBlock}
215     {In practice\\}
216     \begin{itemize}
217     \item Simulation code rewritten in C++
218     \item {\bf M}essage~{\bf P}assing~{\bf I}nterface~for~InterProcess~Communication
219     \end{itemize}
220   \end{femtoBlock}
221   \smallskip
222   \begin{femtoBlock}
223     {Test of new idea?\\}
224     \vspace{0.25cm}
225     \centering
226     First test with Matlab and then adapt to C++ with MPI
227   \end{femtoBlock}
228 \end{frame}
229
230 \begin{frame}{Finding Optimal Parameters} % Slide 9
231   % 1 - Quels parametres et pourquoi ?
232   \begin{femtoBlock}
233     {What parameters can be optimized?\\}
234     \begin{itemize}
235     \item Currently
236       \begin{itemize}
237       \item Pitch of the Read-Out
238       \item Amplitude parameters $\rightarrow \delta; \beta; \phi_0$
239       \item Regression parameter $\rightarrow \lambda$
240       \end{itemize}
241     \item Next
242       \begin{itemize}
243       \item Number of nodes significantly improving the solution (threshold)
244       \item Input data filter (convolutional filter for images)
245       \end{itemize}
246     \end{itemize}
247     \centering
248     Potentially any parameter can be optimized
249   \end{femtoBlock}
250   \smallskip
251   \begin{femtoBlock}
252     {Optimization heuristics\\}
253     \begin{itemize}
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
257     \end{itemize}
258   \end{femtoBlock}
259 \end{frame}
260
261 \begin{frame}{Performances of the parallel code} % Slide 10
262   \begin{femtoBlock}
263     {Speech recognition problem\\}
264     \begin{itemize}
265     \item Same WER $\rightarrow$ similar classification accuracy
266     \item Reduced computation time $\rightarrow$ speedup...
267     \end{itemize}
268     \centering
269     \vspace{0.25cm}
270     We can study problems with huge Matlab computation time
271   \end{femtoBlock}
272 \end{frame}
273
274 \section{Performances on the MNIST problem}
275
276 \begin{frame}{Application on the MNIST problem} % Slide 12
277   % 1 - Decrire ce qu'est le MNIST
278   % 2 - Setup de notre reservoir
279 \end{frame}
280
281 \begin{frame}{Comparison with other approaches} % Slide 13
282   % 1 - Convolutional Neural Networks
283   % 2 - Reservoir en pipeline (papier de 2015)
284 \end{frame}
285
286 \begin{frame}{Comparison with other approaches} % Slide 14
287   % Tableau recapitulant les performances
288 \end{frame}
289
290 \section{Conclusion and perspectives}
291
292 \begin{frame}{Conclusion and perspectives} % Slide 15
293
294
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
299   them\\
300   Test other large problems in simulation before in real\\
301   => Try to test many configuration and to find optimal parameters
302   
303 \end{frame}
304
305 \begin{frame}{Thank you for your attention}
306   \begin{center}
307     \LARGE Questions ?
308   \end{center}
309 \end{frame}
310   
311 %\begin{frame}{Titre du slide}
312
313 %       \begin{femtoBlock}
314 %               {Ceci est un femtoBlock\\}
315 %               Et ici le texte dans le femtoBlock
316 %               \begin{itemize}
317 %                       \item premier item
318 %                       \item deuxième item
319 %               \end{itemize}%
320 %       \end{femtoBlock}
321 %       \begin{femtoBlock}
322 %               {Autre femtoBlock\\}
323 %               \begin{itemize}
324 %                       \item bla bla
325 %                       \item bla bla
326 %               \end{itemize}
327 %       \end{femtoBlock}
328 %\end{frame}
329
330 %\section{Titre2}
331
332 %\begin{frame}{Autre titre}
333
334 %       \begin{femtoBlock}
335 %               {Utilisation possible de block (standard)\\}
336                 
337 %               \begin{block}{Titre du block}
338 %               texte contenu dans le block
339 %               \begin{itemize}
340 %                       \item bla bla
341 %                       \item bla bla
342 %               \end{itemize}
343 %               \end{block}
344 %       \end{femtoBlock}
345         
346 %\end{frame}
347  
348 \end{document}
349 %  _____ ___ _   _ 
350 % |  ___|_ _| \ | |
351 % | |_   | ||  \| |
352 % |  _|  | || |\  |
353 % |_|   |___|_| \_|
354 %