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

Private GIT Repository
ajout d'intro et de conclusion
[hdrcouchot.git] / chaosANN.tex
index 4ea34b905c064dc6790b5ee3dbada523c16d0110..89ac939ac65dcf87c12e17d969c0fcdd09291947 100644 (file)
@@ -1,6 +1,6 @@
 
 Les réseaux de neurones chaotiques ont été étudiés à de maintes reprises 
-par le passé en raison notamment de leurs applications potentielles:
+en raison de leurs applications potentielles:
 %les mémoires associatives~\cite{Crook2007267}  
 les  composants utiles à la  sécurité comme les fonctions de 
 hachage~\cite{Xiao10},
@@ -20,7 +20,7 @@ universels~\cite{Cybenko89,DBLP:journals/nn/HornikSW89}.
 Ils permettent, dans certains cas, de simuler des comportements 
 physiques chaotiques comme le  circuit de Chua~\cite{dalkiran10}.  
 Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
-la fonction de transfert de cette famille de réseau celle 
+la fonction de transfert de cette famille de réseau et celle 
 d'initialisation sont toutes les deux définies à l'aide de 
 fonctions chaotiques. 
 
@@ -28,7 +28,8 @@ fonctions chaotiques.
 
 Ces réseaux de neurones partagent le fait qu'ils sont qualifiés de 
 ``chaotiques'' sous prétexte qu'ils embarquent une fonction de ce type 
-et ce sans aucune preuve rigoureuse. Ce chapitre caractérise la 
+et ce sans aucune preuve rigoureuse ne soit fournie.
+Ce chapitre caractérise la 
 classe des réseaux de neurones MLP chaotiques. Il  
 s'intéresse ensuite à l'étude de prévisibilité de systèmes dynamiques
 discrets chaotiques par cette famille de MLP.
@@ -39,21 +40,22 @@ de vérification si un réseau de neurones est chaotique ou non.
 La section~\ref{sec:ann:approx} s'intéresse à étudier pratiquement
 si un réseau de 
 neurones peut approximer des itération unaires chaotiques. Ces itérations
-étant obtenues à partir de fonction générées à l'aide du chapitre précédent.
-
+étant obtenues à partir de fonctions issues de la démarche détaillée dans 
+le chapitre précédent.
+Ce travail a été publié dans~\cite{bcgs12:ij}.
 
 \section{Un réseau de neurones chaotique au sens de Devaney}
 \label{S2}
 
 On considère une fonction 
-$f:\Bool^n\to\Bool^n$ telle que  $\textsc{giu}(f)$ est fortement connexe.
+$f:\Bool^{\mathsf{N}}\to\Bool^{\mathsf{N}}$ telle que  $\textsc{giu}(f)$ est fortement connexe.
 Ainsi $G_{f_u}$ est chaotique d'après le théorème~\ref{Th:CaracIC}.
 
 On considère ici le schéma unaire défini par l'équation (\ref{eq:asyn}).
 On construit un Perceptron multi-couches associé à la fonction  
 $F_{f_u}$. 
 Plus précisément, pour chaque entrée 
- $(x,s)   \in  \mathds{B}^n \times [n]$,
+ $(x,s)   \in  \mathds{B}^{\mathsf{N}} \times [{\mathsf{N}}]$,
 la couche de sortie doit générer $F_{f_u}(x,s)$.   
 On peut ainsi lier la couche de sortie avec celle d'entrée pour représenter 
 les dépendance entre deux itérations successives.
@@ -62,18 +64,18 @@ On obtient une réseau de neurones dont le comportement est le suivant
 
 \begin{itemize}
 \item   Le réseau est initialisé avec le vecteur d'entrée
-  $\left(x^0,S^0\right)  \mathds{B}^n \times [n]$      
+  $\left(x^0,S^0\right)  \mathds{B}^{\mathsf{N}} \times [{\mathsf{N}}]$      
   et calcule le  vecteur de sortie 
   $x^1=F_{f_u}\left(x^0,S^0\right)$. 
-  Ce vecteur est publié comme une sortie et est aussi retournée sur la couche d'entrée 
+  Ce vecteur est publié comme une sortie et est aussi retourné sur la couche d'entrée 
   à travers les liens de retours.
 \item Lorsque le réseau est  activé à la $t^{th}$  itération, l'état du 
