--- /dev/null
+% \section{Introduction}
+% \label{S1}
+
+Les réseaux de neurones chaotiques ont été étudiés à de maintes reprises
+par le passé en raison notamment de leurs applications potentielles:
+%les mémoires associatives~\cite{Crook2007267}
+les composants utils à la sécurité comme les fonctions de
+hachage~\cite{Xiao10},
+le tatouage numérique~\cite{1309431,Zhang2005759}
+ou les schémas de chiffrement~\cite{Lian20091296}.
+Dans tous ces cas, l'emploi de fonctions chaotiques est motivé par
+leur comportement imprévisibile 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}.
+L'architecture de réseaux de neurones de type Perceptron multi-couches
+(MLP) n'iterent quant à eux, pas nécesssairement de fonctions chaotiques.
+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},
+la fonction de transfert de cette famille de réseau celle
+d'initialisation sont toutes les deux définies à l'aide de
+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
+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.
+
+\JFC{revoir plan}
+
+The remainder of this research work is organized as follows. The next
+section is devoted to the basics of Devaney's chaos. Section~\ref{S2}
+formally describes how to build a neural network that operates
+chaotically. Section~\ref{S3} is devoted to the dual case of checking
+whether an existing neural network is chaotic or not. Topological
+properties of chaotic neural networks are discussed in Sect.~\ref{S4}.
+The Section~\ref{section:translation} shows how to translate such
+iterations into an Artificial Neural Network (ANN), in order to
+evaluate the capability for this latter to learn chaotic behaviors.
+This ability is studied in Sect.~\ref{section:experiments}, where
+various ANNs try to learn two sets of data: the first one is obtained
+by chaotic iterations while the second one results from a non-chaotic
+system. Prediction success rates are given and discussed for the two
+sets. The paper ends with a conclusion section where our contribution
+is summed up and intended future work is exposed.
+
+
+\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.
+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-couche associé à la fonction
+$F_{f_u}$.
+Plus précisément, pour chaque entrée
+ $(x,s) \in \mathds{B}^n \times [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.
+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
+ $\left(x^0,S^0\right) \mathds{B}^n \times [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
+ à 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
+ premier terme de la sequence $(S^t)^{t \in \Nats}$
+ (\textit{i.e.}, $S^0 \in [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 .
+ \end{equation}
+\end{itemize}
+
+\begin{figure}
+ \centering
+ \includegraphics[scale=0.625]{images/perceptron}
+ \caption{Un perceptron équivalent aux itérations unitaires}
+ \label{Fig:perceptron}
+\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
+ $(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
+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$.
+On peut donc le qualifier de chaotique au sens de Devaney.
+
+\section{Vérifier si un réseau de neurones est chaotique}
+\label{S3}
+On s'intéresse maintenant au cas où l'on dispose d'un
+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
+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 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)$.
+\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
+au vecteur
+$\left(\left(x_1,\dots,x_n\right),s\right) \in \mathds{B}^n \times[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
+à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 à
+\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 .
+\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)$.
+Si ce réseau de neurones est initialisé avec
+$\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}}$.
+Les itérations de $F_{f_u}$
+sont donc un modèle formel de ce genre de réseau de neurones.
+Pour vérifier s'il est chaotique, il suffit ainsi
+de vérifier si le graphe d'itérations
+$\textsc{giu}(f)$ est fortement connexe.
+
+
+\section{Suitability of Feedforward Neural Networks
+for Predicting Chaotic and Non-chaotic Behaviors}
+
+In the context of computer science different topic areas have an
+interest in chaos, as for steganographic
+techniques~\cite{1309431,Zhang2005759}. Steganography consists in
+embedding a secret message within an ordinary one, while the secret
+extraction takes place once at destination. The reverse ({\it i.e.},
+automatically detecting the presence of hidden messages inside media)
+is called steganalysis. Among the deployed strategies inside
+detectors, there are support vectors
+machines~\cite{Qiao:2009:SM:1704555.1704664}, neural
+networks~\cite{10.1109/ICME.2003.1221665,10.1109/CIMSiM.2010.36}, and
+Markov chains~\cite{Sullivan06steganalysisfor}. Most of these
+detectors give quite good results and are rather competitive when
+facing steganographic tools. However, to the best of our knowledge
+none of the considered information hiding schemes fulfills the Devaney
+definition of chaos~\cite{Devaney}. Indeed, one can wonder whether
+detectors continue to give good results when facing truly chaotic
+schemes. More generally, there remains the open problem of deciding
+whether artificial intelligence is suitable for predicting topological
+chaotic behaviors.
+
+\subsection{Representing Chaotic Iterations for Neural Networks}
+\label{section:translation}
+
+The problem of deciding whether classical feedforward ANNs are
+suitable to approximate topological chaotic iterations may then be
+reduced to evaluate such neural networks on iterations of functions
+with Strongly Connected Component (SCC)~graph of iterations. To
+compare with non-chaotic iterations, the experiments detailed in the
+following sections are carried out using both kinds of function
+(chaotic and non-chaotic). Let us emphasize on the difference between
+this kind of neural networks and the Chaotic Iterations based
+multilayer peceptron.
+
+We are then left to compute two disjoint function sets that contain
+either functions with topological chaos properties or not, depending
+on the strong connectivity of their iterations graph. This can be
+achieved for instance by removing a set of edges from the iteration
+graph $\Gamma(f_0)$ of the vectorial negation function~$f_0$. One can
+deduce whether a function verifies the topological chaos property or
+not by checking the strong connectivity of the resulting graph of
+iterations.
+
+For instance let us consider the functions $f$ and $g$ from $\Bool^4$
+to $\Bool^4$ respectively defined by the following lists:
+$$[0, 0, 2, 3, 13, 13, 6, 3, 8, 9, 10, 11, 8, 13, 14,
+ 15]$$ $$\mbox{and } [11, 14, 13, 14, 11, 10, 1, 8, 7, 6, 5, 4, 3, 2,
+ 1, 0] \enspace.$$ In other words, the image of $0011$ by $g$ is
+$1110$: it is obtained as the binary value of the fourth element in
+the second list (namely~14). It is not hard to verify that
+$\Gamma(f)$ is not SCC (\textit{e.g.}, $f(1111)$ is $1111$) whereas
+$\Gamma(g)$ is. The remaining of this section shows how to translate
+iterations of such functions into a model amenable to be learned by an
+ANN. Formally, input and output vectors are pairs~$((S^t)^{t \in
+ \Nats},x)$ and $\left(\sigma((S^t)^{t \in
+ \Nats}),F_{f}(S^0,x)\right)$ as defined in~Eq.~(\ref{eq:Gf}).
+
+Firstly, let us focus on how to memorize configurations. Two distinct
+translations are proposed. In the first case, we take one input in
+$\Bool$ per component; in the second case, configurations are
+memorized as natural numbers. A coarse attempt to memorize
+configuration as natural number could consist in labeling each
+configuration with its translation into decimal numeral system.
+However, such a representation induces too many changes between a
+configuration labeled by a power of two and its direct previous
+configuration: for instance, 16~(10000) and 15~(01111) are close in a
+decimal ordering, but their Hamming distance is 5. This is why Gray
+codes~\cite{Gray47} have been preferred.
+
+Secondly, let us detail how to deal with strategies. Obviously, it is
+not possible to translate in a finite way an infinite strategy, even
+if both $(S^t)^{t \in \Nats}$ and $\sigma((S^t)^{t \in \Nats})$ belong
+to $\{1,\ldots,n\}^{\Nats}$. Input strategies are then reduced to
+have a length of size $l \in \llbracket 2,k\rrbracket$, where $k$ is a
+parameter of the evaluation. Notice that $l$ is greater than or equal
+to $2$ since we do not want the shift $\sigma$~function to return an
+empty strategy. Strategies are memorized as natural numbers expressed
+in base $n+1$. At each iteration, either none or one component is
+modified (among the $n$ components) leading to a radix with $n+1$
+entries. Finally, we give an other input, namely $m \in \llbracket
+1,l-1\rrbracket$, which is the number of successive iterations that
+are applied starting from $x$. Outputs are translated with the same
+rules.
+
+To address the complexity issue of the problem, let us compute the
+size of the data set an ANN has to deal with. Each input vector of an
+input-output pair is composed of a configuration~$x$, an excerpt $S$
+of the strategy to iterate of size $l \in \llbracket 2, k\rrbracket$,
+and a number $m \in \llbracket 1, l-1\rrbracket$ of iterations that
+are executed.
+
+Firstly, there are $2^n$ configurations $x$, with $n^l$ strategies of
+size $l$ for each of them. Secondly, for a given configuration there
+are $\omega = 1 \times n^2 + 2 \times n^3 + \ldots+ (k-1) \times n^k$
+ways of writing the pair $(m,S)$. Furthermore, it is not hard to
+establish that
+\begin{equation}
+\displaystyle{(n-1) \times \omega = (k-1)\times n^{k+1} - \sum_{i=2}^k n^i} \nonumber
+\end{equation}
+then
+\begin{equation}
+\omega =
+\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2} \enspace . \nonumber
+\end{equation}
+\noindent And then, finally, the number of input-output pairs for our
+ANNs is
+$$
+2^n \times \left(\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2}\right) \enspace .
+$$
+For instance, for $4$ binary components and a strategy of at most
+$3$~terms we obtain 2304~input-output pairs.
+
+\subsection{Experiments}
+\label{section:experiments}
+
+To study if chaotic iterations can be predicted, we choose to train
+the multilayer perceptron. As stated before, this kind of network is
+in particular well-known for its universal approximation property
+\cite{Cybenko89,DBLP:journals/nn/HornikSW89}. Furthermore, MLPs have
+been already considered for chaotic time series prediction. For
+example, in~\cite{dalkiran10} the authors have shown that a
+feedforward MLP with two hidden layers, and trained with Bayesian
+Regulation back-propagation, can learn successfully the dynamics of
+Chua's circuit.
+
+In these experiments we consider MLPs having one hidden layer of
+sigmoidal neurons and output neurons with a linear activation
+function. They are trained using the Limited-memory
+Broyden-Fletcher-Goldfarb-Shanno quasi-newton algorithm in combination
+with the Wolfe linear search. The training process is performed until
+a maximum number of epochs is reached. To prevent overfitting and to
+estimate the generalization performance we use holdout validation by
+splitting the data set into learning, validation, and test subsets.
+These subsets are obtained through random selection such that their
+respective size represents 65\%, 10\%, and 25\% of the whole data set.
+
+Several neural networks are trained for both iterations coding
+schemes. In both cases iterations have the following layout:
+configurations of four components and strategies with at most three
+terms. Thus, for the first coding scheme a data set pair is composed
+of 6~inputs and 5~outputs, while for the second one it is respectively
+3~inputs and 2~outputs. As noticed at the end of the previous section,
+this leads to data sets that consist of 2304~pairs. The networks
+differ in the size of the hidden layer and the maximum number of
+training epochs. We remember that to evaluate the ability of neural
+networks to predict a chaotic behavior for each coding scheme, the
+trainings of two data sets, one of them describing chaotic iterations,
+are compared.
+
+Thereafter we give, for the different learning setups and data sets,
+the mean prediction success rate obtained for each output. Such a rate
+represents the percentage of input-output pairs belonging to the test
+subset for which the corresponding output value was correctly
+predicted. These values are computed considering 10~trainings with
+random subsets construction, weights and biases initialization.
+Firstly, neural networks having 10 and 25~hidden neurons are trained,
+with a maximum number of epochs that takes its value in
+$\{125,250,500\}$ (see Tables~\ref{tab1} and \ref{tab2}). Secondly,
+we refine the second coding scheme by splitting the output vector such
+that each output is learned by a specific neural network
+(Table~\ref{tab3}). In this last case, we increase the size of the
+hidden layer up to 40~neurons and we consider larger number of epochs.
+
+\begin{table}[htbp!]
+\caption{Prediction success rates for configurations expressed as boolean vectors.}
+\label{tab1}
+\centering {\small
+\begin{tabular}{|c|c||c|c|c|}
+\hline
+\multicolumn{5}{|c|}{Networks topology: 6~inputs, 5~outputs, and one hidden layer} \\
+\hline
+\hline
+\multicolumn{2}{|c||}{Hidden neurons} & \multicolumn{3}{c|}{10 neurons} \\
+\cline{3-5}
+\multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\
+\hline
+\multirow{6}{*}{\rotatebox{90}{Chaotic}}&Output~(1) & 90.92\% & 91.75\% & 91.82\% \\
+& Output~(2) & 69.32\% & 78.46\% & 82.15\% \\
+& Output~(3) & 68.47\% & 78.49\% & 82.22\% \\
+& Output~(4) & 91.53\% & 92.37\% & 93.4\% \\
+& Config. & 36.10\% & 51.35\% & 56.85\% \\
+& Strategy~(5) & 1.91\% & 3.38\% & 2.43\% \\
+\hline
+\multirow{6}{*}{\rotatebox{90}{Non-chaotic}}&Output~(1) & 97.64\% & 98.10\% & 98.20\% \\
+& Output~(2) & 95.15\% & 95.39\% & 95.46\% \\
+& Output~(3) & 100\% & 100\% & 100\% \\
+& Output~(4) & 97.47\% & 97.90\% & 97.99\% \\
+& Config. & 90.52\% & 91.59\% & 91.73\% \\
+& Strategy~(5) & 3.41\% & 3.40\% & 3.47\% \\
+\hline
+\hline
+\multicolumn{2}{|c||}{Hidden neurons} & \multicolumn{3}{c|}{25 neurons} \\ %& \multicolumn{3}{|c|}{40 neurons} \\
+\cline{3-5}
+\multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ %& 125 & 250 & 500 \\
+\hline
+\multirow{6}{*}{\rotatebox{90}{Chaotic}}&Output~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
+& Output~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
+& Output~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
+& Output~(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\% \\
+& Strategy~(5) & 2.62\% & 3.43\% & 3.78\% \\% & 3.10\% & 3.10\% & 3.03\% \\
+\hline
+\multirow{6}{*}{\rotatebox{90}{Non-chaotic}}&Output~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
+& Output~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
+& Output~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
+& Output~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
+& Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
+& Strategy~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
+\hline
+\end{tabular}
+}
+\end{table}
+
+Table~\ref{tab1} presents the rates obtained for the first coding
+scheme. For the chaotic data, it can be seen that as expected
+configuration prediction becomes better when the number of hidden
+neurons and maximum epochs increases: an improvement by a factor two
+is observed (from 36.10\% for 10~neurons and 125~epochs to 70.97\% for
+25~neurons and 500~epochs). We also notice that the learning of
+outputs~(2) and~(3) is more difficult. Conversely, for the
+non-chaotic case the simplest training setup is enough to predict
+configurations. For all these feedforward network topologies and all
+outputs the obtained results for the non-chaotic case outperform the
+chaotic ones. Finally, the rates for the strategies show that the
+different feedforward networks are unable to learn them.
+
+For the second coding scheme (\textit{i.e.}, with Gray Codes)
+Table~\ref{tab2} shows that any network learns about five times more
+non-chaotic configurations than chaotic ones. As in the previous
+scheme, the strategies cannot be predicted.
+Figures~\ref{Fig:chaotic_predictions} and
+\ref{Fig:non-chaotic_predictions} present the predictions given by two
+feedforward multilayer perceptrons that were respectively trained to
+learn chaotic and non-chaotic data, using the second coding scheme.
+Each figure shows for each sample of the test subset (577~samples,
+representing 25\% of the 2304~samples) the configuration that should
+have been predicted and the one given by the multilayer perceptron. It
+can be seen that for the chaotic data the predictions are far away
+from the expected configurations. Obviously, the better predictions
+for the non-chaotic data reflect their regularity.
+
+Let us now compare the two coding schemes. Firstly, the second scheme
+disturbs the learning process. In fact in this scheme the
+configuration is always expressed as a natural number, whereas in the
+first one the number of inputs follows the increase of the Boolean
+vectors coding configurations. In this latter case, the coding gives a
+finer information on configuration evolution.
+\begin{table}[b]
+\caption{Prediction success rates for configurations expressed with Gray code}
+\label{tab2}
+\centering
+\begin{tabular}{|c|c||c|c|c|}
+\hline
+\multicolumn{5}{|c|}{Networks topology: 3~inputs, 2~outputs, and one hidden layer} \\
+\hline
+\hline
+& Hidden neurons & \multicolumn{3}{c|}{10 neurons} \\
+\cline{2-5}
+& Epochs & 125 & 250 & 500 \\ %& 1000
+\hline
+\multirow{2}{*}{Chaotic}& Config.~(1) & 13.29\% & 13.55\% & 13.08\% \\ %& 12.5\%
+& Strategy~(2) & 0.50\% & 0.52\% & 1.32\% \\ %& 1.42\%
+\hline
+\multirow{2}{*}{Non-Chaotic}&Config.~(1) & 77.12\% & 74.00\% & 72.60\% \\ %& 75.81\%
+& Strategy~(2) & 0.42\% & 0.80\% & 1.16\% \\ %& 1.42\%
+\hline
+\hline
+& Hidden neurons & \multicolumn{3}{c|}{25 neurons} \\
+\cline{2-5}
+& Epochs & 125 & 250 & 500 \\ %& 1000
+\hline
+\multirow{2}{*}{Chaotic}& Config.~(1) & 12.27\% & 13.15\% & 13.05\% \\ %& 15.44\%
+& Strategy~(2) & 0.71\% & 0.66\% & 0.88\% \\ %& 1.73\%
+\hline
+\multirow{2}{*}{Non-Chaotic}&Config.~(1) & 73.60\% & 74.70\% & 75.89\% \\ %& 68.32\%
+& Strategy~(2) & 0.64\% & 0.97\% & 1.23\% \\ %& 1.80\%
+\hline
+\end{tabular}
+\end{table}
+
+\begin{figure}
+ \centering
+ \includegraphics[scale=0.5]{images/chaotic_trace2}
+ \caption {Second coding scheme - Predictions obtained for a chaotic test subset.}
+ \label{Fig:chaotic_predictions}
+\end{figure}
+
+\begin{figure}
+ \centering
+ \includegraphics[scale=0.5]{images/non-chaotic_trace2}
+ \caption{Second coding scheme - Predictions obtained for a non-chaotic test subset.}
+ \label{Fig:non-chaotic_predictions}
+\end{figure}
+
+Unfortunately, in practical applications the number of components is
+usually unknown. Hence, the first coding scheme cannot be used
+systematically. Therefore, we provide a refinement of the second
+scheme: each output is learned by a different ANN. Table~\ref{tab3}
+presents the results for this approach. In any case, whatever the
+considered feedforward network topologies, the maximum epoch number,
+and the kind of iterations, the configuration success rate is slightly
+improved. Moreover, the strategies predictions rates reach almost
+12\%, whereas in Table~\ref{tab2} they never exceed 1.5\%. Despite of
+this improvement, a long term prediction of chaotic iterations still
+appear to be an open issue.
+
+\begin{table}
+\caption{Prediction success rates for split outputs.}
+\label{tab3}
+\centering
+\begin{tabular}{|c||c|c|c|}
+\hline
+\multicolumn{4}{|c|}{Networks topology: 3~inputs, 1~output, and one hidden layer} \\
+\hline
+\hline
+Epochs & 125 & 250 & 500 \\
+\hline
+\hline
+Chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
+\hline
+10~neurons & 12.39\% & 14.06\% & 14.32\% \\
+25~neurons & 13.00\% & 14.28\% & 14.58\% \\
+40~neurons & 11.58\% & 13.47\% & 14.23\% \\
+\hline
+\hline
+Non chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
+\cline{2-4}
+%Epochs & 125 & 250 & 500 \\
+\hline
+10~neurons & 76.01\% & 74.04\% & 78.16\% \\
+25~neurons & 76.60\% & 72.13\% & 75.96\% \\
+40~neurons & 76.34\% & 75.63\% & 77.50\% \\
+\hline
+\hline
+Chaotic/non chaotic & \multicolumn{3}{c|}{Output = Strategy} \\
+\cline{2-4}
+%Epochs & 125 & 250 & 500 \\
+\hline
+10~neurons & 0.76\% & 0.97\% & 1.21\% \\
+25~neurons & 1.09\% & 0.73\% & 1.79\% \\
+40~neurons & 0.90\% & 1.02\% & 2.15\% \\
+\hline
+\multicolumn{4}{c}{} \\
+\hline
+Epochs & 1000 & 2500 & 5000 \\
+\hline
+\hline
+Chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
+\hline
+10~neurons & 14.51\% & 15.22\% & 15.22\% \\
+25~neurons & 16.95\% & 17.57\% & 18.46\% \\
+40~neurons & 17.73\% & 20.75\% & 22.62\% \\
+\hline
+\hline
+Non chaotic & \multicolumn{3}{c|}{Output = Configuration} \\
+\cline{2-4}
+%Epochs & 1000 & 2500 & 5000 \\
+\hline
+10~neurons & 78.98\% & 80.02\% & 79.97\% \\
+25~neurons & 79.19\% & 81.59\% & 81.53\% \\
+40~neurons & 79.64\% & 81.37\% & 81.37\% \\
+\hline
+\hline
+Chaotic/non chaotic & \multicolumn{3}{c|}{Output = Strategy} \\
+\cline{2-4}
+%Epochs & 1000 & 2500 & 5000 \\
+\hline
+10~neurons & 3.47\% & 9.98\% & 11.66\% \\
+25~neurons & 3.92\% & 8.63\% & 10.09\% \\
+40~neurons & 3.29\% & 7.19\% & 7.18\% \\
+\hline
+\end{tabular}
+\end{table}
+
+\section{Conclusion}
+
+In this paper, we have established an equivalence between chaotic
+iterations, according to the Devaney's definition of chaos, and a
+class of multilayer perceptron neural networks. Firstly, we have
+described how to build a neural network that can be trained to learn a
+given chaotic map function. Secondly, we found a condition that allow
+to check whether the iterations induced by a function are chaotic or
+not, and thus if a chaotic map is obtained. Thanks to this condition
+our approach is not limited to a particular function. In the dual
+case, we show that checking if a neural network is chaotic consists in
+verifying a property on an associated graph, called the graph of
+iterations. These results are valid for recurrent neural networks
+with a particular architecture. However, we believe that a similar
+work can be done for other neural network architectures. Finally, we
+have discovered at least one family of problems with a reasonable
+size, such that artificial neural networks should not be applied in
+the presence of chaos, due to their inability to learn chaotic
+behaviors in this context. Such a consideration is not reduced to a
+theoretical detail: this family of discrete iterations is concretely
+implemented in a new steganographic method \cite{guyeux10ter}. As
+steganographic detectors embed tools like neural networks to
+distinguish between original and stego contents, our studies tend to
+prove that such detectors might be unable to tackle with chaos-based
+information hiding schemes.
+
+In future work we intend to enlarge the comparison between the
+learning of truly chaotic and non-chaotic behaviors. Other
+computational intelligence tools such as support vector machines will
+be investigated too, to discover which tools are the most relevant
+when facing a truly chaotic phenomenon. A comparison between learning
+rate success and prediction quality will be realized. Concrete
+consequences in biology, physics, and computer science security fields
+will then be stated.
+
+% \appendix{}
+
+% \begin{Def} \label{def2}
+% A continuous function $f$ on a topological space $(\mathcal{X},\tau)$
+% is defined to be {\emph{topologically transitive}} if for any pair of
+% open sets $U$, $V \in \mathcal{X}$ there exists
+% $k \in
+% \mathds{N}^{\ast}$
+% such that
+% $f^k(U) \cap V \neq \emptyset$.
+% \end{Def}
+
+%\bibliography{chaos-paper}% Produces the bibliography via BibTeX.
+
+%\end{document}
+%
+% ****** End of file chaos-paper.tex ******