Berkouk Nassima
Berkouk Nassima
Berkouk Nassima
DEPARTEMENT D’INFORMATIQUE
Mémoire
Thème
Nous tenons tout d’abord à remercier Allah le tout puissant et miséricordieux, qui
nous a donné la force et la patience d’accomplir ce Modeste travail.
Nos vifs remerciements vont également aux membres du jury pour l’intérêt qu’ils
ont porté à notre recherche en acceptant d’examiner notre travail et de l’enrichir
par leurs propositions.
Enfin, nous tenons également à remercier toutes les personnes qui ont participé
de près ou de loin à la réalisation de ce travail.
Dédicaces
A ma chère maman, quoi que je fasse ou que je dise, je ne saurai point te remercier comme
se doit. Ton affection me couvre, ta bienveillance me guide, ta présence et tes prières tout au
long de mes études sont ma source de force,
A mon cher père, merci pour tous ses efforts et son soutien. Que ce travail traduit ma
gratitude et mon affection ,
A mes chères sœurs : Hanane, Feriel , Werda et Nabila pour leurs encouragements
permanents, et leur soutien moral,
A mes chers oncles : Ahmed, Karim, Nabil et Hamza pour leur appui et leur encouragement,
A ma grand-mère, pour tout ce qu'elle donne toujours pour nous et ses prières qui nous
suivent partout où nous sommes ,
A mes chères tentes : Hayat, Malika et Samira , ma chère tata Malika et mes cousins et
cousines maternels ,
A mes chères amies : Ouiza, Ania, Souhila, Kahina, Malha, Sonia, Hesni, Ghania et Tinhinane
pour leurs encouragements et leur soutien moral,
A ma binôme Saïda ma sœur d'une autre mère, mon bras droit qui a été compréhensive et
présente dans chaque moment,
A toute personne qui m'est très chère, à toute ma famille et amis pour leur soutien tout au
long de mon parcours, que ce travail soit l’accomplissement de vos vœux tant allégués, que
dieu vous donne santé, bonheur et réussite .
Nassima
Dédicaces
Je dédie ce travail
A ma chère maman, pour tous ses sacrifices, son amour, sa tendresse, son
soutien et ses prières tout au long de mes études,
A mon cher père, merci pour tous ses conseils et sa présence à mes côtés,
A mes chers frères, Mohamed, Sofiane, Karim et Yazid pour leur appui et leur
encouragement,
A mes chères amies : Dihia, Hayet, Ryma, Safia et Yousra pour leurs
encouragements permanents, et leur soutien moral,
A mon cher ami Sohaϊb qui m’a toujours soutenu et il m’a toujours remonté le
moral,
A toute ma famille et amis pour leur soutien tout au long de mon parcours
universitaire,
Saϊda
1
Résumé
Dans les derniers temps, les systèmes informatiques se sont penchés sur l’utilisation des nou-
velles technologies et techniques d’intelligence artificielle dans les différents domaines, d’où l’ap-
parition du terme “SMART” comme : Smart Cities, Smart Farm, Smart Health et Smart Trans-
portation. Le transport étant considéré comme un pilier essentiel du développement d’une ville
intelligente, ce mémoire s’intéresse à un des sujets les plus cruciaux dans les systèmes de transport
intelligent qui est “La Prédiction De Flux De Trafic Dans une ville” en s’appuyant sur une des plus
récentes technologies inspirée du raisonnement humain ” le deep learning ”.
1
Abstract
In recent times, computer systems have focused on the use of new technologies and techniques
of artificial intelligence in different fields, the reason of the appearance of the term ”SMART”
as : Smart Cities, Smart Farm, Smart Health and Smart Transportation. Since transportation is
considered to be a key pillar of smart city development, this paper focuses on one of the most
crucial topics in intelligent transportation systems that is ”The Prediction of Traffic Flow in a
City” based on one of the most recent technologies inspired by human reasoning ” deep learning ”.
ملخص
في الونة الخأيرة ،ركزتا أنظمة الكمبيوتر على استخدام تقنياتا جديدة للذكاء الصاطناعي في مجالتا مختلفة ،ومننن هنننا
ظهور مصطلح " "SMARTكن :المدن الذكية ،المزرعة الذكية ،الصحة الذكية والنقل الذكي.
ونظن ررا لهمينة النقنل واعتبنناره ركيننزة أساسنية لتنمينة المندن الذكيننة ،فنإن هنذه الطأروحنة تركننز علنى واحندة منن أكننثر
الموضوعاتا أهمية في أنظمة النقل الذكية وهي "التنبؤ بتدفق حركة المرور فني مدينننة" بحنند ذاتهننا .باسننتخدام واحنندة مننن
أحدث التقنياتا مستوحاة من المنطق البشري "التعلم العميق".
Table des matières
I Introduction Générale 7
2 Apprentissage automatique 25
1
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Définition et source de l’apprentissage automatique . . . . . . . . . . . . . . 26
2.2.1 Types d’apprentissage automatique . . . . . . . . . . . . . . . . . . . 28
2.2.1.1 Apprentissage supervisé (Supervised Learning) : . . . . . . 28
2.2.1.2 Apprentissage non-supervisé (Unsupervised Learning) : . . . 29
2.2.1.3 Apprentissage semi-supervisé : . . . . . . . . . . . . . . . . 30
2.2.1.4 Apprentissage par renforcement (Reinforcement Learning) : 30
2.2.1.5 Apprentissage en profondeur : . . . . . . . . . . . . . . . . . 31
2.2.2 Quelques algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3 L’apprentissage profond (DEEP LEARNING) . . . . . . . . . . . . . . . . . 37
2.3.1 Définition : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.2 Réseaux de neurones approfondis ( Deep Neural Networks ) . . . . . 39
2.3.2.1 Définition de réseau de neurones : . . . . . . . . . . . . . . . 39
2.3.2.2 Les types de réseaux de neurones . . . . . . . . . . . . . . . 41
2.3.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . 45
2.4 Domaines d’application et apports des réseaux de neurones . . . . . . . . . . 46
2.4.1 Domaines d’application . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4.2 Avantages et inconvénients des RNs . . . . . . . . . . . . . . . . . . 47
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2 Collecte et prétraitement de données . . . . . . . . . . . . . . . . . . . . . . 51
3.2.1 Collecte de données : . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.2 Analyse et nettoyage des données . . . . . . . . . . . . . . . . . . . . 51
3.2.3 Répartition de jeu de données ( Datasets ) . . . . . . . . . . . . . . . 52
3.3 Entrainement et mise en production du modèle . . . . . . . . . . . . . . . . 52
3.3.1 Choix d’un réseau de neurones . . . . . . . . . . . . . . . . . . . . . . 52
3.3.2 Apprentissage du réseau de neurones et entrainement du modèle . . . 53
3.3.3 Évaluation et déploiement du modèle en production . . . . . . . . . . 54
3.4 Outils d’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.1 Les langages de programmation utilisés . . . . . . . . . . . . . . . . . 55
3.4.2 Les frameworks et bibliothèques . . . . . . . . . . . . . . . . . . . . 57
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4 Réalisation 60
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2 Collecte et prétraitement de données . . . . . . . . . . . . . . . . . . . . . . 61
4.2.1 Collecte des données : . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.2 Analyse et nettoyage des données . . . . . . . . . . . . . . . . . . . . 63
4.2.3 Répartition des données . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3 Entrainement et mise en production du modèle . . . . . . . . . . . . . . . . 65
4.3.1 Choix d’un réseau de neurones . . . . . . . . . . . . . . . . . . . . . . 65
4.3.2 Apprentissage et entrainement du réseau de neurones . . . . . . . . . 67
4.3.3 Évaluation et déploiement du modèle . . . . . . . . . . . . . . . . . . 68
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
IV Conclusion Générale 71
3
Table des figures
4
4.6 Paramétrages du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.7 Aperçue d’architecture du réseau de neurones pour CarsTaxis . . . . . . . . 66
4.8 Capture d’entrainement du réseau de neurones . . . . . . . . . . . . . . . . . 67
4.9 Plots de régression des différents ensembles de données train , test et validation 68
4.10 Amélioration de performance par entrainement répété 3 fois . . . . . . . . . 69
4.11 Graphe de comparaison entre les données prédites et les données cibles . . . 69
4.12 Graphe de comparaison entre les données prédites et les données cibles des
nouvelles entrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5
Liste des tableaux
6
Première partie
Introduction Générale
7
Le domaine des STIs est l’un des domaines où la recherche sur les nouvelles données
est associée à la synthèse de l’intelligence artificielle (AI) qui a commencé à montrer des
résultats intéressants. Les STIs consistent à fournir des services innovants et avancés dans
les domaines suivants : modes de transport et de gestion du trafic, et comment permettre aux
utilisateurs de faire des choix plus judicieux lors de l’utilisation des réseaux de transport. Ceci
influence directement à l’efficacité des infrastructures dans les villes intelligentes urbaines. De
nombreux facteurs entrent en jeu dans l’évolution du trafic quotidien. Y a-t-il un match de
football dans le stade local ? Y a-t-il des sites de construction actifs qui causent la redirection
du trafic ? La liste des situations possibles modifiante le flux de trafic s’allonge. Avoir un
système capable de prédire raisonnablement ces changements de trafic est de grande valeur
pour le gouvernement, l’industrie et les citoyens.
Dans ce travail on s’intéresse à répondre à la problématique : “ comment utiliser l’ap-
prentissage profond pour prédire le flux de trafic routier dans une ville ?” un plan est élaboré
et suivi.
Nous allons parler, en premier lieu, dans la partie théorique des Systèmes de transport
intelligent en citant l’évolution ainsi que les projets STIs les plus récents, dans le deuxième
chapitre on abordera la technologie la plus récente et la plus répondue dans le développent
des STIs et à la prédiction du trafic routier qui est bien l’apprentissage automatique et plus
précisément l’apprentissage en profondeur qui utilise les réseaux de neurones approfondis.
Dans la partie conception et réalisation qui est une partie consacrée en premier lieu
pour la procédure de développement d’un réseau de neurones ainsi que les outils utilisés,
le chapitre réalisation contiendra notre cas d’étude et toutes les étapes qu’on a suivi pour
mettre en place un système de prédiction. En fin on termine par une conclusion illustrant
les perspectives liées à ce travail.
8
Deuxième partie
9
Chapitre 1
10
1.1 Introduction
Les Systèmes de Transport Intelligent (STIs) font l’avenir des services liés à tous les
modes de transport actuels. Ils permettent d’apporter des réponses à certaines probléma-
tiques majeures de notre société comme l’amélioration de la sécurité routière ou encore la
diminution de la pollution des transports. Les transports de demain seront guidés automa-
tiquement, ne rejetteront plus de gaz à effet de serre dans l’atmosphère et seront donc plus
ergonomiques pour les conducteurs et leur environnement. Les infrastructures sont aussi
concernées : des informations entre les véhicules et les infrastructures seront échangées afin
d’éviter les congestions de trafic, de fluidifier les intersections et de prévenir ou signaler des
accidents. De plus, le modèle de la voiture individuelle pourrait disparaitre au profit de parcs
de voitures disponibles pour tous les utilisateurs. Toutes ces options peuvent paraitre uto-
pistes, c’est pourtant ce que proposent les entreprises qui travaillent dans le domaine des
STI. Il s’agit donc d’un sujet qui nous concerne tous et auquel nous portons un intérêt en
tant que futurs ingénieurs. En effet, il est important de comprendre les phénomènes auxquels
notre société doit faire face.
Ces technologies STI visent à fournir des services innovants liés aux différents modes de
transport et à la gestion du trafic et permettent aux utilisateurs d’être mieux informés et de
rendre l’utilisation des réseaux de transport plus sure et plus intelligente.
Un système de transport intelligent crée des liens de communication entre ses divers élé-
ments (l’infrastructure, le véhicule, le conducteur utilisateur) au moyen d’un centre de gestion
qui les relie en temps réel, ou encore directement d’un véhicule à l’autre. Il existe plusieurs
types de systèmes de transport intelligent, classés notamment selon les genres de services
qu’ils rendent et les technologies auxquelles ils ont recours. L’intégration de ces systèmes à
l’intérieur d’une architecture de STI implique leur interopérabilité. En effet, en permettant
aux différents éléments du système de communiquer entre eux, selon un processus et des
éléments de communication normalisés, un STI peut ajuster en temps réel les interventions
sur le réseau selon les informations échangées.
Les systèmes de transport intelligent couvrent surtout le réseau modal de transport rou-
tier, tout en incluant les services et les processus d’interface avec les autres modes de trans-
port (aérien, maritime et ferroviaire).
11
Figure 1.1: Les aspects cibles des systèmes de transport intelligent
— Alerter les conducteurs des situations potentiellement dangereuses à temps pour éviter
les accidents.
— Prendre un bus prioritaire aux intersections gérées par feu tricolore qui passe au feu
vert dès l’approche.
— Fournir aux voyageurs des rapports en temps réel sur la circulation et la météo.
12
— Ajuster les limites de vitesse et la synchronisation du signal en fonction des conditions
réelles.
Le but principal des STIs est alors d’aider la prise de décisions par les exploitants du
réseau de transport et les autres utilisateurs. Souvent effectuées en temps réel, ces opérations
améliorent les conditions de vie de chacun.
Les STIs peuvent être catégorisés selon les taches assurées et la bronche d’utilisation,
ci-dessous on a cité quelques catégories des STIs [18] :
— Gestion du trafic : contrôle du trafic, gestion des accidents, gestion des flux, gestion
de maintenance des infrastructures, planification des infrastructures, etc...
— Transport public : gestion des transports publics, gestion des transports à la de-
mande, gestion du transport partagé, gestion des horaires, localisation, etc.
— Gestion des urgences : avis d’urgence et sécurité personnelle des voyageurs, gestion
des véhicules d’urgence, gestion du transport des matériaux dangereux et notification
d’incidents, etc.
— Sécurité : sécurité publique des voyages, amélioration de la sécurité pour les usagers,
jonctions intelligentes, etc.
13
L’utilisation des STIs s’inscrit également dans une volonté de développement durable. En
effet, les STI amènent à une utilisation mieux coordonnée de la route grâce à l’utilisation de
données. L’information est alors primordiale pour connaitre l’état actuel d’un réseau ou en
planifier l’usage.
Les STIs apparaissent comme une réponse possible à un certain nombre de défis spéci-
fiques au domaine de la mobilité. Plus généralement, les STIs pourraient contribuer à l’amé-
lioration des performances de transports au regard des critères du développement durable,
que ce soit sur le plan environnemental, sécuritaire, gestion de la congestion, productivité et
efficacité, voire même dans le cadre de l’information des voyageurs et de leurs confort [3, 4].
— Sécurité et sûreté
Les services des STIs peuvent rendre le transport plus sûr et plus sécuritaire. Ils peuvent
maximiser sa capacité à contrôler et à réduire les impacts des désastres, tant naturels que
d’origine humaine. Grâce à une planification bien pensée, les STIs aide à la réduction des
délais d’intervention des services d’urgence, et à la création d’itinéraires d’évacuation en
cas de désastre et à l’établissement de la priorité d’accès à ceux-ci. Ils peuvent favoriser
une réduction durable du nombre d’accidents et de la gravité de ceux-ci en signalant les
conditions et les situations dangereuses aux voyageurs.
— Gestion de congestion
La congestion constitue un problème majeur pour tous les réseaux de transport, et aug-
menter l’efficacité des systèmes de transport existants est un des principaux objectifs des
programmes des STIs partout dans le monde. Il est possible de réduire la congestion en
dotant les réseaux d’instruments qui permettront d’améliorer leur exploitation en temps réel
comme les capteurs qui permettront alors de contrôler ces systèmes.
— Productivité et efficacité
Les STI peuvent accroitre l’efficacité des opérations de transport. Les systèmes qui gèrent
les parcs de véhicules peuvent réduire les coûts administratifs, l’exploitation et l’amélioration
considérable de la productivité, en permettant de calculer de façon fiable les temps de dépla-
cement et d’effectuer la livraison juste à temps. L’utilisation des technologies de localisation
14
et de communication permet d’affecter le plus efficacement possible les conducteurs et les
véhicules.
Dans le domaine de l’information des voyageurs, un service peut être qualifié d’ambiant,
s’il renseigne le voyageur en fonction de son environnement direct. Il s’agit donc de services
capables d’adapter l’information en fonction des spécificités de l’utilisateur, de sa localisa-
tion et selon ses besoins afin de l’aider à réaliser son voyage dans les meilleures conditions
possibles.
— Facteurs de confort
Pour une utilisation optimal des routes et des services routiers, il ne suffit pas d’avoir des
véhicules intelligents, si les routes elles même sont mal entretenues ou même peu fluide. Les
embouteillages mènent au blocage partiel ou entier des routes devant tout type de transport
modal. Les systèmes de transport intelligent participent pleinement à la gestion du trafic
routier au travers des moyens et équipements dynamiques utilisés par les postes de contrôle
de circulation sur les réseaux routiers et autoroutiers. Ils représentent également un atout
majeur pour l’information des usagers et plus généralement pour l’exploitation de la route
[19]. Pour cela, il est le domaine que nous avons choisi pour prendre l’objet de notre étude.
Connaissance du trafic :
La connaissance des trafics est un élément essentiel en temps réel pour l’exploitation
du réseau routier (et notamment pour alimenter les systèmes d’aide à la gestion du trafic)
comme en temps différé pour éclairer les politiques publiques et disposer de statistiques sur
le secteur.
15
— suivre la politique des transports et notamment l’évolution du trafic routier et son
impact environnemental.
— optimiser l’utilisation des infrastructures existantes pour atteindre les objectifs affichés
dans le Grenelle de l’Environnement et le Schéma National des Infrastructures de
Transport.
— élaborer les prévisions de trafic à court terme, à moyen terme (calendrier Bison Futé)
ou à long terme avec l’alimentation des modèles de prévision de trafic pour l’évaluation
ex-ante des projets d’infrastructures...
— En interne au ministère :
— Métropoles...
— Bureaux d’études...
16
Les STIs sont apparus à la fin des années 60 et au début des années 70 avec notamment
le système CACS (Comprehensive Automobile Traffic Control System) au Japon ou l’ERGS
(Electronic Route Guidance System) en Allemagne et aux États-Unis[18].
— Facteurs humains : les facteurs humains ne concernent pas seulement les mesures
visant à éviter la surcharge d’information, ils consistent également à fournir l’informa-
tion d’une manière plus efficace, dans les meilleurs délais et à concevoir des moyens
de contrôle et d’affichage des véhicules dans des centres de contrôle qui doivent êtres
intuitifs, cohérents, et faciles à utiliser.
17
les rôles des acteurs et à mieux cerner la cible. C’est pour cela, qu’elle doit reposer sur une
analyse solide et rigoureuse [3, 5].
Figure 1.3: Exemple de l’architecture des communication entre les éléments STIs au Canada
L’Autriche :
18
des objets ” à ses capteurs en bordure de route. Le résultat est une autoroute conçue pour
se surveiller elle-même, envoyer des informations aux conducteurs et prévoir le trafic pour
s’assurer que les voies ne sont pas encombrées.
L’entreprise de transport utilise le Connected Roadway de Cisco, un système conçu pour
créer une infrastructure de réseau convergé afin de connecter en toute sécurité des systèmes
de transport intelligent disparates afin d’améliorer la circulation, de réduire les incidents en
bordure de route et de fournir une vue centralisée des systèmes routiers. Cette vue inclut les
informations sur l’état des routes, la circulation, la construction et le transit. Si le système
détecte un trafic lent, il peut réduire la limite de vitesse sur les routes avant que les voitures
ne s’ajoutent à la congestion.
L’autoroute connectée d’ASFiNAG utilise des capteurs pour collecter des données sur
la route, la circulation et les conditions météorologiques, et transmet ces informations aux
conducteurs [27].
Maroc :
Canada :
Le projet ayant décroché la première place au Top 5 des projets du congrée international
des STI (ITS World Congress ) est ” le pont intelligent de Montréal géré et illuminé grâce aux
capteurs de collection de données installés partout dans sa structure ”. Le pont Jaques Cartier
de Montréal complété en 1930 devient aujourd’hui “ un pont intelligent” avec 5 voies doté de
capteurs en sa structure. 55 millions de véhicule le traversent chaque année. Les opérateurs
utilisent les données de trafic du pont - collectées par les boucles intrusives, capteurs et les
vecteurs radar à grande définition - pour gérer l’ouverture et fermeture sécurisée des voies,
prévenir les conducteurs des congestions en avant, et contrôler les feux de détresse. L’éclairage
était fait le jour de son 375ème anniversaire avec 2 400 LED intelligentes changeants [8].
L’Espagne :
De nouvelles portes à plate-forme verticale ont été installées à Barcelone à la gare de Can
Cuiàs. C’est une première sur un réseau de métro et est expérimenté depuis mai 2019.
Les portes de quai verticales (VPSD) consistent en une structure verticale fixe avec des
glissières dans lesquelles deux panneaux rigides transparents glissent avec un fonctionnement
similaire à celui d’un store : elles sont déployées vers le bas pour établir une barrière physique
19
d’environ 160 cm de hauteur entre le train et le bord du quai, ou se replient vers le haut
pour laisser les passagers entrer et sortir du train, conçus pour une conduite automatique et
leur fonctionnement est synchronisé avec les trains.
Comparés aux portes coulissantes horizontales, les VPSD offrent l’avantage d’offrir des
zones de passage beaucoup plus grandes, elles ont les mêmes dimensions que l’espace qu’elles
occupent et ne créent donc pas de problèmes de congestion sur la plate-forme. Pour cette
raison, ils conviennent à une grande variété de lignes, même à celles combinant des trains
de séries différentes, comme dans certaines stations de métro de Barcelone. De plus elles ont
leurs propres avantages : elles sont rapides et faciles à installer car elles nécessitent moins
de renforcement structurel. Elles ont également un coût d’entretien inférieur, vu qu’elles
comportent moins d’éléments mécaniques [9].
20
Les STIs sont le fruit de la révolution des technologies d’information et de la communica-
tion qui marque l’ère numérique. Ils comprennent un vaste éventail de fonctions de soutien
aux utilisateurs, allant de simples alertes d’information jusqu’aux systèmes de contrôle hau-
tement perfectionnés, nous allons les citer ci-après réparties selon des taches : [20].
Essentiellement, les services des STIs peuvent être considérés comme une chaı̂ne d’infor-
mation expliquée par la figure ci-dessous :
21
Pour que les STI fonctionnent correctement, l’aspect humain doit être pris en compte,
en attachant plus d’importance à l’interface entre l’homme et la machine (IHM). Les êtres
humains font partie des STIs, non seulement en tant que conducteurs, mais aussi en tant
que planificateurs, voyageurs et autres, en utilisant divers modes de transport ou même en
étant leurs contrôleurs.
Les avantages des STIs sont variés et permettent d’augmenter la rapidité et la fiabilité
des services. Dans ce qui suit, un certain nombre d’avantages et apports génériques sont
présentés [20] :
22
optimisant l’utilisation des installations et des emprises existantes. Grâce à ces amélio-
rations, il est possible de satisfaire les exigences en matière de mobilité, de commerce
et de réduire la nécessité d’agrandir les installations existantes ou d’en construire de
nouvelles.
(a) Avantages du contrôle du trafic : le contrôle du trafic a un rôle important
dans l’exploitation du réseau. Les systèmes avancés font appel à des technologies
de communication avancées et à des logiciels en temps réel, en vue d’accroitre la
sécurité et d’améliorer le débit de la circulation. Parmi les solutions, nous men-
tionnons la régulation des bretelles d’accès, le contrôle de la vitesse, le contrôle
adaptatif des feux de circulation et le guidage routier collectif et individuel.
(b) Avantages de l’information des voyageurs : les services d’information des
voyageurs complètent les fonctions de régulation du trafic et de l’exploitation du
réseau. Ils ont pour objet de fournir des renseignements détaillés, en temps réel, de
haute qualité, sur les conditions d’exploitation du réseau de transport, y compris
les conditions météorologiques, afin que les voyageurs individuels puissent décider
de façon éclairée s’ils doivent effectuer un déplacement, du moment où il convien-
drait de l’effectuer, du mode de transport à utiliser et du parcours à emprunter.
(c) Avantages de la synergie : un des vrais avantages à long terme des STIs tient
au fait qu’un système peut en soutenir un autre. Une fois que les camions, les
autobus et les fourgonnettes sont dotés de dispositifs de localisation automatique,
il est possible de les utiliser à titre de sources mobiles de données sur les temps
de déplacement, la congestion et sur les conditions météorologiques localisées en
temps réel.
Une fois qu’on connait les avantages des STIs et qu’on est motivé de ses apports, on passe
à la recherche des défis et difficultés que l’on doit prendre en considération.
Les formidables évolutions des STIs posent de multiples défis : humains, technologiques,
scientifiques, commerciaux et économiques. Sans omettre ceux, probablement plus difficiles,
d’ordre social, institutionnel et politique [10].
— Homme et machine
La majorité des STIs embarqués qui procurent un avantage en sécurité peuvent également
introduire un élément de risque. L’importance de la sécurité des interfaces homme-machine
des systèmes embarqués d’information et de communication a été soulignée à maintes reprises
dans les résolutions, opinions et conclusions de différentes institutions européennes.
— Intégration et interopérabilité
Un enjeu majeur qui engage fortement l’avenir des STIs est celui de l’intégration de
différents systèmes mono-fonctionnels. Ce qui oblige ces systèmes à passer par une plateforme
ouverte et commune, partagée par de nombreux partenaires, publics et privés.
23
Le développement des STIs doit se réaliser dans le respect des libertés individuelles et
sans déresponsabiliser le conducteur. Mais la protection de la vie privée risque d’être mise à
mal, par exemple par la localisation précise des véhicules.
Au moment que l’information constitue la base de la majorité des STIs, il faudra donc
garantir une extrême fiabilité des serveurs d’informations, qui devront résister aux pannes,
virus et autres piratages informatiques.
— Adaptation du conducteur
De nombreuses fonctions des STIs sont conçues pour faciliter et sécuriser la tâche de
conduite, mais les interrogations demeurent sur l’acceptabilité des STIs par les conducteurs
et sur les modifications des comportements qu’ils risquent d’engendrer.
1.6 Conclusion
Les projets STIs nécessitent des interconnexions entre les systèmes informatiques, des
échanges de données entre les différents organismes producteurs ou consommateurs d’infor-
mation. C’est pourquoi il est indispensable de prendre en compte ces notions de dialogue
le plus en amont possible. Il est à signaler, dans ce domaine, que le projet national Actif
doit déterminer une architecture cadre qui fournira à chacun, dans son domaine, l’outil lui
permettant de construire un système cohérent avec son environnement actuel et futur. C’est-
à-dire un système qui puisse facilement dialoguer avec des systèmes conçus par d’autres.
Enfin, il ne faut pas perdre de vue que tous ces systèmes ne constituent que des outils au
service d’une politique destinée au bien-être du citoyen et qu’au bout du compte, l’objectif
est de satisfaire ses besoins au meilleur coût, dans l’intérêt de l’usager comme dans celui du
contribuable.
24
Chapitre 2
Apprentissage automatique
25
2.1 Introduction
L’humain cherche toujours à automatiser les différentes tâches et problèmes qu’il ren-
contre quotidiennement, et ce se fait en se basant sur son expérience et savoir faire. Les
systèmes informatiques à présent varient en terme de complexité et domaines d’application :
on trouve des cas où les solutions sont faites grâce à des algorithmes et fonctions bien dé-
terminés que l’on implémente et reste à l’ordinateur d’exécuter ces instructions ; tandis que
dans d’autre cas, cette méthode dite traditionnelle ne peut être utilisée et on préfère plutôt
l’introduction de l’intelligence artificielle et plus exactement, celle de d’apprentissage auto-
matique pour permettre à l’ordinateur d’appendre à résoudre des problèmes comme l’humain
le fait tout seul. Vu la complexité des systèmes de prédiction, il est évident de se référer aux
techniques d’apprentissage automatique qu’à celles de programmation traditionnelle. Quelles
sont donc les techniques d’apprentissage automatique ? et quelle est la technique et l’approche
à adapter à notre cas d’étude : la prédiction de flux de trafic ?
Le terme apprentissage dans la langue courante est ambigu. Il désigne aussi bien l’ap-
prentissage “par cœur” d’une poésie, que l’apprentissage d’une tâche complexe telle que la
lecture. Clarifions la distinction [20] :
26
Définition de l’apprentissage automatique :
Le modèle est donc le résultat attendu de l’apprentissage, par exemple si le problème était
de faire un système de filtrage des e-mails spam le modèle résultat sera le filtre de spam,
et donc l’ensemble de règles déduites en entrainement utilisées pour résoudre le problème
donné.
On résume donc que le machine learning est créé pour résoudre les problèmes pour lesquels
les modèles analytiques sont difficilement trouvés. Son idée principale est d’atteindre un
modèle en utilisant les données d’entrainement quand les équations et les lois sont peu
prometteuses.
27
Domaines d’applications de l’apprentissage automatique
— De donner une réponse à la demande de prêt bancaire de la part d’un client sur la
base de sa situation personnelle ;
Une première grande distinction à faire en “machine learning” est la différence entre les
méthodes d’apprentissage :
C’est une méthode très similaire à l’apprentissage chez les humains. Le modèle prend en
entrée les données et leurs sorties correctes ( classes ou libellés cibles ) et en s’entrainant
pour les atteindre il ” apprend ” pour que l’algorithme devient capable, une fois entraine, de
prédire cette cible sur de nouvelles données non annotées [19].
Ce type d’apprentissage automatique est basé sur l’utilisation de données pour l’ancien
algorithme d’apprentissage. Les données sont identifiées comme entrées avec leurs sorties
essentielles qui peuvent être décrit comme un signal de supervision. Le mécanisme d’appren-
tissage est décrit comme supervisé depuis la sortie correcte et l’algorithme d’apprentissage
tente de prédire ittérativement cette sortie et corrige ses paramètres pour réduire l’écart de
variation entre sa production prévue et la production réelle. L’analyse du format des données
permet de classer l’apprentissage supervisé en algorithme pour une fonction appelée classi-
fication si la sortie était discrète, et une fonction de régression si la sortie était continue (
nombres réels ) [27]. La figure ci-dessous résume le processus de l’apprentissage supervisé.
28
Figure 2.2: Processus d’apprentissage supervisé
C’est dans le cas où l’entrainement du modèle repose sur l’utilisation des données non
libellées en entrée. L’algorithme d’entrainement s’applique dans ce cas à trouver seul les si-
milarités et distinctions au sein de ces données, et à regrouper ensemble celles qui partagent
des caractéristiques communes. Donc, contrairement à l’apprentissage supervisé, cette mé-
thode utilise un jeu de données en entrée sans sorties étiquetées pour entraı̂nner l’algorithme
d’apprentissage. Il n’y a pas de sortie correcte ou fausse sur chaque objet d’entrée et au-
cune intervention humaine pour corriger ou ajuster comme dans l’apprentissage supervisé.
L’objectif principal de l’apprentissage non supervisé est de savoir plus sur les données en
identifiant les structures fondamentales ou les modèles de distribution qui se trouvent dans
les données elles-mêmes. Apprend par lui-même, l’algorithme tente de représenter un motif
d’entrée particulier tout en le reflétant sur la structure globale d’entrée. Ainsi, les différents
entrées sont regroupées en groupes en fonction des fonctionnalités et caractéristiques ex-
traites de chaque objet d’entrée. Bien que l’algorithme n’attribue pas de noms aux résultats,
il peut encore en produire, les différencier et utiliser certains d’entre eux pour assigner les
nouveaux exemples. Cette approche repose sur les données d’entrée et peut bien fonctionner
quand il y a suffisamment de données disponibles pour l’utilisation. La figure suivante résume
et montre le processus de ce type d’apprentissage [2, 6].
29
2.2.1.3 Apprentissage semi-supervisé :
Dans ce cas, l’agent d’apprentissage prend en entrée les données, quelque sorties (état
de l’environnement), et des observation de l’environnement pour ses sorties (actions). Il est
utilisé généralement dans les cas où une interaction optimale est requise, comme dans le cas
des jeux. L’apprentissage par renforcement c’est apprendre en interagissant avec l’environne-
ment problématique. Un agent ( algorithme ) d’apprentissage par renforcement apprend de
ses propres actions plutôt que d’être spécifiquement enseigné sur que faire. Il sélectionne les
actions en cours en fonction des expériences passées (exploitation) et nouveaux choix (explo-
ration). Ainsi, il peut être décrit comme un processus d’apprentissage par essais et erreurs.
30
Le succès d’une action est déterminé par un signal reçu par l’agent d’apprentissage de ren-
forcement sous la forme d’une valeur numérique de récompense. L’agent cherche à apprendre
à sélectionner des actions qui maximisent la valeur de la récompense numérique. Les agents
d’apprentissage ont généralement des objectifs et ils peuvent détecter, dans une certaine
mesure, l’état de l’environnement dans lequel ils se trouvent et donc prendre des mesures
qui affectent l’état et le rapprocher de l’ensemble buts. L’apprentissage par renforcement est
différent du supervisé dans la manière dont chaque méthode acquiert des connaissance. La
méthode d’apprentissage supervisé apprend à partir des exemples fournis par un supervi-
seur externe, alors que l’apprentissage par renforcement utilise des interactions directes avec
l’environnement du problème pour gagner connaissance [2, 6]. La figure suivante illustre le
principe du processus de ce type d’apprentissage automatique.
31
Figure 2.6: Réseau de neurones profond
Les approches plus connues et utilisées sont le supervisé et non-supervisé. Pour décider
entre eux deux c’est simple : dans le cas où vous avez un problème où vous pouvez annoter
précisément pour chaque observation la cible que vous voulez en sortie, vous pouvez utiliser
l’apprentissage supervisé ;dans le cas contraire et que vous essayez de mieux comprendre votre
dataset ou d’identifier des comportements intéressants, vous pouvez utiliser l’apprentissage
non supervisé.
Une autre distinction qui aidera dans le choix d’un algorithme de machine learning est
le type de sortie que l’on attend du programme : est-ce une valeur continue (un nombre) ou
bien une valeur discrète (une catégorie) [19].
32
Figure 2.7: Régression linéaire
33
Figure 2.8: Régression logistique
34
Cela permet de simplifier le calcul des probabilités. Généralement, le Naı̈ve Bayes est
utilisé pour les classifications de texte (en se basant sur le nombre d’occurrences de
mots).
35
nœud comporte une condition, et les branchements sont en fonction de cette condition
(Vrai ou Faux). Plus on descend dans l’arbre, plus on cumule les conditions. L’image
ci-dessus illustre ce fonctionnement.
36
Figure 2.14: K-Mean
Les types ci-dessus sont les types basiques pour lesquels des variantes sont apparues à fin
de s’adapter mieux à des problèmes plus complexes. Notre problème de prédiction de sa part,
nécessite d’être traité par une variante des réseaux de neurones qui traite de tels problème
assez complexe : les réseaux de neurones profonds le noyau de l’apprentissage profond .
37
Figure 2.15: AI-ML-DL
2.3.1 Définition :
Deep Learning peut être décrit comme un sous-domaine de l’apprentissage automatique
basé sur des algorithmes tirés de l’apprentissage multi-niveaux afin de fournir un modèle qui
représente les relations complexes entre les données pour rendre la machine capable d’ap-
prendre par elle-même pour entrainer un réseau de neurones . Il est essentiellement le point
d’intersection entre réseaux de neurones, modélisation graphique, optimisation, intelligence
artificielle, reconnaissance de formes ainsi que traitement du signal. [27]
38
Le Deep Learning s’appuie sur un réseau de neurones artificiels profond s’inspirant du cer-
veau humain. Ce réseau est composé de dizaines voire de centaines de ”couches” de neurones,
chacune recevant et interprétant les informations de la couche précédente. Le système ap-
prendra par exemple à reconnaitre les lettres avant de s’attaquer aux mots dans un texte, ou
détermine s’il y a un visage sur une photo avant de découvrir de quelle personne il s’agit.[12]
Neurone formel
Un neurone biologique, de façon très réductrice, est une cellule qui se caractérise par [15] :
— Des synapses, les points de connexion avec les autres neurones, fibres nerveuses ou
musculaires.
39
— les axones, ou sorties du neurone vers d’autres neurones ou fibres musculaires.
Un neurone formel (dit aussi artificiel) est essentiellement constitué d’un intégrateur qui
effectue la somme pondérée de ses entrées. Le résultat de cette somme est ensuite transformée
par une fonction non linéaire pour produire la sortie du neurone. Lorsque le niveau d’activa-
tion atteint ou dépasse le seuil b ( biais b du neurone, il s’appelle aussi le seuil d’activation
du neurone), alors l’argument de f devient évidemment positif (ou nul).
Un neurone artificiel est une fonction fj d’entrées x = (x1 ,..., xd ) pondérées par un vecteur
de poids de connexion Wj = ( Wj,1 ,..., Wj,d ), complétée par le biais de neurone bj , qui
sont associés a une fonction d’activation F , suivant la formule générale :
Yj = fj (x) = F( (wj , x ) + bj ).
La fonction d’activation :
Les fonctions d’activation, également connues sous le nom de fonctions de transfert, sont
utilisées pour mapper les nœuds d’entrée vers les nœuds de sortie d’une certaine manière.
Elles opèrent une transformation d’une combinaison affine des signaux d’entrée pondérés par
un vecteur de poids [W1, . . . , Wn] associé à chaque neurone, avec un terme constant, étant
appelé le biais du neurone. Les valeurs des poids sont estimées dans la phase d’apprentissage.
Ils constituent la mémoire ou connaissance répartie du réseau. Il existe plusieurs fonctions
d’activation, citons les plus utilisées :
— fonction ” Segmoid ” :
F(x) = 1+exp(−x)
1
40
— fonction tangent hyperbolique ”tanh” :
F(x) = tanh(x) = exp(x)+exp(-x)
exp(x)-exp(-x)
= exp(2x)−1
exp(2x)+1
Les graphes correspondants aux fonctions d’activation citées ci-dessous sont représentés
dans la figure suivante :
Les informations entrent aux réseau de neurones et traversent ses couches en activant
certains neurones sans les autres.
Il existe de nombreux types de réseaux neuronaux artificiels, on peut les diviser en deux
grandes catégories selon la topologie (architecture) :
[14] :
41
(a) Réseau feedforward (b) Les réseaux récurrents Hopfield
Dans ces deux grands types, on trouve plusieurs réseaux distincts, citons les plus connus :
42
Figure 2.22: Perceptron
— Kohonen : Ce réseau de neurones peut être considéré comme dynamique, des neu-
rones peuvent être détruits et crées, le réseau n’a pas de taille fixe. Généralement ce
réseau est appelée carte de kohonen, en effet ce réseau est représenté à plat comme une
43
grille rectangulaire à 1, 2, 3 ou 4 dimensions. Ces réseaux sont inspirés des observations
biologiques du fonctionnement des systèmes nerveux de perception des mammifères.
Une loi de Hebb modifiée (tenant compte de l’oubli) est utilisée pour l’apprentis-
sage. La connexion est renforcée dans le cas ou les neurones reliés ont une activité
simultanée, et diminuée dans le cas contraire. Ainsi, une loi d’interaction latérale (ob-
servée biologiquement) est aussi modélisée. Les neurones très proches (physiquement)
interagissent positivement (le poids des connexions est augmenté autour quand une
synapse est activée), négativement pour les neurones un peu plus loin, et pas du
tout pour les neurones éloignés. Les réseaux de Kohonen ont des applications dans
la classification, le traitement et compression d’images, l’aide à la décision, sélection
de données représentatives dans une grande base de données, diagnostic de pannes,
optimisation combinatoire (dont le fameux ”voyageur de commerce”, modélisation de
la cartographie des aires visuelles. [22, 24]
44
Figure 2.25: Réseau de neurones de Hopfield à 3 noeuds
Le choix de quelle architecture repose toujours sur le besoin et le but à atteindre avec
celle-ci. Indépendamment de la topologie, tout réseau de neurones a besoin d’algorithme
pour son apprentissage. Ces algorithmes sont aussi variés et on abordera quelque uns par la
suite.
45
4. Calculer la sortie de cette entrée.
5. Mesurer l’erreur de prédiction par différence entre sortie réelle et sortie prévue.
6. Calculer la contribution d’un neurone à l’erreur à partir de la sortie.
7. Déterminer le signe de modification du poids.
8. Corriger les poids des neurones pour diminuer l’erreur.
9. Le processus recommence ainsi, à partir du choix de l’exemple en entrée, jusqu’à
ce qu’un taux d’erreur minimal soit atteint.
Aujourd’hui, les réseaux de neurones ont de nombreuses applications dans des domaines
très variés [16] :
46
— Traitement d’image : compression d’images, reconnaissance de caractères et de
signatures, reconnaissance de formes et de motifs, cryptage, classification, ...
Les réseaux de neurones ont marqué leur importance dans divers domaines, et comme
toute technique, elle présente des avantages qui facilite la tâche ou règle un problème, mais
aussi elle a des inconvénients qui sont objets d’autres études s’inscrivant dans la volonté du
développement de l’efficacité des RNs.
Comme toute méthode, les réseaux de neurones ont des avantages et des inconvénients
et c’est bien de les connaitre pour se positionner mieux et pour développer les algorithmes
afin de minimiser les inconvénients [16].
— Simple à manier, beaucoup moins de travail personnel à fournir que dans l’analyse
statistique classique.
47
— Comportement moins mauvais en cas de faible quantité de données.
— Pour l’utilisateur novice, l’idée d’apprentissage est plus simple à comprendre que les
complexités des statistiques multi-variables.
Les inconvénients
Les inconvénients des réseaux de neurones présentent ses difficultés et ses limites. Ils sont
les suivants :
— Le choix des valeurs initiales des poids du réseau et le réglage du pas d’apprentissage,
qui jouent un rôle important dans la vitesse de convergence.
— La connaissance acquise par un réseau de neurones est codée par les valeurs des poids
qui sont inintelligibles pour l’utilisateur.
2.5 Conclusion
Les réseaux de neurones artificiels, inspirés du comportement du cerveau humain, per-
mettent de créer de l’intelligence artificielle. Ils servent à prédire, à identifier et à classifier
les données. L’apprentissage, moteur essentiel du système, leur permet d’assimiler un traite-
ment d’information à travers une fonction et de le reproduire pour les données qui lui seront
ensuite présentées.
48
Troisième partie
Conception et Réalisation
49
Chapitre 3
Conception
50
3.1 Introduction
Les systèmes de circulation sur les routes sont très complexes du fait que ces change-
ments sont incertains. Dans ces systèmes les changements de flux de trafic dépendent de la
pertinence de la circulation routière adjacente. Il est donc difficile de trouver une caractéri-
sation de haute précision à l’aide d’un modèle mathématique, par conséquent, le modèle non
mathématique est utilisé pour la prédiction du flux de trafic sur les routes pour assurer plus
de précision dans les résultats.
L’objectif de cette étape est de recueillir des données, à la fois pour développer le réseau
de neurones et pour le tester. Dans le cas d’applications sur des données réelles, l’objectif
est de rassembler un nombre de données suffisant pour constituer une base représentative
des données susceptibles d’intervenir en phase d’utilisation du système neuronal. La fonction
réalisée résultant d’un calcul statistique, le modèle qu’il constitue n’a de validité que dans
le domaine où on l’a ajusté. En d’autres termes, la présentation de données très différentes
de celles qui ont été utilisées lors de l’apprentissage peut entrainer une sortie totalement
imprévisible [17] .
Il est souvent préférable d’effectuer une analyse des données de manière à déterminer les
caractéristiques discriminantes pour détecter ou différencier ces données. Ces caractéristiques
constituent l’entrée du réseau de neurones. Notons que cette étude n’est pas spécifique aux
réseaux de neurones, quelque soit la méthode de détection ou de classification utilisée, il est
généralement nécessaire de présenter des caractéristiques représentatives. .
De manière générale, les bases de données doivent subir un prétraitement afin d’être
adaptées aux entrées et sorties du réseau de neurones. Un prétraitement courant consiste
à effectuer une normalisation appropriée, qui tienne compte de l’amplitude des valeurs ac-
ceptées par le réseau. [17]. Une étude statistique sur les données peut permettre à son tour
d’écarter celles qui sont aberrantes, incomplètes et redondantes.
Cette détermination des caractéristiques a des conséquences à la fois sur la taille du réseau
(et donc le temps de simulation), sur les performances du système (pouvoir de séparation,
taux de détection), et sur le temps de développement (temps d’apprentissage).
51
3.2.3 Répartition de jeu de données ( Datasets )
Il n’y a pas une règle fixe pour déterminer ce partage de manière quantitatif. Il résulte
souvent d’un compromis tenant compte du nombre de données dont on dispose et du temps
imparti pour effectuer l’apprentissage.
Il existe un grand nombre de types de réseaux de neurones, avec pour chacun des avan-
tages et des inconvénients. Le choix d’un réseau peut dépendre :
52
— De la nature des données (dans notre cas, des données présentant des variations au
cours du temps),
Ce choix est aussi en fonction de la maitrise ou de la connaissance que l’on a sur certains
réseaux, ou encore du temps dont on dispose pour tester une architecture prétendu plus
performante [17].
Le critère d’arrêt de l’apprentissage est souvent calculé à partir d’une fonction de coût,
caractérisant l’écart entre les valeurs de sortie obtenues et les valeurs de références (ré-
ponses souhaitées pour chaque exemple présenté). La technique de validation croisée, qui
sera précisée par la suite, permet un arrêt adéquat de l’apprentissage pour obtenir de bonnes
performances de généralisation.
Des contraintes dues à l’éventuelle réalisation matérielle du réseau peuvent être intro-
duites lors de l’apprentissage [17].
53
Figure 3.2: Phase d’apprentissage du réseau de neurones
Une fois le réseau de neurones entrainé (après apprentissage), il est nécessaire de le tester
sur une base de données différentes de celles utilisées pour l’apprentissage ou la validation
croisée. Ce test permet à la fois d’apprécier les performances du système neuronal et de
détecter le type de données qui pose problème.
Si les performances ne sont pas satisfaisantes, il faudra soit modifier l’architecture du
réseau, soit modifier la base d’apprentissage (caractéristiques discriminantes ou représen-
tativité des données de chaque classe) Une fois le modèle correctement paramétré sur les
données d’entrainement, on peut ensuite le déployer afin qu’il traite de nouvelles données,
pour accomplir la tâche spécifique poursuivie (prédiction, recommandation, décision...). [17].
Une fois qu’on est satisfait de la qualité des performances de notre modèle, on va pouvoir
54
passer à l’étape suivante, qui est le rendu de nos résultats et le potentiel déploiement du
modèle en production. Appliquer donc le travail à de nouvelles données, il suffit de passer
les nouvelles entrées dans le modèle obtenu (qui est en principe bien entrainé ) afin d’obtenir
une sortie.[25] On peut même opter pour le partage des résultats en externe vers les centres
de décisions ou tout autre système et autorité intéressée.
— Python
La famille de langages JVM (Java, Scala, Kotlin, Clojure, etc.) est aussi un excellent choix
pour le développement d’applications IA. De nombreuses bibliothèques disponibles pour le
traitement du langage naturel (CoreNLP), des opérations de tenseurs (ND4J) ou d’une pile
d’apprentissage profond (DL4J : DeepLearning4J) accélérée par le processeur graphique.
De plus, les développeurs bénéficient d’un accès facile aux grandes plateformes de données
comme Apache Spark et Apache Hadoop.
— Scala
Scala est récemment devenu un autre langage important pour l’analyse rapide des don-
nées. Il a gagné en popularité principalement en raison de la montée de Spark, un grand
moteur de traitement de données de choix, qui est écrit en Scala et fournit ainsi une API
native à Scala. Breeze est connue comme la principale bibliothèque pour Scala. Breeze four-
nit des manipulations rapides et efficaces avec des tableaux de données, et permet la mise
en œuvre de nombreuses autres opérations, y compris les opérations matricielles et vecto-
rielles, les probabilités et fonctions statistiques, l’optimisation, les opérations de traitement
du signal, etc.
— C/C++
55
Le choix du C/C ++ est peu probable lors du développement d’une application IA.
Mais pour ceux qui travaillent dans un environnement intégré, et qu’ils ne peuvent pas
payer le surcoût d’une machine virtuelle Java ou d’un interpréteur Python, C/C ++ est
la solution. Lorsqu’on a besoin d’exploiter les dernières performances du système, il faut
retourner dans le monde (terrifiant pour certains) des pointeurs. Mais, le C/C ++ moderne
est agréable, car offre de multiples approches. Les développeurs peuvent soit plonger au
bas de la pile, en utilisant des bibliothèques comme CUDA pour écrire leur programme qui
s’exécute directement sur le GPU, ou ils peuvent utiliser TensorFlow ou Caffe pour accéder
à des API de haut niveau flexibles.
— JavaScript
Google avait publié TensorFlow.js, une bibliothèque accélérée par WebGL qui permet de
former et d’exécuter des modèles d’apprentissage automatique dans le navigateur Web. Il
inclut également l’API Keras et la possibilité de charger et d’utiliser des modèles qui ont été
formés dans TensorFlow standard. Bien que JavaScript n’a pas actuellement le même accès
aux bibliothèques d’apprentissage automatique que les autres langages cités plus haut, les
développeurs ajouteront bientôt des réseaux de neurones à leurs pages Web avec presque la
même aisance que s’ils ajoutaient une propriété CSS. TensorFlow.js est encore à ses débuts.
Pour l’instant, cela fonctionne dans le navigateur, mais pas dans Node.js. Il n’implémente
pas encore l’API TensorFlow complète.
— R
R est le langage que les scientifiques de données aiment. Cependant, d’autres program-
meurs trouvent R un peu confus quand ils le rencontrent pour la première fois, en raison
de son approche centrée sur les données. Pour un groupe dédié de développeurs R, il peut
être judicieux d’utiliser les intégrations avec TensorFlow, Keras ou H2O pour la recherche,
le prototypage et l’expérimentation.
— Lua
— Julia
— Swift
56
Chris Lattner, créateur du compilateur LLVM et du langage de programmation Swift, a
annoncé Swift pour TensorFlow. Swift pour TensorFlow permet d’importer des bibliothèques
Python telles que NumPy et de les utiliser dans le code Swift presque comme avec n’importe
quelle autre bibliothèque.
— MATLAB
MATLAB rend les parties difficiles de l’apprentissage automatique faciles avec des ap-
plications ” pointer-cliquer ” pour former et comparer des modèles, des techniques avancées
de traitement du signal et d’extraction de caractéristiques, sélection des fonctionnalités pour
optimiser les performances d’un modèle, la possibilité d’utiliser le même code pour étendre
le traitement aux big data et aux clusters, etc.
— Apache SINGA
Apache SINGA : est un projet Apache Incubating destiné à développer une bibliothèque
d’ apprentissage machine open source . Il fournit une architecture flexible pour une formation
distribuée évolutive, est extensible pour une vaste gamme de matériel et se concentre sur les
applications de soins de santé.
— Caffe
57
Caffe est un cadre d’apprentissage en profondeur conçu pour l’expression, la rapidité et
la modularité. Il est développé par Berkeley AI Research ( BAIR ) et par des contributeurs
de la communauté. Yangqing Jia a créé le projet lors de son doctorat à l’UC Berkeley. Caffe
est publié sous la licence BSD 2-Clause .
— CNTK
Microsoft Cognitive Toolkit ( https ://cntk.ai)) est une boı̂te à outils d’apprentissage en
profondeur unifiée qui décrit les réseaux de neurones comme une série d’étapes de calcul
via un graphe dirigé. Dans ce graphe orienté, les nœuds terminaux représentent les valeurs
d’entrée ou les paramètres réseau, tandis que les autres nœuds représentent les opérations
de la matrice lors de leurs entrées. CNTK permet aux utilisateurs de réaliser et de combiner
facilement les types de modèles courants tels que les DNN avec feed-forward, les réseaux de
convolution (CNN) et les réseaux récurrents (RNN / LSTM). Il implémente l’apprentissage
par descente de gradient stochastique (SGD, error backpropagation) avec différenciation et
parallélisation automatiques sur plusieurs serveurs graphiques et serveurs graphiques. CNTK
est disponible sous licence open source depuis avril 2015.
— Apache MXNet
Apache MXNet est une structure logicielle d’ apprentissage en profondeur open source ,
utilisée pour former et déployer des réseaux neuronaux profonds . Il est évolutif et permet
une formation rapide des modèles . Il prend en charge un modèle de programmation flexible
et plusieurs langages de programmation (notamment C ++ , Python , Julia , Matlab ,
JavaScript , Go , R , Scala , Perl et Wolfram .)
— TensorFlow
TensorFlow est une plate-forme open source de bout en bout pour l’apprentissage auto-
matique. Il offre un écosystème complet et flexible d’outils, de bibliothèques et de ressources
communautaires qui permet aux chercheurs de se familiariser avec les technologies de pointe
et aux développeurs de créer et de déployer facilement des applications utilisant ML.
— Theano
— Torch
Torch est une autre bibliothèque de calculs scientifiques qui prend en charge les algo-
rithmes d’apprentissage automatique. Torch est basé sur Lua , un langage de programmation
léger et multi-paradigmes. Torch est développé par Facebook et utilisé par des géants comme
58
Facebook, Twitter et Google. Torch utilise également CUDA , qui permet d’entrainer des
modèles plus rapidement sur des GPU.
3.5 Conclusion
Dans ce chapitre on a identifié les étapes essentielles pour réaliser un réseau de neurones
approfondis bien que ces étapes se sont pas spécifiques juste pour les réseaux de neurones
mais pour tout système, on a parlé aussi des outils utilisés pour l’apprentissage profond.
Maintenant que les prérequis sont prêts, on peut passer à la réalisation du système.
59
Chapitre 4
Réalisation
60
4.1 Introduction
Dans ce chapitre on reparlera des étapes de conception tout en spécifiant les choix pris
ainsi que les résultats obtenus pour un système de réseau de neurone destiné à faire une
prédiction de flux de trafic. La démarche est respectée et clarifiée en concret avec des exemples
d’application. Pour ce, on a choisi de travailler sur le logiciel MATLAB version 2018a. Il reste
donc à savoir les données utilisées, phases d’implémentation du système et ses résultats (
pour un seul flux : le flux correspondant aux véhicules et taxis “CarsTaxis” du jeu de données
présenté ci-après ) en ordre avec quelques clarifications nécessaires.
La connaissance des trafics repose sur le Système d’Information Trafic (SIT) du ministère
au sein duquel il est assuré le recueil des données et l’alimentation d’une base de données
locale. Les bases locales sont ensuite ségréguées pour constituer la base nationale des trafics.
Le système de recueil de données est basé sur les stations de bases communiquant avec les
différents équipement sur la route (capteurs, caméras de surveillance, systèmes de comp-
tage,...etc ) qui équipent le réseau routier national. Avec l’émergence de nouveaux capteurs
et équipements de mesure, l’enjeu aujourd’hui est l’enrichissement du système de recueil de
données, tant en quantité qu’en qualité des mesures de trafic produites.
61
Figure 4.2: Capteurs météo-routiers
Les principales données pertinentes à recueillir sont : le débit tous véhicules, le taux
d’occupation et la vitesse moyenne tous véhicules. D’autres données plus détaillées peuvent
également être recueillies selon le type d’équipement : on peut citer notamment la réparti-
tion des débits par classes de longueurs, de vitesses, de silhouettes, et de poids. Différents
indicateurs de trafic sont ensuite élaborés à partir des données de trafic, notamment le trafic
moyen journalier annuel (MJA), le trafic moyen journalier mensuel (MJM), et la part du
trafic lourd (%PL).[25]
Les données utilisées dans notre étude sont dans un fichier format texte ouvert repré-
sentant des données tabulaires sous forme de valeurs séparées par des virgules ( Comma-
separated values CSV ) qu’on a représenté dans un tableau de 32980 lignes et 26 colonnes.
ces données sont disponibles sur le site [21] qui offre les statistiques du trafic routier de la
Grande Bretagne gratuitement de Londres comme exemple pour travailler dessus.
Ces datasets sont accompagnées par des fichiers pdf pour expliquer les différents champs
et paramétrés de la dataset.
Ci-dessous une capture qui illustre la dataset avec laquelle on a travaillé.
62
4.2.2 Analyse et nettoyage des données
Une fois avoir les datasets, il faut les analyser. Pour cela on a utilisé les fichier pdfs
expliquant les fichiers CSV ainsi que quelque recherches et évidement notre propre analyse.
On a réalisé ensuite le tableau suivant qui récapitule les points importants de notre dataset :
— Le jeu de données ne comportait aucune donnée manquante, mais plutôt des valeurs
non numériques ( dites catégoriques ) qui ne peuvent être injectées au réseau de
neurones.
— Le jeu de données donne des informations sur les différents catégories de flux ( en
moyenne annuelle journalière MAJ ) correspondants à des informations spatiotempo-
relles de la route en question.
— Les données donnent possibilité de faire une étude prédictive sur les sorties de flux
différents dans une volonté d’étude statistique à long terme vue l’intervalle de temps
( par année ).
63
Pour réaliser le système voulu il faut choisir les données pertinentes qui nous permettent
de faire un système cohérent et d’avoir des bons résultats à partir de notre dataset, et comme
connu les réseaux de neurone travaillent avec des données numériques.
Donc la première chose à faire c’est d’éliminer toutes donnée non numérique en phase de
nettoyage.
Figure 4.4: Les colonnes de valeurs non numériques à omettre (en jaune)
Après avoir terminer de cette étape on passe au choix des entrées et sorties de notre
système, et pour cela on a travaillé avec la corrélation pour déterminer la relation entre nos
données.
Une fois terminé on a donc les entrés et sortie bien définies.
L’outil MATLAB propose des algorithmes prédéfinis assurant la séparation optimale pour
les entrées en phase d’entrainement, à savoir devideblock qui divise les jeux de données en
trois ensembles en utilisant des blocs d’indices et deviderand qui divise le jeu de données
64
en trois ensembles en utilisant des indices aléatoires. Le choix s’ajuste en fonction du type
de réseau de neurones utilisé et ses paramètres. Une fois l’entrainement lancé, on peut voir
le choix fait automatiquement. Détaillons maintenant l’algorithme utilisé dans notre cas :
Deviderand.
La syntaxe sous MATLAB :
— prend en entrée :
— Q : Nombre de cibles à diviser.
— trainRatio : Ratio de vecteurs pour la formation. Par défaut = 0.7 c’est à dire 70%
de l’ensemble de données sera réservé dans training set.
— valRatio :Ratio de vecteurs pour validation. Par défaut = 0.15 , 15% pour valida-
tion set.
— testRatio : Ratio de vecteur à tester. Par défaut = 0.15, i.e 15% pour test set.
— retourne en sortie :
— trainInd : indices de formation ou training data (valeurs aléatoires).
— valInd : indices de validation.
— testInd : indices de test.
65
Figure 4.6: Paramétrages du réseau
66
4.3.2 Apprentissage et entrainement du réseau de neurones
Le critère d’arrêt de l’apprentissage est souvent calculé à partir d’une fonction de coût,
caractérisant l’écart entre les valeurs de sortie obtenues et les valeurs de références (réponses
souhaitées pour chaque exemple présenté).
67
Des contraintes dues à l’éventuelle réalisation matérielle du réseau peuvent être intro-
duites lors de l’apprentissage. [17]
Une fois le réseau de neurones entrainé (après apprentissage), il est nécessaire de le tester
sur une base de données différentes de celles utilisées pour l’apprentissage ( “sample” dans
notre cas ). Ce test permet à la fois d’apprécier les performances du système neuronal et
de détecter le type de données qui pose problème. Si les performances ne sont pas satisfai-
santes, il faudra soit modifier l’architecture du réseau, soit modifier la base d’apprentissage
(caractéristiques discriminantes ou représentativité des données de chaque classe) [17].
MATLAB permet l’accès facile aux plots de régression pour une première évaluation :
Figure 4.9: Plots de régression des différents ensembles de données train , test et validation
Les performances des réseaux de neurones peuvent être améliorées quand on refait l’en-
trainement, les plots de régression suivants sont du même réseau de neurone après 3 refaits
ou on note l’augmentation du acteur R.
68
Figure 4.10: Amélioration de performance par entrainement répété 3 fois
Pour évaluer les résultats obtenus par valeur exacte, on trace un graphe qui représente la
comparaison des valeurs de sortie obtenues par le réseau de neurones ( Predicted ) en rouge,
avec les vraies valeur qu’on doit atteindre ( Target ) en bleu pour les 100 premières lignes
de la dataset pour une bonne visibilité vu sa taille importante.
Figure 4.11: Graphe de comparaison entre les données prédites et les données cibles
Les résultats présentés jusqu’ici étaient assez satisfaisants, donc on a utilisé le réseau
“network1” obtenu pour nous faire une prédiction sur le même flux de l’année d’après :
2017 à l’aide de la commande “sim” pour “simulation” suivant la syntaxe : predicted = sim
(network1,sample), où :
predicted : représente la variable qui contiendra la sortie ;
69
network1 : représente le réseau de neurones utilisé ;
sample : représente la nouvelle entrée.
Pour vérifier ses performances on avait gardé les valeurs réelles enregistrées, qu’on a comparé
de même manière avec les sorties du réseau pour ces nouvelles valeurs. Les résultats de
comparaison sont illustrés dans le graphe suivant :
Figure 4.12: Graphe de comparaison entre les données prédites et les données cibles des
nouvelles entrées
De la même façon, on pourra interroger le réseau pour nous prédire d’autres valeurs du
future en changeant juste la variable “Year”.
4.4 Conclusion
Dans ce chapitre nous avons illustré toute les étapes de notre système de prédiction du
trafic routier dont la procédure est de développement d’un réseau de neurone démontrée et
expliquée au 3eme chapitre, nous avons aussi illustré et commenté les résultats obtenus.
70
Quatrième partie
Conclusion Générale
71
Assurer en permanence la fluidité du trafic sur les routes n’est pas une mince affaire.
D’autant plus que les centres qui en ont la charge font aujourd’hui face à des évolutions de
grande ampleur et ne sont pas toujours bien équipés pour y répondre.
On se penche alors vers des systèmes plus concrets et spécifiques aux caractéristiques
variantes des routes : des systèmes intelligents et capteurs sont utilisés pour calculer les
temps de trajets, connaitre les conditions météorologiques, détecter et résoudre les incidents,
communiquer avec les conducteurs, etc. En regroupant toutes ces données sur un seul et
même système, intégrant des analyses avancées, les différents contrôleurs disposent d’une
vision plus globale de la situation sur les routes. En automatisant les tâches routinières et
en prévoyant les changements des flux on facilite le quotidien des centres de gestion du
trafic. Beaucoup de tâches manuelles et chronophages peuvent être automatisées grâce aux
technologies. Ainsi, les opérateurs disposent de plus de temps pour prendre du recul, analyser
des tendances et approfondir leur compréhension des routes.
Dans ce travail nous avons réussi à mettre en place un modèle d’apprentissage profond
permettant la prédiction d’un facteur de contrôle de trafic qui est les flux de trafic routier
en moyenne annuelle journalière sur plusieurs segments de route. Un système prêt à prédire
ces flux pour les prochaines années.
l’idéal est permettre aux opérateurs routiers, par exemple, détecter un ralentissement,
y relier facilement des informations météorologiques, visionner les vidéos associées pour en
définir la nature, évaluer l’impact sur les temps de trajets, et être ensuite guidés dans leurs
actions correctives ( la mise à jour des panneaux d’affichage dynamique avec des itinéraires
conseillés, envoyer une dépanneuse ou les services d’urgence,...etc), avec le tout basé sur
l’état du flux de trafic de la route en question ou même les routes adjacentes, mais tout en
passant par l’élément de base, le contrôle de flux.
Ainsi la gestion du trafic nécessite de mieux relier les systèmes, les capteurs, les données. . .
mais aussi les personnes. Une plateforme ouverte permet d’améliorer la collaboration entre
les centres de gestion, la police, les premiers secours, les services de maintenance et autres.
Par ailleurs, face aux changements, les systèmes doivent être en mesure d’évoluer rapidement
en évitant les modifications nécessitant d’intervenir sur le code et de déployer une mise à
jour par une méthode longue et couteuse. Le choix d’une plateforme intelligente fluide qui
apprends par elle même, rendra beaucoup plus facile l’intégration des dernières technologies
matérielles ou logicielles et voir même les grandes masses de données.
Les réponses à apporter peuvent donc être prédites et programmées à l’avance. Le suivi
de procédures prédéfinies laisse en effet peu de place aux oublis et à l’erreur humaine, ga-
rantissant ainsi que les actions essentielles sont réalisées à temps et dans le bon ordre. D’où
l’objectif principal de la gestion du trafic est atteint grâce aux améliorations apportées par
les technologies STIs assurant un retour à la normale plus rapide après un incident.
En entrant dans le domaine des STIs et en découvrant la force, utilité et la variété des
domaines d’applications des techniques d’apprentissage automatique, une curiosité ainsi que
des volontés de travailler plus dans les STIs s’imposent. Nos perspectives liées à ce travaille
peuvent être résumées en ce qui suit :
Pouvoir mettre les systèmes de transport intelligent en Algérie en valeur à fin d’ouvrir
les études et projets associés en concurrence pour développer ce secteur vu que c’est une
piste dont l’Algérie reste retardée malgré sa nécessité ( les statistiques effrayantes enregis-
trées chaque année dans les routes algériennes en terme de morts et dégâts d’accidents, les
embouteillages, l’état des route...etc ) .
Implémenter des systèmes de prédiction de trafic routier en temps réel pour être une
base d’autres systèmes de contrôle de trafic ainsi pour la détection d’incidents puis aller en
72
avant vers les systèmes de notification associés.
73
Bibliographie
74
[25] https ://www.mobilite-intelligente.com/champs-applications/gestion-des-
transports/gestion-trafic-routier
[26] https ://www.developpez.com/actu/213780/Sondage-quels-sont-les-meilleurs-langages-
de-programmation-pour-l-IA-Quels-sont-vos-criteres/
[27] https ://www.lemagit.fr/conseil/Machine-Learning-comment-choisir-le-bon-framework
[28] https ://enterpriseiotinsights.com/20170626/transportation/20170625transportationwhat-
smart-transportation-tag23-tag99
[29] https ://www.techopedia.com/definition/33426/learning-algorithm
[30] https ://www.mathworks.com/help
[31] www.granddictionnaire.com
[32] http ://www.psychomedia.qc.ca/lexique/definition/apprentissage-automatique
75