-  système $x^t  \in \mathds{B}^n$ reçu depuis la couche de sortie ainsi que le 
+  système $x^t  \in \mathds{B}^{\mathsf{N}}$ reçu depuis la couche de sortie ainsi que le 
   premier terme de la  séquence $(S^t)^{t  \in \Nats}$
-  (\textit{i.e.},  $S^0  \in [n]$)  servent à construire le nouveau vecteur de sortie.
+  (\textit{i.e.},  $S^0  \in [{\mathsf{N}}]$)  servent à construire le nouveau vecteur de sortie.
   Ce nouveau vecteur, qui représente le nouvel état du système dynamique, satisfait:
   \begin{equation}
-    x^{t+1}=F_{f_u}(x^t,S^0) \in \mathds{B}^n \enspace .
+    x^{t+1}=F_{f_u}(x^t,S^0) \in \mathds{B}^{\mathsf{N}} \enspace .
   \end{equation}
 \end{itemize}
 
@@ -85,7 +87,7 @@ On obtient une réseau de neurones dont le comportement est le suivant
 \end{figure}
 
 Le comportement de ce réseau de neurones est tel que lorsque l'état 
-initial est composé de $x^0~\in~\mathds{B}^n$ et d'une séquence
+initial est composé de $x^0~\in~\mathds{B}^{\mathsf{N}}$ et d'une séquence
  $(S^t)^{t  \in \Nats}$, alors la séquence  contenant les vecteurs successifs 
 publiés $\left(x^t\right)^{t \in \mathds{N}^{\ast}}$ est exactement celle produite 
 par les itérations unaires décrites à la section~\ref{sec:TIPE12}.
@@ -102,41 +104,44 @@ réseau de neurones de type Perceptron multi-couches
 dont on cherche à savoir s'il est chaotique (parce qu'il a par exemple été 
 déclaré comme tel) au sens de Devaney. 
 On considère de plus que sa topologie est la suivante:
-l'entrée est constituée de  $n$ bits et un entier, la sortie est constituée de $n$ bits
+l'entrée est constituée de  ${\mathsf{N}}$ bits et un entier, 
+la sortie est constituée de ${\mathsf{N}}$ bits
 et chaque sortie est liée à une entrée par une boucle.
 
 \begin{itemize}
-\item Le réseau est initialisé avec  $n$~bits
-   $\left(x^0_1,\dots,x^0_n\right)$ et une valeur entière $S^0 \in [n]$.
+\item Le réseau est initialisé avec  ${\mathsf{N}}$~bits
+   $\left(x^0_1,\dots,x^0_{\mathsf{N}}\right)$ et une valeur entière $S^0 \in [{\mathsf{N}}]$.
 \item  A l'itération~$t$,     le vecteur 
-  $\left(x^t_1,\dots,x^t_n\right)$  permet de construire les $n$~bits 
-  servant de sortie $\left(x^{t+1}_1,\dots,x^{t+1}_n\right)$.
+  $\left(x^t_1,\dots,x^t_{\mathsf{N}}\right)$  permet de construire les ${\mathsf{N}}$~bits 
+  servant de sortie $\left(x^{t+1}_1,\dots,x^{t+1}_{\mathsf{N}}\right)$.
 \end{itemize}
 
 Le comportement de ce type de réseau de neurones peut être prouvé comme 
-étant chaotique en suivant la démarche énoncée maintenant.
-On nomme tout d'abord $F:    \mathds{B}^n  \times [n] \rightarrow
-\mathds{B}^n$     la      fonction qui associe  
+étant chaotique en suivant la démarche suivante.
+On nomme tout d'abord $F:    \mathds{B}^{\mathsf{N}}  \times [{\mathsf{N}}] \rightarrow
+\mathds{B}^{\mathsf{N}}$     la      fonction qui associe  
 au vecteur 
-$\left(\left(x_1,\dots,x_n\right),s\right)    \in   \mathds{B}^n \times[n]$ 
+$\left(\left(x_1,\dots,x_{\mathsf{N}}\right),s\right)    \in   \mathds{B}^{\mathsf{N}} \times[{\mathsf{N}}]$ 
 le vecteur 
-$\left(y_1,\dots,y_n\right)       \in       \mathds{B}^n$, où
-$\left(y_1,\dots,y_n\right)$  sont les sorties du réseau neuronal
+$\left(y_1,\dots,y_{\mathsf{N}}\right)       \in       \mathds{B}^{\mathsf{N}}$, où
+$\left(y_1,\dots,y_{\mathsf{N}}\right)$  sont les sorties du réseau neuronal
 après l'initialisation de la couche d'entrée avec 
