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

Private GIT Repository
594ad47468798fea9fe6739db11006fd85e3dec7
[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, {\bf 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 a new problem
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_t \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{itemize}
177     \item Numerical integration to compute the nonlinear transient
178       response (runge kuta in C)
179     \item[] $\Rightarrow$ computation of matrices $A$ and $B$
180     \item Computation of the Readout
181     \item Test of the solution (cross validation)
182     \end{itemize}
183   \end{femtoBlock}
184   % Inconvenient de ce code => temps de calcul
185   \begin{femtoBlock}
186     {Computation time\\}
187     12 min for 500 words recognition (2013)
188   \end{femtoBlock}
189 \end{frame}
190
191 \section{Parallelization and optimization}
192
193 \begin{frame}{Parallelization Scheme} % Slide 8
194   \begin{itemize}
195   \item Rewrite the code in C++
196   \item Parallelization with MPI (Message Passing Interface)
197   \item Computation of data response (sound, image) is independent so
198     it can be parallelized (computation of matrices A and B)
199    \item Different regression tests are also independent
200   \item Test of new idea? First test with matlab and then adapt to C++
201     with MPI
202   \end{itemize}
203   % 1 - Comment le paralleliser
204   % 2 - Langage et bibliotheque
205 \end{frame}
206
207 \begin{frame}{Finding the Optimal Parameters} % Slide 9
208   % 1 - Quels parametres et pourquoi ?
209   \begin{femtoBlock}
210     {What parameters can be optimized?\\}
211     Currently:
212     \begin{itemize}
213     \item Pitch 
214     \item Delta 
215     \item Beta 
216     \item Phi
217     \item Lambda
218     \end{itemize}
219     Next:
220     \begin{itemize}
221     \item Number of nodes that significantly improve the solution (threshold)
222     \item Input filter (convolutional filter for images)
223     \item Potentially any parameters
224     \end{itemize}
225
226   \end{femtoBlock}
227 \end{frame}
228
229 \begin{frame}{Finding the Optimal Parameters} % Slide 10
230   % 2 - Optimisation par recuit simule
231   \begin{femtoBlock}
232     {Optimization heuristics\\}
233     \begin{itemize}
234     \item Now: Simulated annealing
235     \item[] $\Rightarrow$ probabilistic technique for approximating the global optimum of a given function.
236     \item Next: maybe other heuristics
237     \end{itemize}
238   \end{femtoBlock}
239   \begin{femtoBlock}
240     {Similar results with the SDR problem\\}
241   \end{femtoBlock}
242 \end{frame}
243
244 \begin{frame}{Performances} % Slide 11
245   % 1 - Taux d'erreur en terme de classification
246   % 2 - Gain en temps d'execution / speedup curve
247 \end{frame}
248
249 \section{Performances on the MNIST problem}
250
251 \begin{frame}{Application on the MNIST problem} % Slide 12
252   % 1 - Decrire ce qu'est le MNIST
253   % 2 - Setup de notre reservoir
254 \end{frame}
255
256 \begin{frame}{Comparison with other approaches} % Slide 13
257   % 1 - Convolutional Neural Networks
258   % 2 - Reservoir en pipeline (papier de 2015)
259 \end{frame}
260
261 \begin{frame}{Comparison with other approaches} % Slide 14
262   % Tableau recapitulant les performances
263 \end{frame}
264
265 \section{Conclusion and perspectives}
266
267 \begin{frame}{Conclusion and perspectives} % Slide 15
268
269
270   Many perspectives (we are just beginning)
271   Improvement of the code\\
272   Test of many ideas : number of comities\\
273   One reservoir to learn and another one to learn error and correct
274   them\\
275   Test other large problems in simulation before in real\\
276   => Try to test many configuration and to find optimal parameters
277   
278 \end{frame}
279
280 \begin{frame}{Thank you for your attention}
281   \begin{center}
282     \LARGE Questions ?
283   \end{center}
284 \end{frame}
285   
286 %\begin{frame}{Titre du slide}
287
288 %       \begin{femtoBlock}
289 %               {Ceci est un femtoBlock\\}
290 %               Et ici le texte dans le femtoBlock
291 %               \begin{itemize}
292 %                       \item premier item
293 %                       \item deuxième item
294 %               \end{itemize}%
295 %       \end{femtoBlock}
296 %       \begin{femtoBlock}
297 %               {Autre femtoBlock\\}
298 %               \begin{itemize}
299 %                       \item bla bla
300 %                       \item bla bla
301 %               \end{itemize}
302 %       \end{femtoBlock}
303 %\end{frame}
304
305 %\section{Titre2}
306
307 %\begin{frame}{Autre titre}
308
309 %       \begin{femtoBlock}
310 %               {Utilisation possible de block (standard)\\}
311                 
312 %               \begin{block}{Titre du block}
313 %               texte contenu dans le block
314 %               \begin{itemize}
315 %                       \item bla bla
316 %                       \item bla bla
317 %               \end{itemize}
318 %               \end{block}
319 %       \end{femtoBlock}
320         
321 %\end{frame}
322  
323 \end{document}
324 %  _____ ___ _   _ 
325 % |  ___|_ _| \ | |
326 % | |_   | ||  \| |
327 % |  _|  | || |\  |
328 % |_|   |___|_| \_|
329 %