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

Private GIT Repository
22d5258134aa457f6a65b4edd2cc0e38a53d6ba8
[hdrcouchot.git] / chaosANN.tex
1 % \section{Introduction}
2 % \label{S1}
3
4 Les réseaux de neurones chaotiques ont été étudiés à de maintes reprises 
5 par le passé en raison notamment de leurs applications potentielles:
6 %les mémoires associatives~\cite{Crook2007267}  
7 les  composants utils à la  sécurité comme les fonctions de 
8 hachage~\cite{Xiao10},
9 le tatouage numérique~\cite{1309431,Zhang2005759}
10 ou les schémas de chiffrement~\cite{Lian20091296}.  
11 Dans tous ces cas, l'emploi de fonctions chaotiques est motivé par 
12 leur comportement imprévisibile et proche de l'aléa. 
13
14
15 Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs 
16 principes. Des neurones modifiant leur état en suivant une fonction non 
17 linéaire son par exemple appelés neurones chaotiques~\cite{Crook2007267}.
18 L'architecture de réseaux de neurones de type Perceptron multi-couches
19 (MLP) n'iterent quant à eux, pas nécesssairement de fonctions chaotiques.
20 Il a cependant été démontré  que ce sont des approximateurs 
21 universels~\cite{Cybenko89,DBLP:journals/nn/HornikSW89}.   
22 Ils permettent, dans certains cas, de simuler des comportements 
23 physiques chaotiques comme le  circuit de Chua~\cite{dalkiran10}.  
24 Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
25 la fonction de transfert de cette famille de réseau celle 
26 d'initialisation sont toutes les deux définies à l'aide de 
27 fonctions chaotiques. 
28
29
30
31
32
33 Ces réseaux de neurones partagent le fait qu'ils sont qualifiés de 
34 ``chaotiques'' sous prétexte qu'ils embarquent une fonction de ce type 
35 et ce sans aucune preuve rigoureuse. Ce chapitre caractérise la 
36 classe des réseaux de neurones MLP chaotiques. Il  
37 s'intéresse ensuite à l'étude de prévisibilité de systèmes dynamiques
38 discrets chaotiques par cette famille de MLP.
39
40 \JFC{revoir plan}
41
42 The remainder of this research  work is organized as follows. The next
43 section is devoted to the basics of Devaney's chaos.  Section~\ref{S2}
44 formally  describes  how  to  build  a neural  network  that  operates
45 chaotically.  Section~\ref{S3} is devoted to the dual case of checking
46 whether  an existing neural  network is  chaotic or  not.  Topological
47 properties of chaotic neural networks are discussed in Sect.~\ref{S4}.
48 The  Section~\ref{section:translation}  shows  how to  translate  such
49 iterations  into  an Artificial  Neural  Network  (ANN),  in order  to
50 evaluate the  capability for this  latter to learn  chaotic behaviors.
51 This  ability  is  studied in  Sect.~\ref{section:experiments},  where
52 various ANNs try to learn two  sets of data: the first one is obtained
53 by chaotic iterations while the  second one results from a non-chaotic
54 system.  Prediction success rates are  given and discussed for the two
55 sets.  The paper ends with a conclusion section where our contribution
56 is summed up and intended future work is exposed.
57
58
59 \section{Un réseau de neurones chaotique au sens de Devaney}
60 \label{S2}
61
62 On considère une fonction 
63 $f:\Bool^n\to\Bool^n$ telle que  $\textsc{giu}(f)$ est fortement connexe.
64 Ainsi $G_{f_u}$ est chaotique d'après le théorème~\ref{Th:CaracIC}.
65
66 On considère ici le schéma unaire défini par l'équation (\ref{eq:asyn}).
67 On construit un perceptron multi-couche associé à la fonction  
68 $F_{f_u}$. 
69 Plus précisément, pour chaque entrée 
70  $(x,s)   \in  \mathds{B}^n \times [n]$,
71 la couche de sortie doit générer $F_{f_u}(x,s)$.   
72 On peut ainsi lier la couche de sortie avec celle d'entrée pour représenter 
73 les dépendance entre deux itérations successives.
74 On obtient une réseau de neurones dont le comportement est le suivant 
75 (voir Figure.~\ref{Fig:perceptron}):
76
77 \begin{itemize}
78 \item   Le réseau est initialisé avec le vecteur d'entrée
79   $\left(x^0,S^0\right)  \mathds{B}^n \times [n]$      
80   et calcule le  vecteur de sortie 
81   $x^1=F_{f_u}\left(x^0,S^0\right)$. 
82   Ce vecteur est publié comme une sortie et est aussi retournée sur la couche d'entrée 
83   à travers les liens de retours.
84 \item Lorsque le réseau est  activé à la $t^{th}$  itération, l'état du 
85   système $x^t  \in \mathds{B}^n$ reçu depuis la couche de sortie ainsi que le 
86   premier terme de la  sequence $(S^t)^{t  \in \Nats}$
87   (\textit{i.e.},  $S^0  \in [n]$)  servent à construire le nouveau vecteur de sortie.
88   Ce nouveau vecteur, qui représente le nouvel état du système dynamique, satisfait:
89   \begin{equation}
90     x^{t+1}=F_{f_u}(x^t,S^0) \in \mathds{B}^n \enspace .
91   \end{equation}
92 \end{itemize}
93
94 \begin{figure}
95   \centering
96   \includegraphics[scale=0.625]{images/perceptron}
97   \caption{Un perceptron équivalent  aux itérations unitaires}
98   \label{Fig:perceptron}
99 \end{figure}
100
101 Le comportement de ce réseau de neurones est tel que lorsque l'état 
102 initial est composé de $x^0~\in~\mathds{B}^n$ et d'une séquence
103  $(S^t)^{t  \in \Nats}$, alors la séquence  contenant les vecteurs successifs 
104 publiés $\left(x^t\right)^{t \in \mathds{N}^{\ast}}$ est exactement celle produite 
105 par les itérations unaires décrites à la section~\ref{sec:TIPE12}.
106 Mathématiquement, cela signifie que si on utilise les mêmes vecteurs d'entrées
107 les deux approches génèrent successivement les mêmes sorties.
108 En d'autres termes ce réseau de neurones modélise le comportement de  
109 $G_{f_u}$,  dont les itérations sont chaotiques sur $\mathcal{X}_u$.
110 On peut donc le  qualifier de chaotique au sens de Devaney.
111
112 \section{Vérifier si un réseau de neurones est chaotique}
113 \label{S3}
114 On s'intéresse maintenant au cas où l'on dispose d'un
115 réseau de neurones de type perceptron multi-couches
116 dont on cherche à savoir s'il est chaotique (parce qu'il a par exemple été 
117 déclaré comme tel) au sens de Devaney. 
118 On considère de plus que sa topologie est la suivante:
119 l'entrée est constituée de  $n$ bits et un entier, la sortie est constituée de $n$ bits
120 et chaque sortie est liée à une entrée par une boucle.
121
122 \begin{itemize}
123 \item Le réseau est initialisé avec  $n$~bits
124    $\left(x^0_1,\dots,x^0_n\right)$ et une valeur entière $S^0 \in [n]$.
125 \item  A l'itération~$t$,     le vecteur 
126   $\left(x^t_1,\dots,x^t_n\right)$  permet de construire les $n$~bits 
127   servant de sortie $\left(x^{t+1}_1,\dots,x^{t+1}_n\right)$.
128 \end{itemize}
129
130 Le comportement de ce type de réseau de neurones peut être prouvé comme 
131 étant chaotique en suivant la démarche énoncée maintenant.
132 On nomme tout d'abord $F:    \mathds{B}^n  \times [n] \rightarrow
133 \mathds{B}^n$     la      fonction qui associe  
134 au vecteur 
135 $\left(\left(x_1,\dots,x_n\right),s\right)    \in   \mathds{B}^n \times[n]$ 
136 le vecteur 
137 $\left(y_1,\dots,y_n\right)       \in       \mathds{B}^n$, où
138 $\left(y_1,\dots,y_n\right)$  sont les sorties du réseau neuronal
139 àaprès l'initialisation de la couche d'entrée avec 
140 $\left(s,\left(x_1,\dots, x_n\right)\right)$.  Ensuite, on définie $f:
141 \mathds{B}^n       \rightarrow      \mathds{B}^n$  telle que 
142 $f\left(x_1,x_2,\dots,x_n\right)$ est égal à 
143 \begin{equation}
144 \left(F\left(\left(x_1,x_2,\dots,x_n\right),1\right),\dots,
145   F\left(\left(x_1,x_2,\dots,x_n\right)\right),n\right) \enspace .
146 \end{equation}
147 Ainsi pour chaque $j$, $1 \le j \le n$, on a 
148 $f_j\left(x_1,x_2,\dots,x_n\right) = 
149 F\left(\left(x_1,x_2,\dots,x_n\right),j\right)$.
150 Si ce réseau de neurones est initialisé avec 
151 $\left(x_1^0,\dots,x_n^0\right)$   et $S   \in    [n]^{\mathds{N}}$, 
152 il produit exactement les même sorties que les itérations de  $F_{f_u}$ avec une 
153 condition initiale $\left((x_1^0,\dots,  x_n^0),S\right)  \in  \mathds{B}^n \times [n]^{\mathds{N}}$.
154 Les itérations de $F_{f_u}$ 
155 sont donc un modèle formel de cette classe de réseau de neurones.
156 Pour vérifier si un de ces représentants est chaotique, il suffit ainsi 
157 de vérifier si le graphe d'itérations
158 $\textsc{giu}(f)$ est fortement connexe.
159
160
161 \section{Un réseau de neurones peut-il approximer un 
162 des itération unaires chaotiques?}
163
164 Cette section s'intéresse à étudier le comportement d'un réseau de neurones 
165 face à des itérations unaires chaotiques, comme définies à 
166 la section~\ref{sec:TIPE12}.
167 Plus précésment, on considère dans cette partie une fonction  dont le graphe 
168 des itérations unaires est fortement connexe et une séquence dans 
169 $[n]^{\mathds{N}}$. On cherche à construire un réseau de neurones
170 qui approximerait les itérations de la fonction $G_{f_u}$ comme définie 
171 à l'équation~(\ref{eq:sch:unaire}).
172
173 Sans perte de généralité, on considère dans ce qui suit une instance
174 de de fonction à quatre éléments.
175
176 \subsection{Construction du réseau} 
177 \label{section:translation}
178
179 On considère par exemple les deux fonctions $f$ and $g$ de0 $\Bool^4$
180 dans $\Bool^4$ définies par:
181
182 \begin{eqnarray*}
183 f(x_1,x_2,x_3,x_4) &= &
184 (x_1(x_2+x_4)+ \overline{x_2}x_3\overline{x_4},
185 x_2,
186 x_3(\overline{x_1}.\overline{x_4}+x_2x_4+x_1\overline{x_2}),
187 x_4+\overline{x_2}x_3) \\
188 g(x_1,x_2,x_3,x_4) &= &
189 (\overline{x_1},
190 \overline{x_2}+ x_1.\overline{x_3}.\overline{x_4},
191 \overline{x_3}(x_1 + x_2+x_4),
192 \overline{x_4}(x_1 + \overline{x_2}+\overline{x_3}))
193 \end{eqnarray*}
194 On peut vérifier facilement que le graphe $\textsc{giu}(f)$ 
195 n'est pas fortement connexe car $(1,1,1,1)$ est un point fixe de $f$
196 tandis que le graphe $\textsc{giu}(g)$ l'est.   
197
198 L'entrée du réseau est une paire de la forme 
199 $(x,(S^t)^{t  \in  \Nats})$ et sa sortie correspondante est
200 de la forme  $\left(F_{h_u}(S^0,x), \sigma((S^t)^{t          \in
201   \Nats})\right)$ comme définie à l'équation~(\ref{eq:sch:unaire}).
202
203 On s'intéresse d'abord aux différentes manières de  
204 mémoriser des configurations. On en considère deux principalement.
205 Dans le premier cas, on considère une entrée booléenne par élément
206 tandis que dans le second cas, les configurations  sont mémorisées comme 
207 des entiers naturels. Dans ce dernier cas, une approche naïve pourrait 
208 consister à attribuer à chaque configuration de $\Bool^n$ 
209 l'entier naturel naturel correspondant.
210 Cependant, une telle représentation rapproche 
211 arbitrairement des configurations diamétralement
212 opposées dans le $n$-cube comme  une puissance de
213 deux et la configuration immédiatement précédente: 10000 serait modélisée 
214 par 16 et  et 01111 par 15 alros que leur distance de Hamming est 15.
215 De manière similaire, ce codage éloigne des configurations qui sont 
216 très proches: par exemple 10000 et 00000 ont une distance de Hamming 
217 de 1 et sont respectivement représentées par 16 et 0.
218 Pour ces raisons, le codage retenu est celui des codes de Gray~\cite{Gray47}.
219
220 Concentrons nous sur la traduction de la stratégie.
221 Il n'est naturellement pas possible de traduire une stragtégie 
222 infinie quelconque à l'aide d'un nombre fini d'éléments.
223 On se restreint donc à des stratégies de taille 
224 $l \in \llbracket 2,k\rrbracket$, où $k$ est un parametre défini
225 initialement. 
226 Chaque stratégie est mémorisée comme un entier naturel exprimé en base 
227 $n+1$: à chaque itération, soit aucun élément n'est modifié, soit un 
228 élément l'est. 
229 Enfin, on donne une dernière entrée: $m  \in \llbracket
230 1,l-1\rrbracket$, qui est le nombre d'itérations successives que l'on applique 
231 en commençant à $x$. 
232 Les sorties (stratégies et configurations) sont mémorisées 
233 selon les mêmes règles.
234
235 Concentrons nous sur la complexité du problèmew.
236 Chaque entrée, de l'entrée-sortie de l'outil est un triplet 
237 composé d'une configuration $x$, d'un extrait  $S$ de la stratégie à 
238 itérer de taille $l \in \llbracket 2, k\rrbracket$ et d'un nombre $m \in  \llbracket 1, l-1\rrbracket$ d'itérations à exécuter.
239 Il y a  $2^n$  configurations $x$ et  $n^l$ stratégies de
240 taille $l$. 
241 De plus, pour une  configuration donnée, il y a 
242 $\omega = 1 \times n^2 +  2 \times n^3 + \ldots+ (k-1) \times n^k$
243 manières d'écrire le couple $(m,S)$. Il n'est pas difficile d'établir que 
244 \begin{equation}
245 \displaystyle{(n-1) \times \omega = (k-1)\times n^{k+1} - \sum_{i=2}^k n^i} \nonumber
246 \end{equation}
247 donc
248 \begin{equation}
249 \omega =
250 \dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2} \enspace . \nonumber
251 \end{equation}
252 \noindent
253 Ainsi le nombre de paire d'entrée-sortie pour les réseaux de neurones considérés
254 est 
255 $$
256 2^n \times \left(\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2}\right) \enspace .
257 $$
258 Par exemple, pour $4$   éléments binaires et une stratégie d'au plus 
259 $3$~termes on obtient 2304 couples d'entrée-sorties.
260
261 \subsection{Expérimentations}
262 \label{section:experiments}
263 On se focalise dans cette section sur l'entraînement d'un perceptron 
264 multi-couche pour apprendre des itérations chaotiques. Ce type de réseau
265 ayant déjà été évalué avec succès dans la prédiction de 
266 séries chaotiques temporelles. En effet, les auteurs de~\cite{dalkiran10} 
267 ont montré qu'un MLP pouvait apprendre la dynamique du circuit de Chua.
268 Ce réseau avec rétropropagation est composé de  deux couches 
269 et entrainé à l'aide d'une  propagation arrière Bayesienne.
270
271 In  these experiments  we consider  MLPs  having one  hidden layer  of
272 sigmoidal  neurons  and  output   neurons  with  a  linear  activation
273 function.     They    are    trained    using    the    Limited-memory
274 Broyden-Fletcher-Goldfarb-Shanno quasi-newton algorithm in combination
275 with the Wolfe linear search.  The training process is performed until
276 a maximum number of epochs  is reached.  To prevent overfitting and to
277 estimate the  generalization performance we use  holdout validation by
278 splitting the  data set into  learning, validation, and  test subsets.
279 These subsets  are obtained through  random selection such  that their
280 respective size represents 65\%, 10\%, and 25\% of the whole data set.
281
282 Several  neural  networks  are  trained  for  both  iterations  coding
283 schemes.   In  both  cases   iterations  have  the  following  layout:
284 configurations of  four components and  strategies with at  most three
285 terms. Thus, for  the first coding scheme a data  set pair is composed
286 of 6~inputs and 5~outputs, while for the second one it is respectively
287 3~inputs and 2~outputs. As noticed at the end of the previous section,
288 this  leads to  data sets  that  consist of  2304~pairs. The  networks
289 differ  in the  size of  the hidden  layer and  the maximum  number of
290 training epochs.  We remember that  to evaluate the ability  of neural
291 networks to  predict a  chaotic behavior for  each coding  scheme, the
292 trainings of two data sets, one of them describing chaotic iterations,
293 are compared.
294
295 Thereafter we give,  for the different learning setups  and data sets,
296 the mean prediction success rate obtained for each output. Such a rate
297 represents the percentage of  input-output pairs belonging to the test
298 subset  for  which  the   corresponding  output  value  was  correctly
299 predicted.   These values are  computed considering  10~trainings with
300 random  subsets  construction,   weights  and  biases  initialization.
301 Firstly, neural networks having  10 and 25~hidden neurons are trained,
302 with   a  maximum   number  of   epochs  that   takes  its   value  in
303 $\{125,250,500\}$  (see Tables~\ref{tab1} and  \ref{tab2}).  Secondly,
304 we refine the second coding scheme by splitting the output vector such
305 that   each  output   is  learned   by  a   specific   neural  network
306 (Table~\ref{tab3}). In  this last  case, we increase  the size  of the
307 hidden layer up to 40~neurons and we consider larger number of epochs.
308
309 \begin{table}[htbp!]
310 \caption{Prediction success rates for configurations expressed as boolean vectors.}
311 \label{tab1}
312 \centering {\small
313 \begin{tabular}{|c|c||c|c|c|}
314 \hline 
315 \multicolumn{5}{|c|}{Networks topology: 6~inputs, 5~outputs, and one hidden layer} \\
316 \hline
317 \hline
318 \multicolumn{2}{|c||}{Hidden neurons} & \multicolumn{3}{c|}{10 neurons} \\
319 \cline{3-5} 
320 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ 
321 \hline
322 \multirow{6}{*}{\rotatebox{90}{Chaotic}}&Output~(1) & 90.92\% & 91.75\% & 91.82\% \\ 
323 & Output~(2) & 69.32\% & 78.46\% & 82.15\% \\
324 & Output~(3) & 68.47\% & 78.49\% & 82.22\% \\
325 & Output~(4) & 91.53\% & 92.37\% & 93.4\% \\
326 & Config. & 36.10\% & 51.35\% & 56.85\% \\
327 & Strategy~(5) & 1.91\% & 3.38\% & 2.43\% \\
328 \hline
329 \multirow{6}{*}{\rotatebox{90}{Non-chaotic}}&Output~(1) & 97.64\% & 98.10\% & 98.20\% \\
330 & Output~(2) & 95.15\% & 95.39\% & 95.46\% \\
331 & Output~(3) & 100\% & 100\% & 100\% \\
332 & Output~(4) & 97.47\% & 97.90\% & 97.99\% \\
333 & Config. & 90.52\% & 91.59\% & 91.73\% \\
334 & Strategy~(5) & 3.41\% & 3.40\% & 3.47\% \\
335 \hline
336 \hline
337 \multicolumn{2}{|c||}{Hidden neurons} & \multicolumn{3}{c|}{25 neurons} \\ %& \multicolumn{3}{|c|}{40 neurons} \\
338 \cline{3-5} 
339 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ %& 125 & 250 & 500 \\ 
340 \hline
341 \multirow{6}{*}{\rotatebox{90}{Chaotic}}&Output~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
342 & Output~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
343 & Output~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
344 & Output~(4) & 91.61\% & 92.34\% & 93.47\% \\% & 82.77\% & 92.93\% & 93.48\% \\
345 & Config. & 48.82\% & 67.80\% & 70.97\% \\%& 49.46\% & 68.94\% & 71.11\% \\
346 & Strategy~(5) & 2.62\% & 3.43\% & 3.78\% \\% & 3.10\% & 3.10\% & 3.03\% \\
347 \hline
348 \multirow{6}{*}{\rotatebox{90}{Non-chaotic}}&Output~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
349 & Output~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
350 & Output~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
351 & Output~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
352 & Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
353 & Strategy~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
354 \hline
355 \end{tabular}
356 }
357 \end{table}
358
359 Table~\ref{tab1}  presents the  rates  obtained for  the first  coding
360 scheme.   For  the chaotic  data,  it can  be  seen  that as  expected
361 configuration  prediction becomes  better  when the  number of  hidden
362 neurons and maximum  epochs increases: an improvement by  a factor two
363 is observed (from 36.10\% for 10~neurons and 125~epochs to 70.97\% for
364 25~neurons  and  500~epochs). We  also  notice  that  the learning  of
365 outputs~(2)   and~(3)  is   more  difficult.    Conversely,   for  the
366 non-chaotic  case the  simplest training  setup is  enough  to predict
367 configurations.  For all these  feedforward network topologies and all
368 outputs the  obtained results for the non-chaotic  case outperform the
369 chaotic  ones. Finally,  the rates  for the  strategies show  that the
370 different feedforward networks are unable to learn them.
371
372 For  the  second  coding   scheme  (\textit{i.e.},  with  Gray  Codes)
373 Table~\ref{tab2} shows  that any network learns about  five times more
374 non-chaotic  configurations than  chaotic  ones.  As  in the  previous
375 scheme,       the      strategies      cannot       be      predicted.
376 Figures~\ref{Fig:chaotic_predictions}                              and
377 \ref{Fig:non-chaotic_predictions} present the predictions given by two
378 feedforward multilayer  perceptrons that were  respectively trained to
379 learn chaotic  and non-chaotic data,  using the second  coding scheme.
380 Each figure  shows for  each sample of  the test  subset (577~samples,
381 representing 25\%  of the 2304~samples) the  configuration that should
382 have been predicted and the one given by the multilayer perceptron. It
383 can be  seen that for  the chaotic data  the predictions are  far away
384 from the  expected configurations.  Obviously,  the better predictions
385 for the non-chaotic data reflect their regularity.
386
387 Let us now compare the  two coding schemes. Firstly, the second scheme
388 disturbs  the   learning  process.   In   fact  in  this   scheme  the
389 configuration is always expressed as  a natural number, whereas in the
390 first one  the number  of inputs follows  the increase of  the Boolean
391 vectors coding configurations. In this latter case, the coding gives a
392 finer information on configuration evolution.
393 \begin{table}[b]
394 \caption{Prediction success rates for configurations expressed with Gray code}
395 \label{tab2}
396 \centering
397 \begin{tabular}{|c|c||c|c|c|}
398 \hline 
399 \multicolumn{5}{|c|}{Networks topology: 3~inputs, 2~outputs, and one hidden layer} \\
400 \hline
401 \hline
402 & Hidden neurons & \multicolumn{3}{c|}{10 neurons} \\
403 \cline{2-5}
404 & Epochs & 125 & 250 & 500 \\ %& 1000 
405 \hline
406 \multirow{2}{*}{Chaotic}& Config.~(1) & 13.29\% & 13.55\% & 13.08\% \\ %& 12.5\%
407 & Strategy~(2) & 0.50\% & 0.52\% & 1.32\% \\ %& 1.42\%
408 \hline
409 \multirow{2}{*}{Non-Chaotic}&Config.~(1) & 77.12\% & 74.00\% & 72.60\% \\ %& 75.81\% 
410 & Strategy~(2) & 0.42\% & 0.80\% & 1.16\% \\ %& 1.42\% 
411 \hline
412 \hline
413 & Hidden neurons & \multicolumn{3}{c|}{25 neurons} \\
414 \cline{2-5}
415 & Epochs & 125 & 250 & 500 \\ %& 1000 
416 \hline
417 \multirow{2}{*}{Chaotic}& Config.~(1) & 12.27\% & 13.15\% & 13.05\% \\ %& 15.44\%
418 & Strategy~(2) & 0.71\% & 0.66\% & 0.88\% \\ %& 1.73\%
419 \hline
420 \multirow{2}{*}{Non-Chaotic}&Config.~(1) & 73.60\% & 74.70\% & 75.89\% \\ %& 68.32\%
421 & Strategy~(2) & 0.64\% & 0.97\% & 1.23\% \\ %& 1.80\%
422 \hline
423 \end{tabular}
424 \end{table}
425
426 \begin{figure}
427   \centering
428   \includegraphics[scale=0.5]{images/chaotic_trace2}
429   \caption {Second coding scheme - Predictions obtained for a chaotic test subset.}
430   \label{Fig:chaotic_predictions}
431 \end{figure}
432
433 \begin{figure}
434   \centering
435   \includegraphics[scale=0.5]{images/non-chaotic_trace2} 
436   \caption{Second coding scheme - Predictions obtained for a non-chaotic test subset.}
437   \label{Fig:non-chaotic_predictions}
438 \end{figure}
439
440 Unfortunately, in  practical applications the number  of components is
441 usually  unknown.   Hence, the  first  coding  scheme  cannot be  used
442 systematically.   Therefore, we  provide  a refinement  of the  second
443 scheme: each  output is learned  by a different  ANN. Table~\ref{tab3}
444 presents the  results for  this approach.  In  any case,  whatever the
445 considered feedforward  network topologies, the  maximum epoch number,
446 and the kind of iterations, the configuration success rate is slightly
447 improved.   Moreover, the  strategies predictions  rates  reach almost
448 12\%, whereas in Table~\ref{tab2} they never exceed 1.5\%.  Despite of
449 this improvement,  a long term prediction of  chaotic iterations still
450 appear to be an open issue.
451
452 \begin{table}
453 \caption{Prediction success rates for split outputs.}
454 \label{tab3}
455 \centering
456 \begin{tabular}{|c||c|c|c|}
457 \hline 
458 \multicolumn{4}{|c|}{Networks topology: 3~inputs, 1~output, and one hidden layer} \\
459 \hline
460 \hline
461 Epochs & 125 & 250 & 500 \\ 
462 \hline
463 \hline
464 Chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
465 \hline
466 10~neurons & 12.39\% & 14.06\% & 14.32\% \\
467 25~neurons & 13.00\% & 14.28\% & 14.58\% \\
468 40~neurons & 11.58\% & 13.47\% & 14.23\% \\
469 \hline
470 \hline
471 Non chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
472 \cline{2-4}
473 %Epochs & 125 & 250 & 500 \\ 
474 \hline
475 10~neurons & 76.01\% & 74.04\% & 78.16\% \\
476 25~neurons & 76.60\% & 72.13\% & 75.96\% \\
477 40~neurons & 76.34\% & 75.63\% & 77.50\% \\
478 \hline
479 \hline
480 Chaotic/non chaotic & \multicolumn{3}{c|}{Output = Strategy} \\
481 \cline{2-4}
482 %Epochs & 125 & 250 & 500 \\ 
483 \hline
484 10~neurons & 0.76\% & 0.97\% & 1.21\% \\
485 25~neurons & 1.09\% & 0.73\% & 1.79\% \\
486 40~neurons & 0.90\% & 1.02\% & 2.15\% \\
487 \hline
488 \multicolumn{4}{c}{} \\
489 \hline
490 Epochs & 1000 & 2500 & 5000 \\ 
491 \hline
492 \hline
493 Chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
494 \hline
495 10~neurons & 14.51\% & 15.22\% & 15.22\% \\
496 25~neurons & 16.95\% & 17.57\% & 18.46\% \\
497 40~neurons & 17.73\% & 20.75\% & 22.62\% \\
498 \hline
499 \hline
500 Non chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
501 \cline{2-4}
502 %Epochs & 1000 & 2500 & 5000 \\ 
503 \hline
504 10~neurons & 78.98\% & 80.02\% & 79.97\% \\
505 25~neurons & 79.19\% & 81.59\% & 81.53\% \\
506 40~neurons & 79.64\% & 81.37\% & 81.37\% \\
507 \hline
508 \hline
509 Chaotic/non chaotic & \multicolumn{3}{c|}{Output = Strategy} \\
510 \cline{2-4}
511 %Epochs & 1000 & 2500 & 5000 \\ 
512 \hline
513 10~neurons & 3.47\% & 9.98\% & 11.66\% \\
514 25~neurons & 3.92\% & 8.63\% & 10.09\% \\
515 40~neurons & 3.29\% & 7.19\% & 7.18\% \\
516 \hline
517 \end{tabular}
518 \end{table}
519
520 \section{Conclusion}
521
522 In  this paper,  we have  established an  equivalence  between chaotic
523 iterations,  according to  the Devaney's  definition of  chaos,  and a
524 class  of multilayer  perceptron  neural networks.   Firstly, we  have
525 described how to build a neural network that can be trained to learn a
526 given chaotic map function. Secondly,  we found a condition that allow
527 to check whether  the iterations induced by a  function are chaotic or
528 not, and thus  if a chaotic map is obtained.  Thanks to this condition
529 our  approach is not  limited to  a particular  function. In  the dual
530 case, we show that checking if a neural network is chaotic consists in
531 verifying  a property  on an  associated  graph, called  the graph  of
532 iterations.   These results  are valid  for recurrent  neural networks
533 with a  particular architecture.  However,  we believe that  a similar
534 work can be done for  other neural network architectures.  Finally, we
535 have  discovered at  least one  family of  problems with  a reasonable
536 size, such  that artificial neural  networks should not be  applied in
537 the  presence  of chaos,  due  to  their  inability to  learn  chaotic
538 behaviors in this  context.  Such a consideration is  not reduced to a
539 theoretical detail:  this family of discrete  iterations is concretely
540 implemented  in a  new steganographic  method  \cite{guyeux10ter}.  As
541 steganographic   detectors  embed  tools   like  neural   networks  to
542 distinguish between  original and stego contents, our  studies tend to
543 prove that such  detectors might be unable to  tackle with chaos-based
544 information  hiding  schemes.
545
546 In  future  work we  intend  to  enlarge  the comparison  between  the
547 learning   of  truly   chaotic  and   non-chaotic   behaviors.   Other
548 computational intelligence tools such  as support vector machines will
549 be investigated  too, to  discover which tools  are the  most relevant
550 when facing a truly chaotic phenomenon.  A comparison between learning
551 rate  success  and  prediction  quality will  be  realized.   Concrete
552 consequences in biology, physics, and computer science security fields
553 will then be stated.
554
555 % \appendix{}
556
557 % \begin{Def} \label{def2}
558 % A continuous function $f$  on a topological space $(\mathcal{X},\tau)$
559 % is defined  to be  {\emph{topologically transitive}}  if for any  pair of
560 % open  sets $U$,  $V  \in  \mathcal{X}$ there  exists  
561 % $k \in
562 % \mathds{N}^{\ast}$
563 %  such  that
564 % $f^k(U) \cap V \neq \emptyset$.
565 % \end{Def}
566
567 %\bibliography{chaos-paper}% Produces the bibliography via BibTeX.
568
569 %\end{document}
570 %
571 % ****** End of file chaos-paper.tex ******