-$\left(s,\left(x_1,\dots, x_n\right)\right)$.  Ensuite, on définie $f:
-\mathds{B}^n       \rightarrow      \mathds{B}^n$  telle que 
-$f\left(x_1,x_2,\dots,x_n\right)$ est égal à 
+$\left(s,\left(x_1,\dots, x_{\mathsf{N}}\right)\right)$.  Ensuite, on définie $f:
+\mathds{B}^{\mathsf{N}}       \rightarrow      \mathds{B}^{\mathsf{N}}$  telle que 
+$f\left(x_1,x_2,\dots,x_{\mathsf{N}}\right)$ est égal à 
 \begin{equation}
-\left(F\left(\left(x_1,x_2,\dots,x_n\right),1\right),\dots,
-  F\left(\left(x_1,x_2,\dots,x_n\right)\right),n\right) \enspace .
+\left(
+  F\left(\left(x_1,x_2,\dots,x_{\mathsf{N}}\right),1\right),\dots,
+  F\left(\left(x_1,x_2,\dots,x_{\mathsf{N}}\right),{\mathsf{N}}\right) 
+\right).
 \end{equation}
-Ainsi pour chaque $j$, $1 \le j \le n$, on a 
-$f_j\left(x_1,x_2,\dots,x_n\right) = 
-F\left(\left(x_1,x_2,\dots,x_n\right),j\right)$.
+Ainsi pour chaque $j$, $j \in [{\mathsf{N}}]$, on a 
+$f_j\left(x_1,x_2,\dots,x_{\mathsf{N}}\right) = 
+F\left(\left(x_1,x_2,\dots,x_{\mathsf{N}}\right),j\right)$.
 Si ce réseau de neurones est initialisé avec 
-$\left(x_1^0,\dots,x_n^0\right)$   et $S   \in    [n]^{\mathds{N}}$, 
+$\left(x_1^0,\dots,x_{\mathsf{N}}^0\right)$   et $S   \in    [{\mathsf{N}}]^{\mathds{N}}$, 
 il produit exactement les même sorties que les itérations de  $F_{f_u}$ avec une 
-condition initiale $\left((x_1^0,\dots,  x_n^0),S\right)  \in  \mathds{B}^n \times [n]^{\mathds{N}}$.
+condition initiale $\left((x_1^0,\dots,  x_{\mathsf{N}}^0),S\right)  \in  \mathds{B}^{\mathsf{N}} \times [{\mathsf{N}}]^{\mathds{N}}$.
 Les itérations de $F_{f_u}$ 
 sont donc un modèle formel de cette classe de réseau de neurones.
 Pour vérifier si un de ces représentants est chaotique, il suffit ainsi 
@@ -144,7 +149,7 @@ de vérifier si le graphe d'itérations
 $\textsc{giu}(f)$ est fortement connexe.
 
 
