2 Les réseaux de neurones chaotiques ont été étudiés à de maintes reprises
3 par le passé en raison notamment de leurs applications potentielles:
4 %les mémoires associatives~\cite{Crook2007267}
5 les composants utiles à la sécurité comme les fonctions de
7 le tatouage numérique~\cite{1309431,Zhang2005759}
8 ou les schémas de chiffrement~\cite{Lian20091296}.
9 Dans tous ces cas, l'emploi de fonctions chaotiques est motivé par
10 leur comportement imprévisible et proche de l'aléa.
13 Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs
14 principes. Des neurones modifiant leur état en suivant une fonction non
15 linéaire son par exemple appelés neurones chaotiques~\cite{Crook2007267}.
16 L'architecture de réseaux de neurones de type Perceptron multi-couches
17 (MLP) n'itèrent quant à eux, pas nécessairement de fonctions chaotiques.
18 Il a cependant été démontré que ce sont des approximateurs
19 universels~\cite{Cybenko89,DBLP:journals/nn/HornikSW89}.
20 Ils permettent, dans certains cas, de simuler des comportements
21 physiques chaotiques comme le circuit de Chua~\cite{dalkiran10}.
22 Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
23 la fonction de transfert de cette famille de réseau celle
24 d'initialisation sont toutes les deux définies à l'aide de
29 Ces réseaux de neurones partagent le fait qu'ils sont qualifiés de
30 ``chaotiques'' sous prétexte qu'ils embarquent une fonction de ce type
31 et ce sans aucune preuve rigoureuse. Ce chapitre caractérise la
32 classe des réseaux de neurones MLP chaotiques. Il
33 s'intéresse ensuite à l'étude de prévisibilité de systèmes dynamiques
34 discrets chaotiques par cette famille de MLP.
36 La section~\ref{S2} définit la construction d'un réseau de neurones
37 chaotique selon Devanay. La section~\ref{S3} présente l'approche duale
38 de vérification si un réseau de neurones est chaotique ou non.
39 La section~\ref{sec:ann:approx} s'intéresse à étudier pratiquement
41 neurones peut approximer des itération unaires chaotiques. Ces itérations
42 étant obtenues à partir de fonction générées à l'aide du chapitre précédent.
45 \section{Un réseau de neurones chaotique au sens de Devaney}
48 On considère une fonction
49 $f:\Bool^n\to\Bool^n$ telle que $\textsc{giu}(f)$ est fortement connexe.
50 Ainsi $G_{f_u}$ est chaotique d'après le théorème~\ref{Th:CaracIC}.
52 On considère ici le schéma unaire défini par l'équation (\ref{eq:asyn}).
53 On construit un Perceptron multi-couches associé à la fonction
55 Plus précisément, pour chaque entrée
56 $(x,s) \in \mathds{B}^n \times [n]$,
57 la couche de sortie doit générer $F_{f_u}(x,s)$.
58 On peut ainsi lier la couche de sortie avec celle d'entrée pour représenter
59 les dépendance entre deux itérations successives.
60 On obtient une réseau de neurones dont le comportement est le suivant
61 (voir Figure.~\ref{Fig:perceptron}):
64 \item Le réseau est initialisé avec le vecteur d'entrée
65 $\left(x^0,S^0\right) \mathds{B}^n \times [n]$
66 et calcule le vecteur de sortie
67 $x^1=F_{f_u}\left(x^0,S^0\right)$.
68 Ce vecteur est publié comme une sortie et est aussi retournée sur la couche d'entrée
69 à travers les liens de retours.
70 \item Lorsque le réseau est activé à la $t^{th}$ itération, l'état du
71 système $x^t \in \mathds{B}^n$ reçu depuis la couche de sortie ainsi que le
72 premier terme de la séquence $(S^t)^{t \in \Nats}$
73 (\textit{i.e.}, $S^0 \in [n]$) servent à construire le nouveau vecteur de sortie.
74 Ce nouveau vecteur, qui représente le nouvel état du système dynamique, satisfait:
76 x^{t+1}=F_{f_u}(x^t,S^0) \in \mathds{B}^n \enspace .
82 \includegraphics[scale=0.625]{images/perceptron}
83 \caption{Un Perceptron équivalent aux itérations unitaires}
84 \label{Fig:perceptron}
87 Le comportement de ce réseau de neurones est tel que lorsque l'état
88 initial est composé de $x^0~\in~\mathds{B}^n$ et d'une séquence
89 $(S^t)^{t \in \Nats}$, alors la séquence contenant les vecteurs successifs
90 publiés $\left(x^t\right)^{t \in \mathds{N}^{\ast}}$ est exactement celle produite
91 par les itérations unaires décrites à la section~\ref{sec:TIPE12}.
92 Mathématiquement, cela signifie que si on utilise les mêmes vecteurs d'entrées
93 les deux approches génèrent successivement les mêmes sorties.
94 En d'autres termes ce réseau de neurones modélise le comportement de
95 $G_{f_u}$, dont les itérations sont chaotiques sur $\mathcal{X}_u$.
96 On peut donc le qualifier de chaotique au sens de Devaney.
98 \section{Vérifier si un réseau de neurones est chaotique}
100 On s'intéresse maintenant au cas où l'on dispose d'un
101 réseau de neurones de type Perceptron multi-couches
102 dont on cherche à savoir s'il est chaotique (parce qu'il a par exemple été
103 déclaré comme tel) au sens de Devaney.
104 On considère de plus que sa topologie est la suivante:
105 l'entrée est constituée de $n$ bits et un entier, la sortie est constituée de $n$ bits
106 et chaque sortie est liée à une entrée par une boucle.
109 \item Le réseau est initialisé avec $n$~bits
110 $\left(x^0_1,\dots,x^0_n\right)$ et une valeur entière $S^0 \in [n]$.
111 \item A l'itération~$t$, le vecteur
112 $\left(x^t_1,\dots,x^t_n\right)$ permet de construire les $n$~bits
113 servant de sortie $\left(x^{t+1}_1,\dots,x^{t+1}_n\right)$.
116 Le comportement de ce type de réseau de neurones peut être prouvé comme
117 étant chaotique en suivant la démarche énoncée maintenant.
118 On nomme tout d'abord $F: \mathds{B}^n \times [n] \rightarrow
119 \mathds{B}^n$ la fonction qui associe
121 $\left(\left(x_1,\dots,x_n\right),s\right) \in \mathds{B}^n \times[n]$
123 $\left(y_1,\dots,y_n\right) \in \mathds{B}^n$, où
124 $\left(y_1,\dots,y_n\right)$ sont les sorties du réseau neuronal
125 après l'initialisation de la couche d'entrée avec
126 $\left(s,\left(x_1,\dots, x_n\right)\right)$. Ensuite, on définie $f:
127 \mathds{B}^n \rightarrow \mathds{B}^n$ telle que
128 $f\left(x_1,x_2,\dots,x_n\right)$ est égal à
130 \left(F\left(\left(x_1,x_2,\dots,x_n\right),1\right),\dots,
131 F\left(\left(x_1,x_2,\dots,x_n\right)\right),n\right) \enspace .
133 Ainsi pour chaque $j$, $1 \le j \le n$, on a
134 $f_j\left(x_1,x_2,\dots,x_n\right) =
135 F\left(\left(x_1,x_2,\dots,x_n\right),j\right)$.
136 Si ce réseau de neurones est initialisé avec
137 $\left(x_1^0,\dots,x_n^0\right)$ et $S \in [n]^{\mathds{N}}$,
138 il produit exactement les même sorties que les itérations de $F_{f_u}$ avec une
139 condition initiale $\left((x_1^0,\dots, x_n^0),S\right) \in \mathds{B}^n \times [n]^{\mathds{N}}$.
140 Les itérations de $F_{f_u}$
141 sont donc un modèle formel de cette classe de réseau de neurones.
142 Pour vérifier si un de ces représentants est chaotique, il suffit ainsi
143 de vérifier si le graphe d'itérations
144 $\textsc{giu}(f)$ est fortement connexe.
147 \section{Un réseau de neurones peut-il approximer
148 des itération unaires chaotiques?}\label{sec:ann:approx}
150 Cette section s'intéresse à étudier le comportement d'un réseau de neurones
151 face à des itérations unaires chaotiques, comme définies à
152 la section~\ref{sec:TIPE12}.
153 Plus précisément, on considère dans cette partie une fonction dont le graphe
154 des itérations unaires est fortement connexe et une séquence dans
155 $[n]^{\mathds{N}}$. On cherche à construire un réseau de neurones
156 qui approximerait les itérations de la fonction $G_{f_u}$ comme définie
157 à l'équation~(\ref{eq:sch:unaire}).
159 Sans perte de généralité, on considère dans ce qui suit une instance
160 de de fonction à quatre éléments.
162 \subsection{Construction du réseau}
163 \label{section:translation}
165 On considère par exemple les deux fonctions $f$ and $g$ de $\Bool^4$
166 dans $\Bool^4$ définies par:
169 f(x_1,x_2,x_3,x_4) &= &
170 (x_1(x_2+x_4)+ \overline{x_2}x_3\overline{x_4},
172 x_3(\overline{x_1}.\overline{x_4}+x_2x_4+x_1\overline{x_2}),
173 x_4+\overline{x_2}x_3) \\
174 g(x_1,x_2,x_3,x_4) &= &
176 \overline{x_2}+ x_1.\overline{x_3}.\overline{x_4},
177 \overline{x_3}(x_1 + x_2+x_4),
178 \overline{x_4}(x_1 + \overline{x_2}+\overline{x_3}))
180 On peut vérifier facilement que le graphe $\textsc{giu}(f)$
181 n'est pas fortement connexe car $(1,1,1,1)$ est un point fixe de $f$
182 tandis que le graphe $\textsc{giu}(g)$ l'est.
184 L'entrée du réseau est une paire de la forme
185 $(x,(S^t)^{t \in \Nats})$ et sa sortie correspondante est
186 de la forme $\left(F_{h_u}(S^0,x), \sigma((S^t)^{t \in
187 \Nats})\right)$ comme définie à l'équation~(\ref{eq:sch:unaire}).
189 On s'intéresse d'abord aux différentes manières de
190 mémoriser des configurations. On en considère deux principalement.
191 Dans le premier cas, on considère une entrée booléenne par élément
192 tandis que dans le second cas, les configurations sont mémorisées comme
193 des entiers naturels. Dans ce dernier cas, une approche naïve pourrait
194 consister à attribuer à chaque configuration de $\Bool^n$
195 l'entier naturel naturel correspondant.
196 Cependant, une telle représentation rapproche
197 arbitrairement des configurations diamétralement
198 opposées dans le $n$-cube comme une puissance de
199 deux et la configuration immédiatement précédente: 10000 serait modélisée
200 par 16 et et 01111 par 15 alors que leur distance de Hamming est 15.
201 De manière similaire, ce codage éloigne des configurations qui sont
202 très proches: par exemple 10000 et 00000 ont une distance de Hamming
203 de 1 et sont respectivement représentées par 16 et 0.
204 Pour ces raisons, le codage retenu est celui des codes de Gray~\cite{Gray47}.
206 Concentrons nous sur la traduction de la stratégie.
207 Il n'est naturellement pas possible de traduire une stratégie
208 infinie quelconque à l'aide d'un nombre fini d'éléments.
209 On se restreint donc à des stratégies de taille
210 $l \in \llbracket 2,k\rrbracket$, où $k$ est un paramètre défini
212 Chaque stratégie est mémorisée comme un entier naturel exprimé en base
213 $n+1$: à chaque itération, soit aucun élément n'est modifié, soit un
215 Enfin, on donne une dernière entrée: $m \in \llbracket
216 1,l-1\rrbracket$, qui est le nombre d'itérations successives que l'on applique
218 Les sorties (stratégies et configurations) sont mémorisées
219 selon les mêmes règles.
221 Concentrons nous sur la complexité du problème.
222 Chaque entrée, de l'entrée-sortie de l'outil est un triplet
223 composé d'une configuration $x$, d'un extrait $S$ de la stratégie à
224 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.
225 Il y a $2^n$ configurations $x$ et $n^l$ stratégies de
227 De plus, pour une configuration donnée, il y a
228 $\omega = 1 \times n^2 + 2 \times n^3 + \ldots+ (k-1) \times n^k$
229 manières d'écrire le couple $(m,S)$. Il n'est pas difficile d'établir que
231 \displaystyle{(n-1) \times \omega = (k-1)\times n^{k+1} - \sum_{i=2}^k n^i} \nonumber
236 \dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2} \enspace . \nonumber
239 Ainsi le nombre de paire d'entrée-sortie pour les réseaux de neurones considérés
242 2^n \times \left(\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2}\right) \enspace .
244 Par exemple, pour $4$ éléments binaires et une stratégie d'au plus
245 $3$~termes on obtient 2304 couples d'entrée-sortie.
247 \subsection{Expérimentations}
248 \label{section:experiments}
249 On se focalise dans cette section sur l'entraînement d'un Perceptron
250 multi-couches pour apprendre des itérations chaotiques. Ce type de réseau
251 ayant déjà été évalué avec succès dans la prédiction de
252 séries chaotiques temporelles. En effet, les auteurs de~\cite{dalkiran10}
253 ont montré qu'un MLP pouvait apprendre la dynamique du circuit de Chua.
254 Ce réseau avec rétropropagation est composé de deux couches
255 et entraîné à l'aide d'une propagation arrière Bayesienne.
257 Le choix de l'architecture du réseau ainsi que de la méthode d'apprentissage
258 ont été détaillé dans~\cite{bcgs12:ij}.
259 En pratique, nous avons considéré des configurations de
260 quatre éléments booléens
261 et une stratégie fixe de longueur 3.
262 Pour le premier codage, nous avons ainsi 6~entrées et 5~sorties
263 tandis que pour le second, uniquement 3 entrées et 2 sorties.
264 Cela engendre ainsi 2304~combinaisons possibles comme détaillé à la
271 \begin{tabular}{|c|c||c|c|c|}
273 \multicolumn{5}{|c|}{Topologie du réseau: 6~entrées, 5~sorties, 1~couche cachée} \\
276 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{10 neurones} \\
278 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\
280 \multirow{6}{*}{\rotatebox{90}{Chaotique $g$ }}&Entrée~(1) & 90.92\% & 91.75\% & 91.82\% \\
281 & Entrée~(2) & 69.32\% & 78.46\% & 82.15\% \\
282 & Entrée~(3) & 68.47\% & 78.49\% & 82.22\% \\
283 & Entrée~(4) & 91.53\% & 92.37\% & 93.4\% \\
284 & Config. & 36.10\% & 51.35\% & 56.85\% \\
285 & Stratégie~(5) & 1.91\% & 3.38\% & 2.43\% \\
287 \multirow{6}{*}{\rotatebox{90}{Non-chaotic $f$}}&Entrée~(1) & 97.64\% & 98.10\% & 98.20\% \\
288 & Entrée~(2) & 95.15\% & 95.39\% & 95.46\% \\
289 & Entrée~(3) & 100\% & 100\% & 100\% \\
290 & Entrée~(4) & 97.47\% & 97.90\% & 97.99\% \\
291 & Config. & 90.52\% & 91.59\% & 91.73\% \\
292 & Stratégie~(5) & 3.41\% & 3.40\% & 3.47\% \\
295 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{25 neurones} \\
296 \cline{3-5} \\%& \multicolumn{3}{|c|}{40 neurons} \\
297 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ %& 125 & 250 & 500 \\
299 \multirow{6}{*}{\rotatebox{90}{Chaotique $g$}}&Entrée~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
300 & Entrée~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
301 & Entrée~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
302 & Entrée~(4) & 91.61\% & 92.34\% & 93.47\% \\% & 82.77\% & 92.93\% & 93.48\% \\
303 & Config. & 48.82\% & 67.80\% & 70.97\% \\%& 49.46\% & 68.94\% & 71.11\% \\
304 & Stratégie~(5) & 2.62\% & 3.43\% & 3.78\% \\% & 3.10\% & 3.10\% & 3.03\% \\
306 \multirow{6}{*}{\rotatebox{90}{Non-chaotique $f$}}&Entrée~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
307 & Entrée~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
308 & Entrée~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
309 & Entrée~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
310 & Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
311 & Stratégie~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
315 \caption{Taux de prédiction lorsque les configurations sont exprimées comme un vecteur booléen.}
318 Le tableau~\ref{tab1} synthétise les résultats obtenus avec le premier
319 codage. Sans surprise, la précision de la prédiction croit
320 avec l'Epoch et le nombre de neurones sur la couche cachée.
321 Dans tous les cas, les résultats sont plus précis dans le cas non
322 chaotique que dans l'autre. Enfin, le réseau ne parvient jamais à
323 apprendre le comportement de la stratégie.
327 \begin{tabular}{|c|c||c|c|c|}
329 \multicolumn{5}{|c|}{Topologie du réseau: 3~entrées, 2~sorties, 1~couche cachée} \\
332 & Neurones cachés & \multicolumn{3}{c|}{10 neurones} \\
334 & Epochs & 125 & 250 & 500 \\ %& 1000
336 \multirow{2}{*}{Chaotique $g$}& Config.~(1) & 13.29\% & 13.55\% & 13.08\% \\ %& 12.5\%
337 & Stratégie~(2) & 0.50\% & 0.52\% & 1.32\% \\ %& 1.42\%
339 \multirow{2}{*}{Non-Chaotique $f$}&Config.~(1) & 77.12\% & 74.00\% & 72.60\% \\ %& 75.81\%
340 & Stratégie~(2) & 0.42\% & 0.80\% & 1.16\% \\ %& 1.42\%
343 & Neurones cachés& \multicolumn{3}{c|}{25 neurones} \\
345 & Epochs & 125 & 250 & 500 \\ %& 1000
347 \multirow{2}{*}{Chaotique $g$ }& Config.~(1) & 12.27\% & 13.15\% & 13.05\% \\ %& 15.44\%
348 & Stratégie~(2) & 0.71\% & 0.66\% & 0.88\% \\ %& 1.73\%
350 \multirow{2}{*}{Non-Chaotique $f$}&Config.~(1) & 73.60\% & 74.70\% & 75.89\% \\ %& 68.32\%
351 & Stratégie~(2) & 0.64\% & 0.97\% & 1.23\% \\ %& 1.80\%
354 \caption{Taux de prédiction lorsque les configurations sont exprimées
355 à l'aide de codes de Gray.}
361 Les résultats concernant le second codage (\textit{i.e.}, avec les codes
362 de Gray) sont synthétisés dans le tableau~\ref{tab2}. On constate
363 que le réseau apprend cinq fois mieux les comportement non chaotiques
364 que ceux qui le sont. Ceci est est illustré au travers des
365 figures~\ref{Fig:chaotic_predictions} et~\ref{Fig:non-chaotic_predictions}.
366 De plus, comme dans le codage précédent, les stratégies ne peuvent pas être
368 On constate que ce second codage réduit certes le nombre de sorties, mais est
369 largement moins performant que le premier.
370 On peut expliquer ceci par le fait
371 que ce second codage garantit que deux entiers successifs correspondent
372 à deux configurations voisines, \textit{i.e.}, qui ne diffèrent que d'un
374 La réciproque n'est cependant pas établie et deux configurations voisines
375 peuvent être traduites par des entiers très éloignés et ainsi difficiles
381 \subfigure[Fonction chaotique $g$]{
382 \begin{minipage}{0.48\textwidth}
384 \includegraphics[scale=0.37]{images/chaotic_trace2}
387 \label{Fig:chaotic_predictions}
389 \subfigure[Fonction non-chaotique $f$]{
390 \begin{minipage}{0.48\textwidth}
392 \includegraphics[scale=0.37]{images/non-chaotic_trace2}
395 \label{Fig:non-chaotic_predictions}
398 \caption {Prédiction lorsque les configurations sont exprimées
399 à l'aide de codes de Gray.}
404 Dans ce chapitre, nous avons établi une similitude entre les itérations
405 chaotiques et une famille de Perceptrons multi-couches.
406 Nous avons d'abord montré comment construire un réseau de neurones
407 ayant un comportement chaotique.
408 Nous avons présenté ensuite comment vérifier si un réseau de neurones
409 établi était chaotique.
410 Nous avons enfin montré en pratique qu'il est difficile pour un
411 réseau de neurones d'apprendre le comportement global d'itérations
413 Comme il est difficile (voir impossible) d'apprendre le comportement
414 de telles fonction, il paraît naturelle de savoir si celles ci peuvent être
415 utilisées pour générer des nombres pseudo aléatoires.
420 % \begin{Def} \label{def2}
421 % A continuous function $f$ on a topological space $(\mathcal{X},\tau)$
422 % is defined to be {\emph{topologically transitive}} if for any pair of
423 % open sets $U$, $V \in \mathcal{X}$ there exists
427 % $f^k(U) \cap V \neq \emptyset$.
430 %\bibliography{chaos-paper}% Produces the bibliography via BibTeX.
434 % ****** End of file chaos-paper.tex ******