X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/blobdiff_plain/75aa438e61284f634375e2c1e62c79f2af12678f..d31be79de69d9af9371a3b1fcb3df81246c5928a:/chaosANN.tex diff --git a/chaosANN.tex b/chaosANN.tex index 89ac939..143ce23 100644 --- a/chaosANN.tex +++ b/chaosANN.tex @@ -12,9 +12,11 @@ leur comportement imprévisible et proche de l'aléa. Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs principes. Des neurones modifiant leur état en suivant une fonction non -linéaire son par exemple appelés neurones chaotiques~\cite{Crook2007267}. +linéaire sont par exemple appelés neurones chaotiques~\cite{Crook2007267}. L'architecture de réseaux de neurones de type Perceptron multi-couches -(MLP) n'itèrent quant à eux, pas nécessairement de fonctions chaotiques. +(MLP) n'itèrent quant à eux classiquement pas de fonction chaotique: +leurs fonctions d'activation sont usuellement choisies parmi les sigmoïdes +(la fonction tangeante hyperbolique par exemple). Il a cependant été démontré que ce sont des approximateurs universels~\cite{Cybenko89,DBLP:journals/nn/HornikSW89}. Ils permettent, dans certains cas, de simuler des comportements @@ -28,7 +30,7 @@ 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 ne soit fournie. +et ce sans qu'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 @@ -39,7 +41,8 @@ chaotique selon Devanay. La section~\ref{S3} présente l'approche duale 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 +neurones peut approximer des itérations unaires chaotiques, +ces itérations é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}. @@ -58,7 +61,7 @@ Plus précisément, pour chaque entrée $(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. +les dépendances entre deux itérations successives. On obtient une réseau de neurones dont le comportement est le suivant (voir Figure.~\ref{Fig:perceptron}): @@ -68,8 +71,8 @@ On obtient une réseau de neurones dont le comportement est le suivant 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é 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 + à travers les liens de retour. +\item Lorsque le réseau est activé à la $t^{\textrm{ème}}$ itération, l'état du 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 [{\mathsf{N}}]$) servent à construire le nouveau vecteur de sortie. @@ -82,7 +85,7 @@ On obtient une réseau de neurones dont le comportement est le suivant \begin{figure} \centering \includegraphics[scale=0.625]{images/perceptron} - \caption{Un Perceptron équivalent aux itérations unitaires} + \caption{Un Perceptron équivalent aux itérations unaires} \label{Fig:perceptron} \end{figure} @@ -91,7 +94,7 @@ 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}. -Mathématiquement, cela signifie que si on utilise les mêmes vecteurs d'entrées +Mathématiquement, cela signifie que si on utilise les mêmes vecteurs d'entrée les deux approches génèrent successivement les mêmes sorties. En d'autres termes ce réseau de neurones modélise le comportement de $G_{f_u}$, dont les itérations sont chaotiques sur $\mathcal{X}_u$. @@ -140,10 +143,10 @@ $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_{\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 +il produit exactement les mêmes sorties que les itérations de $F_{f_u}$ avec une 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. +sont donc un modèle formel de cette classe de réseaux de neurones. Pour vérifier si un de ces représentants est chaotique, il suffit ainsi de vérifier si le graphe d'itérations $\textsc{giu}(f)$ est fortement connexe. @@ -162,12 +165,12 @@ qui approximerait les itérations de la fonction $G_{f_u}$ comme définie à l'équation~(\ref{eq:sch:unaire}). Sans perte de généralité, on considère dans ce qui suit une instance -de de fonction à quatre éléments. + de fonction à quatre éléments. \subsection{Construction du réseau} \label{section:translation} -On considère par exemple les deux fonctions $f$ and $g$ de $\Bool^4$ +On considère par exemple les deux fonctions $f$ et $g$ de $\Bool^4$ dans $\Bool^4$ définies par: \begin{eqnarray*} @@ -197,7 +200,7 @@ 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^{\mathsf{N}}$ -l'entier naturel naturel correspondant. +l'entier naturel correspondant. Cependant, une telle représentation rapproche arbitrairement des configurations diamétralement opposées dans le ${\mathsf{N}}$-cube comme une puissance de @@ -224,7 +227,7 @@ Les sorties (stratégies et configurations) sont mémorisées 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 +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$, $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 @@ -241,7 +244,7 @@ donc \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 +Ainsi le nombre de paires d'entrée-sortie pour les réseaux de neurones considérés est $$ 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 . @@ -259,8 +262,9 @@ ont montré qu'un MLP pouvait apprendre la dynamique du circuit de Chua. Ce réseau avec rétropropagation est composé de deux couches et entraîné à l'aide d'une propagation arrière Bayesienne. -Le choix de l'architecture du réseau ainsi que de la méthode d'apprentissage -ont été détaillé dans~\cite{bcgs12:ij}. +Les choix de l'architecture de réseau ainsi que ceux concernant les + méthodes d'apprentissage +ont été détaillés dans~\cite{bcgs12:ij}. En pratique, nous avons considéré des configurations de quatre éléments booléens et une stratégie fixe de longueur 3. @@ -366,8 +370,8 @@ apprendre le comportement de la stratégie. Les résultats concernant le second codage (\textit{i.e.}, avec les codes de Gray) sont synthétisés dans le tableau~\ref{tab2}. On constate -que le réseau apprend cinq fois mieux les comportement non chaotiques -que ceux qui le sont. Ceci est est illustré au travers des +que le réseau apprend cinq fois mieux les comportements non chaotiques +que ceux qui le sont. Ceci est illustré au travers des figures~\ref{Fig:chaotic_predictions} et~\ref{Fig:non-chaotic_predictions}. De plus, comme dans le codage précédent, les stratégies ne peuvent pas être prédites. @@ -417,8 +421,8 @@ Nous avons enfin montré en pratique qu'il est difficile pour un 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, ce que propose la partie +de telles fonctions, il paraît naturel de savoir si celles ci peuvent être +utilisées pour générer des nombres pseudo-aléatoires, ce que propose la partie suivante.