-\section{Un réseau de neurones peut-il approximer
+\section[Approximation des itérations unaires chaotiques par RN]{Un réseau de neurones peut-il approximer
 des itération unaires chaotiques?}\label{sec:ann:approx}
 
 Cette section s'intéresse à étudier le comportement d'un réseau de neurones 
@@ -152,7 +157,7 @@ face à des itérations unaires chaotiques, comme définies à
 la section~\ref{sec:TIPE12}.
 Plus précisément, on considère dans cette partie une fonction  dont le graphe 
 des itérations unaires est fortement connexe et une séquence dans 
-$[n]^{\mathds{N}}$. On cherche à construire un réseau de neurones
+$[{\mathsf{N}}]^{\mathds{N}}$. On cherche à construire un réseau de neurones
 qui approximerait les itérations de la fonction $G_{f_u}$ comme définie 
 à l'équation~(\ref{eq:sch:unaire}).
 
@@ -191,11 +196,11 @@ mémoriser des configurations. On en considère deux principalement.
 Dans le premier cas, on considère une entrée booléenne par élément
 tandis que dans le second cas, les configurations  sont mémorisées comme 
 des entiers naturels. Dans ce dernier cas, une approche naïve pourrait 
-consister à attribuer à chaque configuration de $\Bool^n
+consister à attribuer à chaque configuration de $\Bool^{\mathsf{N}}
 l'entier naturel naturel correspondant.
 Cependant, une telle représentation rapproche 
 arbitrairement des configurations diamétralement
-opposées dans le $n$-cube comme  une puissance de
+opposées dans le ${\mathsf{N}}$-cube comme  une puissance de
 deux et la configuration immédiatement précédente: 10000 serait modélisée 
 par 16 et  et 01111 par 15 alors que leur distance de Hamming est 15.
 De manière similaire, ce codage éloigne des configurations qui sont 
@@ -207,13 +212,13 @@ Concentrons nous sur la traduction de la stratégie.
 Il n'est naturellement pas possible de traduire une stratégie 
 infinie quelconque à l'aide d'un nombre fini d'éléments.
 On se restreint donc à des stratégies de taille 
-$l \in \llbracket 2,k\rrbracket$, où $k$ est un paramètre défini
+$l$, $2 \le l \le k$, où $k$ est un paramètre défini
 initialement. 
 Chaque stratégie est mémorisée comme un entier naturel exprimé en base 
-$n+1$: à chaque itération, soit aucun élément n'est modifié, soit un 
+${\mathsf{N}}+1$: à chaque itération, soit aucun élément n'est modifié, soit un 
 élément l'est. 
-Enfin, on donne une dernière entrée: $m  \in \llbracket
-1,l-1\rrbracket$, qui est le nombre d'itérations successives que l'on applique 
+Enfin, on donne une dernière entrée: $m  \in [l-1]
+$, qui est le nombre d'itérations successives que l'on applique 
 en commençant à $x$. 
 Les sorties (stratégies et configurations) sont mémorisées 
 selon les mêmes règles.
@@ -221,33 +226,33 @@ selon les mêmes règles.
 Concentrons nous sur la complexité du problème.
 Chaque entrée, de l'entrée-sortie de l'outil est un triplet 
 composé d'une configuration $x$, d'un extrait  $S$ de la stratégie à 
-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.
-Il y a  $2^n$  configurations $x$ et  $n^l$ stratégies de
+itérer de taille $l$, $2 \le l \le  k$ et d'un nombre $m \in [l-1]$ d'itérations à exécuter.
+Il y a  $2^{\mathsf{N}}$  configurations $x$ et  ${\mathsf{N}}^l$ stratégies de
 taille $l$. 
 De plus, pour une  configuration donnée, il y a 
-$\omega = 1 \times n^2 +  2 \times n^3 + \ldots+ (k-1) \times n^k$
+$\omega = 1 \times {\mathsf{N}}^2 +  2 \times {\mathsf{N}}^3 + \ldots+ (k-1) \times {\mathsf{N}}^k$
 manières d'écrire le couple $(m,S)$. Il n'est pas difficile d'établir que 
 \begin{equation}
-\displaystyle{(n-1) \times \omega = (k-1)\times n^{k+1} - \sum_{i=2}^k n^i} \nonumber
+\displaystyle{({\mathsf{N}}-1) \times \omega = (k-1)\times {\mathsf{N}}^{k+1} - \sum_{i=2}^k {\mathsf{N}}^i} \nonumber
 \end{equation}
 donc
 \begin{equation}
 \omega =
-\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2} \enspace . \nonumber
+\dfrac{(k-1)\times {\mathsf{N}}^{k+1}}{{\mathsf{N}}-1} - \dfrac{{\mathsf{N}}^{k+1}-{\mathsf{N}}^2}{({\mathsf{N}}-1)^2} \enspace . \nonumber
 \end{equation}
 \noindent
 Ainsi le nombre de paire d'entrée-sortie pour les réseaux de neurones considérés
 est 
 $$
-2^n \times \left(\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2}\right) \enspace .
+2^{\mathsf{N}} \times \left(\dfrac{(k-1)\times {\mathsf{N}}^{k+1}}{{\mathsf{N}}-1} - \dfrac{{\mathsf{N}}^{k+1}-{\mathsf{N}}^2}{({\mathsf{N}}-1)^2}\right) \enspace .
 $$
 Par exemple, pour $4$   éléments binaires et une stratégie d'au plus 
 $3$~termes on obtient 2304 couples d'entrée-sortie.
 
 \subsection{Expérimentations}
-\label{section:experiments}
-On se focalise dans cette section sur l'entraînement d'un Perceptron 
-multi-couches pour apprendre des itérations chaotiques. Ce type de réseau
+\label{section:ann:experiments}
+On se focalise dans cette section sur l'entraînement d'un MLP
+pour apprendre des itérations chaotiques. Ce type de réseau
 ayant déjà été évalué avec succès dans la prédiction de 
 séries chaotiques temporelles. En effet, les auteurs de~\cite{dalkiran10} 
 ont montré qu'un MLP pouvait apprendre la dynamique du circuit de Chua.
