%les mémoires associatives~\cite{Crook2007267}
les composants utiles à la sécurité comme les fonctions de
hachage~\cite{Xiao10},
%les mémoires associatives~\cite{Crook2007267}
les composants utiles à la sécurité comme les fonctions de
hachage~\cite{Xiao10},
Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs
principes. Des neurones modifiant leur état en suivant une fonction non
Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs
principes. Des neurones modifiant leur état en suivant une fonction non
-(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
physiques chaotiques comme le circuit de Chua~\cite{dalkiran10}.
Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
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
physiques chaotiques comme le circuit de Chua~\cite{dalkiran10}.
Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
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
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
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.
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.
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
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.
-
+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}.
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
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
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
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
On obtient une réseau de neurones dont le comportement est le suivant
(voir Figure.~\ref{Fig:perceptron}):
\begin{itemize}
\item Le réseau est initialisé avec le vecteur d'entrée
On obtient une réseau de neurones dont le comportement est le suivant
(voir Figure.~\ref{Fig:perceptron}):
\begin{itemize}
\item Le réseau est initialisé avec le vecteur d'entrée
et calcule le vecteur de sortie
$x^1=F_{f_u}\left(x^0,S^0\right)$.
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
- à 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
+ Ce vecteur est publié comme une sortie et est aussi retourné sur la couche d'entrée
+ à 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
$(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}.
$(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}.
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$.
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$.
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:
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:
-\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}}]$.
- $\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)$.
-é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
-$\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}}]$
-$\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
-$\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 à
-\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).
-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)$.
-$\left(x_1^0,\dots,x_n^0\right)$ et $S \in [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}}$.
+$\left(x_1^0,\dots,x_{\mathsf{N}}^0\right)$ et $S \in [{\mathsf{N}}]^{\mathds{N}}$,
+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}}$.
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.
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.
des itération unaires chaotiques?}\label{sec:ann:approx}
Cette section s'intéresse à étudier le comportement d'un réseau de neurones
des itération unaires chaotiques?}\label{sec:ann:approx}
Cette section s'intéresse à étudier le comportement d'un réseau de neurones
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
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
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
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
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
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
Cependant, une telle représentation rapproche
arbitrairement des configurations diamétralement
Cependant, une telle représentation rapproche
arbitrairement des configurations diamétralement
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
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
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
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
-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.
Concentrons nous sur la complexité du problème.
en commençant à $x$.
Les sorties (stratégies et configurations) sont mémorisées
selon les mêmes règles.
Concentrons nous sur la complexité du problème.
-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
$$
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}
$$
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.
Ce réseau avec rétropropagation est composé de deux couches
et entraîné à l'aide d'une propagation arrière Bayesienne.
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.
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.
En pratique, nous avons considéré des configurations de
quatre éléments booléens
et une stratégie fixe de longueur 3.
-\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\% \\
-\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} \\
& 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} \\
-\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
& 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
& Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
& Stratégie~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
\hline
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
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.
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.
réseau de neurones d'apprendre le comportement global d'itérations
chaotiques.
Comme il est difficile (voir impossible) d'apprendre le comportement
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.
+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.