RAPPORT DE STAGE DE FIN D’ETUDES
APPLICATION DES RÉSEAUX DE
NEURONES DANS LE DOMAINE
DE L’HYDRO-INGÉNIEURIE
Diplôme d’ingé...
1 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
FINAL STUDY REPORT
Water Engeneering Degree
Unive...
2 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
RÉSUMÉ
Ce rapport présente mon travail de recherc...
3 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
SOMMAIRE
RÉSUMÉ ....................................
4 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
REMERCIEMENTS
Je tiens tout d’abord à remercier l...
5 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
INTRODUCTION
Dans le cadre de la fin de mes étude...
6 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
PARTIE I. LA NOTION DE RESEAU DE NEURONES ARTIFIC...
7 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Cette course au développement de l’IA a très rapi...
8 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
[EHRSAM & PORRI 2012]. Par comparaison, un l’éner...
9 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Les entrées sont représentées par un vecteur appe...
10 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Nous savons maintenant le fonctionnement d’un ne...
11 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Si elles sont différentes de celles attendues, a...
12 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
PARTIE II. MATLAB ET SA BOÎTE A OUTILS «NEURAL N...
13 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
2. La boîte à outils «Neural Networks»
Le choix ...
14 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 7: Interface de la boîte à outils NN de M...
15 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 8: Courbes générées par MATLAB. De gauche...
16 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 9: La situation centrale de la Rhénanie-d...
17 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Le quartier de Ruhrort héberge environ 6000 habi...
18 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 12: L'écoulement du Rhin du Mont Saint Go...
19 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
2. Le traitement des données sur Excel
Les donné...
20 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 13:Graphique du débit sur une année moyen...
21 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Possédant également dans cet échantillon de donn...
22 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 16: Hauteur d’eau moyenne quotidienne en ...
23 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
l’échantillon est grand, plus l’entraînement va ...
24 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Le nombre de neurone cachés
Ce nombre représente...
25 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 18: Graphique d'efficacité représentant l...
26 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
PARTIE III.SIMULATION ET ANALYSE DES RESULTATS
A...
27 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 19: Graphique de la hauteur d'eau à Ruhro...
28 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 21: Graphique de la prédiction de la haut...
29 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
25, que la hauteur d’eau simulée se trouve conte...
30 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 22: Graphique des débits réel et simulé à...
31 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 24: Graphique des débits réel et simulé à...
32 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
Figure 26: Graphique des débits réel et simulé à...
33 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
C. L’utilisation des RNA: Synthèse et analyse de...
34 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
CONCLUSION
En conclusion, peut-on dire que l’uti...
35 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
ANNEXE 1: SCRIPT D’UN RESEAU DE
NEURONES ARTIFIC...
36 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
% Entraînement du réseau
[net,tr] = train(net,x,...
37 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
BIBLIOGRAPHIE
ACSYSTEME - 2014 - Matlab / Scilab...
38 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
IZHIKEVITH E. M. - 2006 – Scholarpedia the peer-...
39 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
LISTE DES SIGLES
BFGS Quasi-Newton backpropagati...
40 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
LISTE DES FIGURES
Figure 1: Illustration du test...
41 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
LISTE DES TABLEAUX
Tableau 1: Liste des fonction...
42 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN
RÉSUMÉ
Ce rapport présente mon travail de recher...
Prochain SlideShare
Chargement dans…5
×

Rapport de Stage - Marie Brunel

1 400 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 400
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport de Stage - Marie Brunel

  1. 1. RAPPORT DE STAGE DE FIN D’ETUDES APPLICATION DES RÉSEAUX DE NEURONES DANS LE DOMAINE DE L’HYDRO-INGÉNIEURIE Diplôme d’ingénieur en Génie de l’eau Université de Nice Sophia Antipolis Polytech Nice-Sophia 930 Route des Colles - BP 145 06903 Sophia Antipolis Cedex FRANCE Tél: +33 (0)4 92 96 50 50 Web: http://www.polytechnice.fr/hydroinformatique.html Brandenburgische Technische Universitat (BTU) Cottbus - Senftenberg Chair Environmental Informatics Postfach 101344 03013 Cottbus ALLEMAGNE Tél: +49 (0)3 55 69 21 39 Web: http://www.tu-cottbus.de/fakultaet4/de/environmental-informatics Marie BRUNEL Tuteur : Frank MOLKENTHIN Responsable du département d’informatique environnementale Tuteur académique : Konstantin BRENER Mars – Juillet 2015
  2. 2. 1 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN FINAL STUDY REPORT Water Engeneering Degree University of Nice Sophia Antipolis Polytech Nice-Sophia 930 Route des Colles - BP 145 06903 Sophia Antipolis Cedex FRANCE Phone: +33 (0)4 92 96 50 50 Web: http://www.polytechnice.fr/hydroinformatique.html Brandenburgische Technische Universitat (BTU) Cottbus - Senftenberg Chair Environmental Informatics Postfach 101344 03013 Cottbus GERMANY Tél: +49 (0)3 55 69 21 39 Web: http://www.tu-cottbus.de/fakultaet4/de/environmental-informatics Marie BRUNEL Tutor: Frank MOLKENTHIN Head of chair Environmental Informatics Academic tutor : Konstantin BRENER March – July 2015 APPLICATION OF NEURAL NETWORKS IN HYDRO ENGINEERING
  3. 3. 2 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN RÉSUMÉ Ce rapport présente mon travail de recherche effectué dans le cadre de mon stage de fin de cycle ingénieur, de Mars à Juillet 2015 au sein du département d’informatique environnementale de l’université technique de Cottbus en Allemagne. Ce stage avait comme sujet l’application des réseaux de neurones artificiels dans le domaine de l’hydraulique. La problématique plus précise était d’étudier et d’effectuer une première synthèse et analyse sur l’utilisation et l’efficacité des RNA. Ce rapport synthétise mes résultats sur deux modélisations de débit et hauteur d’eau sur les deux sites de Wesel et Ruhrort en Allemagne sur les bords du Rhin. Une description détaillée du processus et de mes recherches y est également consigné. Toutes les modélisations ont été effectuées sur le logiciel MATLAB notamment à l’aide de sa boîte à outil « Neural Networks » .La présentation et l’analyse des résultats ont été prises en charge à l’aide du logiciel Excel. Mots clefs: Réseaux de neurones artificiels ; Rhin ; MATLAB ; Boîte à outils « Neural Networks » ABSTRACT This report presents my research work, I did during my final engineering cycle internship, from March to July 2015 in the environmental informatics department at the Technical University of Cottbus in Germany. The subject of my research was the application of neural networks in hydraulics and my problematic was the study of the use and efficient of neural networks. This report synthesizes all of my results on the water level and flow modelling in Ruhrort and Wesel, two Germany cities on the river Rhine. A detailed description of the process and of my research is recorded too. I did all of the modelling with the software MATLAB and its “Neural Network” toolbox and analysed the results with Excel. Keywords: Artificial neural networks; Rhine; MATLAB; « Neural Networks » toolbox
  4. 4. 3 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN SOMMAIRE RÉSUMÉ ...............................................................................................................................................2 ABSTRACT...........................................................................................................................................2 SOMMAIRE..........................................................................................................................................3 REMERCIEMENTS.............................................................................................................................4 INTRODUCTION.................................................................................................................................5 PARTIE I. LA NOTION DE RESEAU DE NEURONES ARTIFICIELS..........................................6 A. L’intelligence artificielle et ses applications .................................................................................6 B. Le neurone artificiel : De la biologie à l’informatique...................................................................7 C. Les réseaux de neurones artificiels .............................................................................................10 PARTIE II. ...................................MATLAB ET SA BOÎTE A OUTILS « NEURAL NETWORKS » 12 A. Le logiciel MATLAB.................................................................................................................12 1. Un logiciel polyvalent ............................................................................................................12 2. La boîte à outils « Neural Networks ».....................................................................................13 B. Localisation et traitement des données........................................................................................15 1. Géographie et économie de la Rhénanie-du-Nord-Westphalie.................................................15 2. Le traitement des données sur Excel.......................................................................................19 C. Calibrage ...................................................................................................................................22 PARTIE III. SIMULATION ET ANALYSE DES RESULTATS ....................................................26 A. Simulation de la hauteur d’eau à Ruhrort....................................................................................26 B. Simulation simultanée du débit et de la hauteur d’eau à Wesel ...................................................28 C. L’utilisation des RNA: Synthèse et analyse des résultats ............................................................33 CONCLUSION....................................................................................................................................34 ANNEXE 1: SCRIPT D’UN RESEAU DE NEURONES ARTIFICIELS SOUS MATLAB.............35 BIBLIOGRAPHIE..............................................................................................................................37 LISTE DES SIGLES ...........................................................................................................................39 LISTE DES FIGURES........................................................................................................................40 LISTE DES TABLEAUX....................................................................................................................41 RÉSUMÉ .............................................................................................................................................42 ABSTRACT.........................................................................................................................................42
  5. 5. 4 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN REMERCIEMENTS Je tiens tout d’abord à remercier le Professeur Franck MOLKENTHIN pour m’avoir permis d’effectuer ce stage de recherche, de m’avoir conseillée et donné ce sujet ainsi que de m’avoir aidée quand j’en avais besoin. Je remercie également et chaleureusement l’Université Technique de Cottbus pour m’avoir fourni mon bureau ainsi que tout le matériel dont j’avais besoin pour effectuer mes recherches, mais également de m’avoir permis de financer ces cinq mois d’étude grâce à un poste partiel d’assistante. C’est donc tout naturellement que je remercie Vladimir KORENSKY qui a contribué à son insu à rendre possible ce stage. Plus émotionnellement, je finirai mes remerciements par ceux de mon jeune collègue Daneish, avec qui j’ai partagé le même bureau et qui a relu mes présentations et écrits en anglais. Et enfin, merci à Lukas, pour avoir relu la partie anglaise de mon résumé et Marie-Cécile pour avoir relu ce rapport dans son intégralité.
  6. 6. 5 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN INTRODUCTION Dans le cadre de la fin de mes études en Génie de l’eau à l’école Polytechnique Universitaire de Nice- Sophia, j’ai eu l’opportunité d’effectuer un stage de recherche au sein de l’Université Technique de Cottbus en Allemagne. Cette expérience s’est déroulée de Mars à Juillet 2015 et m’a permis de mettre en application mes connaissances déjà acquises au cours de mon cursus mais également de m’en apporter de nouvelles. En effet, jusqu’à lors, je n’avais jamais travaillé sur des problématiques d’intelligence artificielle et encore moins sur leurs applications en hydraulique. Cette expérience m’a donc permis de découvrir la recherche universitaire sur ce sujet précis qu’est l’intelligence artificielle, son fonctionnement et ses outils dont les réseaux de neurones artificiels. C’est dans les années 1940 que cette notion fait son entrée dans le monde scientifique. Très utilisée dans les années 80-90, elle tombe peu à peu dans l’oubli. Cependant, doit-elle y rester ? C’est la question que m’a posée le Professeur Frank Molkenthin lors de notre premier entretien. Après avoir approfondi mes connaissances dans le domaine des RNA et de leur utilisation, je me suis penchée sur le logiciel de MathWorks : MATLAB. En effet, ce logiciel possède de nombreuses boîtes à outils dont une spécifiquement réservée aux RNA : « Neural Networks Toolbox». Son utilisation a la spécificité d’être intuitive et complètement secondée par MATLAB qui propose entre autre des paramètres initiaux mais aussi l’exportation du script du programme ainsi créé. Après une prise en main du logiciel et quelques essais de modélisation, des données sur 20 ans du débit et hauteur d’eau du Rhin m’ont été transmises. Elles ont été enregistrées sur les deux sites de Ruhrort et Wesel. La problématique globale de mes recherches était l’utilisation des réseaux de neurones en hydraulique. Au fil des semaines, j’ai pu l’affiner avec l’aide de M. Molkenthin et arriver à une question plus précise et plus accessible en 5 mois de travail : En quoi les RNA peuvent ils seconder les outils de simulation déjà mis en place et quelles sont les limites de leur utilisation ? Ce rapport consigne mes recherches tout d’abord théoriques sur l’intelligence artificielle et la notion de réseau de neurones. Les deux dernières parties regroupent l’explication de la mise en œuvre des deux simulations effectuées à l’aide des données sur 20 ans, ainsi que les résultats obtenus et leur analyse.
  7. 7. 6 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN PARTIE I. LA NOTION DE RESEAU DE NEURONES ARTIFICIELS Cette première partie est consacrée à la présentation et à l’explication des RNA. L’intelligence artificielle est rapidement abordée en premier, puis nous recentrerons notre attention sur le concept de neurone formel, la structure et la modélisation d’un RNA. A. L’intelligence artificielle et ses applications La notion d’intelligence fait partie des notions les plus difficiles à définir ou à expliquer. NEGNEVITSKY (2011) s’y attèle pourtant et combine les définitions de l’intelligence, « Intelligence is the ability to think and understand instead of doing things by instinct or automatically » et de penser, « Thinking is the activity of using your brain to consider a problem or to create an idea. » [ESSENTIAL ENGLISH DICTIONARY, COLLINS, LONDON, 2008]. Il définit finalement le concept de l’intelligence par l’habilité à apprendre, comprendre, résoudre des problèmes et prendre des décisions. C’est Alan Turing qui est reconnu comme le précurseur de l’IA notamment dans son article « Computing Machinery and Intelligence » où il explore le problème et propose une expérience appelée encore maintenant le test de Turing. Ce test détermine si une machine peut être définie par conscience en faisant communiquer une personne juge avec une machine et un humain sans qu’elle puisse toutefois les différencier. Jusqu’à ce jour, ce test n’a jamais pu être réussi. L’expression « Intelligence Artificielle » est prononcée pour la première fois lors de la conférence au Dartmouth College durant l’été 1956. Toutefois, il faut attendre les années 80 pour que les logiciels et programmes utilisant des techniques d’IA se démocratisent et se retrouvent dans les grandes firmes comme Boeing ou General Motors. En 1983, la notion d’apprentissage par renforcement est créée. Cette notion pénalise ou gratifie en pondérant la probabilité d’effectuer une action dans le futur. Pour illustration prenons une machine de reconnaissance de forme, qui répondrait banane à une forme ronde. On pénalise cette réponse en la pondérant moins. Ainsi, il y aura moins de chance que la machine réponde banane à une forme ronde dans le futur. C’est donc la première programmation de l’apprentissage. Au début des années 90 l’armée entre également dans le développement de l’IA sur le terrain. C’est la création des premiers drones. Pour finir, un évènement qui marque le dépassement de la machine sur l’homme : En 1996 le champion d’échec international Garry Kasparov est battu par un ordinateur. Figure 1: Illustration du test de Turing [d'après COPELAND 2015]
  8. 8. 7 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Cette course au développement de l’IA a très rapidement pris de l’ampleur malgré un frein dans les années 90 et pour cause de puissance insuffisante du matériel informatique. Mais ce n’est que pour reprendre de plus belle, dans les années 2000 avec l’explosion du domaine de la télécommunication. On trouve maintenant l’IA dans tous les domaines que ce soit internet, l’automobile, l’armée, la science ou la médecine. Sans oublier qu’elle peut s’inscrire dans des problématiques d’intégration comme avec la reconnaissance vocale pour les malvoyants. Dans le domaine de l’hydraulique, c’est plus à l’état de tests ou d’études que l’IA est présente. Cependant, en 1991, A. Neumann de l’Ecole Nationale des Ponts et Chaussées, présente sa thèse sur l’introduction d'outils de l'intelligence artificielle dans la prévision de pluie par radar et en 2005, J-P Vidal de l’Institut National de Toulouse présente la sienne sur le sujet de la mise en place d’un assistant de calage de modèles numériques en hydraulique fluviale utilisant des procédés d’IA. L’IA est donc un domaine en expansion. Elle se décompose en plusieurs outils ou techniques. Lors de mon stage j’ai étudié plus particulièrement les réseaux de neurones artificiels. B. Le neurone artificiel: De la biologie à l’informatique Afin de mieux appréhender la notion de RNA, nous allons procéder à un cours rappel du fonctionnement du cerveau humain et notamment des neurones biologiques. Le cerveau peut recevoir des informations et prendre des décisions. Il coordonne les organes du corps et agit sur son environnement. La figure 2 illustre le fonctionnement résumé du système nerveux. Figure 2: Représentation du système nerveux humain par un diagramme en bloc [d'après HAYKIN 1999] C’est le physicien espagnol Santiago Ramón y Cajal qui introduisit la notion de neurone et détailla avec précision la structure du système nerveux. Les neurones sont les cellules qui composent le cerveau et les nerfs. Un neurone transmet l’information en conduisant une impulsion électrique d’une amplitude de 100 millivolts [BAUER 2008]. Le neurone reçoit l’impulsion électrique par des extensions ramifiées appelées les dendrites et la transmet par l’axone. Une connexion entre deux neurones est appelée synapse. Là, la transmission se fait par réaction chimique grâce aux neurotransmetteurs qui réagissent avec les capteurs du neurone suivant. Venons en maintenant à l’incroyable efficacité du système nerveux. Il se compose de 100 milliards de neurones et 60 milliers de milliards de connexions [EHRSAM & PORRI 2012]. L’information circule à une vitesse de l’ordre de 100 millièmes de seconde [BAUER 2008]. Non seulement l’information est très rapide mais elle est également économique en énergie puisqu’on dépense 10-16 joules par opération par seconde
  9. 9. 8 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN [EHRSAM & PORRI 2012]. Par comparaison, un l’énergie dépensée de nos jours par un ordinateur moyen est de l’ordre de 10-7 joules par opération par seconde [BELLAMY 2012]. Figure 3 : Représentation de d'une connexion entre deux neurones biologiques [d'après BAEUR 2008] L’efficacité du système nerveux s’explique en partie par le fait qu’une même information emprunte toujours le même chemin et cette mémoire de trajet est permise par les neurotransmetteurs. Une telle efficacité est intéressante pour la science et une reproduction de ce modèle biologique permet de gagner en efficacité notamment en temps de calcul. Ce sont le psychiatre et neuroanatomiste Warren Sturgis McCulloch et le mathématicien Walter Pitts qui furent les premiers en 1943 à étudier les réseaux de neurones artificiels. Ils développèrent entre autre un modèle de neurone régit par la loi « tout ou rien ». Un neurone formel est comparable à une boîte noire qui transforme des données d’entrée en une ou plusieurs valeurs de sortie. La figure 3 illustre le fonctionnement d’un neurone formel ou perceptron que nous allons détailler ci-dessous. Figure 4: Schéma complet d'un neurone formel
  10. 10. 9 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Les entrées sont représentées par un vecteur appelé P. Chaque entrée est pondérée par un poids qui lui est propre. L’ensemble des poids est représenté par le vecteur appelé w. On effectue ensuite la somme pondérée tout en soustrayant le biais du neurone, noté b. On appelle n, le seuil d’activation qui se calcule suivant la formule suivante : Une fois le calcul de la somme pondérée effectué, c’est à la fonction d’activation d’agir. Il en existe un certain nombre. On cite les plus communes dans le tableau 1. La fonction d’activation sert à produire un « message » soit une donnée de sortie. Dans le cas de la fonction seuil qui est la plus simple, si alors a = 0 et si alors a = 1. Cette focntion est utilisée et efficace pour des messages binaires « true or false ». Tableau 1: Liste des fonctions de transfert ou d’activation les plus communes [d'après MATHWORKS 2015] Cependant, lors de l’utilisation de certaines fonctions d’activation, un traitement préalable des données peut être effectué afin d’amener toutes les valeurs à un même ordre de grandeur qui permettra la prise en compte égale des faibles et des fortes valeurs. De plus, une accumulation de fortes valeurs peut générer une saturation des sigmoïdes.
  11. 11. 10 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Nous savons maintenant le fonctionnement d’un neurone formel. Nous allons donc pouvoir étudier les RNA qui ne sont rien d’autre que des arrangements de neurones formels. C. Les réseaux de neurones artificiels Un RNA est un maillage de plusieurs neurones organisé en couches successives. Une couche est un groupe de neurones tous branchés aux mêmes données d’entrée, sans forcement être rattachés à toutes. Et chaque branchement a un poids qui lui est propre. L’organisation à l’intérieur d’un neurone ne diffère pas de ce qui a été expliqué ci-dessus. La sortie des neurones sur le schéma de la figure 5 notée a, va servir d’entrée pour les neurones de la couche suivante sauf si cette couche est la dernière du réseau dans ce cas, ce sera la sortie finale du réseau et donc les valeurs vues par l’utilisateur. Les neurones appartenant aux couches internes sont appelés des neurones cachés et les couches internes sont également appelées couches cachées. Pour former un réseau multicouche de perceptrons il suffit d’assembler plusieurs couches à la suite. Chaque couche a son nombre de neurones attitré qui n’est pas forcement le même d’une couche à l’autre. Il se peut également, que dans l’organisation du réseau, les données de sortie soient réutilisées par le réseau lui-même. On appelle cela le retard et on les qualifie de réseaux dynamiques et a contrario, un réseau statique est donc un réseau sans retard. Une des caractéristiques des RNA est qu’ils peuvent auto apprendre. C’est la phase d’entraînement. On fournit au préalable au réseau les valeurs d’entrée et les valeurs de sortit attendues. Le réseau va alors tenter de calculer les sorties. Figure 5: Une même couche de S neurones [d'après MATHWORKS 2015] Figure 6: Schéma d'un réseau de neurones multicouche [d'après MATHWORKS 2015]
  12. 12. 11 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Si elles sont différentes de celles attendues, alors les poids des différentes connexions du réseau vont varier petit à petit. Cette étape va être répétée autant de fois que nécessaire pour obtenir les sorties désirées. C’est sur ce principe d’auto apprentissage que se base mon travail de recherche. Un RNA peut il apprendre à prédire un débit ou une hauteur d’eau si on lui donne comme base d’apprentissage suffisamment de données ?
  13. 13. 12 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN PARTIE II. MATLAB ET SA BOÎTE A OUTILS «NEURAL NETWORKS» Avant de lancer une quelconque simulation, il a fallut que je me familiarise avec le logiciel MATLAB. Cette partie commence avec une courte présentation du logiciel et de sa boîte à outil « Neural Networks » pour finir sur une présentation des données utilisées lors de mon stage et la mise en place du réseau ainsi que le calibrage. A. Le logiciel MATLAB 1. Un logiciel polyvalent MATLAB (ou Matrix Laboratory) est un logiciel de programmation de quatrième génération développé par MathWorks. Il permet entre autre de manipuler des matrices, tracer des fonctions et des données et d’implémenter des algorithmes de façon intuitive et efficace. MATLAB a été développé en premier lieu dans les années soixante-dix par Cleve Moler, à cette époque président du département de science informatique de l’Université du Nouveau Mexique. Il voulait permettre à ses étudiants d’accéder plus facilement aux bibliothèques de fonctions LIMPACK et EISPACK en Fortran pour l’algèbre linéaire sans pour autant apprendre ce langage de programmation. Son ébauche s’est vite transmise et a trouvé une forte audience auprès de la communauté des mathématiques appliquées. Le potentiel commercial étant vite reconnu, Moler s’associe à un collègue Steve Bangert et Jack Little, un ingénieur en électronique et sciences informatiques de l’Université de Stanford. Ils réécrivent MATLAB en C et fondent MathWorks en 1984 pour continuer le développement. Aujourd’hui MATLAB est utilisé par un million de personnes dans le monde académique et industriel et dans plusieurs domaines tels que l’ingénierie, l’économie et les sciences [EETIMES 2004]. Il est reconnu par sa rapidité tant dans les calculs que dans l’affichage, du entre autre à son calcul matriciel. Le langage est directement interprété et ne passe donc pas par une compilation. Il reste cependant moins rapide sur la computation que du C ou C++ mais détient le palmarès pour ce qui est de l’écriture des programmes. En effet, sa prise en main est relativement rapide pour peu qu’on ait l’habitude des logiciels de programmation .Son interface intuitive offre de nombreuses options et raccourcis qui permettent d’arriver directement à un script sans toutefois avoir à l’écrire. Un exemple sera vu dans la prochaine partie avec la programmation d’un réseau de neurones. MATLAB est logiciel payant. On peut l’obtenir en tant qu’entreprise, université, étudiant ou particulier. Le prix dépend des logiciels et boîte à outils que l’on prend mais il varie entre cent et quatre mille euros [MATHWORKS 2015]. MATLAB possède une librairie très riche. On peut donc y trouver des boîtes à outils pour les mathématiques, statistiques, optimisation et traitement du signal. De plus, si on couple MATLAB à Simulink un logiciel de modélisation développé également par MathWorks, on augmente encore plus nos possibilités.
  14. 14. 13 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN 2. La boîte à outils «Neural Networks» Le choix de travailler avec MATLAB n’a pas été pris par hasard. Ce logiciel possède une boîte à outils « Neural Network » qui permet la construction d’un réseau de neurones à partir de données d’entrée et de sortie. La prise en main de l’interface et du procédé de construction est intuitive comme l’est le logiciel qui l’héberge. Au démarrage de l’application, MATLAB nous propose la construction de différents réseaux de neurones correspondant à un problème en particulier. Plusieurs choix s’offrent donc à nous : Ajustement de données ou de courbe Reconnaissance de forme et de la classification Classification de données Prédiction de séries temporelles (time-series) La prédiction est une sorte de filtre dynamique qui utilise les valeurs passées d’une ou plusieurs séries temporelles pour prédire les valeurs futures. Dans mon sujet d’étude que j’exposerai plus tard, je devais modéliser le débit et la hauteur d’eau qui dépendaient du temps. J’ai donc essentiellement travaillé sur la prédiction. C’est pourquoi je vais dans ma description de cette boîte à outil, me concentrer uniquement sur celle-ci. Une fois le type de réseau à simuler choisi, on nous propose plusieurs types de réseaux non linéaires : L’auto régressif non linéaire avec données externes (NARX) Il permet de prédire une série y donnée par les valeurs passées de cette même série et d’une autre série d’entrée x L’auto régressif non linéaire (NAR) Il permet de prédire une série y données uniquement par ses valeurs passées Le non linéaire entrée-sortie Il permet de prédire une série y données uniquement par les valeurs d’une série d’entré x Il faut ensuite entrer les données d’entrée et de sortie préalablement traitées. MATLAB gère très bien le format Excel et il possède également une interface qui permet de visualiser le tableur et de sélectionner manuellement les données voulues. De plus, le logiciel est également capable de s’adapter à toute mise en forme de données, et s’adapte. Si par exemple le temps est représenté par ligne et non par colonne qui est sa mise en forme primaire, il va automatiquement transposer. On commence ensuite le paramétrage. MATLAB propose des valeurs modèles qui ne sont pas ajustées au problème. Il est possible d’en changer une partie durant la première simulation, mais ensuite le script qui sera construit va permettre un total contrôle des paramètres. Il nous propose de choisir le nombre de retard qui comme nous l’avons vu plus haut, permet la simulation d’un système non linéaire en prenant les valeurs passées de la série de sortie. On peut également changer le nombre de neurones cachés et la fonction d’entraînement. Levenberg Marquardt est celle choisie par défaut. MATLAB nous notifie que c’est la plus simple et rapide mais qu’il est bien possible de la changer.
  15. 15. 14 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 7: Interface de la boîte à outils NN de MATLAB à l'étape du choix des types de réseaux Il suffit enfin de lancer le premier entraînement. Une fenêtre s’ouvre quand démarre la simulation. Elle nous offre de visualiser notre réseau de neurones de façon schématique, ainsi que l’ensemble des paramètres entrés. Elle offre également une visualisation du progrès de l’entraînement. Une fois la simulation terminée, plusieurs courbes sont consultables : La courbe de performance La courbe d’état d’entraînement L’histogramme d’erreur La courbe de régression La réponse de la série La courbe d’auto corrélation de l’erreur La courbe de corrélation de l’erreur d’entrée MATLAB génère automatiquement plusieurs scripts qu’il nous est possible d’importer dans le développeur. Le script utilisé dans l’une de mes simulations est présenté dans l’annexe 1. C’est là peut être que le travail le plus long à effectuer commence. Il s’agit du calibrage. En effet, il faut tester un par un les différents paramètres et déterminer lequel donne un meilleur résultat.
  16. 16. 15 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 8: Courbes générées par MATLAB. De gauche à droite, de haut en bas : courbe de performance, d’état d’entraînement, l’histogramme d’erreur, et la courbe de régression. B. Localisation et traitement des données Après une formation du langage et des fonctionnalités de MATLAB suffisante, Monsieur Molkenthin m’a transmis les données sur 20 ans des débits et hauteurs d’eau du Rhin à Ruhrort, port et quartier de la ville de Duisburg et Wesel. Ces deux villes sont situées dans la région de Rhénanie-du-Nord-Westphalie, soit en allemand Nordrhein-Westfalen, état fédéré d’Allemagne 1. Géographie et économie de la Rhénanie-du-Nord-Westphalie Cette région est la plus peuplée d’Allemagne. Elle regroupe 23 pourcents de la population allemande soit 8 millions et produisait en 2010, 16 pourcents du produit intérieur brut du pays [GENZE 2010]. Géographiquement, elle se situe en Allemagne de l’ouest et est frontalière avec la Belgique et les Pays Bas. Elle occupe donc une place centrale en Europe. Cette plaine fluviale héberge plusieurs grands fleuves comme le Rhin ou la Ruhr qui font partie intégrante de l’économie et le développement de la région.
  17. 17. 16 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 9: La situation centrale de la Rhénanie-du-Nord-Westphalie en Europe (d'après NRW. INVEST GmbH 2013) Figure 10: Carte rapprochée de la Rhénanie-du-Nord-Westphalie, zoomée sur Wesel et Ruhrort reliés par le Rhin (d'après HOT-MAPS 2014)
  18. 18. 17 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Le quartier de Ruhrort héberge environ 6000 habitants [KLINGEN 2015]. Il se trouve à la confluence de la Ruhr et du Rhin. C’est un des plus grands ports fluviaux au monde et le plus grand d’Europe. Wesel se situe en aval du Rhin par rapport à Duisbourg à environ 30 kilomètre. La ville comptait 61 500 habitants en 2006. Le bassin versant du Rhin s’étend sur une superficie de 185 000 kilomètres carrés. Il se place en troisième position des plus grands bassins d’Europe après celui du Danube et de la Volga. Il prend sa source au mont Saint Gothard et après avoir parcourus 1350 kilomètre il se jette dans la mer de Nord au pays bas [B&S ENCYCLOPEDIE 2010]. Il forme entre autre la frontière entre la France et l’Allemagne. L’histoire du Rhin a été marquée au fil des siècles par des évènements comme des crues et des étiages. On parle notamment de plusieurs crues au moyen âge comme en l’an 1480, où l’inondation s’étendit de Bâle à Cologne ou encore en 1740 où le pays d’Alsace-Bade fut transformé en lac. Dans la période plus moderne, on peut citer l’année 1983 ou le mois de janvier 1995. Les riverains appellent encore cet épisode « La crue du siècle ». En effet, le centre de Cologne fut submergé de 2 mètres [TECHNISCHE UNIVERSITAT DRESDEN 2015]. Les étiages bien que moins spectaculaires et moins dangereux, peuvent cependant engendrer de graves problèmes économiques. En effet la région puisant toute sa ressources de commerces dans la navigation de ce fleuve, si le niveau est trop bas, la navigation ne peut pas se faire normalement. De plus, avec l’arrivé de l’énergie hydroélectrique, les étiages peuvent également engendrer des perturbations sur la production électrique. Le débit le plus bas jamais enregistré est de 202 mètres cubes par secondes à Bâle en 1858 [B&S ENCYCLOPEDIE 2010] où en temps normale s’écoulent 1030 mètres cubes d’eau par seconde. En résumé, cette région où l’on peut inclure également l’Alsace et les Pays Bas, est liée au Rhin et à ses différents affluents comme la Moselle, le Main ou la Ruhr. Elle a su développer une économie qui lui est propre grâce à son activité fluviale. Au final, bien que le Rhin soit aussi une source de catastrophe comme les inondations ou sécheresses, il n’en reste pas moins le maillon fort de cette région. L’étude de ce fleuve en est donc d’autant plus intéressante qu’elle constitue un véritable enjeu pour la région. Figure 11: Inondation de la ville de Cologne en Janvier 1995 (d'après TECHNISCHE UNIVERSITAT DRESDEN 2015)
  19. 19. 18 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 12: L'écoulement du Rhin du Mont Saint Gothard à la mer du Nord et ses affluents (d'après B&S ENCYCLOPEDIE 2010)
  20. 20. 19 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN 2. Le traitement des données sur Excel Les données m’ont été transmises au format Unified Volume Format. Leur traitement a été simple car elles ne possédaient aucune lacune. Il a fallu seulement les transposer sous Excel. En effet, MATLAB prend en charge ce format. J’ai également généré une année témoin en calculant la moyenne pour chaque heure de chaque jour de chaque mois sur les 20 ans de données disponibles. Les graphiques du débit et de la hauteur d’eau quotidienne sont présentés sur les figures 14 et 15. Cette manipulation m’a permis de faire mes premiers essais sans avoir à choisir une année en particulier. De plus, elle ne comporte pas de grands évènements (crue ou étiage). Afin d’effectuer une brève analyse des données, le tableau 2 représente les valeurs moyennes des débits et hauteurs moyennes sur 20 ans sur les deux sites. On peut voir que les mois de Janvier et Mars sont les deux mois où le Rhin a le débit le plus important (2959 en maximum à Wesel au mois de Janvier) et est le plus haut (5 mètres en valeur moyenne pour les deux mois à Ruhrort). Ce phénomène est du aux précipitations d’hiver et à la fonte des glaces et glaciers situés en amont du fleuve. Tableau 2: Débit et hauteur d'eau moyenne mensuel sur 20 ans sur les sites de Ruhrort et Wesel. En plus foncé, les valeurs les plus importantes et en plus clair les valeurs les plus faibles. Janvier Février Mars Avril Mai Juin Débit moyen (m3/sec) Ruhrort 2930.73 2803.31 2925.95 2408.51 2222.27 2231.42 Wesel 2959.19 2828.60 2942.26 2418.16 2207.37 2217.29 Hauteur d'eau moyenne (m) Ruhrort 5.02 4.89 5.05 4.46 4.25 4.27 Wesel 4.63 4.50 4.66 4.01 3.76 3.78 Juillet Août Septembre Octobre Novembre Décembre Débit moyen (m3/sec) Ruhrort 1998.17 1688.51 1638.69 1688.03 2165.33 2469.79 Wesel 1992.46 1687.14 1645.01 1695.72 2171.38 2475.82 Hauteur d'eau moyenne (m) Ruhrort 3.94 3.44 3.36 3.42 4.04 4.45 Wesel 3.43 2.90 2.82 2.89 3.56 3.99 Pour la période d’été, c’est le mois de Septembre où le fleuve est le moins haut et a le moins de débit. En conclusion, l’amplitude de la hauteur d’eau du Rhin est en moyenne de 1,8 mètre et son débit peut varier de 1300 mètres cubes par seconde en moyenne en prenant en compte uniquement les données des 20 dernières années.
  21. 21. 20 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 13:Graphique du débit sur une année moyenne des sites de Ruhrort et Wesel sur le Rhin. L’année a été calculée à l’aide des données enregistrées sur 20 ans. Figure 14: Graphique de la hauteur d’eau quotidienne sur une année moyenne des sites de Ruhrort et Wesel sur le Rhin. 0 500 1000 1500 2000 2500 3000 3500 4000 4500 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Débitmoyenquotidienenmètrecubeparseconde Débit moyen sur une année sur les sites de Ruhrort et Wesel Site de Ruhrort Site de Wesel 0 1 2 3 4 5 6 7 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Hauteurd'eaumoyennequotidienneenmètre Hauteur d'eau moyenne sur une année sur les sites de Ruhrort et Wesel Site de Ruhrort Site de Wesel
  22. 22. 21 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Possédant également dans cet échantillon de données, la période de la crue de 1995, j’ai effectué une étude approfondie sur la période de début décembre 1994 jusqu’à fin février 1995. La crue a eu lieu fin janvier et le plus fort de l’évènement se concentre entre le 30 janvier et le premier février. On a enregistré un débit maximum de 11887 mètres cubes par seconde à Wesel et une hauteur d’eau de 11,6 mètre à Ruhrort dans la journée du 31 janvier. Le débit maximum correspond à une augmentation de plus de 300 pourcents du débit moyen du mois et une monté des eaux de plus de 130 pourcents sur la hauteur moyenne attendue pour un mois de janvier. Les figures 16 et 17 présentent le débit et la hauteur d’eau moyenne sur la période des trois mois. On y voit nettement le pic qui correspond à cette crue appelée très justement par les riverains comme la crue du siècle. Figure 15: Débit moyen quotidien en mètre cube par seconde du Rhin sur les sites de Ruhrort et Wesel lors de la crue de 1995. Pour entrer les données sous MATLAB, il suffit d’utiliser l’utilitaire qui ouvre de lui-même le tableur Excel sélectionné. C’est ensuite à l’utilisateur de sélectionner les colonnes ou lignes de données correspondantes. On peut aussi avoir le choix d’entrer également les entêtes du fichier Excel ou encore les noms des différentes séries de données. Une fois la sélection validée, les données sont stockées dans MATLAB. En conclusion, le traitement des données sous MATLAB est simple et ne présente pas de difficultés particulières. La prise en charge d’Excel par MATLAB facilite grandement le travail de traitement. 0 2000 4000 6000 8000 10000 12000 14000 Débitmoyenquotidienenmètrecubeparseconde Débit sur les sites de Wesel et Ruhrort lors de la crue de 1995 Site de Rurhort Site de Wesel
  23. 23. 22 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 16: Hauteur d’eau moyenne quotidienne en mètre du Rhin sur les sites de Ruhrort et Wesel lors de la crue de 1995. C. Calibrage Une fois les données entrées dans MATLAB, la construction du RNA est possible grâce à la boîte à outils NN vue précédemment. Il a été utilisé un réseau de séries temporelles de type NARX, avec une utilisation des données de sortie donc avec retard. A la fin de la construction, le script est exporté et modifié pour permettre la prédiction et donc la simulation en boucle ouverte. Le script est présenté dans l’annexe 1 à la fin de ce rapport. Pour calibrer le réseau, j’ai testé les paramètres qui intervenaient dans la simulation. Je changeais un seul paramètre à la fois et gardais par défaut les paramètres proposés par MATLAB dans un premier temps. J’ai dans le même temps consigné tous les résultats dans un fichier Excel où je comparais les résultats obtenus avec le script et les données réelles enregistrées. Finalement, j’ai opté pour les paramètres qui me paraissaient les plus appropriés et qui avaient donné les meilleurs résultats. Dans cette partie, pour illustrer un calibrage type, nous allons nous pencher sur le calibrage de la première simulation qui était de prévoir la hauteur d’eau à Ruhrort en fonction du débit sur ce même site. Le tableau 3 présente tous les paramètres qui ont été testés lors des différents calibrages que j’ai pu effectuer. Taille de l’échantillon d’entraînement Comme vue précédemment, une des caractéristiques d’un RNA est l’entraînement du réseau. La taille de cet échantillon d’entraînement constitue un paramètre important pour la simulation. Plus 0 2 4 6 8 10 12 14 Hauteurd'eaumoyennequotidienneenmètre Hauteur d'eau sur les sites de Ruhrort et Wesel lors de la crue de 1995 Site de Ruhrort Site de Wesel
  24. 24. 23 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN l’échantillon est grand, plus l’entraînement va être précis et la simulation donnera de meilleurs résultats. Cependant, un échantillon trop grand va entrainer un plus grand temps de calcul. Pour idée, là où un an d’entraînement prenait moins d’une minute, 5 ans entrainent déjà un temps de calcul de 5 minutes. Tableau 3: Tableau des différents paramètres testés lors des différents calibrages sous MATLAB triés par type. Type de paramètre Taille de l'échantillon d'entraînement Fonction d'entraînement Paramètres testés 1 an (année moyenne) Quasi-Newton backpropagation 5 ans Bayesian regularization Powell-Beale conjugate gradient backpropagation Fletcher-Powell conjugate gradient backpropagation Polak-Ribiere conjugate gradient backpropagation Gradient descent backpropagation Gradient descent with adaptive lr backpropagation Gradient descent with momentum backpropagation Gradient descent with momentum and adaptive lr backpropagation Levenberg-Marquardt backpropagation One-step secant backpropagation Resilient backpropagation (Rprop) Scaled conjugate gradient backpropagation Nombre de retard Nombre de neurones cachés Ratio d'entraînement Fonction de performance "1/2" 5 50 25 25 Mean absolute error-performance function "1/3" 10 70 15 15 Mean squared error-performance function "1/4" 15 80 10 10 Mean squared error w/reg performance function Sum squared error-performance function La fonction d’entraînement Cette fonction régit la façon dont le réseau est entrainé. Elle compare les valeurs de sortie avec les valeurs attendues et donc détermine si elles sont satisfaisantes. La précision dépend de la fonction mais aussi du problème en lui-même. La fonction LM est la plus rapide et celle proposée par MATLAB. Le nombre de retard Ce nombre détermine le temps de retard des données de sortie. Il permet ainsi de gérer si les données de sortie ont une influence plus ou moins immédiate sur le réseau.
  25. 25. 24 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Le nombre de neurone cachés Ce nombre représente les neurones contenus dans les couches cachées du réseau et donc par lien le nombre de couches cachées. Il existe plusieurs débats sur le nombre de couches à choisir. Un plus grand nombre sera plus précis mais trop et j’ai pu l’observer, ralentit ou sature le réseau. Le ratio d’entraînement Ce ratio divise l’échantillon d’entraînement en trois sous catégories : Entraînement, validation et test. Il est étroitement lié à l’étendu de l’échantillon d’entraînement et il est a choisir selon sa taille. Si l’échantillon est petit, il vaut mieux avoir un plus grand ratio en entraînement. La fonction de performance C’est la fonction qui va faire varier les différents poids et le biais du réseau. Une fois tous les paramètres testés par type et les résultats consignés dans un fichier Excel, j’effectuais une comparaison sur les données réelles afin de définir l’erreur moyenne. Et finalement, à l’aide d’un graphique d’efficacité, je déterminais les paramètres les plus performants en fonction de la réalité. Figure 17: Graphique des hauteurs d'eau réelles et simulées de Ruhrort sur 1 an lors du calibrage du réseau. La figure 12 présente le graphique d’efficacité qui m’a aidée à déterminer les meilleurs paramètres. Bien qu’il faille analyser les résultats, il donne une première idée et la règle est de prendre le paramètre ayant la plus petite barre avec le moins de rouge qui représente le temps de simulation. Cependant, je n’ai jamais eu des temps de simulations trop importants. Je prends en compte le temps uniquement dans un souci d’expansion de la méthode. 0 1 2 3 4 5 6 7 8 9 1/Jan 10/Jan 19/Jan 28/Jan 6/Feb 15/Feb 24/Feb 4/Mar 13/Mar 22/Mar 31/Mar 9/Apr 18/Apr 27/Apr 6/May 15/May 24/May 2/Jun 11/Jun 20/Jun 29/Jun 8/Jul 17/Jul 26/Jul 4/Aug 13/Aug 22/Aug 31/Aug 9/Sep 18/Sep 27/Sep 6/Oct 15/Oct 24/Oct 2/Nov 11/Nov 20/Nov 29/Nov 8/Dec 17/Dec 26/Dec Hauteurd'eauenmètre Hauteur d'eau réelle et simulée avec la fonction d'entrainement GDX sur un an à Ruhrort Données réelles Données simulées
  26. 26. 25 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 18: Graphique d'efficacité représentant le temps de simulation et l'erreur moyenne du calibrage de la fonction d'entraînement lors du calibrage de la simulation de la hauteur d'eau à Ruhrort. Un problème notable qui s’est posé lors des différentes manipulations est l’entraînement constant du réseau. En effet, en lançant MATLAB et en effectuant plusieurs simulations sur un même réseau sans toucher à la mémoire, le réseau va s’entrainer et s’améliorer. Ainsi je n’avais pas nécessairement les mêmes résultats d’une simulation à l’autre en gardant les mêmes paramètres. De plus, à partir d’un certain nombre de simulations d’affilé, le réseau décroche et donne des valeurs impossibles comme négatives ou trop élevés. J’ai donc lancé la simulation plusieurs fois jusqu’à atteindre la meilleure erreur moyenne. Cette manipulation n’est pas dérangeante quand le temps de simulation ne dépasse pas l’heure. Cependant, il est clair qu’avec un temps de simulation supérieur, les lancements consécutifs peuvent entrer en ligne de compte pour le choix des paramètres. Une fois les tests pour chaque paramètre effectués, j’ai relancé un test d’ensemble en contrôlant qu’on obtenait bien de meilleurs résultats. Finalement, une fois tous les paramètres calés, j’ai pu procéder à la simulation. GDX LM SCG CGB BFGS OSS CGF BR GDM GDA CGP GD RP 30.37 141.18 151.02 28.90 145.03 26.53 198.85 126.31 142.29 42.98 69.76 148.66 68.780.21 0.01 0.32 0.12 20.02 1.04 0.51 0.4 0.01 0.17 1.11 0.02 3.35 Graphique d'efficacité du calibrage de la fonction d'entrainement de la simulation de la hauteur d'eau à Ruhrort Erreur moyenne (m) Temps de simulation (min)
  27. 27. 26 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN PARTIE III.SIMULATION ET ANALYSE DES RESULTATS A. Simulation de la hauteur d’eau à Ruhrort Avec cette première simulation du Rhin, j’ai pu tester de façon concrète le RNA avec une équation simple qui est la relation qui relie le débit et la hauteur d’eau. La simulation permettait donc d’obtenir la hauteur d’eau à Ruhrort en entrant le débit. Le tableau 4 synthétise les paramètres sélectionnés après le calibrage. Tableau 4: Paramètres sélectionnés pour la simulation de la hauteur d'eau à Ruhrort Type de paramètre Taille de l'échantillon d'entraînement Fonction d'entraînement Nombre de retard Nombre de neurones cachés Ratio d'entraînement Fonction de performance Paramètres sélectionnés Année moyenne GDX "1/4" 5 70 15 15 MSE 6 ans SCG Deux tailles d’échantillon ont été sélectionnées car l’année moyenne permet une première manipulation plus simple et moins longue au niveau du temps de simulation. Pour les deux fonctions d’entraînement, il se trouve que GDX donnait de meilleurs résultats sur une prédiction d’un an, soit l’année 2000, mais lorsque que la prédiction à été étendue de 2000 à 2007, la fonction SDG donnait de meilleurs résultats. Le graphique 19 représente la prédiction de l’année 2000 avec un entraînement du réseau sur l’année témoin. On peut remarquer que le pic de hauteur d’eau de mi-février à mi-mars, n’est pas totalement représenté par la simulation. Ceci peut s’expliquer par l’entraînement de l’année témoin qui ne comporte pas de pic de ce type. Ce résultat est donc non concluant mais cependant correspond à nos attentes. Le graphique 20 représente le résultat de la simulation de 2000 avec un entraînement de 6 ans. On remarque que contrairement à la première simulation, le pic de montée des eaux correspondant à la fin de l’hiver est modélisé ; bien que les lignes ne se superposent pas exactement, il n’en reste que l’erreur est toujours inférieure à 50 centimètres. Pour finir, la figure 21 présente la prédiction de 8 ans avec un entraînement de 6 ans et la fonction d’entraînement SCG. Là encore l’erreur ne dépasse pas les 50 centimètres et épouse la courbe de données réelles. On peut également remarquer les pics d’hiver qui reviennent chaque année. En conclusion sur cette simulation, on peut dire que les résultats obtenus sont satisfaisants. Bien qu’il y ait quelques dizaines de centimètres d’erreur. Ces erreurs maximales sont concentrées sur les pics de hauteur d’eau. La tendance moyenne est modélisée et donne une idée précise du niveau d’eau sur 8 ans. Le temps de simulation quant à lui est de 10 minutes lors de la prédiction de 8 ans.
  28. 28. 27 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 19: Graphique de la hauteur d'eau à Ruhrort de l'année 2000 avec un entraînement d'un an via l'année moyenne Figure 20: Graphique de la hauteur d'eau à Ruhrort de l'année 2000 avec un entraînement de 6 ans 0 1 2 3 4 5 6 7 8 9 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Hauteurd'eauenmètre Simulation de la hauteur d'eau à Ruhrort lors de l'année 2000 avec un entrainement d'un an Données réelles Données simulées 0 1 2 3 4 5 6 7 8 9 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Hauteurd'eauenmètre Simulation de la hauteur d'eau à Ruhrort lors de l'année 2000 avec un entrainement de 6 ans Données réelles Données simulées
  29. 29. 28 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 21: Graphique de la prédiction de la hauteur d'eau sur 8 ans à Ruhrort B. Simulation simultanée du débit et de la hauteur d’eau à Wesel Sur cette simulation, j’ai travaillé sur la simulation de deux séries de données à la fois sur le site de Wesel. Je rentrais donc en entrée le débit et la hauteur d’eau sur le site de Ruhrort et les données cibles étaient donc le débit et la hauteur d’eau à Wesel. Le tableau 5 présente les paramètres choisis après le calibrage. Tableau 5: Paramètres utilisées lors de la simulation du débit et de la hauteur d'eau à Wesel Type de paramètre Taille de l'échantillon d'entraînement Fonction d'entraînement Nombre de retard Nombre de neurones cachés Ratio d'entraînement Fonction de performance Paramètres sélectionnés Année moyenne GDX "1/2" 5 70 15 15 MSE 6 ans Comme la première simulation, j’ai d’abord procédé à l’entraînement sur l’année moyenne (figures 22 et 23) afin de caler les paramètres, puis j’ai agrandît l’échantillon d’entraînement. Hors, contrairement à la première simulation, où l’agrandissement de l’échantillon d’entraînement a entrainé une amélioration de la simulation, là bien que la définition des pics pour la modélisation du débit est meilleure (figure 24), le réseau décroche totalement pour la modélisation de la hauteur d’eau. En effet, on peut voir sur la figure 0 2 4 6 8 10 12 1/Jan/00 1/Jan/01 1/Jan/02 1/Jan/03 1/Jan/04 1/Jan/05 1/Jan/06 1/Jan/07 Hauteurd'eauenmètre Simulation de la hauteur d'eau à Ruhrort lors de de janvier 2000 à Octobre 20007 Données réelles Données simulées
  30. 30. 29 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN 25, que la hauteur d’eau simulée se trouve contenue entre 3 et 4 mètres. Même avec plusieurs lancés successifs de la modélisation, aucune amélioration n’a été notée. En partant de ce constat, la prédiction sur 8 ans ne pouvait pas être mieux. Et effectivement, la hauteur d’eau est à l’image de l’entraînement sur 2000, mais la modélisation du débit, bien qu’améliorée prend elle aussi des allures étranges, comme des valeurs négatives pour l’année 2003 (figures 26 et 27). J’ai effectué cette modélisation à la fin de mon stage. J’ai donc manqué de temps pour trouver la cause de ces mauvais résultats. Cependant, un calibrage plus approfondi peut certainement résoudre certains défauts. Pour cela plusieurs essais pourraient être mis en place comme de séparer les deux simulations afin d’isoler les différents problèmes. Pour finir, il est bon de noter que le temps de calcul est de 10 minutes ce qui ne change pas tellement de la première simulation. Cependant, la machine qui lors de la première simulation pouvait être utilisée simultanément , est dans ce cas inutilisable.
  31. 31. 30 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 22: Graphique des débits réel et simulé à Wesel lors de l'année 2000 avec l'année moyenne comme entraînement Figure 23: Graphique des hauteurs d'eau réelle et simulée à Wesel lors de l'année 2000 avec l'année moyenne comme entraînement 0 1000 2000 3000 4000 5000 6000 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Débitenmètrecubeparseconde Simulation du débit à Wesel de l'année 2000 avec une année moyenne comme échantillon d'entrainement Données réelles Données simulées 0 1 2 3 4 5 6 7 8 9 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Hauteurd'eauenmètre Simulation de la hauteur d'eau à Wesel de l'année 2000 avec une année moyenne comme échantillon d'entrainement Données réelles Données simulées
  32. 32. 31 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 24: Graphique des débits réel et simulé à Wesel lors de l'année 2000 avec un entraînement de 6 ans Figure 25: Graphique des hauteurs d’eau réelle et simulée à Wesel lors de l'année 2000 avec un entraînement de 6 ans 0 1000 2000 3000 4000 5000 6000 7000 8000 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Débitenmètrecubeparseconde Simulation du débit à Wesel de l'année 2000 avec un échantillon d'entrainement de 6 ans Données réelles Données simulées 0 1 2 3 4 5 6 7 8 9 1/Jan 1/Feb 1/Mar 1/Apr 1/May 1/Jun 1/Jul 1/Aug 1/Sep 1/Oct 1/Nov 1/Dec Hauteurd'eauenmètre Simulation de la hauteur d'eau à Wesel de l'année 2000 avec un échantillon d'entrainement de 6 ans Données réelles Données simulées
  33. 33. 32 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN Figure 26: Graphique des débits réel et simulé à Wesel sur une prédiction de 8 ans Figure 27: Graphique des hauteurs d’eau réelle et simulée à Wesel sur une prédiction de 8 ans -2000 0 2000 4000 6000 8000 10000 12000 1/Jan/00 1/Jan/01 1/Jan/02 1/Jan/03 1/Jan/04 1/Jan/05 1/Jan/06 1/Jan/07 Débitenmètrecudeparseconde Simulation du débit à Wesel de janvier 2000 à Octobre 2007 Données réelles Données simulées 0 2 4 6 8 10 12 1/Jan/00 1/Jan/01 1/Jan/02 1/Jan/03 1/Jan/04 1/Jan/05 1/Jan/06 1/Jan/07 Hauteurd'eauenmètre Simulation de la hauteur d'eau à Wesel de janvier 2000 à Octobre 2007 Données réelles Données simulées
  34. 34. 33 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN C. L’utilisation des RNA: Synthèse et analyse des résultats Dans cette partie, nous allons nous atteler à répondre aux différentes problématiques posées. Les résultats de la première simulation nous amènent naturellement à répondre oui à la question : est il possible d’utiliser les RNA en hydraulique ? Oui les RNA sont utilisables en hydraulique. Cependant, les mauvais résultats de la simulation 2 nous amène nt à moduler nos propos. Les points positifs de l’utilisation des RNA est déjà le temps de simulation qui est bien inférieur aux méthodes numériques classiques. C’était une des raisons pour lesquelles les RNA ont été exploités et j’ai pu la vérifier tout au long de mon stage. La plus lourde des simulations que j’ai eu à faire est une prédiction débit et hauteur sur 8 ans avec 6 ans d’entraînement, ne m’a pris que 15 minutes. Pour comparaison, certains algorithmes peuvent mettre plusieurs jours. De plus, les RNA sont plus faciles à mettre en place car je n’ai donc pas eu à faire d’étude hydraulique en tout cas pas pour mettre en place la simulation. Cependant la notion est elle plus difficile à comprendre car plus abstraite et moins intuitive. Lors de mes simulations j’ai également rencontré plusieurs difficultés au niveau de l’instabilité des réseaux qui peut être du au logiciel, au script ou aux données. En effet, d’un calcul à l’autre sur une même simulation et même réglage, il est difficile de retrouver les mêmes résultats. Pour se faire il faut effacer toute mémoire en fermant MATLAB et relancer sur un réseau neuf et sans passé. Pour finir, ce procédé de l’intelligence artificielle ne se soustrait pas à la présence de l’utilisateur qui va et doit analyser les résultats obtenus pour les valider. Car bien qu’on puisse par exemple dicter à la machine que des valeurs négatives pour une mesure de débit qui ne sont physiquement pas possibles, il faut toujours garder un esprit critique sur les résultats et donc un utilisateur.
  35. 35. 34 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN CONCLUSION En conclusion, peut-on dire que l’utilisation des RNA est judicieuse? Bien que sachant déjà la réponse pour en avoir discuté au préalable avec M. Molkenthin, mes 5 mois m’ont permis de me concerter dans l’idée que oui. Les RNA peuvent être envisagées comme méthode pour résoudre des problèmes hydrauliques. Ils peuvent être utiles notamment pour la gestion de donnée contenant trop de lacunes. Mais ils peuvent être testés dans le cadre de problématiques plus complexes comme l’infiltration ou le ruissèlement des eaux de pluie. Ce qui est certain, c’est qu’ils représentent une véritable et sérieuse alternative et qu’ils sont très intéressants pour leur temps de simulation qui surpasse largement celui des méthodes classiques et grâce à l’évolution des technologies d’aujourd’hui, les différentes techniques d’IA et de RNA sont vouées à l’amélioration constante. Plus généralement, ce stage m’a permis d’acquérir des connaissances approfondies en intelligence artificielle et réseau de neurones. D’un point de vue plus pratique, je maîtrise à présent le logiciel MATLAB et sa boîte à outils neural networks. Plus précisément, ces recherches m’ont démontré l’existence d’alternatives aux méthodes classiques exploitables dans le but d’améliorer nos algorithmes et nos prédictions à la fois dans le domaine de l’hydraulique et d’une manière générale dans tous les domaines. Du côté de mon expérience personnelle, je peux dire que ce stage m’a fait découvrir le monde de la recherche universitaire et ce en anglais. C’était la première fois que j’effectuais une expérience professionnelle uniquement en anglais. J’ai du notamment rédiger plusieurs rapports et présenter des « Update » de mon travail. Pour finir, je qualifierais cette expérience d’enrichissante à tous les points de vue.
  36. 36. 35 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN ANNEXE 1: SCRIPT D’UN RESEAU DE NEURONES ARTIFICIELS SOUS MATLAB Cette annexe présente le script d’un RNA sous MATLAB, lors de la simulation de la hauteur d’eau à Ruhrort. Beaucoup de fonctions sont appelées et sont propres à MATLAB. Elles ne sont pas développées dans ce rapport. % Script Simulation 1 % Debit -> Hauteur d'eau Ruhrort %_________________________________________________________________ % Importation des données DebitInput=xlsread('Ruhrort-D-Année90-95.xlsx','F4:F52587'); LevelTarget=xlsread('Ruhrort-N-Année90-95.xlsx','F4:F52587'); DebitPrediction=xlsread('Ruhrort-D-Année00','F4:F8787'); % Convertion des données pour réseau de neurones X = tonndata(DebitInput,false,false); T = tonndata(LevelTarget,false,false); Xe = tonndata(DebitPrediction,false,false); % Choix de la fonction d'entraînement trainFcn = 'trainlm' % Levenberg-Marquardt % Création du réseau NARX % Défintion du retard d'entrée et de retour inputDelays = 1:2; feedbackDelays = 1:2; % Nombre de couche de neurones cachées hiddenLayerSize = 5; % Création du réseau net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize,'open',trainFcn); % Préparation des données net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'}; net.inputs{2}.processFcns = {'removeconstantrows','mapminmax'}; [x,xi,ai,t] = preparets(net,X,{},T); % Division de l'échantillon pour l'entraînement, validation et test net.divideFcn = 'dividerand'; net.divideMode = 'value'; net.divideParam.trainRatio = 75/100; net.divideParam.valRatio = 15/100; net.divideParam.testRatio = 15/100; % Choix de la fonction de performance net.performFcn = 'mae'; % Mean squared error
  37. 37. 36 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN % Entraînement du réseau [net,tr] = train(net,x,t,xi,ai); % Test du réseau [y,xfo,afo] = net(x,xi,ai); e = gsubtract(t,y); performance = perform(net,t,y) % Recalculate Training, Validation and Test Performance trainTargets = gmultiply(t,tr.trainMask); valTargets = gmultiply(t,tr.valMask); testTargets = gmultiply(t,tr.testMask); trainPerformance = perform(net,trainTargets,y) valPerformance = perform(net,valTargets,y) testPerformance = perform(net,testTargets,y) %_________________________________________________________________ % Prédiction % Passage en boucle fermé = Prédiction x2 = Xe; [netc,xic,aic] = closeloop(net,xfo,afo); [y2,xfc,afc] = netc(x2,xic,aic); %Ecriture dans le fichier Excel xlswrite('Résultat-S1-00.xlsx',y2','Résultat','H6:H8789');
  38. 38. 37 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN BIBLIOGRAPHIE ACSYSTEME - 2014 - Matlab / Scilab : que choisir – Acsystème : Analyse & contrôle des systèmes [en ligne]. http://www.acsysteme.com/fr/matlab-ou-scilab [consulté le 22 juillet 2015] ALTIUS DIRECTORY – 2007 – MATLAB Programming Language – Altius Directory : Exploring Heights [en ligne]. http://www.altiusdirectory.com/Computers/matlab-programming-language.php [consulté le 22 juillet 2015] B&S ENCYCLOPEDIE – 2010 – BS Encyclopédie. http://www.encyclopedie.bseditions.fr/index.php [consulté le 7 septembre 2015] BAEUR L. - 2008 – Developpez LLC. http://www.developpez.com/ [consulté le 10 avril 2015] BAZARTSEREN B. -2005 – Applicability or Artificial Neural Networks for Investigating Short-Term Developments of Near-Shore Morphology. Publications. Brandenburg University of Technology at Cottbus (Allemagne). 113 pages BEALE M. & DEMUTH H. – 2000 – Neural Network Toolbox – For Use with MATLAB. The MathWorks. Natick (Etats-Unis). 325 pages BELLAMY A. - 2012 – Les numériques. http://www.lesnumeriques.com/ [consulté le 10 avril 2015] BOUDET S. – 2012 – Matlab. http://www.samuelboudet.com/fr/matlab [consulté le 22 juillet 2015] COPELAND J. – 2015 - AlanTuring.net - The Turing Archive for the history of computing. http://www.alanturing.net/ [consulté le 14 septembre] COURS GRATUITS – 2011 – Cours gratuits en informatiques. http://informatique.coursgratuits.net [consulté le 13 septembre 2015] DELAUNAY D. – 2011 – Prepas Dupuy de Lôme http://mp.cpgedupuydelome.fr/index.php [consulté le 13 mai 2015] EETIMES – 2004 - Matlab edges closer to electronic design automation world – EE Times [en ligne]. http://www.eetimes.com/document.asp?doc_id=1151422 [consulté le 22 juillet 2015] EHRSAM M. & PORRI C. - 2012 - ICM Institut du cerveau et de la moelle épinière. http://icm-institute.org/ [consulté le 9 avril 2015] FLANNERY B. P., PRESS W. H., TEUKOLSKY S. A. & VETTERLING W. T. - 1992 – Numerical Recipes in C – The Art of Scientific Computing – Second Edition. Cambridge University Press. Cambridge (Royaume-Uni). 993 pages GENZE U. – 2010 – Statistisches Landesamt Baden-Württemberg. http://vgrdl.de/ [consulté le 7 septembre 2015] HAYKIN S. - 1999 – Second edition – Neural Networks – A comprehensive foundation. Prentice Hall. Upper Saddle River - New Jersey (Etats-Unis). 842 pages HOLLEBECQ J-E. & PASSARD E. – 2012 – TPE sur l’Intelligence Artificielle. https://sites.google.com/site/int3llig3nc3artifici3ll3/ [consulté le 10 avril 2015] HOT-MAPS – 2014 – hot-maps.fr. http://www.hot-map.com/fr [consulté le 7 septembre 2015] INSTITUT DE MATHÉMATIQUES DE TOULOUSE – 2013 – Institut de Mathématiques de Toulouse. http://www.math.univ- toulouse.fr/ [consulté le 12 septembre 2015]
  39. 39. 38 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN IZHIKEVITH E. M. - 2006 – Scholarpedia the peer-reviewed open-access encyclopedia. http://www.scholarpedia.org/ [consulté le 9 avril 2015] KLAWONN F., KRUSE R. & NAUCK D. - 1997 – Foundation of Neuro-Fuzzy systems. John Wiley & Sons. West Sussex (Royaume-Uni). 305 pages KLINGEN M. – 2015 – Ruhrort. http://www.ingbueroklingen.de/ruhrort/index.html [consulté le 4 avril 2015] KUMAR GAUTAM D. – 2000 – Neural Networks and Fuzzy Logic based System Identification in Hydroinformatics. Publications. Brandenburg University of Technology at Cottbus (Allemagne). 180 pages MATHWORKS – 2015 – MathWorks. http://fr.mathworks.com/ [consulté le 30 juillet 2015] MOŚCIŃSKI J. & OGONOWSKI Z. - 1995 – Advanced control with Matlab & Simulink. Ellis Horwood. Bodmin (Royaume-Uni). 251 pages NEGNEVITSKY M. – 2011 – Artificial Intelligence – A guide to intelligent systems. Pearson Education Limited. Dorchester (Royaume-Uni). 479 pages NEUMANN A. – 1991 – Introduction d’outils de l’intelligence artificielle dans la prévision de la pluie par radar. Mémoire de Doctorat. Ecole nationale des Ponts et Chaussés (France). 255 pages NRW.INVEST GMBH – 2013 – Germany at its best – Nordrhein Westfalen. http://germanyatitsbest.de/ [consulté le 7 septembre 2015] RANGANATHAN A. – 2004 - The Levenberg-Marquardt Algorithm [document électronique]. Atlanta (Georgia) http://www.ananth.in/docs/lmtut.pdf RUHRORTER BÜRGERVEREIN 1910 E.V. – 2015 – Ruhrort. http://www.ruhrort.de/ [consulté le 6 juin 2015] SCHLEIDER O. H. – 2000 – Online Approach for Neural Parameter Adaptation of Hydrodynamic-Numeric Simulation Models. Publications. Brandenburg University of Technology at Cottbus (Allemagne). 114 pages SIAM – 2015 – Siam news. http://sinews.siam.org/ [consulté le 22 juillet 2015] TECHNISCHE UNIVERSITAT DRESDEN – 2015 – TU Dresden – The Synergetic University. http://tu-dresden.de/ [consulté le 7 septembre 2015] TUAL M. – 2015 - Comment le « deep learning » révolutionne l'intelligence artificielle? – Le Monde [en ligne]. http://www.lemonde.fr/pixels/article/2015/07/24/comment-le-deep-learning-revolutionne-l-intelligence- artificielle_4695929_4408996.html [consulté le 25 juillet 2015] TURING A. – 1950 – Computing machinery and intelligence – Mind [en ligne] http://www.loebner.net/Prizef/TuringArticle.html [consulté le 12 avril 2015] UNIVERSITE DE SHERBROOKE – 2012 – Université de Sherbrooke – Voir au futur. http://www.usherbrooke.ca/ [consulté le 12 septembre 2015] VIDAL J-P. – 2005 – Assistance au calage de modèle numérique en hydraulique fluviale – Apports de l’intelligence artificielle. Thèse de Doctorat. Institut National Polytechnique de Toulouse (France). 310 pages WARWICK K. – 2012 – Artificial Intelligence. The basics. New York (États-Unis et Canada). 183 pages
  40. 40. 39 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN LISTE DES SIGLES BFGS Quasi-Newton backpropagation BR Bayesian regularization CGB Powell-Beale conjugate gradient backpropagation CGF Fletcher-Powell conjugate gradient backpropagation CGP Polak-Ribiere conjugate gradient backpropagation GD Gradient descent backpropagation GDA Gradient descent with adaptive lr backpropagation GDM Gradient descent with momentum backpropagation GDX Gradient descent with momentum and adaptive lr backpropagation IA Intelligence artificielle LM Levenberg-Marquardt backpropagation MAE Mean absolute error-performance function MSE Mean squared error-performance function MSEREG Mean squared error w/reg performance function NN Neural networks OSS One-step secant backpropagation RNA Réseau de neurones artificiels RP Resilient backpropagation (Rprop) SCG Scaled conjugate gradient backpropagation SSE Sum squared error-performance function
  41. 41. 40 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN LISTE DES FIGURES Figure 1: Illustration du test de Turing [d'après COPELAND 2015].......................................................................6 Figure 2: Représentation du système nerveux humain par un diagramme en bloc [d'après HAYKIN 1999] ..............7 Figure 3 : Représentation de d'une connexion entre deux neurones biologiques [d'après BAEUR 2008] ..................8 Figure 4: Schéma complet d'un neurone formel.......................................................................................................8 Figure 5: Une même couche de S neurones [d'après MATHWORKS 2015]............................................................ 10 Figure 6: Schéma d'un réseau de neurones multicouche [d'après MATHWORKS 2015] ........................................ 10 Figure 7: Interface de la boîte à outils NN de MATLAB à l'étape du choix des types de réseaux............................. 14 Figure 8: Courbes générées par MATLAB. De gauche à droite, de haut en bas : courbe de performance, d’état d’entraînement, l’histogramme d’erreur, et la courbe de régression...................................................................... 15 Figure 9: La situation centrale de la Rhénanie-du-Nord-Westphalie en Europe (d'après NRW. INVEST GmbH 2013) ............................................................................................................................................................................ 16 Figure 10: Carte rapprochée de la Rhénanie-du-Nord-Westphalie, zoomée sur Wesel et Ruhrort reliés par le Rhin (d'après HOT-MAPS 2014)................................................................................................................................... 16 Figure 11: Inondation de la ville de Cologne en Janvier 1995 (d'après TECHNISCHE UNIVERSITAT DRESDEN 2015) ................................................................................................................................................................... 17 Figure 12: L'écoulement du Rhin du Mont Saint Gothard à la mer du Nord et ses affluents (d'après B&S ENCYCLOPEDIE 2010)....................................................................................................................................... 18 Figure 13:Graphique du débit sur une année moyenne des sites de Ruhrort et Wesel sur le Rhin. L’année a été calculée à l’aide des données enregistrées sur 20 ans............................................................................................ 20 Figure 14: Graphique de la hauteur d’eau quotidienne sur une année moyenne des sites de Ruhrort et Wesel sur le Rhin. .................................................................................................................................................................... 20 Figure 15: Débit moyen quotidien en mètre cube par seconde du Rhin sur les sites de Ruhrort et Wesel lors de la crue de 1995......................................................................................................................................................... 21 Figure 16: Hauteur d’eau moyenne quotidienne en mètre du Rhin sur les sites de Ruhrort et Wesel lors de la crue de 1995..................................................................................................................................................................... 22 Figure 17: Graphique des hauteurs d'eau réelles et simulées de Ruhrort sur 1 an lors du calibrage du réseau. ...... 24 Figure 18: Graphique d'efficacité représentant le temps de simulation et l'erreur moyenne du calibrage de la fonction d'entraînement lors du calibrage de la simulation de la hauteur d'eau à Ruhrort...................................... 25 Figure 19: Graphique de la hauteur d'eau à Ruhrort de l'année 2000 avec un entraînement d'un an via l'année moyenne............................................................................................................................................................... 27 Figure 20: Graphique de la hauteur d'eau à Ruhrort de l'année 2000 avec un entraînement de 6 ans..................... 27 Figure 21: Graphique de la prédiction de la hauteur d'eau sur 8 ans à Ruhrort..................................................... 28 Figure 22: Graphique des débits réel et simulé à Wesel lors de l'année 2000 avec l'année moyenne comme entraînement ........................................................................................................................................................ 30 Figure 23: Graphique des hauteurs d'eau réelle et simulée à Wesel lors de l'année 2000 avec l'année moyenne comme entraînement............................................................................................................................................. 30 Figure 24: Graphique des débits réel et simulé à Wesel lors de l'année 2000 avec un entraînement de 6 ans.......... 31 Figure 25: Graphique des hauteurs d’eau réelle et simulée à Wesel lors de l'année 2000 avec un entraînement de 6 ans....................................................................................................................................................................... 31 Figure 26: Graphique des débits réel et simulé à Wesel sur une prédiction de 8 ans .............................................. 32 Figure 27: Graphique des hauteurs d’eau réelle et simulée à Wesel sur une prédiction de 8 ans............................ 32
  42. 42. 41 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN LISTE DES TABLEAUX Tableau 1: Liste des fonctions de transfert ou d’activation les plus communes [d'après MATHWORKS 2015] .........9 Tableau 2: Débit et hauteur d'eau moyenne mensuel sur 20 ans sur les sites de Ruhrort et Wesel. En plus foncé, les valeurs les plus importantes et en plus clair les valeurs les plus faibles. ................................................................ 19 Tableau 3: Tableau des différents paramètres testés lors des différents calibrages sous MATLAB triés par type..... 23 Tableau 4: Paramètres sélectionnés pour la simulation de la hauteur d'eau à Ruhrort........................................... 26 Tableau 5: Paramètres utilisées lors de la simulation du débit et de la hauteur d'eau à Wesel................................ 28
  43. 43. 42 | P a g eRAPPORT DE STAGE – RÉSEAUX DE NEURONES – MODELISATION DU RHIN RÉSUMÉ Ce rapport présente mon travail de recherche effectué dans le cadre de mon stage de fin de cycle ingénieur, de Mars à Juillet 2015 au sein du département d’informatique environnementale de l’université technique de Cottbus en Allemagne. Ce stage avait comme sujet l’application des réseaux de neurones artificiels dans le domaine de l’hydraulique. La problématique plus précise était d’étudier et d’effectuer une première synthèse et analyse sur l’utilisation et l’efficacité des RNA. Ce rapport synthétise mes résultats sur deux modélisations de débit et hauteur d’eau sur les deux sites de Wesel et Ruhrort en Allemagne sur les bords du Rhin. Une description détaillée du processus et de mes recherches y est également consigné. Toutes les modélisations ont été effectuées sur le logiciel MATLAB notamment à l’aide de sa boîte à outil « Neural Networks » .La présentation et l’analyse des résultats ont été prises en charge à l’aide du logiciel Excel. Mots clefs: Réseaux de neurones artificiels ; Rhin ; MATLAB ; Boîte à outils « Neural Networks » ABSTRACT This report presents my research work, I did during my final engineering cycle internship, from March to July 2015 in the environmental informatics department at the Technical University of Cottbus in Germany. The subject of my research was the application of neural networks in hydraulics and my problematic was the study of the use and efficient of neural networks. This report synthesizes all of my results on the water level and flow modelling in Ruhrort and Wesel, two Germany cities on the river Rhine. A detailed description of the process and of my research is recorded too. I did all of the modelling with the software MATLAB and its “Neural Network” toolbox and analysed the results with Excel. Keywords: Artificial neural networks; Rhine; MATLAB; « Neural Networks » toolbox

×