@@ -274,39 +279,40 @@ section précédente.
 \hline
 \hline
 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{10 neurones} \\
-\cline{3-5} 
+\hline
 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ 
 \hline
-\multirow{6}{*}{\rotatebox{90}{Chaotique $g$ }}&Entrée~(1) & 90.92\% & 91.75\% & 91.82\% \\ 
-& Entrée~(2) & 69.32\% & 78.46\% & 82.15\% \\
-& Entrée~(3) & 68.47\% & 78.49\% & 82.22\% \\
-& Entrée~(4) & 91.53\% & 92.37\% & 93.4\% \\
+\multirow{6}{*}{\rotatebox{90}{Chaotique $g$ }}&Sortie~(1) & 90.92\% & 91.75\% & 91.82\% \\ 
+& Sortie~(2) & 69.32\% & 78.46\% & 82.15\% \\
+& Sortie~(3) & 68.47\% & 78.49\% & 82.22\% \\
+& Sortie~(4) & 91.53\% & 92.37\% & 93.4\% \\
 & Config. & 36.10\% & 51.35\% & 56.85\% \\
 & Stratégie~(5) & 1.91\% & 3.38\% & 2.43\% \\
 \hline
-\multirow{6}{*}{\rotatebox{90}{Non-chaotic $f$}}&Entrée~(1) & 97.64\% & 98.10\% & 98.20\% \\
-& Entrée~(2) & 95.15\% & 95.39\% & 95.46\% \\
-& Entrée~(3) & 100\% & 100\% & 100\% \\
-& Entrée~(4) & 97.47\% & 97.90\% & 97.99\% \\
+\multirow{6}{*}{\rotatebox{90}{Non-chaotic $f$}}&Sortie~(1) & 97.64\% & 98.10\% & 98.20\% \\
+& Sortie~(2) & 95.15\% & 95.39\% & 95.46\% \\
+& Sortie~(3) & 100\% & 100\% & 100\% \\
+& Sortie~(4) & 97.47\% & 97.90\% & 97.99\% \\
 & Config. & 90.52\% & 91.59\% & 91.73\% \\
 & Stratégie~(5) & 3.41\% & 3.40\% & 3.47\% \\
 \hline
 \hline
 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{25 neurones} \\
-\cline{3-5} \\%& \multicolumn{3}{|c|}{40 neurons} \\
+%\cline{3-5} \\%& \multicolumn{3}{|c|}{40 neurons} \\
+\hline
 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ %& 125 & 250 & 500 \\ 
 \hline
-\multirow{6}{*}{\rotatebox{90}{Chaotique $g$}}&Entrée~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
-& Entrée~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
-& Entrée~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
-& Entrée~(4) & 91.61\% & 92.34\% & 93.47\% \\% & 82.77\% & 92.93\% & 93.48\% \\
+\multirow{6}{*}{\rotatebox{90}{Chaotique $g$}}&Sortie~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
+& Sortie~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
+& Sortie~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
+& Sortie~(4) & 91.61\% & 92.34\% & 93.47\% \\% & 82.77\% & 92.93\% & 93.48\% \\
 & Config. & 48.82\% & 67.80\% & 70.97\% \\%& 49.46\% & 68.94\% & 71.11\% \\
 & Stratégie~(5) & 2.62\% & 3.43\% & 3.78\% \\% & 3.10\% & 3.10\% & 3.03\% \\
 \hline
-\multirow{6}{*}{\rotatebox{90}{Non-chaotique $f$}}&Entrée~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
-& Entrée~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
-& Entrée~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
-& Entrée~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
+\multirow{6}{*}{\rotatebox{90}{Non-chaotique $f$}}&Sortie~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
+& Sortie~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
+& Sortie~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
+& Sortie~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
 & Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
 & Stratégie~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
 \hline
@@ -412,7 +418,8 @@ réseau de neurones d'apprendre le comportement global d'itérations
 chaotiques.
 Comme il est difficile (voir impossible) d'apprendre le comportement 
 de telles fonction, il paraît naturelle de savoir si celles ci peuvent être 
-utilisées pour générer des nombres pseudo aléatoires.
+utilisées pour générer des nombres pseudo aléatoires, ce que propose la partie
+suivante.
 
 
 % \appendix{}