Vous êtes sur la page 1sur 70

 

   

REMERCIEMENTS 
 

Je  tiens  à  remercier  dans  un  premier  temps,  l’école  PARIS  YNOV  CAMPUS  dans  laquelle  j’ai  pu 
apprendre diverses technologies qui m’ont été d’une grande utilité lors de mes missions effectuées 
en entreprise. J’ai également pu effectuer des très belles rencontres dans cet établissement. Je tiens 
tout d’abord à remercier Mme Nathalie GIRAUD l’assistante pédagogique ainsi que Mme Marylène 
FRANCOIS la coordinatrice pédagogique.  

Je  remercie  dans  un  second  mon  tuteur  de  mémoire  Mr  BEJAOUI  Sayf.  Son  soutien,  sa  vision  des 
choses ainsi que ses compétences ont été très bénéfiques dans la rédaction de mon mémoire. Son 
expertise,  sa  méthodologie  et  son  apprentissage  m’ont  permis  d’être  plus  autonome  et  plus 
rigoureux dans mon travail. 

Entre autres, je remercie énormément M. DURRIEU Laurent directeur de TEEBIKE, qui m’a accordé le 
temps et le soutien nécessaire. Je le remercie également pour son accueil, le temps passé ensemble 
et le partage de son expertise au quotidien. Grâce à sa confiance j'ai pu effectuer des missions qui 
ont été gratifiantes dans mon expérience professionnelle. Il me fut d'une aide précieuse dans ma vie 
en entreprise et je ne le remercierai jamais assez pour cela.   

Je remercie aussi tout le corps enseignant de YNOV qui en dépit de la situation sanitaire instable de 
ces  deux  dernières  années,  ont  fait  leur  maximum  afin  de  nous  inculquer  les  bonnes  valeurs  du 
travail ainsi que des cours de qualité. 

Et  pour  finir  je  remercie  ma  famille  et  mes  amis  qui  m’ont  accompagné  depuis  le  début  et  m’ont 
conseillé et soutenu de près ou de loin lors de la rédaction de ce mémoire et de la compréhension de 
mon sujet.  

   

 

     

TABLE DES MATIERES 
 

1.  INTRODUCTION ............................................................................................................................... 1 
1.1  Reconnaissance d'objets pour l'automatisation des entrepôts .............................................. 1 
1.2  Automatisation du processus de préparation de commandes ............................................... 2 
1.3  Structure de la thèse ............................................................................................................... 5 
2.  REVUE DE LITTERATURE .................................................................................................................. 6 
2.1  Positionnement de notre problème ........................................................................................ 6 
2.1.1  Les entrepôts ................................................................................................................... 6 
2.1.2  Le degré d’automatisation .............................................................................................. 8 
2.1.3  L’affectation de produits aux emplacements ................................................................ 10 
2.1.4  Le regroupement de commandes en lots complets (Batching) et séquencement des 
commandes ................................................................................................................................... 13 
2.1.5  Les codes‐barres ............................................................................................................ 17 
2.2  Résumé de la revue de littérature et intérêt de notre travail ............................................... 19 
3.  MACHINE LEARNING ..................................................................................................................... 20 
3.1  Définition de Machine Learning ............................................................................................ 20 
3.1.1  Comment fonctionne le Machine Learning ? ................................................................ 20 
3.1.2  Quels sont les principaux algorithmes de Machine Learning ? ..................................... 22 
3.1.3  Classification des algorithmes de Machine Learning .................................................... 23 
3.1.4  Cas d'usage et applications ........................................................................................... 24 
3.1.5  Machine Learning et analyse de données ..................................................................... 25 
3.1.6  Résoudre les tâches de Machine Learning .................................................................... 25 
3.2  Sélection de l'algorithme d'apprentissage supervisé optimal............................................... 26 
3.2.1  Description et traitement des ensembles de données ................................................. 27 
3.3  Raisons d'étendre le Machine Learning ................................................................................ 28 
3.3.1  No Free Lunch Theorems of Optimization .................................................................... 29 
4.  REVUE DES ALGORITHMES DE MACHINE LEARNING .................................................................... 30 
4.1  Implémentation à grande échelle de Machine Learning ...................................................... 30 
4.2  Arbres de décision ................................................................................................................. 31 
4.2.1  Avantages et défis ......................................................................................................... 33 
4.2.2  Analyse d'évolutivité ..................................................................................................... 34 
4.3  Réseaux de neurones artificiels ............................................................................................. 34 
4.3.1  Avantages et défis ......................................................................................................... 35 
4.3.2  Analyse d'évolutivité ..................................................................................................... 36 

 

     

4.4  Machines à vecteurs de support ........................................................................................... 36 
4.4.1  Avantages et défis ......................................................................................................... 38 
4.4.2  Analyse d'évolutivité ..................................................................................................... 38 
4.5  k‐Nearest‐Neighbor ............................................................................................................... 38 
4.5.1  Avantages et défis ......................................................................................................... 40 
4.5.2  Analyse d'évolutivité ..................................................................................................... 40 
4.6  Discussion et conclusion ........................................................................................................ 41 
5.  CADRE D’IDENTIFICATION D’OBJETS ............................................................................................. 43 
5.1  Directives de placement des codes‐barres ........................................................................... 43 
5.2  Cadre de localisation de codes‐barres .................................................................................. 45 
5.3  Définition des paramètres du cadre ...................................................................................... 46 
5.3.1  Catégories de produits .................................................................................................. 46 
5.3.2  Données d'entrée .......................................................................................................... 47 
5.3.3  Définition de classe ....................................................................................................... 48 
5.3.4  Vecteur de sortie ........................................................................................................... 48 
6.  IMPLEMENTATION DU DEEP LEARNING ........................................................................................ 50 
6.1  Théorie des réseaux de neurones convolutifs ...................................................................... 50 
6.2  Construire un CNN dans Matlab ............................................................................................ 52 
6.3  Phase d'entraînement de CNN .............................................................................................. 53 
6.3.1  Collecte et étiquetage des données .............................................................................. 54 
6.3.2  Former le CNN ............................................................................................................... 55 
7.  CONCLUSION ................................................................................................................................. 60 
 

 
 

 

     

1. INTRODUCTION 
 
Les  dernières  décades  ont  été  le  théâtre  de  tensions  économiques  sans  précédent  pour  les 
entreprises, mais ont aussi permis d’importantes avancées technologiques. Dans cet environnement 
évolutif, les entreprises ont dû adapter leur Supply Chain afin d’assurer leur place dans un contexte 
fortement  concurrentiel.  Cette  évolution  a  particulièrement  été  ressentie  dans  les  entrepôts  de 
distribution,  levier  important  de  performance  pour  les  entreprises,  de  toutes  tailles  et  secteurs.  La 
gestion de ces différents entrepôts induit des enjeux de productivité et de traçabilité, conditionnant 
la satisfaction du client final. De ce fait, cette gestion doit être tout aussi orientée niveau de service, 
profit  ainsi  que  pilotée  de  manière  efficiente.  Le  niveau  de  service  est  la  priorité  principale  des 
entrepôts et la préparation de commandes étant l’interface entrepôt client, cette dernière doit être 
privilégiée.  L’orientation  profit  se  fait  par  une  poursuite  de  productivité  dans  toutes  les  activités 
présentes au sein de l’entrepôt et enfin le pilotage efficient se fait grâce au contrôle des différents 
indicateurs jugés adéquats. Le Warehouse Management System (WMS) est un des leviers essentiels 
qui permet l’aboutissement de cette gestion effectuée de manière efficiente et automatisée dans le 
cadre  des  activités  d’entreposage.  Cette  catégorie  de  logiciel  sert  à  gérer  les  opérations  d’un 
entrepôt  dans  le  but  de  les  optimiser.  L’usage  du  WMS  est  d’autant  plus  nécessaire  quand  les 
entreprises choisissent de passer le cap de l’automatisation. 
 

1.1 Reconnaissance d'objets pour l'automatisation des entrepôts 

La hausse du foncier dans l’Europe fut une des causes de nombreux changements dans la façon de 
stocker les produits. A l’heure actuelle, au sein d’un entrepôt moderne, le produit est de plus en plus 
souvent stocké dans des machines automatisées. Ainsi l’opérateur ne se déplace plus dans les allées 
comme c’est le cas lorsque l’entrepôt est composé d’allées de racks, mais le produit est désormais 
amené jusqu’à lui. Ces machines automatisées sont appelées des stockeurs automatisés de par leur 
vocation à stocker les produits. L’automatisation des zones de stockage dans les entrepôts, mis à part 
un gain de place non négligeable, permet un accroissement de la productivité ainsi que sécuriser les 
produits stockés à l’intérieur.  

Ce  gain  en  productivité  se  calcule  en  observant  le  nombre  de  commandes  collectées  par  unité  de 
temps. Introduction 2 Dans un contexte où les entreprises recherchent une productivité accrue, due 
aux  tensions  économiques,  et  se  tournent  vers  de  nouvelles  technologies,  l’optimisation  de  la 
préparation  de  commandes  devient  cruciale  dans  les  entrepôts  de  distribution.  La  préparation  de 

 

     

commandes  consiste  à  prélever  et  rassembler  les  articles  dans  la  quantité  spécifiée  par  la 
commande. La préparation de commande (ou order picking) est l’activité représentant la plus grande 
charge de travail ainsi que la plus grande part des coûts opérationnels pour un entrepôt (Tompkins et 
al, 2010) [1]. De plus, elle est l’activité absorbant le plus de main d’œuvre au sein d’un entrepôt ainsi 
que celle consommant le plus de ressource financière.  

En effet Tompkins et al. (2010) [1], Drury (1988) [2] et Henn (2013) [3] quantifient entre 55% à 60% 
des  coûts  opérationnels  le  seul  coût  lié  à  la  préparation  de  commandes  dans  un  entrepôt  manuel 
tandis que De Koster et al (2007) évoquent aussi le fait que dans le cas des entrepôts automatisés, le 
coût de cette activité est important. Préparer le plus efficacement les commandes permet d’assurer 
un  taux  de  service  plus  élevé,  ainsi  qu’une  augmentation  du  nombre  de  commandes  pouvant  être 
préparées  par  jour.  Le  traitement  de  commandes  dans  les  entreprises  a  déjà  subi  d’énormes 
changements. Là ou auparavant les commandes étaient collectées une à une, actuellement certaines 
entreprises choisissent de collecter plusieurs commandes simultanément. La pratique s’est répandue 
par l’utilisation de stockeurs automatisés et de convoyeurs. Plusieurs commandes sont disposées sur 
une table de préparation et la collecte de l’ensemble de ces commandes est faite sur un ou plusieurs 
stockeurs automatisés. Les bacs qui doivent contenir les commandes sont mis à disposition en face 
du stockeur automatisé.  

Dans un entrepôt manuel (avec présence de rack) on se rend compte que si deux commandes sont 
composées des mêmes produits, il est bénéfique de les collecter ensemble si cela est possible. Il en 
est  de  même  dans  les  entrepôts  automatisés  comme  nous  en  discutons  dans  ce  document.  Une 
commande est composée de lignes de commandes, chacune d’entre elles correspond à une quantité 
donnée d’une référence donnée. Récolter efficacement un portefeuille de commandes vise à récolter 
l’ensemble  des  lignes  de  commandes  dans  un  temps  minimal.  Ces  fonctionnalités  sont  cependant 
insuffisantes  pour  l'identification  d'objets  étrangers. Cette  limitation  de  la  technologie  nécessite  la 
présence d'un ouvrier qui assure l'identification des corps étrangers dans un processus d'exécution 
de commande. Pour réaliser une automatisation complète, le système de traitement des commandes 
devrait  être  capable  de  reconnaître  de  manière  autonome  l'objet  qui  est  manipulé,  de  sorte  que 
l'objet peut être transporté vers sa destination correspondante. 
 

1.2 Automatisation du processus de préparation de commandes  

La forte variabilité actuelle de la demande et de la commercialisation des produits ne permet pas une 
stratégie  de  zonage  ABC  traditionnelle1  dans  certains  entrepôts  et  limite  ainsi  les  possibilités 
d'automatisation  complète.  Au  lieu  de  cela,  le  prélèvement  est  effectué  manuellement  à  partir  de 

 

     

systèmes  de  rayonnage  contenant  des  articles  placés  de  manière  aléatoire.  Les  commandes  qui 
contiennent  plus  d'un  article  subissent  un  processus  de  prélèvement  en  deux  phases.  Dans  la 
première phase, un opérateur manuel prélève les produits sur les étagères de l'entrepôt, numérise 
puis place les produits dans un bac désigné.  Une fois qu'un bac  est plein, il est trié via des bandes 
transporteuses vers une station de recyclage. 
La  deuxième  phase  a  lieu  à  la  station  de  recyclage,  où  les  articles  individuels  sont  scannés 
manuellement par l'associé de recyclage, déclenchant une lumière sur la paroi de recyclage indiquant 
la  destination  de  la  goulotte  pour  l'article.  La  poubelle  associée  place  l'article  dans  la  goulotte 
désignée.  Une  fois  que  la  goulotte  contient  tous  les  articles  pour  une  commande  particulière,  le 
voyant clignote et toute la commande est poussée vers le côté emballage de la goulotte. Un aperçu 
schématique de ce processus est donné ci‐dessous dans la figure 1‐1. 
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
Figure 1‐1 : Schéma du processus de préparation des commandes. Dans la phase 1, les articles 
 
sont prélevés sur les étagères, placés dans un bac et transportés vers une station de tri de 
  recyclage. Dans la phase deux, un travailleur manuel scanne chaque article d'un bac et le place 
  dans sa destination de commande de réponse. 
 
Bien  que  ces  entrepôts  disposent  d'une  variété  d'algorithmes  de  vision  industrielle  pour  leurs 
solutions robotiques de prélèvement de bacs, il n'existe pas encore de solutions robustes disponibles 
pour la reconnaissance des objets dans un bac.  
La  faiblesse  des  algorithmes  de  reconnaissance  d'objets  existants  réside  dans  l'absence  de 
connaissances sur la multitude de phénomènes visuels qui se produisent dans le monde réel, tels que 
l'occlusion, le bruit de fond et l'éclairage. Contrairement aux humains, les algorithmes de vision par 
ordinateur n'ont pas la capacité de traiter ces phénomènes visuels sans être conçus pour les traiter à 

 

     

l'avance.  Afin  d'atteindre  une  automatisation  complète  du  cycle  d'exécution  des  commandes,  la 
phase 2 doit être automatisée, en remplaçant l'opérateur de tri manuel par une solution robotique 
robuste.  Ce  système  robotique  devrait  être  capable  de  reconnaître  les  objets  qui  sont  manipulés 
pendant le cycle d'exécution des commandes. 
Concevoir  un  système  robotique  capable  de  reconnaître  et  de  manipuler  des  objets  étrangers  est 
difficile en raison de la multitude de phénomènes visuels qui se produisent dans le monde réel, tels 
que l'occlusion d'objets ou les effets d'éclairage.  
Faire la distinction entre deux objets dont la forme et la couleur sont presque identiques, mais qui 
sont des éléments complètement différents, est l'un des problèmes les plus difficiles à résoudre avec 
la  technologie  actuelle  de  vision  par  ordinateur.  Un  exemple  de  cette  situation  est  donné  dans  les 
figures  1‐2  et  1‐3,  où  deux  produits  d'apparence  presque  identique  ont  encore  des  contenus 
différents. 
 
 
 
 
 
 
 
 
  Figure 1‐3 : Paprika en poudre version « douce ». 
  Presque identique à la version « fumée », avec une 
Figure 1‐2 : Poudre de paprika  légère différence de texture qui est très difficile à 
 
version « fumée ».  distinguer avec la technologie de vision par 
 
ordinateur existante. 
 
Afin  de  concevoir  un  système  de  traitement  des  commandes  robuste,  bon  nombre  de  ces  cas 
difficiles ou inhabituels doivent être correctement identifiés. Pour ce faire, des propriétés uniques à 
chaque élément doivent être trouvées et utilisées pour classer chaque élément correctement. Dans 
certains des cas les plus difficiles où presqu’aucune différence visuelle ne peut être trouvée, il reste 
toujours une propriété unique qui peut être utilisée pour une classification correcte : le code‐barres. 
Chaque article traité dans les entrepôts contient un code‐barres qui, à un moment donné, est scanné 
par  un  travailleur  manuel  pour  identifier  sa  destination  pendant  le  processus  de  remise  en  place. 
L'accent mis sur le nouveau cadre de reconnaissance d'objets se concentrera sur l'utilisation du code‐
barres comme propriété unique pour identifier correctement les objets. Si le code‐barres de chaque 
objet  peut  être  localisé  et  reconnu  de  manière  robuste,  chaque  objet  peut  être  identifié  et 
correctement manipulé.  

 

     

Bien  qu'il  existe  des  directives  standard  de  placement  des  codes  à  barres,  tous  les  articles  ne  sont 
certainement  pas  conformes  à  ces  réglementations.  Il  est  très  intéressant  de  rechercher  s'il  existe 
une relation utilisable entre les caractéristiques de l'objet et l'emplacement du code‐barres. Si cette 
relation existe, elle peut être utilisée pour prélever et numériser des articles de manière très efficace 
dans un entrepôt, éliminant ainsi le besoin de travailleurs humains pour l'identification manuelle des 
objets. L'objectif principal de cette thèse est donc défini comme suit : 
 
« Existe‐t‐il une relation utile entre les caractéristiques des objets, telles que la taille ou la forme, 
et  l'emplacement  du  code‐barres,  qui  peut  être  utilisée  pour  reconnaître  et  gérer  les  objets 
étrangers dans le cycle d'exécution des commandes. » 
 
Une  approche  de  Machine  Learning  est  adoptée  pour  atteindre  cet  objectif,  en  proposant  un 
nouveau cadre de reconnaissance d'objets qui devrait déterminer de manière robuste le modèle de 
placement du code‐barres. 
 

1.3 Structure de la thèse 

Dans  la  suite  de  ce  mémoire  structuré  en  cinq  chapitres,  nous  allons  tout  d’abord  expliquer  la 
procédure de préparation de commande dans les entrepôts qui constitue le cadre de notre étude. 

Ensuite, nous allons définir le Machine Learning et fournir une explication théorique de ce dernier. 

Puis,  nous  passerons  en  revue  quatre  des  théories  de  Machine  Learning  les  plus  populaires :  les 
arbres  de  décision,  les  réseaux  de  neurones  artificiels,  les  machine  à  vecteurs  de  support  et  la 
classification K‐Nearest‐Neighbor. 

Nous fournirons également une explication détaillée du cadre de reconnaissance d’objets proposé. 

Nous verrons par la suite la mise en œuvre des cadres de reconnaissance d’objets et des résultats de 
la phase de mise en œuvre. 

Enfin, nous présenterons la conclusion du projet et discuterons des recommandations pour d’autres 
améliorations. 

   

 

     

2. REVUE DE LITTERATURE 
 

Ce chapitre a pour objectif de faire une revue de littérature concernant l’activité de préparation de 
commandes en entrepôt. Nous présenterons l’environnement global dans lequel se positionne notre 
étude. En seconde partie, nous verrons la complexité de l’activité de préparation de commandes et 
les dimensions impactant cette activité. Nous nous concentrerons sur la dimension de regroupement 
de  commandes  en  lot  et  de  séquencement  des  commandes,  décisions  primordiales  lors  d’une 
préparation de commandes, et dimensions au cœur de la présente thèse. Ensuite nous détaillerons la 
littérature décrivant la préparation de commandes utilisant des stockeurs automatisés et conclurons 
ce chapitre par un résumé de la littérature ainsi que les motivations nous ayant amené à traiter ce 
sujet, montrant l’intérêt de notre travail.  

2.1 Positionnement de notre problème  
 
2.1.1 Les entrepôts  

Selon Lambert et al. (1998a) plus de 750 000 entrepôts étaient apparents dans le monde à la fin des 
années 1990. Ceux‐ci deviennent de plus en plus présents, facilitant un rapprochement des clients à 
servir  mais  sont  aussi  de  plus  en  plus  avancés  de  manière  technologique  avec  l’avènement  de 
nouveaux  systèmes  de  stockage.  En  dehors  du  fait  que  ces  entrepôts  demandent  de  larges 
investissements  entrainant  des  couts  élevés  opérationnels  (coût  du  terrain,  des  équipements  ainsi 
qu’une  grande  masse  salariale),  un  grand  nombre  d’intérêts  démontre  l’utilisation  des  entrepôts 
pour les archivages des références. Nous listerons quelques‐uns de ses intérêts ci‐dessous (Lambert, 
Stock, & Ellram, 1998) [4] :  

‐ Surpasser les différences spatio‐temporelles entre client et fournisseur. 

‐ Stabiliser un canal d’avitaillement.  

‐ Réaliser des économies  durant la logistique de marchandises  en fusionnant  les transports 


pour embourrer les chargements sortants. 

‐ Renforcer le fait que la politique de service client de l’entreprise est considérée. 

‐  Consolider  la  logistique  des  retours  en  servant  de  zone  de  stockage  temporaire  avant 
renforcement pour les centres de recyclage. 

 

     

Les stockages sont rapidement devenus un investissement pour les entreprises car le coût joint à la 
gestion d’entrepôt au sein de la supply chain n’est pas à négliger. Selon ELA/AT Kearney (2004), 20% 
des  coût  logistiques  s’appliquent  aux  activités  liées  à  la  gestion  de  stockage.  Afin  d’assurer  les 
intérêts décrits plus haut, les entrepôts sont habituellement répartis en plusieurs zones connectées 
par des flux. La figure 1 montre ces interactions en expliquant les principales zones présentes dans 
un stockage et activités associés :  

Figure  2‐1 :  Présentation  d’un  entrepôt  type  avec  ses  flux  associés  (tiré  de 
http://www.cosmosconsultants.eu/h‐log‐partenaire)  

Nous allons préciser les différentes activités liées à la gestion d’entrepôt ainsi que les zones précises 
décrites sur l’image ci‐dessus. Les produits découlant de fournisseurs arrivent en zone de réception. 
L’activité  de  réception  favorise  le  déchargement  des  produits  des  camions.  A  cela  se  complète  le 
contrôle des marchandises pour trouver de possibles dégâts ou pour communiquer que les produits 
ne concordent pas avec ceux présents sur le bon de réception. Une zone de contrôle qualité facilite 
une  meilleure  vision  de  la  conformité  des  produits  et  les  possibles  dégâts  ou  dommages  liés  au 
transport. 

 

     

Le  déplacement  de  ces  produits  en  zones  de  stockage  implique  de  nombreuses  activités  dont  les 
activités  de  déconditionnement  (les  produits  en  palette  pourront  ainsi  être  déconditionnés  puis 
classifiés dans des cartons ou autres formes de conditionnement si besoin). De nombreuses zones de 
stockage peuvent subsister, communément celles dont les mises en condition les plus volumineuses 
approvisionnent  celles  ayant  les  mises  en  condition  les  moins  volumineuses  (comme  la  zone  qui 
contient  les  produits  stockés  dans  des  palettes  alimentera  la  zone  de  stockage  des  produits 
conditionnés dans des cartons etc…). Ces zones de stockage servent d’entreposer les références qui 
seront ensuite recueillies en fonction des commandes clients.  

La zone de préparation de commandes montrée précédemment est celle où les commandes seront 
recueillies  en  fonction  des  quantités  précisées  par  les  commandes  clients.  Ces  zones  peuvent  être 
manuelles ou automatisés suivant le degré d’automatisation du stockage (cf. section 2.1.2 Le degré 
d’automatisation).  Ces  commandes  sont  par  la  suite  conglomérées  si  elles  découlent  de  plusieurs 
zones de stockage avant l’envoi chez le client.  

Une  vérification  de  la  totalité  de  la  commande  avant  l’envoi  est  faite  dans  le  but  de  s’assurer  de 
concordance avec le bon de livraison et le bon de commande. La zone d’envoi favorise le chargement 
les camions en fonction du bon d’envoi. Un écoulement direct entre la réception et l’envoi, nommé 
cross‐docking, facilite la transition rapide les produits sans les faire passer par une zone de stockage.  

Notre  travail  se  condense  sur  l’activité  de  préparation  de  commandes  facilitant,  en  fonction  des 
commandes clients, de recueillir à partir du stock les produits requis dans les quantités précisées par 
la commande.  
 

2.1.2 Le degré d’automatisation  

Le degré d’automatisation est une variable impactant grandement les performances des entrepôts et 
leurs  systèmes  de  préparation  de  commandes  (Gu  et  al.,  2010)  [5].  De  Koster  et  al.  (2007)  [6] 
classifient les systèmes de préparation de commandes de la façon suivante : 

 

     

Figure
  2-2 : Classification des systèmes de préparation de commandes (repris de De Koster, 2004) 

 
Cette  classification  distingue  tout  d’abord  les  systèmes  de  préparations  selon  la  présence  ou  non 
d’une  personne  pour  effectuer  la  préparation  de  commandes.  Le  cas  le  moins  fréquent  est  le 
système  n’employant  pas  de  préparateur,  où  la  préparation  de  commandes  est  entièrement 
automatisée. Dans ce cas d’automatisation totale du système de préparation de commandes, deux 
cas  se  présentent,  soit  l’utilisation  de  robots,  où  des  bras  articulés  prennent  les  produits  du  stock 
pour les placer directement dans les cartons/ palettes qui seront placées en zone d’expédition, soit 
par  l’utilisation  de  machines  automatisées  de  préparation  de  commandes.  Dans  ce  second  cas,  un 
système  utilisant  une  machine  de  préparation  de  commandes  doublé  de  systèmes  de  convoyeurs 
sont  utilisés.  La  machines  place  les  produits  sur  le  convoyeur  qui  les  conduit  jusqu’en  zone 
d’expédition.  Notons  que  ces  systèmes  restent  encore  très  peu  utilisés  dans  la  majorité  des 
entrepôts  car  demandent  un  investissement  initial  colossal,  et  donc  un  nombre  de  commandes  à 
effectuer extrêmement grand pour rendre rentable le système automatisé. 
 
Le  second  type  de  système  de  préparation  de  commandes  est  celui  où  il  y  a  présence  de 
préparateurs de commandes. Dans un tel cas, la façon dont le préparateur de commandes se déplace 
par rapport aux références à collecter permet de caractériser le système utilisé. 
 
 Soit le préparateur de commandes se déplace jusqu’aux produits, ce système est nommé 
«  Picker  to  Part  ».  Dans  ce  cas,  l’opérateur  chargé  de  la  préparation  de  commandes  se 
déplace  dans  les  allées  pour  chercher  les  références  à  collecter.  Il  peut  être  à  pied  ou 
véhiculé. 
 Soit  ce  sont  les  produits  qui  sont  apportés  au  préparateur  de  commandes,  ce  système  est 
nommé  «  Part  to  Picker  ».  Ce  cas  nécessite  l’utilisation  de  stockeurs  automatisés,  appelés 

 

     

Automated  Storage  and  Retrieval  Systems  (AS/RS)  pouvant  être,  par  exemple,  de  type 
Vertical Lift Module (VLM) ou Carousel. Nous nous attarderons sur ces systèmes automatisés 
de préparation dans la Section 1.3. 
 Nous  pouvons  noter  qu’il  existe  aussi  des  systèmes  mêlant  le  fait  que  les  produits  sont 
collectés de façon « Picker to Part » et/ou de façon « Part to Picker ». Ce système est appelé 
« Put system ». Ce dernier système décrit par De Koster (2007) [6] est le moins présent en 
littérature ainsi qu’en pratique. 
 

2.1.3 L’affectation de produits aux emplacements 

L’affectation  des  produits  à  un  emplacement  de  stockage  est  l’activité  permettant,  dans  l’idéal, 
d’assigner un produit au « meilleur emplacement ». Un « meilleur emplacement » fournit un accès 
plus  rapide  et  plus  ergonomique  aux  produits  stockés  (Shouman  et  al.  2005)  [7].  Il  faut  choisir  un 
meilleur emplacement de par les coûts engendrés par l’activité de stockage que l’entreprise cherche 
à rentabiliser. Ainsi optimiser la place disponible est crucial et donc un choix des emplacements pour 
les produits est nécessaire. 
D’après  Chan  et  Chan  (2011)  [8],  il  y  a  plusieurs  facteurs  affectant  la  politique  d’affectation  d’un 
emplacement  à  un  produit  :  le  plan  de  cueillette,  l’équipement  utilisé  ainsi  que  le  zonage  de 
l’entrepôt. A cela s’ajoute les caractéristiques intrinsèques aux produits : ses dimensions physiques 
et conditions de stockage. 
Il y a deux principales stratégies d’affectation des produits aux stocks (Bartholdi and Hackman, 
2011) [9], le stockage à emplacements partagés et le stockage à emplacement dédiés. 
Le Stockage à emplacements partagés implique de ne pas affecter d’emplacement fixe à un produit. 
Ainsi  lorsqu’un  emplacement  devient  vide,  il  est  disponible  pour  tout  type  de  produit.  Ceci  évite 
d’attendre que le produit soit réapprovisionné afin de remplir l’espace (voir Stockage à emplacement 
Dédié, paragraphe ci‐après). Le principal désavantage de  l’utilisation d’une telle pratique est le fait 
que  les  préparateurs  de  commandes  ne  peuvent  se  familiariser  aux  emplacements  de  stockage, 
impliquant  donc  un  temps  de  recherche  des  références  plus  important.  La  littérature  discerne 
généralement deux types de stockages partagés : 
 Le  stockage  dit  «  aléatoire  »  qui  implique  que  chaque  nouveau  produit  est  assigné  avec 
probabilité  égale  à  n’importe  quel  emplacement.  De  ce  stockage  résulte  une  grande 
utilisation de l’espace au prix d’une augmentation de la distance parcourue (Choe and Sharp, 
1991). 
 Une  extension  à  ce  modèle  est  le  stockage  dans  «  l’emplacement  le  plus  proche  »,  qui, 
comme  son  nom  l’indique,  choisit  pour  stocker  un  produit  l’emplacement  le  plus  proche 

 
10 
     

disponible,  si  deux  emplacements  ont  la  même  proximité,  le  choix  se  fera  aléatoirement 
entre les deux emplacements désignés. 
Le Stockage à emplacement Dédié alloue un emplacement prédéfini aux produits. L’avantage est de 
savoir où le produit est stocké  et  donc familiarise le préparateur de commandes avec les  produits. 
Ainsi le temps de recherche du produit devient plus faible. Cependant la place n’est pas utilisée de 
manière optimale de par le fait que si un article subit une rupture, l’emplacement restera vide. Plus 
généralement,  lorsque  l’emplacement  défini  à  un  article  se  vide  par  collectes  successives,  il  ne 
pourra  être  rempli  que  lorsque  le  même  produit  sera  commandé  et  livré,  ceci  créant  une  non 
utilisation de l’espace entre la dernière collecte d’un produit et sa prochaine mise en stock. 
 Parmi les plus utilisés et cités dans la littérature, le stockage basé sur le COI (Cube per Order 
Index)  :  ce  mode  de  stockage  a  été  établi  par  Heskett  en  1963  et  consiste  à  ranger  les 
é
produits en fonction d’un indice, le COI, qui est défini par : COIi =    

.  Les produits ayant l’indice COI le plus faible sont rangés le plus proche de la zone de sortie. 
Plus  d’information  concernant  l’application  et  les  avantages  du  COI  sont  disponibles  dans 
Kallina et Lynn (1976) [10], Malmborg et Bhaskaran (1987, 1989 et 1990) [11]. 
 D’autres politiques de stockage sont proposées par la littérature, par exemple celle plaçant 
les  produits  ayant  des  interactions  fortes  à  côté,  ce  que  fait  la  «  Order  oriented  slotting 
methods » proposée par Mantel et al. en 2007. Les produits étant communément collectés 
ensemble seront positionnés côte à côte. 
 Une autre politique incontournable de stockage est celle basée sur la classe. D’après Zhao et 
al. (2012) cette politique implique de ranger les produits par une caractéristique commune. 
Cette  méthode  mêle  les  deux  types  d’affectation  aux  stocks  :  des  classes  sont  créées 
dépendant d’un ou plusieurs attributs (turnover, demande annuelle, dimension du produit, 
etc..). Les produits possédant les mêmes attributs seront rangés proches les uns des autres. 
Un rangement aléatoire  est par la suite  effectué sur ses « sous zones » créées en fonction 
d’un  attribut  commun.  Une  manière  classique  de  pouvoir  les  placer  est  la  méthode  de 
Pareto. Cette méthode, généralement appelée méthode ABC dans les entrepôts, définit ainsi 
3  zones  qui  peuvent  être  inter  ou  intra  allées  comme  défini  par  la  figure  ci‐dessous  (De 
Koster et al., 2007) [6]  : 
 

 
11 
     

 
  Figure 2-3 : Méthode ABC inter et Intra allée De Koster et al, (2007) 
 
Le nombre de classes et leurs dimensionnements ont longtemps été débattus dans la littérature : par 
exemple  une  seule  classe  par  allée  pour  Jarvis  and  Mcdowell  (1991)  [12],  donnant  lieu  à  une 
réduction de la distance parcourue de 10 à 20 % indépendamment du parcours de cueillette et un 
maximum  de  4  classes  pour  Petersen  et  al.  (2004).  Ce  dernier  article  préconise  un  maximum  du 
nombre de classes de 2 à 4 en fonction des caractéristiques de l’entrepôt ainsi que des différences 
entre les produits. Le‐Duc et De Koster (2005a) [13] et Le Duc (2005) [14] traitent de l’optimisation 
du  nombre  de  zones  pour  un  plan  de  cueillette  particulier  ainsi  que  de  l’estimation  de  la  distance 
parcourue pour collecter une série de commandes en utilisant la méthode des classes ABC. Enfin le 
nombre  maximum  de  classes  de  produits  dans  le  cas  de  stockeurs  automatisés  est  6  d’après  les 
études de Yang (1988) et Van den Berg et Gademan (2000) [15]. 
Le  défaut  des  politiques  de  stockage  basées  sur  les  classes  ou  la  politique  de  stockage  COI  est 
l’encombrement généré par les opérateurs devant les zones à fortes affluences (Le‐Duc, 2005) [14]. 
Ces politiques de stockage créent des embouteillages car certaines parties de la zone de picking sont 
beaucoup plus demandées par l’ensemble des préparateurs que d’autres zones. 
D’autres  politiques  d’affectation  d’emplacement  ont  été  créées  par  des  études  spécifiques  et  ne 
peuvent pas être répertoriées dans les catégories énoncées ci‐dessus. Nous citons par exemple 
Marvel  et  al  (2001)  qui  développent  une  heuristique  qui  intègre  d’une  part  l’expertise  humaine 
d’entrepôt dans le secteur alimentaire et d’autre part un système d’optimisation afin de sélectionner 
les  zones  d’entrepôt  adéquates.  Examiner  et  quantifier  les  décisions  actuelles  qui  déterminent 
l’affectation d’un produit à un stock donné sont à la base de la création de l’heuristique. 
Les objectifs utilisés sont divers pour le choix d’affectation aux emplacements, le choix se porte sur 
minimiser la distance parcourue par les préparateurs dans l’essentiel des cas (COI, stockage basé sur 
la  classe)  ou  alors  l’espace  utilisé  (stockage  partagé).  L’aspect  financier  est  parfois  préféré  par 
exemple dans Malmborg et al (1986) [11]  où la minimisation du coût de stock et du coût de picking, 

 
12 
     

suivant la politique de gestion des stocks, est faite. Nous voyons donc que le choix d’une politique de 
stockage peut avoir de grands effets sur la préparation de commandes. 

2.1.4 Le  regroupement  de  commandes  en  lots  complets  (Batching)  et  séquencement  des 
commandes 

Le problème de regroupement des commandes en lots complets ou encore Order Batching Problem 
(OBP),  consiste  à  déterminer  quelles  commandes  seront  collectées  ensemble  par  l’opérateur.  Le 
séquencement  des  commandes  ou  bien  l’ordonnancement  des  commandes  ou  encore  «  order 
sequencing » consiste à choisir dans quel ordre les commandes seront mises en préparation dans le 
système de préparation de commandes. 
Ces deux activités se révèlent cruciales dans un but d’optimisation des performances de l’activité de 
préparation de commandes (Pazour and Meller, 2013) [16]. Le regroupement de commandes en lots 
ainsi que le séquencement des commandes au sein d’une zone de picking sont des sujets apparus dès 
les  années  80  dans  la  littérature  scientifique  (Armstrong  et  al,  1979  ;  Bartholdi  &  Platzman,  1986) 
[17]. 
Le  regroupement  de  commandes  en  lots  est  un  sujet  très  longuement  abordé  dans  la  littérature 
considérant un système Picker to part. Nous notons aussi que le séquencement des commandes est 
beaucoup moins traité que le regroupement de commandes en lots au sein de la littérature. 
De plus, pour les papiers étudiant le séquencement, nous observons que ce sujet est plus traité avec 
les systèmes automatisés (systèmes de type « Part to Picker »). 

Il est souvent plus efficace de pouvoir affecter plusieurs commandes à la fois à un préparateur. Ce 
regroupement peut se faire si les commandes sont suffisamment petites ou si le préparateur détient 
une capacité de cargaison suffisante, ou alors si le système de préparation est automatisé grâce à un 
système de convoyeur. Cette dimension est définie dans la littérature comme « comment combiner 
différentes commandes clients au sein d’une même tournée » (Roodbergen et Vis, 2009) [18]. De plus, 
le regroupement de commandes en lots est considéré comme la dimension pouvant amener les plus 
grands gains, et en particulier lorsque les commandes sont constituées de peu de produits (Petersen 
et Aase, 2004) [19]. 

Le  problème  de  regroupement  de  commandes  est  défini  comme  étant  un  problème  NP‐Difficile 
comme le prouvent Gademann et al. (2001) dans le cas Picker to part, et Gademann &Van de Velde 
(2005) [20] prouvent qu’avec l’objectif de minimisation du temps de trajet total pour collecter une 
séquence de commandes données, l’OBP est toujours un problème NP‐difficile lorsque le nombre de 

 
13 
     

commandes  par  lots  est  plus  grand  que  2.  Ainsi  les  algorithmes  pour  la  résolution  exacte  de  ces 
problèmes ont un temps d'exécution exponentiel en la taille des données d'entrée. 

Il  y  a  deux  types  de  regroupement  de  commandes  en  lots  complets  dans  la  littérature  :  le 
regroupement  statique  et  le  regroupement  dynamique.  Le  regroupement  de  commandes  en  lots 
complets dit « statique » implique une connaissance de toutes les commandes lors du début d’une 
période (Henn, 2013) [3]. Connaissant cela, un regroupement est effectué pour chacune des périodes 
considérées  (tous  les  jours,  demi‐journées,  etc…).  Cette  méthode  est  prépondérante  dans  la 
littérature car le système dynamique est récent avec, notamment, l’arrivée du e‐commerce. Donc la 
majorité des articles traitant le regroupement des commandes aborde le problème statique (Henn et 
al.,  2012)  [3].  L’information  sur  la  commande,  dans  le  cas  du  regroupement  dynamique,  est 
transmise au fil de l’eau, impliquant qu’une commande venant d’être reçue peut‐être incluse dans le 
prochain lot de commandes à être collecté. 

Nous nous intéressons tout d’abord au regroupement de commandes en lots complets statique ou 
batching statique. Comme expliqué dans le paragraphe précédent, cette pratique vise à effectuer un 
regroupement de commandes en lots toutes les périodes données. Ceci implique la connaissance de 
toutes les commandes à regrouper dès le début de la période. En pratique, à partir d’un portefeuille 
de  commandes,  un  regroupement  est  fait  en  ayant  un  objectif  et  certaines  contraintes  tous  les 
matins ou plusieurs fois par jour. Ainsi la liste de picking créée est fixe entre deux périodes. 
Pour un système Picker to part, l’objectif prédominant est la minimisation de la distance parcourue 
par  les  préparateurs.  Un  second  objectif  peut  être  utilisé  :  minimiser  le  temps  de  collecte  d’un 
ensemble  de  lots  de  commandes.  Le  modèle  linéaire  ci‐dessous  est  établi  par  Gademann  &Van  de 
Velde (2005) [21]. Celui‐ci prend en compte la capacité du préparateur, la contrainte (2‐1) imposant 
que  la  sommes  des  commandes  dans  un  même  lot  n’excède  pas  la  capacité  maximum  du 
préparateur. La distance parcourue est l’objectif à minimiser (2‐2). La contrainte (2‐3) impose que les 
commandes  soient  dans  un  seul  lot.  L’article  traite  d’un  entrepôt  avec  400  emplacements  et  30 
clients différents, et jusqu’à 10 commandes pouvant être combinées comme contrainte de capacité. 
 

 
14 
     

 
 
Figure 2-4 : Modèle d'optimisation pour le regroupement de commandes en lots (proposé par
  Gademann & Van De Velde, 2005) 
 
Nous pouvons bien imaginer que plus le nombre  de commandes et le nombre de produits devient 
grand,  plus  la  recherche  de  la  solution  se  complexifie.  Il  est  important  de  garder  en  tête  que  le 
nombre de lots possible grandit exponentiellement avec le nombre de commandes. C’est pourquoi 
l’utilisation  d’heuristiques  est  utile  afin  de  fournir  une  solution  dans  un  temps  acceptable  qui  soit 
adapté  au  mieux  aux  configurations  d’entrepôt  réel  (en  termes  de  nombre  de  commandes 
notamment).  Aussi  de  nombreuses  heuristiques  et  méta‐heuristiques  ont  été  étudiées  afin  de 
résoudre ce problème en un temps de résolution raisonnable.  
Hsu  et  al  (2005)  utilisent  un  algorithme  génétique  qui  montre  un  temps  de  résolution  acceptable 
pour les expériences allant jusqu’à 300 commandes et 200 produits différents. 

Henn et al en 2013 [3] comparent deux méta‐heuristiques afin de regrouper les commandes en lots. 
De  plus,  plusieurs  heuristiques  de  parcours  de  cueillette  sont  étudiées  afin  de  montrer  que  les 
solutions apportées par les deux méta‐heuristiques peuvent être adaptées à différents routings. La 
méta‐heuristique utilisée est de type « recherche tabou ». L’application numérique est plus adaptée 
à notre cadre d’étude en prenant en compte jusqu’à 900 emplacements de stockage, et jusqu’à 100 
commandes comprenant au maximum 25 références différentes à collecter par commande. Pan et al 

 
15 
     

(2012)  utilisent  une  heuristique  pour  associer  les  commandes  en  fonction  de  la  similarité  des 
parcours de cueillette afin de créer des lots. La capacité est prise comme contrainte et 3 différents 
parcours de cueillette sont utilisés pour créer des similarités entre les produits. Les commandes sont 
donc  regroupées  en  lots  en  fonction  des  similitudes  des  articles  présents  au  sein  des  différentes 
commandes.  Cependant  l’application  numérique  n’est  pas  adaptée  car  elle  ne  prend  en  compte 
qu’un très faible nombre de commandes à regrouper (maximum 10 commandes). D’autres articles ne 
conviennent pas à notre étude en raison de la faible étendue des études de cas, mais nous montre 
l’utilisation de différentes méthodes de résolution comme par exemple l’utilisation d’un algorithme 
génétique par Koch and Wäscher (2011) [22] avec un nombre maximum de 60 commandes. 

Jusqu’à présent la seule contrainte étudiée était la capacité du préparateur. Cependant en pratique, 
la date de livraison doit aussi être respectée. La prise en compte de ce paramètre comme contrainte 
donne lieu à  des changements d’objectif. Ainsi dans la littérature, une  minimisation non plus de la 
distance parcourue mais des retards a été étudiée par Henn et Schmid (2013) [3]. Une priorité plus 
grande  est  donnée  aux  commandes  dont  la  date  de  livraison  est  la  plus  proche.  La  contrainte  de 
capacité  est  toujours  présente.  La  méthode  de  résolution  utilisée  est  la  métaheuristique  de  type  « 
recherche locale itérée ». L’application numérique, montre une vitesse de calcul respectable pour 80 
commandes et jusqu’à 25 articles par commande. Chen et al (2015) utilisent le même objectif et y 
incluent aussi le routing grâce à l’utilisation conjointe de deux métaheuristiques de type « algorithme 
génétique » et « colonie de fourmis ». La première métaheuristique crée les lots en minimisant les 
retards totaux et la seconde minimise le chemin pour un lot donné. 

Azadnia  et  al  (2013)  [23]  étudient  l’optimisation  des  retards  moyens  des  commandes,  cependant 
l’étude  est  restreinte  à  un  seul  préparateur  et  un  stockage  dédié  est  choisi  comme  politique 
d’affectation  des  produits  à  un  emplacement.  Des  poids  sont  donnés  à  chaque  commande 
dépendant de sa date de livraison et une métaheuristique de type « algorithme génétique » permet 
une création et séquencement des lots. 

Nous avons jusqu’alors uniquement décrit le système statique de regroupement des commandes en 
lots. Cependant avec l’arrivée de l’e‐commerce, le système statique montre ses limites et un système 
dynamique va progressivement se développer pour certaines applications. Le regroupement en lots 
de  manière  dynamique  permet  à  un  préparateur  d’effectuer  un  regroupement  des  commandes 
considérant les commandes en attente de préparation et donc de reformer des lots en fonction des 
commandes qui arrivent en temps réel. 

Ainsi les temps d’arrivées des commandes et de livraisons des commandes peuvent être considérés. 
Iraji  et  al.  (2014)  [24]  décrivent  un  modèle  minimisant  les  retards  totaux  des  commandes  en 

 
16 
     

considérant les commandes arrivant durant une période donnée. C’est un modèle sur le problème de 
« l’online batching » (le regroupement de commandes en lots complets dynamique). Ainsi « à chaque 
temps t, une décision doit être prise concernant toutes les commandes non encore collectées ». Cet 
article  nous  fournit  une  application  numérique  intéressante  :  jusqu’à  400  commandes  pouvant 
contenir entre 5 et 25 lignes de commandes, une capacité de picking au maximum de 75 unités, la 
date de livraison pouvant être aléatoire ou suivre une distribution uniforme. De plus, une politique 
d’affectation au stock basée sur la classe est utilisée (52% des produits demandés appartienne à la 
classe A, 36% à la classe B et 12% à la classe C). Cependant rien n’est dit sur les temps de calcul pour 
obtenir les solutions. 

Bukchin et al (2012) [25] utilisent les chaines de Markov afin de traiter le problème du regroupement 
de commandes en lots complets en approche dynamique. Une minimisation des pénalités impliquées 
par les retards est élaborée en ayant pour contrainte la capacité. Le procédé d’arrivée des demandes 
est modélisé par une distribution de poisson. Malheureusement une restriction est faite puisque le 
temps de cueillette dépend seulement du nombre de produits et non de leurs emplacements au sein 
de  l’entrepôt.  Cette  contrainte  simplifie  grandement  l’étude  et  ne  permet  pas  de  faire  une 
cartographie des emplacements pour effectuer une collecte réaliste. 
 

2.1.5 Les codes‐barres 

L'utilisation de cette technologie dans l’entrepôt n’est pas seulement limitée à la gestion des 
installations et des marchandises, ni à la communication avec les opérateurs. Elle est aussi utilisée 
pour l’identification d'articles manipulés en entrepôt. 
En logistique, la plupart des produits disposent actuellement d’un code‐barres gravé ou imprimé, ou 
intègrent une balise RFID (étiquette d’identification utilisant la radiofréquence pour transmettre les 
données). Ces deux systèmes permettent d’identifier chaque unité gérée dans l’entrepôt grâce à des 
lecteurs laser ou radios. 
Ces codes suivent des règles d’usage général rigoureuses et normalisées qui servent à identifier des 
données dont la nature du produit, son fabricant, sa traçabilité, ses données logistiques et ses 
caractéristiques spécifiques. Afin de mieux cerner la manière dont certaines opérations sont 
aujourd’hui réalisées au sein de l’entrepôt, il est primordial de comprendre le fonctionnement de ces 
méthodes d’identification. 
 

 
17 
     

  
Figure 2‐5 : Exemple d’une étiquette sur laquelle est imprimé un code‐barres EAN‐13 permettant 
    d’identifier le produit et d'établir sa traçabilité logistique 
 

Ce type de système d’identification consiste en l’impression graphique de barres sur des étiquettes 
(apposées sur les articles) ou directement sur les emballages ou récipients. La création de ces barres 
suit des normes de codage homologuées qui sont actuellement les codes EAN‐13 et EAN‐128 

Lorsque les barres sont scannées (lues) par un terminal laser, celui‐ci interprète les données et 
informe le système de gestion. Tous les systèmes automatiques de gestion et de mouvement doivent 
disposer de ces codes pour communiquer à tout moment les données relatives à la charge 
manipulée. 

 
18 
     

 
Figure 2‐6 : Exemple d’une étiquette portant un code‐barres EAN‐128 permettant dans un centre 
  logistique d’identifier la palette, le produit qu’elle contient et ses caractéristiques. 
 

2.2 Résumé de la revue de littérature et intérêt de notre travail 

Au  cours  de  ce  chapitre,  nous  avons  abordé  les  diverses  thématiques  permettant  de  mieux 
comprendre les facteurs impactant notre sujet et de le positionner.  
De par l’étude de la littérature et l’étude de divers entrepôts de distribution, nous observons que la 
plupart des entreprises utilisent des procédures plutôt basiques afin de réaliser un séquencement ou 
un regroupement en lots des commandes (en utilisant, par exemple le FIFO comme procédure). 
Ces procédures, bien  que  rapides d’implémentation, donnent cependant des  résultats souvent loin 
du résultat optimal.  
Notre  travail  est  motivé  par  les  limites  de  la  procédure  de  prélèvement  et  de  rangement  des 
produits.  Pouvoir  créer  des  modèles  d’optimisation  permettant  un  regroupement,  prélèvement, 
rangement  et  préparation  de  commandes  ainsi  qu’un  séquencement  des  commandes  fut  une 
motivation supplémentaire pendant la réalisation de ce mémoire. 
 
 

 
19 
     

 
 

3. MACHINE LEARNING 
 

Dans ce chapitre, un aperçu est donné des résultats importants de la recherche documentaire sur le 
Machine Learning. De nombreux algorithmes de Machine Learning existants sont décrits et comparés 
dans  la  littérature.  L'augmentation  globale  de  l'utilisation  et  des  applications  de  Machine  Learning 
soulève la question : quelle méthode doit être utilisée pour une application spécifique ?  

L'exploration de ces techniques de Machine Learning peut permettre de comprendre leur utilisation 
pour des applications spécifiques. Cela peut fournir le meilleur algorithme pour une situation ou une 
application spécifique. 

3.1 Définition de Machine Learning 

Le  Machine  Learning  (apprentissage  automatique)  est  un  domaine  scientifique,  et  plus 
particulièrement  une  sous‐catégorie  de  l’intelligence  artificielle.  Le  Machine  Learning  consiste  à 
laisser des algorithmes découvrir des ” patterns “, à savoir des motifs récurrents, dans les ensembles 
de  données.  Ces  données  peuvent  être  des  chiffres,  des  mots,  des  images,  des  vidéos,  des 
statistiques… Tout ce qui peut être stocké numériquement est susceptible de servir de données pour 
le  Machine  Learning.  En  décelant  les  patterns  dans  ces  données,  les  algorithmes  apprennent  mais 
aussi améliorent leurs performances dans l’exécution d’une tâche spécifique. 
Pour  résumer,  les algorithmes  de  Machine  Learning apprennent  de  manière  autonome  à 
effectuer  des  tâches ou  à  réaliser  des  prédictions  à  partir  de  données  en  améliorant  leurs 
performances au fil du temps. Une fois l’algorithme entraîné, il pourra retrouver les patterns 
dans de nouvelles données. 

3.1.1 Comment fonctionne le Machine Learning ? 

Le Machine Learning est un domaine qui se concentre sur la construction d'algorithmes qui font des 
prédictions basées sur des données. Une tâche de Machine Learning vise à identifier (apprendre) une 
fonction  f  :  X  →  Y qui mappe le domaine d'entrée  X (des données) sur le domaine de sortie  Y  (des 
prédictions possibles) [26]. Les fonctions f sont choisies parmi différentes classes de fonctions, selon 

 
20 
     

le type d'algorithme d'apprentissage utilisé. Mitchell (1997) définit « l'apprentissage » comme suit : 
« On  dit  qu'un  programme  informatique  apprend  de  l'expérience  E  par  rapport  à  une  classe  de 

tâches  T  et  à  une  mesure  de  performance  P,  si  sa  performance  aux  tâches  de  T,  mesurée  par  P, 
s'améliore avec expérience  E  » [27]. La mesure de performance  P  nous indique quantitativement les 
performances  d'un  certain  algorithme  de  Machine  Learning.  Pour  une  tâche  de  classification,  la 
précision du système est généralement choisie comme mesure de performance, où la précision est 
définie comme la proportion pour laquelle le système produit correctement la sortie. L'expérience  E 
que subissent les algorithmes de Machine Learning sont des ensembles de données. Ces ensembles 
de  données  contiennent  un  ensemble  d'exemples  qui  sont  utilisés  pour  entraîner  et  tester  ces 
algorithmes.  
Le développement d’un modèle de Machine Learning s’appuie sur quatre étapes principales. 
En règle générale, c’est un Data Scientist qui s’occupe de ce procédé. 
La  première  étape  consiste  à sélectionner  et  à  préparer  un  ensemble  de  données 
d’entraînement.  Ces  données  seront  utilisées  pour  nourrir  le  modèle  de  Machine  Learning 
pour apprendre à résoudre le problème pour lequel il est conçu. 
Les données  peuvent  être  étiquetées,  afin  d’indiquer  au  modèle  les  caractéristiques  qu’il 
devra  identifier.  Elles  peuvent  aussi  être  non  étiquetées,  et  le  modèle  devra  repérer  et 
extraire les caractéristiques récurrentes de lui‐même. 
Dans  les  deux  cas,  les  données  doivent  être  soigneusement  préparées,  organisées  et 
nettoyées.  Dans  le  cas  contraire, l’entraînement  du  modèle  de  Machine  Learning  risque 
d’être biaisé. Les résultats de ses futures prédictions seront directement impactés. 
La  deuxième  étape  consiste  à sélectionner  un  algorithme  à  exécuter sur  l’ensemble  de 
données  d’entraînement.  Le  type  d’algorithme  à  utiliser  dépend  du  type  et  du  volume  de 
données d’entraînement et du type de problème à résoudre. 
La  troisième  étape  est l’entraînement  de  l’algorithme.  Il  s’agit  d’un  processus  itératif.  Des 
variables sont exécutées à travers l’algorithme, et les résultats sont comparés avec ceux qu’il 
aurait  dû  produire.  Les  ”  poids  ”  et  le  biais  peuvent  ensuite  être  ajustés  pour  accroître  la 
précision du résultat. 
On exécute ensuite de nouveau les variables jusqu’à ce que l’algorithme produise le résultat 
correct la plupart du temps. L’algorithme, ainsi entraîné, est le modèle de Machine Learning. 
La  quatrième  et  dernière  étape  est l’utilisation  et  l’amélioration  du  modèle.  On  utilise  le 
modèle  sur  de  nouvelles  données,  dont  la  provenance  dépend  du  problème  à  résoudre.  Par 
exemple, un modèle de Machine Learning conçu pour détecter les spams sera utilisé sur des 
emails.  

 
21 
     

3.1.2 Quels sont les principaux algorithmes de Machine Learning ? 

Il  existe une  large  variété  d’algorithmes de  Machine  Learning.  Certains  sont  toutefois  plus 
couramment utilisés que d’autres. Tout d’abord, différents algorithmes sont utilisés pour les 
données étiquetées. 

Les algorithmes de régression, linéaire ou logistique, permettent de comprendre les relations 
entre  les  données.  La  régression  linéaire  est  utilisée  pour  prédire  la  valeur  d’une  variable 
dépendante  base  sur  la  valeur  d’une  variable  indépendante.  Il  s’agirait  par  exemple  de 
prédire  les ventes  annuelles  d’un  commercial  en  fonction  de  son  niveau  d’études ou  de son 
expérience. 
La régression  logistique est  quant  à  elle  utilisée  quand  les  variables  dépendantes  sont 
binaires. Un autre type d’algorithme de régression appelé machine à vecteur de support est 
pertinent quand les variables dépendantes sont plus difficiles à classifier. 
Un  autre  algorithme  ML  populaire  est l’arbre  de  décision.  Cet  algorithme  permet  d’établir 
des  recommandations  basées  sur  un  ensemble  de  règles  de  décisions  en  se  basant  sur  des 
données  classifiées.  Par  exemple,  il  est  possible  de  recommander  sur  quelle  équipe  de 
football  parier  en  se  basant  sur  des  données  telles  que  l’âge  des  joueurs  ou  le  pourcentage 
de victoire de l’équipe. 
Pour  les  données  non  étiquetées,  on  utilise  souvent les algorithmes  de  ”  clustering  “.  Cette 
méthode  consiste  à  identifier  les  groupes  présentant  des  enregistrements  similaires  et  à 
étiqueter ces enregistrements en fonction du groupe auquel ils appartiennent. 
Auparavant,  les  groupes  et  leurs  caractéristiques  sont  inconnus.  Parmi  les  algorithmes  de 
clustering, on compte les K‐moyennes, le TwoStep ou encore le Kohonen. 
Les algorithmes  d’association permettent  quant  à  eux  de  découvrir  des  patterns  et  des 
relations  dans  les  données,  et  à  identifier  les  relations  ”  si  /  alors  ”  appelées  ”  règles 
d’association  “.  Ces  règles  sont  similaires  à  celles  utilisées  dans  le  domaine  du  Data  Mining 
ou forage de données. 
Enfin, les réseaux de neurones sont des algorithmes se présentant sous la forme d’un réseau 
à  plusieurs  couches.  La  première  couche  permet  l’ingestion  des  données,  une  ou  plusieurs 
couches cachées tirent des conclusions à partir des données ingérées, et la dernière couche 
assigne une probabilité à chaque conclusion. 

 
22 
     

Un réseau  de  neurones  ”  profond  “ est  composé  de  multiples  couches  cachées  permettant 
chacune  de  raffiner  les  résultats  de  la  précédente.  On  l’utilise  dans  le  domaine  du  Deep 
Learning. 

3.1.3 Classification des algorithmes de Machine Learning 

Les algorithmes de Machine Learning peuvent être largement classés en trois catégories selon le type 
d'ensembles  de  données  utilisés  comme  expérience.  Ces  catégories  sont  l'apprentissage  supervisé, 
l'apprentissage  non  supervisé  et  l'apprentissage  par  renforcement.  Les  systèmes  d'apprentissage 
supervisé utilisent des ensembles de données étiquetés (x, y)  ∈  X × Y, où x représente un point de 
données  et  y  la  vraie  prédiction  correspondante  pour  x.  Cet  ensemble  d'apprentissage  de  paires 
entrée‐sortie est utilisé pour trouver une fonction déterministe qui mappe toute entrée à une sortie, 
prédisant les futures observations d'entrée‐sortie tout en minimisant les erreurs autant que possible. 
Les systèmes d'apprentissage non supervisés utilisent des ensembles de données non étiquetés pour 
entraîner le système. L'objectif de l'apprentissage non supervisé est de dériver une structure à partir 
de données non étiquetées en étudiant la similitude entre des paires d'objets, et est généralement 
associé à l'estimation de la densité ou au regroupement des données. Les systèmes d'apprentissage 
par renforcement ne connaissent pas un ensemble de données fixe, mais une boucle de rétroaction 
entre  le  système  et  ses  expériences  [28].  Un  environnement  dynamique  est  considéré  dans  lequel 
des triplets état‐action‐récompense sont observés en tant que données. L'objectif de l'apprentissage 
par  renforcement  est  de  cartographier  les  situations  en  actions  dans  le  but  de  maximiser  les 
récompenses.  D'autres  systèmes  d'apprentissage  existent  qui  sont  une  combinaison  de  deux 
catégories, comme l'apprentissage semi‐supervisé qui utilise à la fois des données étiquetées et non 
étiquetées [29]. 
Plutôt que d’automatiser les décisions et les prédictions, cette approche permet d’identifier 
les  patterns  et  les  relations que  les humains risquent  de  ne  pas  identifier  dans  les données. 
Cette  technique  n’est  pas  très  populaire,  car  moins  simple  à  appliquer.  Elle  est  toutefois  de 
plus en plus populaire dans le domaine de la cybersécurité. 
L’apprentissage  ”  semi‐supervisé  “ se  situe  entre  les  deux  et  offre  un  compromis  entre 
apprentissage supervisé et non‐supervisé. Pendant l’entraînement, un ensemble de données 
étiqueté  de  moindre  envergure  est  utilisé  pour  guider  la  classification  et  l’extraction  de 
caractéristiques à partir d’un ensemble plus large de données non étiquetées. 

 
23 
     

Cette  approche  s’avère  utile  dans  les  situations  où le  nombre  de  données  étiquetées  est 
insuffisant pour  l’entraînement  d’un  algorithme  supervisé.  Elle  permet  de  contourner  le 
problème. 
Enfin, l’apprentissage  par  renforcement consiste  à  laisser  un  algorithme  apprendre  de  ses 
erreurs  pour  atteindre  un  objectif.  L’algorithme  essayera  de  nombreuses  approches 
différentes pour tenter d’atteindre son but. 
En  fonction  de  ses  performances,  il  sera récompensé  ou  pénalisé pour  l’inciter  à  poursuivre 
dans  une  voie  ou  à  changer  d’approche.  Cette  technique  est  notamment  utilisée  pour 
permettre à une IA de surpasser les humains dans les jeux. 
Par  exemple, AlphaGo  de  Google  a  battu  le  champion  de  Go grâce  à  l’apprentissage  par 
renforcement.  De  même,  OpenAI  a entraîné  une  IA  capable  de  vaincre  les  meilleurs  joueurs 
du jeu vidéo Dota 2. 

3.1.4 Cas d'usage et applications 

Ces  dernières  années,  on  entend  parler  de nombreuses  avancées  dans  le  domaine  de 
l’intelligence artificielle. De même, les applications de l’IA se multiplient. En réalité, la vaste 
majorité des progrès effectués dans ce domaine sont directement liés au Machine Learning. 
Le  Machine  Learning  se  cache  derrière  un  grand  nombre  de  services  modernes  très 
populaires.  Par  exemple,  les  systèmes  de  recommandation  de  Netflix,  YouTube  et  Spotify 
exploitent cette technologie. 

Il  en  va  de  même  pour  les  moteurs  de  recherche  web  de  Google  et  Baidu,  pour  les  fils 
d’actualité  de  réseaux  sociaux  tels  que  Facebook  et  Twitter,  ou  pour  les  assistants  vocaux 
comme  Siri  et  Alexa.  Ainsi,  le  Machine  Learning  peut  être  considéré  comme  une  innovation 
phare de ce début de XXIème siècle. 
C’est  la  raison  pour  laquelle  les  plateformes  citées  ci‐dessus  et  les  autres  géants  du 
web collectent  de  vastes  quantités  de  données  personnelles sur  leurs  utilisateurs  :  le  genre 
de  films  que  vous  préférez,  les  liens  sur  lesquels  vous  cliquez,  les  publications  auxquelles 
vous  réagissez…  toutes  ces  données  peuvent  être  utilisées  pour  nourrir  un  algorithme  de 
Machine Learning et lui permettre de prédire ce que vous voulez. 
Le Machine Learning est également ce qui permet aux aspirateurs robots de faire le ménage 
seuls, à votre boite mail de détecter les spams, et aux systèmes d’analyse d’image médicale 
d’aider les médecins à repérer les tumeurs plus efficacement. Les voitures autonomes, elles 
aussi reposent sur l’apprentissage automatique. 

 
24 
     

Les assistants  numériques,  comme  Apple  Siri,  Amazon  Alexa  ou  Google  Assistant,  reposent 
sur  la  technologie  de  traitement  naturel  du  langage  (NLP).  Il  s’agit  d’une  application  du 
Machine  Learning  permettant  aux  ordinateurs  de  traiter  des  données  vocales  ou  textuelles 
afin de ” comprendre ” le langage humain. Cette technologie propulse aussi la voix de votre 
GPS ou encore les Chatbots et les logiciels de type ” speech‐to‐text “. 
À  mesure  que  le  Big  Data  continuera  à  se  développer,  avec  toujours  plus  de  données 
générées, et alors que l’informatique continuera à gagner en puissance, le Machine Learning 
offrira encore davantage de possibilités… 
Vous  êtes  désormais  incollable  sur  le  Machine  Learning.  Cette  discipline  est  au  coeur  de  la 
Data  Science,  et  vous  pourrez  vous  initier  à  travers notre  formation  de  Data  Scientist. 
Découvrez aussi comment utiliser le langage Python pour le Machine Learning. 
 

3.1.5 Machine Learning et analyse de données 

Le Machine Learning est massivement utilisé pour la Data Science et l’analyse de données. Il 
permet  de  développer,  de  tester  et  d’appliquer  des algorithmes  d’analyse  prédictive sur 
différents types de données afin de prédire le futur. 
En  automatisant  le  développement  de  modèle  analytique,  le  Machine  Learning  permet 
d‘accélérer  l’analyse  de  données  et  de  la  rendre  plus  précise.  Il  permet  d’assigner  aux 
machines  des  tâches  au  cœur  de  l’analyse  de  données  comme  la classification, 
le clustering ou la détection d’anomalie. 
Les  algorithmes  ingèrent  les  données  et  délivrent  des inférences  statistiques,  et  peuvent 
s’améliorer de manière autonome au fil du temps. Lorsqu’ils détectent un changement dans 
les données, ils sont capables de prendre des décisions sans intervention humaine. 
Pour  l’heure,  un  humain  reste  toutefois  nécessaire  pour  passer  en  revue  les  résultats  des 
analyses produites par les algorithmes de Machine Learning. Son rôle est de donner du sens 
à ces résultats, ou encore de s’assurer que les données traitées par l’algorithme ne soient ni 
biaisées ni altérées. 

3.1.6 Résoudre les tâches de Machine Learning  

Il  existe  une  grande  variété  de  tâches  qui  pourraient  être  résolues  avec  le  Machine  Learning. 
L'analyse  de  régression  et  la  classification  sont  deux  tâches  de  Machine  Learning  populaires.  Dans 
l'analyse  de  régression,  la  relation  entre  les  variables  est  approximée,  pour  la  prédiction  réussie 
d'une valeur étant donné une certaine entrée. Cette tâche est résolue en produisant une fonction f : 

ℝn  →  ℝ  qui  correspond  aux  données  [45].  L'analyse  de  régression  peut  être  utilisée  par  exemple 

 
25 
     

pour  prévoir  les  prix  futurs  des  actions  dans  le  monde  du  commerce.  Dans  la  classification,  il  est 
demandé  à  la  machine  de  déterminer  la  catégorie  n  à  laquelle  appartient  une  certaine  entrée.  La 
tâche  peut  être  résolue  en  produisant  une  fonction  f  :  ℝn  →  {1,....,  n}  [45].  Un  problème  de 
classification populaire est la reconnaissance d'objets pour les systèmes intelligents. La classification 
peut  être  utilisée  par  exemple  pour  classer  des  objets  dans  un  entrepôt  afin  de  déterminer  la 
destination  correcte  de  chaque  objet,  avec  une  reconnaissance  d'objets  de  pointe  utilisant  des 
algorithmes d'apprentissage en profondeur [30].  

3.2 Sélection de l'algorithme d'apprentissage supervisé optimal 

Pour  déterminer  quelle  technique  de  Machine  Learning  convient  à  une  application  spécifique,  on 
peut analyser les aspects nécessaires à un pipeline de Machine Learning supervisé optimal. Kotsiantis 
et al. [31] décrit un pipeline qui peut être utilisé pour créer un classificateur réussi qui se généralise 
bien  pour  les  nouvelles  instances  de  données.  Ce  pipeline  est  illustré  à  la  figure  3‐1.  Les  deux 
premières  étapes  de  ce  pipeline  sont  les  plus  importantes  et  définissent  en  grande  partie  les 
performances du classifieur. L'identification des données requises consiste à déterminer et à choisir 
les  caractéristiques  les  plus  pertinentes.  En  excluant  les  fonctionnalités  non  pertinentes  ou 
redondantes, la dimensionnalité des données peut être réduite. Trop d'informations non pertinentes 
ou redondantes peuvent empêcher un algorithme d'apprentissage de trouver des modèles dans les 
données  ou  même  entraîner  de  faux  résultats.  L'étape  de  pré‐traitement  est  utilisée  pour  traiter 
cette  redondance  d'informations,  et  est  souvent  utilisée  pour  traiter  le  bruit  ou  les  valeurs 
manquantes.  Le  résultat  final  de  l'étape  de  pré‐traitement  est  l'entrée  de  l'ensemble  de  données 
d'apprentissage. 

 
26 
     

 
Figure 3‐1 : Pipeline de Machine Learning supervisé qui est utilisé pour créer un classificateur 
efficace [31]. 
 

3.2.1 Description et traitement des ensembles de données 

Une  méthode  pour  décrire  les  ensembles  de  données  qui  sont  utilisés  pour  former  et  tester  des 
algorithmes de Machine Learning est avec une matrice de conception [28]. La matrice de conception 
est  une  matrice  qui  se  compose  de  tous  les  points  de  données,  où  chaque  colonne  peut 
correspondre à une  certaine  caractéristique. Par exemple, si l'on utilise un ensemble  de 10 photos 
prises d'un objet avec une résolution de 1600x1200 avec trois caractéristiques pour chaque photo, 

l'ensemble de données peut être représenté avec une matrice de conception  X  ∈   ℝ10x1600x1200x3. 

Les ensembles de données utilisés pour former et tester les algorithmes de Machine Learning varient 
d'ensembles  de  données  relativement  simples  à  des  ensembles  de  données  volumineux  et 
complexes. Un exemple d'ensemble de données relativement simple est l'ensemble de données Iris 
[32]. Cet ensemble de données contient 150 échantillons, chacun avec quatre instances de données 

et  peut  être  décrit  par  une  matrice  de  conception  X  ∈  ℝ150x4.  D'un  autre  côté,  lorsqu'il  s'agit  de 

photographies, les ensembles de données peuvent devenir très volumineux en raison des résolutions 
d'image élevées. Une image avec une résolution de 1900 × 1080 pixels, chaque pixel représentant un 
point de données avec une valeur x, y et z peut facilement produire une quantité de 6156000 points 

 
27 
     

de  données  par  image.  En  raison  de  la  grande  quantité  de  points  de  données  par  exemple,  une 
grande  puissance  de  traitement  est  nécessaire  pour  entraîner  et  tester  l'algorithme  de  Machine 
Learning. Comme la quantité de données produites ne cesse d'augmenter chaque jour, des données 
de plus en plus complexes peuvent être utilisées pour former des algorithmes de Machine Learning. 
Dans le domaine de la vision par ordinateur, les ensembles de données peuvent comprendre jusqu'à 
des milliers d'images pouvant chacune contenir à nouveau des dizaines de caractéristiques. 

3.3 Raisons d'étendre le Machine Learning 

La  quantité  de  données  et  d'événements  enregistrés  et  enregistrés  chaque  jour  ne  cesse 
d'augmenter,  en  particulier  dans  le  monde  d'Internet  et  de  la  finance.  Des  chaînes  telles  que 
Walmart  sont  capables  de  collecter  chaque  heure  de  nombreux  pétaoctets  de  données  auprès  de 
leurs  clients,  et  des  milliards  de  transactions  financières  ont  lieu  chaque  jour  dans  le  monde.  À 
mesure  que  le  nombre  de  capteurs  utilisés  dans  ces  industries  ne  cesse  d'augmenter,  le  nombre 
d'observations  pouvant  être  utilisées  comme  données  de  formation  continue  également 
d'augmenter. Le problème devient encore plus important lorsque chacun de ces points de données 
contient  plusieurs  caractéristiques.  Lorsque  des  milliards  de  points  de  données  chaque  jour  sont 
accompagnés  de  milliers  d'entités  par  point  de  données,  l'ensemble  de  données  peut  facilement 
générer 1012 paires point de  données‐entité par jour. Le stockage de ces données signifie que ces 
ensembles de données deviennent facilement des centaines de pétaoctets.  

Lorsque l'échelle d'une tâche de Machine Learning est trop grande pour une unité de traitement à 
une  seule  machine,  des  techniques  de  parallélisation  peuvent  être  utilisées  pour  accélérer  le 
processus.  Bekkerman  et  al.  [26]  décrit  quatre  paramètres  pour  lesquels  un  apprentissage 
automatique à grande échelle est nécessaire : 

1. L'ensemble de données se compose d'une grande quantité de points de données. 

2. Les points de données ont une dimensionnalité d'entrée élevée. 

3. Le modèle et l'algorithme sont complexes. 

4. Lorsqu'il s'agit de contraintes de temps d'inférence. 

Premièrement, dans le cas de la collecte de données par des chaînes telles que Walmart, un grand 
nombre  de  points  de  données  sont  collectés.  Deuxièmement,  une  dimensionnalité  d'entrée  élevée 
joue  un  rôle  lorsqu'il  s'agit  de  tâches  de  Machine  Learning  qui  impliquent  l'utilisation  de  données 
vidéo  ou  d'images.  Pour  de  tels  cas,  la  dimensionnalité  d'entrée  peut  facilement  s'étendre  à  une 

 
28 
     

échelle  de  106.  Troisièmement,  des  modèles  non  linéaires  très  complexes  ou  des  processus  très 
intensifs en calcul peuvent être utilisés pour surpasser des algorithmes plus simples et atteindre des 
précisions  plus  élevées  [26].  Deux  exemples  de  tels  algorithmes  sont  les  réseaux  profonds 
multicouches et les arbres de décision [8]. Enfin, les contraintes de temps d'inférence peuvent être 
décrites  avec  des  applications  qui  utilisent  des  capteurs  et  la  prédiction  en  temps  réel,  comme  un 
robot  humanoïde  marchant  ou  un  véhicule  de  conduite  autonome.  Dans  ces  paramètres,  le  temps 
d'inférence est soumis à certaines contraintes pour la bonne exécution d'une tâche (comme marcher 
ou  conduire).  Bekkerman  et  al.  a  fait  valoir  que  pour  ces  quatre  paramètres,  l'utilisation 
d'architectures  matérielles  hautement  parallélisées  telles  que  les  GPU,  ou  la  mise  en  œuvre  de 
cadres de calcul efficaces tels que DryadLINQ est nécessaire [26]. 

3.3.1 No Free Lunch Theorems of Optimization 

De  nombreux  articles  ont  été  publiés  qui  comparent  les  performances  de  divers  algorithmes  de 
Machine Learning [31][34][35][36]. Cependant, aucune solution claire n'a été trouvée à la question 
de  savoir  quel  algorithme  est  le  meilleur  pour  une  application  particulière.  Mooney  [37]  soutient 
qu'aucun algorithme inductif n'est universellement meilleur qu'un autre en particulier. Wolpert [38] 
confirme  cet  argument  et  montre  théoriquement  que  (avec  certaines  hypothèses),  aucun 
classificateur  ne  peut  toujours  atteindre  une  meilleure  performance  qu'un  autre  en  particulier. 
Wolpert et Macready [39] ont formé les "No Free Lunch Theorems of Optimizations" dans lesquels ils 
stipulent  qu'il  n'existe  pas  de  technique  d'optimisation  universelle,  cependant  un  algorithme 
particulier  peut  surpasser  d'autres  s'il  est  spécifiquement  conçu  pour  la  structure  d'un  problème 
particulier [40]. 

Dans cet esprit, une étude comparative fournit toujours un aperçu suffisant des performances et de 
la  convivialité  des  algorithmes  pour  des  applications  spécifiques.  De  plus,  en  effectuant  une  étude 
d'évolutivité,  il  est  possible  d'obtenir  des  informations  sur  la  façon  dont  le  temps  de  calcul  de 
l'algorithme  augmente  avec  l'échelle.  Ces  informations  peuvent  s'avérer  utiles  pour  les 
implémentations de Machine Learning à grande échelle. 

 
29 
     

4. REVUE DES ALGORITHMES DE MACHINE LEARNING 
 

Dans ce chapitre, les résultats de l'enquête bibliographique sont présentés. Quatre des algorithmes 
de  Machine  Learning  les  plus  populaires  et  les  plus  influents  dans  le  domaine  de  l'exploration  de 
données  [35]  sont  présentés  et  examinés :  les  arbres  de  décision,  les  réseaux  de  neurones,  les 
machines  à  vecteurs  de  support  et  le  k‐Nearest‐Neighbor.  Les  réseaux  de  neurones  sont 
particulièrement  intéressants,  car  ils  constituent  l'approche  la  plus  courante  lorsque  l'on  travaille 
avec  des  données  hautement  dimensionnelles,  telles  que  la  classification  d'objets  3D.  La  théorie 
derrière  chaque  algorithme  est  expliquée,  les  avantages  et  les  inconvénients  sont  analysés  et  le 
potentiel d'évolutivité de chaque algorithme est discuté. 

4.1 Implémentation à grande échelle de Machine Learning 

La  dernière  décennie  a  marqué  une  croissance  rapide  et  significative  des  applications  de  Machine 
Learning  à  grande  échelle,  attribuée  par  deux  raisons  principales :  (1)  L'augmentation  de  grands 
ensembles de données sur de nombreuses applications modernes, et (2) la croissance et l'évolution 
des  cadres  de  programmation  et  des  architectures  matérielles  qui  peuvent  être  utilisés  par  de 
nombreux  algorithmes  d'apprentissage  [67].  Les  grands  ensembles  de  données  sont  souvent 
collectés  et  enregistrés  sur  de  grandes  plates‐formes  de  stockage  distribuées,  motivant  le 
développement  d'algorithmes  de  Machine  Learning  capables  d'utiliser  ces  données  stockées 
efficacement. Des cadres  de programmation et des architectures matérielles améliorés permettent 
un  traitement  efficace  et  simultané  de  ces  grandes  quantités  de  données  stockées.  En  outre, 
l'utilisation  accrue  de  capteurs  qui  prennent  des  décisions  en  temps  réel  sur  la  base  de  grandes 
quantités  de  caractéristiques  complexes  et  de  grande  dimension  provoque  la  demande  croissante 
d'utilisation  d'architectures  matérielles  qui  permettent  des  calculs  parallèles  efficaces  dans  les 
applications  d'apprentissage.  Deux  exemples  de  technologies  qui  ont  une  affinité  avec  de  telles 
données sont la détection visuelle  d'objets pour les systèmes autonomes [68] et la reconnaissance 
vocale [69]. 

L'objectif de l'étude des algorithmes de Machine Learning est de fournir un aperçu des algorithmes 
les  plus  efficaces  et  d'apprendre  dans  quelle  mesure  ils  peuvent  être  mis  en  œuvre  dans  des 
applications  de  Machine  Learning  à  grande  échelle.  Afin  de  mener  une  étude  approfondie  mais 
efficace, les questions de recherche documentaire suivantes ont été formulées :  

1. Quels sont les algorithmes de Machine Learning supervisé les plus performants ? 

 
30 
     

Ceci est étudié en analysant les articles publiés qui comparent les performances de ces algorithmes 
sur  différents  ensembles  de  données.  La  performance  est  évaluée  sur  la  base  de  trois  critères 
principaux : 

(a) Vitesse de classification : le temps nécessaire pour classer une instance de requête. 

(b) Précision : Le nombre de prédictions correctes faites divisé par le nombre total de prédictions. 

(c) Tolérance au bruit : dans quelle mesure l'algorithme de Machine Learning peut‐il gérer le bruit tel 
que les fonctionnalités non pertinentes ou redondantes. 

Plus important encore, les goulots d'étranglement et les problèmes les plus importants sont étudiés 
et l'intelligibilité du modèle est prise en compte. 

2.  Quelles  sont  les  possibilités  de  mise  à  l'échelle  de  ces  algorithmes  de  Machine  Learning 
performants ? 

Une  analyse  de  complexité  théorique  est  effectuée  sur  les  algorithmes  les  plus  performants  pour 
déterminer leur potentiel d'évolutivité. De plus, la viabilité pratique de ces algorithmes à l'échelle est 
analysée. 

4.2 Arbres de décision 

Un arbre de décision est un modèle très simple. Etant donnée plusieurs caractéristiques, la décision 
se commence par un de ces caractéristiques ; si ce n’est pas suffisant, on utilise une autre, ainsi de 
suite. Il est largement connu et utilisé dans de nombreuses entreprises pour faciliter le processus de 
prise de décision et l’analyse des risques. Il a été largement utilisé dans les années 1960‐1980 pour la 
construction  de  systèmes  experts.  Les  règles  sont  introduites  manuellement,  pour  cette  raison  ce 
modèle a perdu sa popularité après les années 80. L’apparition des méthodes mathématiques pour 
construire  les  arbres  de  décision  fait  revenir  ce  modèle  à  la  bataille  des  algorithmes  de 
l’apprentissage automatique. 
Les  algorithmes  d'arbre  de  décision  comprennent  des  arbres  qui  catégorisent  les  données  en 
examinant  les  valeurs  des  caractéristiques.  Chaque  nœud  dans  un  arbre  de  décision  décrit  une 
caractéristique qui doit être classée, et les branches décrivent les valeurs qui sont prises en compte 
par un tel nœud. Une étude des travaux existants sur la construction d'arbres de décision est réalisée 
par Murthy [41], qui décrit l'utilisation des arbres de décision dans plusieurs disciplines telles que les 
statistiques, la reconnaissance de formes et le Machine Learning.  

 
31 
     

Il existe plusieurs algorithmes automatiques pour construire les arbres de décision : 

 ID3 (Iterative  Dichotomiser  3):  développé  en  1986  par  Ross  Quinlan.  Il  peut  être  appliqué 
seulement sur les caractéristiques nominales. Il est utilisé pour le classement. 
 C4.5:  une  extension  de  ID3  développé  par  Ross  Quinlan.  Il  peut  être  appliqué  sur  tous  les 
types de caractéristiques. Il est utilisé pour le classement. 
 C5.0: une extension commerciale de C4.5, toujours développé par Ross Quinlan. 
 CART (Classification  and  Regression  Trees)  :  comme  C4.5  mais  utilise  d’autres  métriques. 
L’algorithme supporte notamment la régression. 

L'un des algorithmes d'arbre de décision les plus populaires dans la littérature est l'algorithme  C4.5 
de Quinlan [42], une version améliorée de l'algorithme d'arbre de décision précédent de Quinlan, le 
ID3  [43].  C4.5  utilise  une  stratégie  de  division  pour  régner  pour  faire  pousser  un  arbre,  en 
sélectionnant  une  caractéristique  avec  un  minimum  de  deux  résultats  qui  divise  l'ensemble 
d'échantillons  le  plus  efficacement  possible.  Lorsque  toutes  les  instances  d'un  certain  ensemble 
appartiennent à une classe, ou que la taille de l'ensemble est trop petite, une étiquette est attribuée 
à  une  feuille  d'arbre  de  décision  égale  à  l'étiquette  de  classe  la  plus  populaire  [35].  Un  arbre  de 
décision est illustré à la figure 3.1. Le nœud de décision le plus élevé est appelé nœud racine.  

La  fonctionnalité  qui  peut  trier  les  données  le  plus  efficacement  est  choisie  comme  nœud  racine. 
Cette stratégie est dupliquée pour chaque sous‐division des données d'apprentissage, jusqu'à ce que 
toutes les données soient divisées en lots de  classes spécifiques. Déterminer  quelle caractéristique 
trie  les  données  d'apprentissage  le  plus  efficacement  peut  être  effectué  grâce  à  de  nombreuses 
techniques  telles  que  "l'index  de  Gini"  [44],  "Information  Gain"  [55]  ou  "l'algorithme  ReliefF"  [46]. 
Même si chacune de ces techniques diffère de l'autre, une étude des algorithmes d'arbre de décision 
par  Murthy  [41]  a  montré  qu'il  n'existe  pas  de  meilleure  méthode  unique  pour  déterminer  la 
meilleure  caractéristique  de  tri.  Cependant,  pour  un  ensemble  de  données  particulier,  la 
comparaison  de  techniques  individuelles  peut  fournir  des  informations  utiles  pour  le  choix  de  la 
fonctionnalité de tri. 

 
32 
     

  Figure 4‐1 : Arbre de décision pour l'ensemble d'apprentissage avec les classes Yes et No. 
L'instance [at1=a1, at2=b2, at3=a3, at4=a4] trie les nœuds at1, at2 et at3, classant l'instance 
  comme positif représenté par la valeur "Oui" [6]. 

Afin  d'obtenir  des  arbres  de  la  bonne  taille,  Breiman  et  al.  [44]  ont  proposé  «  l'élagage  »,  une 
technique utilisée pour réduire la complexité des arbres de décision en supprimant des sections d'un 
arbre  qui  fournissent  peu  d'informations  pour  la  classification  des  instances.  Pour  éviter  le 
surapprentissage des données d'apprentissage, deux approches courantes peuvent être utilisées : (1) 
arrêter  l'algorithme  d'apprentissage  avant  qu'un  ajustement  parfait  ne  soit  atteint ;  et  (2)  élaguer 
l'arbre  de  décision.  Une  enquête  sur  les  méthodes  d'élagage  populaires  est  présentée  par  Elomaa, 
qui conclut qu'il n'existe aucune meilleure méthode d'élagage unique. Breslow et Aha [71] donnent 
un  bon  aperçu  des  méthodes  de  simplification  des  arbres  de  décision  pour  améliorer  la 
compréhensibilité. 

4.2.1 Avantages et défis 

Le  principal  avantage  des  algorithmes  d'arbre  de  décision  est  qu'ils  sont  faciles  à  comprendre  et  à 
interpréter.  La  raison  pour  laquelle  un  arbre  de  décision  particulier  classe  les  données  dans  une 
certaine classe peut être facilement interprétée, même par des personnes qui ne sont pas expertes 
dans le domaine. Tjen‐Siem Lim et al. ont effectué une étude comparative des arbres de décision par 
rapport à d'autres algorithmes de Machine Learning et ont conclu que l'algorithme C4.5 possède une 
très bonne combinaison de vitesse de classification et de taux d'erreur [54]. Ruggieri [55] a fait une 
recherche  où  il  a  examiné  les  performances  d'exécution  de  l'algorithme  C4.5.  Sur  la  base  de  cette 

étude,  il  a  créé  une  version  améliorée  du  C4.5,  le  EC4.5,  qui  calcule  des  arbres  de  décision 

identiques à ceux du C4.5 avec un gain de performances accru allant jusqu'à 500 % [55]. 

 
33 
     

4.2.2 Analyse d'évolutivité 

Les  arbres  de  décision  ne  contenant  qu'une  seule  variable  (univariée)  sont  très  importants  dans  le 
monde de l'exploration de données et diffèrent par leur méthode de division. La construction d'un 
arbre  de  décision  univarié  a  une  complexité  temporelle  de  O(dfNlog(N)),  où  N  représente  la  taille 
totale de l'échantillon, f le nombre de caractéristiques et d le nombre de nœuds de l'arbre [56]. La 
construction  d'arbres  de  décision  univariés  dans  un  délai  raisonnable  est  très  bénéfique  dans  les 
applications  d'exploration  de  données  qui  contiennent  de  grands  ensembles  de  données,  et  peut 
être réalisée en parallélisant ces algorithmes. Olcay et Onur [56] proposent des applications côte à 
côte  de  l'algorithme  C4.5  à  travers  trois  méthodes  différentes  :  (1)  la  parallélisation  basée  sur  les 
caractéristiques  ;  (2)  parallélisation  basée  sur  les  nœuds  ;  et  (3)  la  parallélisation  basée  sur  les 
données. Ils ont conclu que théoriquement, la parallélisation basée sur les fonctionnalités atteindrait 
des accélérations élevées sur des ensembles de données à haute dimensionnalité, une parallélisation 
basée  sur  des  données  sur  de  grands  ensembles  de  données  et  une  parallélisation  basée  sur  des 
nœuds  sur  des  ensembles  de  données  contenant  des  arbres  avec  un  nombre  élevé  de  nœuds 
lorsqu'ils  sont  discriminés  par  l'arbre  de  décision  en  série.  Cependant,  dans  tous  ces  cas,  un 
équilibrage de charge  parfait est requis. Dans leurs simulations, ils ont observé que la méthode de 
parallélisation qui fonctionne le mieux ou le degré d'accélération atteint dépend de la répartition de 
la charge entre les processeurs. 

4.3 Réseaux de neurones artificiels 

Les  réseaux  de  neurones  sont  largement  reconnus  comme  un  algorithme  de  Machine  Learning 
efficace en surpassant de nombreux algorithmes tels que les machines à vecteurs de support dans 
diverses  applications  pertinentes  telles  que  la  reconnaissance  de  formes  [47][48].  Un  réseau  de 
neurones  est  une  architecture  composée  d'unités  appelées  neurones.  Ces  architectures  se 
composent généralement de trois couches différentes : la couche d'entrée qui contient le vecteur de 
caractéristiques d'entrée ; la couche de sortie qui se compose de la réponse du réseau neuronal ; et 
la couche intermédiaire qui contient les neurones qui se connectent à la fois à l'entrée et à la sortie. 
Un  exemple  de  réseau  de  neurones  est  illustré  à  la  figure  4‐2.  Ce  réseau  de  neurones  artificiels, 
appelé réseau de neurones Feed‐forward, permet uniquement aux signaux de passer de l'entrée à la 
sortie. 

 
34 
     

 
Figure 4‐2 : Réseau de neurones artificiels à anticipation, permet uniquement aux signaux de 
  se déplacer de l'entrée à la sortie [57]. 

Les  réseaux  de  neurones  artificiels  se  composent  de  trois  caractéristiques  fondamentales  : 
l'architecture  du  réseau  ;  fonctions  d'entrée  et  d’activation  ;  et  le  poids  des  connexions  d'entrée. 
L'architecture et les fonctions du réseau sont choisies au stade initial et restent les mêmes pendant la 
formation. Les performances du réseau de neurones dépendent de la valeur des poids. Les poids sont 
réglés pendant l'entraînement afin d'obtenir un certain rendement. L'ANN peut être entraîné à l'aide 
d'une  multitude de programmes  d'entraînement  différents  [57]. Une méthode d'entraînement  très 
importante  est  l'algorithme  de  rétropropagation  [50].  D'autres  techniques  incluent  l'algorithme 
d'élimination  de  poids  qui  déduit  automatiquement  la  topologie  du  réseau  et  les  algorithmes 
génétiques qui tentent de dériver l'architecture du réseau et d'entraîner ses poids [51][52]. 

4.3.1 Avantages et défis 

Le principal problème de la mise en œuvre de NN est de dériver la bonne taille de couche cachée. 
Lorsque  la  quantité  de  neurones  n'est  pas  déterminée  correctement,  le  système  dérivé  ne  se 
généralise pas bien aux instances invisibles. D'un autre côté, lorsque trop de nœuds sont utilisés, un 
surajustement  peut  se  produire  et  l'optimum  souhaité  peut  ne  pas  être  trouvé  du  tout.  Dériver  la 
bonne  quantité  de  neurones  est  discuté  dans  une  étude  de  Kon  et  Plaskota  [48].  Le  principal 
avantage de l'utilisation de réseaux de neurones artificiels est sa capacité à traiter des données avec 
des  caractéristiques  de  grande  dimension  telles  que  des  images.  Les  inconvénients  des  réseaux  de 
neurones  artificiels  sont  des  coûts  de  calcul  élevés  qui  consomment  de  grandes  quantités  de 
puissance de traitement et d'utilisation de la mémoire physique, et une compréhension difficile pour 
les utilisateurs moyens de Machine Learning [31][34]. 

 
35 
     

4.3.2 Analyse d'évolutivité 

Pour discuter de l'évolutivité des réseaux de neurones, l'algorithme de propagation arrière largement 
utilisé  est  considéré.  L'algorithme  de  rétropropagation,  tel  que  décrit  par  Kotsiantis  et  al.  [31], 
comprend généralement les six étapes suivantes : 

1. Une instance est donnée en entrée du réseau. 

2.  La  sortie  du  système  est  corrélée  au  résultat  souhaité  à  partir  d'un  échantillon  et  l'erreur  est 
déterminée pour chaque neurone. 

3. Calculez l'erreur locale pour chaque neurone. 

4. Modification du poids pour minimiser l'erreur locale. 

5. Pour l'erreur, une punition est attribuée aux neurones de niveau précédent, où plus d'importance 
est ajoutée aux neurones les plus pondérés. 

6. Une réitération est effectuée où chaque punition neuronale est utilisée comme son erreur. 

La  disposition  optimale  des  poids  est  obtenue  grâce  à  de  multiples  ajustements  des  poids  par 
l'algorithme.  Avec  n  instances  et  W  poids,  le  temps  de  calcul  de  l'étape  d'apprentissage  est  égal  à 
O(nW) [31]. Aucune formule exacte n'existe pour déterminer la quantité de formation requise pour 
un réseau de neurones. Ce nombre dépend généralement du problème et de l'architecture de réseau 
de neurones  choisie.  Une  étude de Barron [58] a montré que l'erreur dans un réseau de  neurones 
feedforward  pouvait  être  égale  à  O(1/N).  De  plus,  une  règle  empirique  existe  pour  la  taille  de 
l'ensemble d'apprentissage T [59] : 

                           T = O(N/∈ )                                                                                                (4‐1) 

Où ∈ représente la part des erreurs de classification qui est autorisée. Étant donné que l'opération 
d'anticipation  est  O(N),  de  grands  ordinateurs  parallèles  peuvent  être  utilisés  pour  entraîner  ces 
réseaux neuronaux et dériver les poids, puis les copier sur un ordinateur série pour la mise en œuvre. 

4.4 Machines à vecteurs de support 

Les  machines  à  vecteurs  de  support  (SVM)  sont  une  technique  de  classification  discriminante  qui 
dérive  du  principe  de  minimisation  des  risques  structurels  de  la  théorie  de  l'apprentissage 
informatique.  L'objectif  avec  SVM  est  de  trouver  la  fonction  de  classification  la  plus  optimale  qui 
différencie  les  unités  de  classes  dans  les  données  d'entraînement.  Avec  un  ensemble  de  données 

 
36 
     

linéairement  séparable,  la  fonction  de  classification  la  plus  optimale  peut  être  décidée  en 
construisant un hyperplan qui maximise la marge entre deux ensembles de données et crée ainsi la 
plus  grande  distance  possible  entre  les  ensembles  de  données  [48].  Une  visualisation  de  cette 
stratégie est illustrée à la figure 4.3. 

  Figure 4‐3 : Création de l'hyperplan séparateur optimal à l'aide de vecteurs supports [9]. 

L'idée derrière les SVM est qu'en trouvant la marge maximale et donc l'hyperplan le plus optimal, la 
meilleure capacité de généralisation est atteinte. Cela se traduit par les meilleures performances de 
classification à la fois pour les données d'entraînement et les données futures. Afin de trouver des 
hyperplans de marge maximale, SVM vise à maximiser la fonction 4.1 par rapport à 𝑤⃗ et b : 

Ici,  t  représente  la  quantité  de  points  d'apprentissage,  (toto)i  représente  les  multiplicateurs 
lagrangiens  et  LP  illustre  le  lagrangien.  Le  vecteur  𝑤⃗  et  la  constante  b  caractérisent  l'hyperplan. 
Lorsque l'hyperplan de séparation optimal est trouvé, les points de données qui se trouvent sur sa 
marge sont définis comme les points du vecteur de support. La solution est une combinaison linéaire 
de ces points de vecteur de support, et tous les autres points de données sont ignorés. Cela signifie 
que la complexité d'un SVM n'est pas affectée par le nombre de fonctionnalités présentes dans les 
données  d'entraînement,  ce  qui  rend  les  SVM  très  adaptés  aux  problèmes  d'apprentissage  qui 
contiennent un grand nombre de fonctionnalités par rapport au nombre d'instances d'entraînement. 
Un  problème  avec  la  mise  en  œuvre  des  SVM  est  que  pour  de  nombreux  ensembles  de  données, 

 
37 
     

aucun hyperplan de séparation ne peut être trouvé lorsque les données  contiennent des instances 
mal classées. Cependant, les problèmes du monde réel impliquent souvent des données séparables 
de manière non linéaire, où aucun hyperplan ne peut être trouvé pour diviser correctement les cas 
dans un ensemble d'apprentissage. Une réponse à cette inséparabilité Le problème consiste à décrire 
les  données  dans  un  espace  de  fonction  modifié.  En  choisissant  un  espace  de  caractéristiques 
modifié  approprié  de  dimensionnalité  plus  que  nécessaire,  il  est  possible  de  rendre  divisible  tout 
ensemble d'apprentissage régulier [31]. 

4.4.1 Avantages et défis 

L'utilisation de SVM offre de nombreux avantages. L'algorithme est basé sur une théorie établie, ne 
souhaite que des dizaines d'échantillons d'apprentissage et ne répond pas au nombre de dimensions 
[31]. Cependant, la technique d'apprentissage a des algorithmes d'entraînement et de catégorisation 
relativement  complexes,  et  une  utilisation  élevée  de  la  mémoire  et  du  temps  pendant  les  phases 
d'entraînement et de classification [34]. 

4.4.2 Analyse d'évolutivité 

L'apprentissage  des  machines  à  vecteurs  de  support  se  fait  en  résolvant  un  problème  de 
programmation  quadratique  (QP)  de  dimension  N,  avec  N  représentant  le  nombre  d'instances 
d'apprentissage. La mise en œuvre de méthodes QP standard pour résoudre ce problème implique 
de  grandes  opérations  matricielles  et  des  calculs  numériques  fastidieux.  Cette  méthode  est  très 
inefficace et peu pratique pour des applications à grande échelle, et constitue un inconvénient bien 
connu de la méthode SVM. Il existe des méthodes plus efficaces qui peuvent résoudre le problème 
QP  relativement  rapidement,  telles  que  l'optimisation  minimale  séquentielle  (SMO)  [60].  Cette 
méthode fragmente le problème QP en sous‐problèmes QP et résout le problème de programmation 
quadratique  SVM  sans  l'utilisation  d'étapes  d'optimisation  numérique  QP  ou  de  stockage  matriciel 
supplémentaire.  Une  nouvelle  approche  SVM  trouve  une  estimation  de  la  plus  petite  sphère 
environnante d'un groupe d'éléments [35]. Les méthodes SVM sont binaires et lorsqu'un problème 
multi‐classes doit être résolu, le problème est divisé en un groupe de divers défis de classification. 

4.5 K‐Nearest‐Neighbor 

La classification k‐Nearest‐Neighbor, ou KNN, est un algorithme de Machine Learning qui localise un 
groupe de k objets dans un cas d'apprentissage qui est le plus proche de l'objet de test, puis attribue 
une  étiquette  dérivée  de  la  prévalence  d'une  classe  dans  la  proximité  la  plus  proche.  Trois 

 
38 
     

composants  importants  sont  nécessaires  pour  cet  algorithme  :  un  groupe  d'objets  étiquetés  ;  une 
métrique  de  proximité  ;  et  le  nombre  k  de  plus  proches  voisins  [35].  Une  métrique  de  proximité 
populaire  utilisée  pour  la  classification  KNN  est  la  "distance  euclidienne",  expliquée  par  la  formule 
[6] : 

D'autres  métriques  existent  pour  définir  la  distance  entre  les  instances  d'un  jeu  de  données.  Les 
exemples incluent les métriques Minkowsky, Camberra ou Chebychev [36], bien que des stratégies 
de  pondération  soient  souvent  utilisées  pour  modifier  l'influence  du  vote  pour  des  résultats  plus 
précis. 

  Figure 4‐4 : Représentation d'un graphe k‐Plus‐Proche‐Voisin. 

Lorsque la liste des k plus proches voisins est acquise, les objets de test sont classés selon la classe 
majoritaire, donnée dans la formule 4.4 : 

 
39 
     

Ici, v représente l'étiquette de classe, Yi représente la i‐ème étiquette de classe voisine la plus proche 
et  I(∙) est les fonctions indicatrices qui renvoient la valeur un pour un argument valide ou zéro pour 
un argument invalide [36]. 

4.5.1 Avantages et défis 

Le  principal  avantage  des  algorithmes  k‐Nearest‐Neighbor  est  qu'ils  sont  faciles  à  comprendre  et  à 
mettre en œuvre. Bien qu'il soit simple, l'algorithme fonctionne toujours bien dans de nombreux cas, 
en  particulier  pour  les  classes  multimodales.  Cependant,  des  problèmes  essentiels  influencent  le 
comportement  de  l'algorithme.  Kotsiantis  et  al.  [31]  décrivent  trois  raisons  principales  :  (1)  de 
grandes  exigences  de  stockage  ;  (2)  hypersensible  au  choix  de  la  fonction  de  similarité  ;  et  (3)  il 
manque une méthode clé pour sélectionner k. 

4.5.2 Analyse d'évolutivité 

La  phase  d'apprentissage  de  la  classification  KNN  n'existe  pas,  mais  toutes  les  valeurs  des 
caractéristiques  sont  stockées  en  mémoire.  Contrairement  à  d'autres  algorithmes  de  Machine 
Learning  comme les SVM  ou les arbres de décision, les classificateurs KNN sont considérés comme 
des  apprenants  lents.  La  création  du  modèle  est  peu  coûteuse  en  calcul,  tandis  que  la  phase  de 
classification  est  coûteuse  en  calcul  car  chaque  k  plus  proche  voisin  a  besoin  d'une  étiquette.  Cela 
nécessite  de  calculer  la  métrique  de  distance  de  l'instance  non  étiquetée  à  toutes  les  instances  de 
l'ensemble étiqueté, ce qui peut être extrêmement coûteux, en particulier pour les grands ensembles 
de données. Il existe un certain nombre de méthodes existantes qui traitent ce problème, telles que 
l'algorithme de jointure d'index inversé [36], l'un des algorithmes les plus rapides pour produire des 
graphes KNN exacts. Cependant, cet algorithme nécessite une complexité temporelle asymptotique 
en O(n2) et a un temps d'exécution en croissance exponentielle. Des algorithmes plus récents sont 
en  cours  de  développement  qui  garantissent  une  complexité  temporelle  de  O(n),  comme 
l'algorithme de filtrage glouton de Park et al. [62]. 

 
40 
     

4.6 Discussion et conclusion 

Il  existe  plusieurs  études  comparatives  empiriques  qui  examinent  et  discutent  des  algorithmes  de 
Machine Learning les plus récents et les plus populaires. Kotsiantis et al. montrent que C4.5 contient 
un  bon  mélange  de  taux  d'erreur  et  de  temps  de  calcul,  avec  des  arbres  de  décision  faciles  à 
interpréter. Cependant, par rapport à SVM, C4.5 a des performances inférieures lorsqu'il existe des 
caractéristiques  multidimensionnelles  et  continues  [31].  De  plus,  Kotsiantis  et  Miyamoto  et  al. 
montrent  qu'en  comparant  un  sous‐ensemble  de  C4.5  et  KNN  (parmi  d'autres  algorithmes)  avec 
SVM, SVM s'est avéré avoir une performance significativement plus élevée que C4.5 et kNN [31][63]. 
Les difficultés qui surviennent lorsque l'on travaille avec les réseaux de neurones, viennent du choix 
de  la  bonne  taille  de  la  couche  cachée.  Une  sous‐estimation  de  cette  couche  peut  conduire  à  une 
mauvaise généralisation, et une surestimation peut conduire à un surapprentissage [10]. Royas‐Bello 
et al. et Aruna et al. ont comparé SVM avec les réseaux de neurones en utilisant plusieurs ensembles 
de  données  et  ont  tous  deux  conclu  que  SVM  a  une  plus  grande  précision  que  les  réseaux  de 
neurones [64][65]. L'algorithme kNN stocke toutes les valeurs de caractéristiques et n'a pas de phase 
d'apprentissage.  Cependant,  plusieurs  problèmes  peuvent  affecter  les  performances  de  cet 
algorithme. Kotsiantis et al. et Wu et al. décrivent que kNN nécessite un stockage important, qu'il est 
sensible au bruit et aux caractéristiques non pertinentes, qu'il est sensible à la mesure de distance 
utilisée  et  que  le  choix  de  k  n'est  pas  fondé  sur  des  principes  [31][35].  De  même,  la  présence  de 
fonctionnalités non pertinentes dans un réseau de neurones peut rendre l'apprentissage du réseau 
très inefficace. 

Les SVM et les réseaux de neurones obtiennent de meilleures performances en travaillant avec des 
fonctionnalités multidimensionnelles ou continues, par opposition aux systèmes basés sur la logique 
qui  fonctionnent  mieux  avec  des  fonctionnalités  catégoriques  ou  discrètes.  De  plus,  les  NN  et  les 
SVM  obtiennent  de  meilleures  performances  lorsqu'ils  travaillent  avec  la  multi  colinéarité  et  une 
relation  entrée‐sortie  existante.  Les  arbres  de  décision,  en  revanche,  ne  fonctionnent  pas  bien 
lorsque  le  partitionnement  diagonal  est  présent.  Les  classificateurs  kNN  peuvent  être  très  affectés 
par le bruit, une caractéristique à laquelle s'opposent les arbres de décision qui sont très tolérants au 
bruit. Les arbres de décision univariés sont surpassés (en termes de vitesse) par les NN de plusieurs 
ordres de grandeur. 

En  repensant  aux  « No  Free  Lunch  Theorems  of  Optimizations  »  de  Wolpert  et  Macready,  aucun 
algorithme  de  Machine  Learning  ne  peut  surpasser  un  autre  sur  tous  les  ensembles  de  données. 
Cependant,  en  effectuant  une  étude  comparative,  des  informations  peuvent  être  apprises  sur  les 
performances  et  la  convivialité  des  algorithmes  pour  des  applications  spécifiques.  Les 

 
41 
     

caractéristiques importantes des quatre arbres de décision des techniques de Machine Learning, les 
réseaux de neurones artificiels, kNN et SVM sont résumées et comparées dans le tableau 4.1, sur la 
base des preuves d'études empiriques et théoriques examinées. 

  Tableau 4‐1 : Comparaison des algorithmes d'apprentissage automatique (les signes ++ 
représentent la meilleure situation et les signes – représentent la pire situation). ANN obtient les 
points les plus élevés et est choisi comme le meilleur algorithme candidat. 
 

En conclusion de cette étude, lorsque l'on pose la question de savoir quel algorithme fonctionne bien 
sur un problème de classification particulier, la meilleure approche pour répondre à cette question 
consiste  à  effectuer  un  benchmark  des  meilleurs  algorithmes  et  à  sélectionner  l'algorithme  le  plus 
prometteur pour une application spécifique. 

La dernière décennie de progrès sur les tâches de reconnaissance visuelle impliquait principalement 
l'utilisation  des  fonctionnalités  SIFT  et  HOG.  Lorsque  l'on  examine  l'application  particulière  de  la 
reconnaissance visuelle, les meilleurs algorithmes candidats du tableau 4‐1 sont les ANN et les SVM. 
Les  réseaux  de  neurones  artificiels,  en  particulier  les  réseaux  de  neurones  convolutifs,  ont  été 
largement  utilisés  dans  les  années  1990,  mais  sont  tombés  en  désuétude  dans  le  domaine  de  la 
vision par ordinateur en raison de l'essor des SVM. Cependant, Krizhevsky et al. a ravivé l'intérêt pour 
les CNN en présentant une augmentation significative de la précision de la classification des images 
sur le défi de reconnaissance visuelle à grande échelle ImageNet (ILSVRC). Ce résultat découle de la 
formation  d'un  grand  CNN  sur  1,2  million  d'images  étiquetées.  Avec  l'abondance  de  données 
visuelles  actuellement  disponibles  et  les  preuves  empiriques  de  leur  précision  élevée  sur  divers 
ensembles de données, CNN est choisi comme le meilleur algorithme candidat. 

   

 
42 
     

5. CADRE D’IDENTIFICATION D’OBJETS 
 

Dans  ce  chapitre,  un  nouveau  cadre  d'identification  d'objets  est  discuté.  Les  exigences  et  les 
contraintes du système des entrepôts et les directives de placement des codes à barres sont utilisées 
pour définir l'objectif souhaité, ainsi que les données d'entrée, les données et les sorties du cadre. 

5.1 Directives de placement des codes‐barres 

Il  existe  de  nombreuses  applications  capables  de  trouver  et  de  lire  les  codes‐barres  de  scènes 
complexes avec une caméra, et de les utiliser pour identifier des objets. Les différences d'éclairage, 
de  poses  et  de  distorsion  de  perspective  peuvent  rendre  l'identification  des  codes‐barres  assez 
difficile, mais il existe des algorithmes qui fournissent des solutions adaptées à ces scènes complexes. 
Le cas le plus intéressant est celui où un code‐barres est masqué du fait de la pose du produit, et ne 
peut être identifié de ce fait sans altérer la position de l'objet. La figure 5‐1 fournit un exemple de 
conteneur d'entrepôt composé d'articles où le code‐barres est visible ainsi que d'autres articles avec 
des codes‐barres dissimulés derrière d'autres surfaces. 

  Figure 5‐1 : Une disposition typique de produits dans un conteneur où tous les codes‐barres ne 
sont pas visibles. Reprise de la principale question de recherche : un modèle de placement de code‐
barres peut‐il être dérivé pour localiser les codes‐barres sur des produits avec des codes‐barres 
 

 
43 
     

Il  est  connu  qu'un  certain  modèle  existe  pour  le  placement  du  code  à  barres  sur  des  objets  de 
différentes  tailles  et  formes.  La  plupart  des  articles  qui  sont  traités  dans  la  majorité  des  entrepôts 
suivent  les  directives  GS1US  pour  le  placement  des  symboles  de  codes‐barres.  Ces  directives 
fournissent  les  principes  généraux  qui  s'appliquent,  les  règles  obligatoires  et  les  recommandations 
pour  le  placement  des  symboles  de  code‐barres  sur  des  types  d'emballages  spécifiques,  comme 
illustré dans la figure 5‐2 pour les bouteilles et les pots. 

  Figure 5‐2 : Placement du symbole de code‐barres sur les bouteilles et les pots en utilisant les 
directives standard GS1US. Tous les articles n'adhérant pas aux directives, la question qui se pose 
  est la suivante : un modèle de placement de code‐barres utilisable peut‐il être découvert ? 

Ces  directives  peuvent  s'avérer  très  utiles  pour  prédire  l'emplacement  correct  du  code‐barres 
lorsque le code‐barres est masqué. Cependant, dans de nombreux cas, le placement de codes‐barres 
sur  les  articles  peut  déroger  aux  directives  GS1US.  Bien  que  tous  les  articles  n'adhèrent  pas  à  ces 
règles  de  placement  des  codes‐barres,  il  est  très  intéressant  de  rechercher  s'il  existe  une  relation 
utilisable  entre  les  caractéristiques  des  objets  telles  que  la  taille  ou  la  forme,  et  l'emplacement  du 
code‐barres.  Si  cette  relation  existe,  elle  peut  être  utilisée  pour  prélever  et  numériser  des  articles 
très  efficacement  dans  un  entrepôt,  éliminant  ainsi  le  besoin  d'un  travailleur  humain  pour 
l'identification des objets. L'apprentissage automatique sera mis en œuvre pour dériver ces modèles 
de placement de codes‐barres sur des objets de différentes formes et tailles. En analysant la forme, 
la texture et un ensemble d'autres caractéristiques possibles, un nouveau cadre de reconnaissance 

 
44 
     

d'objets est  proposé qui  devrait déterminer de manière robuste l'emplacement des  codes à barres 


des objets. 

5.2 Cadre de localisation de codes‐barres 

Le  cadre  du  cadre  complet  de  reconnaissance  d'objets  est  défini.  Comme  décidé  au  chapitre  4,  le 
cadre  sera  construit  à  l'aide  d'un  réseau  de  neurones  convolutifs.  L'objectif  de  cette  méthode  de 
localisation de code‐barres est défini comme suit : 

Trouvez  le  modèle  de  placement  du  code‐barres  sur  les  produits  à  l'aide  d'un  réseau  de 
neurones  convolutifs  pour  déterminer  sur  quelle  surface  d'un  article  se  trouve  le  code‐
barres. 

Afin d'automatiser la phase de rebin du système de traitement des commandes, comme illustré dans 
la  figure  5‐3,  deux  exigences  importantes  doivent  être  satisfaites  par  le  cadre  de  reconnaissance 
d'objets nouvellement développé : 

1. Le système doit atteindre 40 % de précision de prédiction de localisation de codes‐barres : 
avec les systèmes de traitement des commandes traitant de grandes quantités de produits, 
les  systèmes  de  vision  nouvellement  conçus  doivent  viser  une  précision  de  prédiction  d'au 
moins 40 %.  Par la suite, des améliorations peuvent être apportées en introduisant plus de 
données  à  partir  desquelles  apprendre,  ou  en  mettant  en  œuvre  des  techniques 
d'apprentissage plus optimales. 

2. Le système doit être évolutif pour des ensembles de produits très volumineux : le système 
de vision conçu doit être capable de traiter les ensembles de produits actuels des entrepôts, 
qui sont de l'ordre d’une centaine de produits différent dans les entrepôts étudiés. 

 
45 
     

 
Figure 5‐3 : Phase de réaffectation du système de traitement des commandes. Les commandes 
  sont créées avec des articles provenant de différentes stations de tri de recyclage. 

Lors de la conception du cadre de reconnaissance d'objets, une contrainte système importante doit 
être prise en compte : 

1.  Les  données  ne  peuvent  pas  être  collectées  facilement :  la  création  et  l'annotation  de 
données  pour  de  grands  ensembles  de  produits  à  utiliser  dans  un  pipeline  d'apprentissage 
peuvent prendre beaucoup de temps et être coûteuses. De plus, dans la plupart des cas, les 
entrepôts n’ont pas accès à ces ensembles de produits, par ex. 

5.3 Définition des paramètres du cadre 

Afin de construire le cadre de localisation de codes‐barres, l'entrée, la sortie et la définition de classe 
sont d'abord définies. 

5.3.1 Catégories de produits 

Les entrepôts disposent de solutions d'automatisation pour différents objets, et les objets traités par 
ces  solutions  présentent  généralement  une  grande  variété  de  formes,  de  couleurs,  de  poids  et 
d'autres propriétés physiques. Il est important de réaliser que pour ce projet, l'accent est mis sur le 
segment de l'entreposage. De plus, les produits sont choisis parmi des catégories standardisées, car 
cela évite les ambiguïtés concernant la définition et l'interprétation des classes. L'une de ces normes 
est  GS1‐US,  qui  fournit  une  catégorisation  appropriée  pour  tester  divers  types  de  catégories 
d'articles, voir la figure 5‐6. La portée de ce projet est restreinte aux articles de la catégorie « Boîte », 

 
46 
     

pour  lesquels  une  preuve  de  concept  est  construite.  Une  fois  qu'un  cadre  de  travail  est  réalisé, 
d'autres catégories de produits peuvent être ajoutées au cadre. 

  Figure 5‐4 : Catégories de produits GS1‐US. Cette étude de thèse se concentrera uniquement sur 
les objets en forme de « boîte ». 
 

5.3.2 Données d'entrée 

L'ensemble de données créé se compose d'images d'un élément de catégorie de boîte, prises à partir 
d'une vue de dessus. Des exemples de ces images avec des éléments uniques de différentes poses 
peuvent être trouvés dans la figure 5‐7. 

                                     
Figure 5‐6 : Boîte de cookies avec un code‐barres caché. 
  Figure 5‐5 : Boîte de céréales avec 
Tant pour la boîte de céréales que pour la boîte de cookies, 
un code‐barres visible sur le plan 
le cadre de localisation du code‐barres devrait être capable 
de déterminer l'emplacement du code‐barres. 

 
47 
     

Les  images  seront  importées  dans  le  cadre  en  tant  que  données  RVB,  avec  une  résolution  de 

400x300. Ainsi, les données d'entrée consisteront en une matrice de conception X ∈ ℝNx400x300x3, où 

‘N ’ représente le nombre d'échantillons dans l'ensemble de données. 

5.3.3 Définition de classe 

Les  réseaux  de  neurones  convolutifs  étant  un  type  d'apprentissage  supervisé,  des  données 
étiquetées  sont  nécessaires  pour  la  phase  d'apprentissage  du  cadre.  Afin  d'étiqueter  efficacement 
toutes les données, la définition de classe suivante est choisie : 

cn = {1, 2, 3, 4, 5, 6} 

Dans cette définition de classe, chacun des nombres représente l'une des six faces d'un objet de la 
taille  d'une  boîte.  Cette  définition  de  classe  est  toujours  appliquée  du  point  de  vue  de  la  caméra. 
Dans tous les cas, la face la plus proche de la caméra est définie comme la face supérieure (c=1), à 
partir de là les autres faces sont définies. La face opposée à la face supérieure est la face inférieure 
(c=3). Les faces adjacentes aux faces supérieure et inférieure sont la face avant (c=2), arrière (c=4), 
droite (c=5) et gauche (c=6). Avec la perspective de la caméra à l'esprit, la définition est interprétée 
et illustrée comme suit : 

cn = {1, 2, 3, 4, 5, 6} = {top, front, bottom, back, right, left} 

  Figure 5‐7 : Cadre de reconnaissance d'objets proposé avec définition de classe cn = {1, 2, 3, 4, 5, 
6} = {top, front, bottom, back, right, left}. 
 

5.3.4 Vecteur de sortie 

La sortie du cadre consiste en un vecteur de distribution de probabilité catégorique, qui fournit les 
probabilités qu'un code‐barres soit présent sur un visage spécifique. Un résultat possible peut être 
donné par :  

 
48 
     

cn = {1, 2, 3, 4, 5, 6} = {0.80, 0.10, 0.05, 0.02, 0.02, 0.01} 

Ce résultat signifie qu'il existe 80 % de chances que le code‐barres se trouve sur la face supérieure, 
10 % qu'il se trouve sur la face avant, et ainsi de suite. Le cadre complet est illustré à la figure 5‐8. 

 
Figure 5‐8 : Définition de classe pour un objet en forme de boîte. Pour une image d'entrée 
  particulière avec la distribution de probabilité catégorique représentée, l'emplacement du code‐
barres résultant serait la classe 1, le côté supérieur. 
 

 
49 
     

6. IMPLEMENTATION DU DEEP LEARNING 

Dans  ce  chapitre,  une  introduction  est  d'abord  donnée  aux  réseaux  de  neurones  convolutifs.  Ci‐
après, le cadre de reconnaissance d'objets proposé est mis en œuvre dans Matlab, en construisant 
un CNN pour former un système à reconnaître la position des codes‐barres sur les produits. 

6.1 Théorie des réseaux de neurones convolutifs 

Les  réseaux  de  neurones  convolutifs  ou réseau  de  neurones  à convolution (en 


anglais CNN ou ConvNet pour Convolutional Neural Networks) sont actuellement l'un des algorithmes 
les plus importants pour l'apprentissage en profondeur avec des données d'image. Alors que pour le 
Machine Learning traditionnel, les fonctionnalités pertinentes doivent être extraites manuellement, 
le Deep Learning utilise des images brutes comme entrée pour apprendre certaines fonctionnalités. 
Les  CNN  se  composent  d'une  couche  d'entrée  et  de  sortie  et  de  plusieurs  couches  cachées  entre 
l'entrée  et  la  sortie.  Des  exemples  de  couches  intermédiaires  sont  les  couches  convolutives,  les 
couches  de  mise  en  commun  maximale  et  les  couches  entièrement  connectées.  Les  architectures 
CNN varient dans le nombre et le type de couches mises en œuvre pour son application spécifique. 
Pour  les  réponses  continues,  le  réseau  doit  inclure  une  couche  de  régression  à  la  fin  d'un  réseau, 
tandis  que  pour  les  réponses  catégorielles,  le  système  doit  inclure  une  fonction  et  une  couche  de 
classification. Les neurones de chaque couche CNN sont disposés en 3D et transforment une sortie 
tridimensionnelle  à  partir  d'une  entrée  tridimensionnelle.  Pour  notre  application  particulière,  la 
couche d'entrée contient les images en tant qu'entrées 3D, avec la hauteur, la largeur et les valeurs 
RVB  comme  dimensions.  Par  la  suite,  dans  la  couche  convolutive,  les  neurones  sont  attachés  aux 
régions de l'image et transformé en une sortie tridimensionnelle, voir figure 5‐1. 

 
50 
     

 
  Figure 6‐1 : Un CNN où la couche d'entrée rouge constituée d'une image est transformée en un 
arrangement 3D. La hauteur et la largeur de la couche cachée sont les dimensions de l'image, et la 
  profondeur se compose des trois canaux RVB [42]. 

Les  configurations  CNN  comprennent  une  multitude  de  couches  cachées.  Dans  chaque  couche,  les 
volumes  d'activation  sont  modifiés  à  l'aide  de  fonctions  différenciables.  Il  existe  quatre  types  de 
couches principales qui sont utilisées pour construire des configurations CNN, un exemple est illustré 
à la figure 6‐2. 

1. Couche convolutive (Convolutional Layer : CONV) : des filtres convolutifs sont utilisés pour dériver 
une carte d'activation à partir des données d'entrée. 

2.  Couche  d'unité  linéaire  rectifiée  (Rectified  Linear  Unit  Layer :  ReLU) :  filtre  les  valeurs  négatives 
pour ne fournir que des valeurs positives pour un temps d'entraînement beaucoup plus rapide. 

3.  Pooling  Layer  (POOL)  :  Effectue  un  sous‐échantillonnage  non  linéaire  et  réduit  le  nombre  de 
paramètres pour une sortie plus simple. 

4.  Couche  entièrement  connectée  (Fully  Connected  Layer :  FC)  :  calcule  les  scores  de  probabilité  de 
classe en  produisant  un vecteur de dimensions C,  C étant le  nombre  de  classes. Tous les  neurones 
sont connectés à cette couche. 

 
51 
     

  Figure 6‐2 : Architecture de réseau de neurones convolutifs qui classe les images d'entrée comme 
appartenant à un certain nombre de catégories, notamment les voitures, les camions, les 
  camionnettes et les vélos [41]. 

6.2 Construire un CNN dans Matlab 

Le framework décrit dans cette thèse est développé sous Matlab. La décision d'utiliser Matlab a été 
prise  car  nombreux  sont  les  entrepôts  qui  utilisent  le  programme  en  interne  pour  toutes  leurs 
applications.  Le  framework  lui‐même  est  destiné  à  s'exécuter  sur  un  ordinateur  de  bureau.  Deux 
boîtes à outils Matlab sont utilisées : les boîtes à outils Parallel Computing et Neural Network. Ces 
boîtes à outils fournissent des algorithmes d'entraînement convolutif, des couches préprogrammées 
et  des  réseaux  convolutifs  tels  qu'AlexNet,  ainsi  que  des  capacités  de  calcul  parallèle  pour  réduire 
considérablement le temps de calcul. 

Configuration de la couche réseau CNN Lors de la définition de la configuration de la couche réseau, 
il est important de noter qu'il n'existe pas de formule exacte pour une configuration optimale de la 
couche. Au lieu de cela, la meilleure approche consiste à faire des essais et des erreurs, où quelques 
configurations de couches sont explorées et comparées pour voir à quel point elles fonctionnent. Des 
réseaux  pré‐entraînés  tels  qu'AlexNet  peuvent  également  être  utilisés  comme  configuration  de 
couche  initiale.  Cependant,  dans  ce  cas,  bien  que  l'inspiration  soit  tirée  de  la  configuration  de  la 
couche AlexNet, les propres implémentations  de la configuration de la  couche sont  poursuivies. La 
configuration de couche choisie est illustrée à la figure 6‐3 : 

 
52 
     

  Figure 6‐3 : Configuration de la couche de réseau de neurones convolutifs. Le réseau conçu se compose de 
13 couches, avec différentes tailles de filtres ajustées par des itérations d'essais et d'erreurs. 
 

La formation du réseau convolutif profond illustré à la figure 6‐3 peut prendre un temps variable, en 
fonction  de  la  taille  de  l'ensemble  de  données  et  de  la  puissance  de  traitement  disponible.  Trois 
options de calcul sont disponibles pour former les CNN, et le choix de la plus optimale est crucial en 
fonction du temps disponible pour résoudre une tâche particulière : 

1. Calcul basé sur le processeur 

2. Calcul basé sur GPU 

3. Calcul GPU basé sur le cloud 

Les options de calcul basées sur le processeur sont les plus simples et les plus facilement disponibles. 
Cependant,  étant  donné  qu'un  processeur  calcule  la  tâche  en  configuration  série,  la  formation  du 
réseau prend le plus de temps avec cette méthode. L'utilisation d'une unité de traitement graphique 
réduit  considérablement  le  temps  de  formation  et  peut  être  effectuée  avec  Matlab  sans  autre 
programmation. Cependant, un GPU NVidia basé sur CUDA est nécessaire avec une capacité de calcul 
d'au moins 3.0 pour le calcul parallèle. Il y a aussi la possibilité d'utiliser plusieurs GPU, cela diminue 
encore  plus  le  temps  de  traitement.  Enfin,  le  calcul  GPU  basé  sur  le  cloud  prend  en  compte 
l'utilisation  des  ressources  cloud  pour  la  puissance  de  traitement.  Le  code  matlab  écrit  peut  être 
amélioré  à  des  fins  de  cloud  computing.  Dans  ce  cadre  de  thèse,  les  calculs  CPU  et  GPU  sont 
considérés pour étudier l'effet de l'utilisation de GPU sur la diminution du temps de calcul. 

6.3 Phase d'entraînement de CNN 

 
53 
     

6.3.1 Collecte et étiquetage des données 

La configuration de test dans laquelle les données sont créées et collectées est illustrée à la figure 6‐
4. La caméra RVB prend des images d'un point de vue supérieur et enregistre ces images dans une 
résolution de 400x300, avec une extension .jpg. 

 
Figure 6‐4 : Configuration de la collecte de données. Les images du conteneur sont prises du haut 
avec une caméra RVB. Les articles dans les conteneurs sont placés et repositionnés 
  manuellement. 

Un  ensemble  de  données  est  composé  de  1000  images,  chaque  image  de  chaque  élément  étant 
extraite de plusieurs vues, avec au moins une image de chaque visage. La stratégie de labellisation 
est définie comme suit : 

À l'aide de la définition de classe définie au chapitre 4, étiquetez chaque échantillon avec le 
numéro de face où se trouve le code‐barres. 

L'étiquetage de tous les échantillons produit la structure de fichier suivante (dans un environnement 
Windows) : 

 
Figure 6‐5 : Données étiquetées, chaque dossier contenant de nombreuses instances de données 
appartenant à sa classe spécifique. 
 

 
54 
     

  Figure 6‐6 : Instances de données dans le dossier « 1 ». Toutes les instances de ce dossier sont 
étiquetées « 1 », ce qui signifie que le code‐barres se trouve sur le plan supérieur, comme cela 
  est visible sur les photos. 

6.3.2 Former le CNN 

Lors  de  l'importation  de  l'ensemble  de  données  étiqueté,  une  division  de  75  %/25%  est  effectuée 
entre les données d'apprentissage et les données de validation. Cela signifie que 75 % des données 
sont utilisées pour former le réseau et 25 % des données sont utilisées pour valider le réseau. Une 
fois qu'une précision de validation suffisante est atteinte, un ensemble de test supplémentaire peut 
être utilisé pour voir les performances du réseau.  

La première configuration est exécutée sur un modèle de calcul basé sur le processeur. Le CPU utilisé 
est  un  processeur  Intel  Core  i7  720QM,  avec  quatre  cœurs  physiques  et  quatre  cœurs  virtuels.  La 
progression et le résultat de l'entraînement sont illustrés à la figure 6‐7 : 

 
55 
     

 
Figure 6‐7 : Exécution de la formation du CNN 1, avec l'utilisation d'un CPU. Une précision de 
validation de 16% est atteinte avec un temps d'entraînement d'environ 431 minutes. 
 

Même si le CPU utilisé a quatre cœurs physiques, on peut immédiatement remarquer par le temps 
écoulé,  que  la  formation  avec  un  CPU  prend  toujours  un  temps  extrême  et  n’est  pas  vraiment 
faisable pour un réglage fin dans le cadre de ce projet. Même lorsqu’un processeur se compose de 
plusieurs  cœurs  et  est  haut  de  gamme,  les  temps  de  traitement  élevés  restent  un  problème.  En 
regardant les résultats des tests, la précision de validation de 16% est très insuffisante et il semble 
que le CNN n’ait appris aucune caractéristique précieuse pouvant être utilisée pour une classification 
correcte.  En  modifiant  la  quantité  de  caractéristiques  calculées  par  les  couches  convolutives  et  la 
taille  du  filtre  utilisé  par  la  couche  convolutive,  le  système  est  encore  affiné  pour  augmenter  la 
précision de la validation. Cependant, à partir de la deuxième exécution, un calcul basé sur GPU est 
utilisé.  Pour  les  exécutions  suivantes,  un  GPU  NVidia  GTX1060  est  utilisé  et  un  processeur  Intel  i7‐
6700HQ est utilisé. Les résultats de la deuxième exécution sont présentés dans la figure 6‐8 : 

 
56 
     

 
Figure 6‐8 : Exécution de la formation du CNN 2, avec l'utilisation d'un GPU. Les paramètres du système 
  sont déjà légèrement modifiés, en diminuant la taille et le nombre de filtres, une précision de validation 

  de 40,18% est atteinte avec un temps d'entraînement éblouissant de seulement 1 minute et 9 secondes. 

Ce que l'on peut remarquer immédiatement, c'est que le temps de calcul est passé de 431 minutes à 
environ  1  minute!.  Cela  signifie  que  le  temps  de  calcul  a  diminué  d'un  facteur  d'environ  400.  Cela 
permet à tout le moins un réglage fin efficace du CNN. En regardant les résultats de la validation, une 
précision  de  40,16%  est  atteinte.  Alors  que  la  précision  de  l'ensemble  d'apprentissage  augmente 
jusqu'à environ 100 %, la précision de validation continue d'osciller autour de 40 %. En comparant la 
perte  d'apprentissage  avec  la  perte  de  validation,  on  peut  voir  que  bien  que  l'ensemble 
d'apprentissage converge  vers zéro, l'ensemble de  validation reste autour de  1,75. Un réglage plus 
précis est effectué sur le CNN pour déterminer si la modification du taux d'apprentissage, de la taille 
du  mini‐lot  ou  de  l'époque,  ou  des  configurations  et  paramètres  de  couche  peut  améliorer  encore 
plus le CNN. Ceci est fait plusieurs fois consécutivement, montrant certains des résultats intéressants 
dans les figures 6‐9 à 6‐11 : 

 
57 
     

 
 

  Figure 6‐9 : Exécution de la formation du CNN (avec un GPU), avec des taux d'apprentissage et des 
tailles de filtre de couche modifiés. Une précision de validation de 41,96 % est atteinte avec un temps 
  d'entraînement de 48 secondes. 
 

 
 
Figure 6‐10 : Exécution de la formation du CNN (avec un GPU), avec des taux d'apprentissage et des 
  tailles de filtre de couche modifiés. Une précision de validation de 44,64% est atteinte avec un temps 
d'entraînement de 63 secondes. 

 
58 
     

 
Figure 6‐11 : Exécution de la formation du CNN (avec un GPU), avec des taux d'apprentissage et des 
  tailles de filtre de couche modifiés. Une précision de validation de 44,64% est atteinte avec un temps 
d'entraînement de 2 minutes et 56 secondes. 
 

Après  avoir  effectué  quelques  dizaines  de  tests,  il  est  conclu  que  la  précision  de  validation  de 
l'ensemble de données est d'environ 45% lorsque le système est affiné. La précision de l'ensemble 
d'apprentissage  atteint  100 %,  mais  l'ensemble  de  validation  continue  à  osciller  autour  de  45 %.  À 
partir  de  ces  résultats,  on  peut  conclure  qu'avec  la  taille  actuelle  de  l'ensemble  de  données  étant 
d'environ  1000  images,  le  CNN  ne  peut  pas  distinguer  suffisamment  les  instances  de  données.  Ces 
résultats sont une parfaite illustration du cas où le réseau ne généralise pas assez bien pour ne pas 
voir  les  instances  de  données.  Le  CNN  a  surajusté  les  données,  comme  le  montre  la  précision  de 
100 % sur l'ensemble d'apprentissage, et l'ajustement du taux d'apprentissage et de la taille des lots 
ne  semble  pas  avoir  d'effet  supplémentaire  après  avoir  été  affiné  pour  atteindre  ces  précisions 
d'environ  45 %.  La  conclusion  rapide  qui  peut  être  tirée  est  la  suivante :  un  ensemble  de  données 
plus important est nécessaire pour entraîner le CNN, de sorte que le surapprentissage soit réduit et 
que des précisions plus élevées puissent être atteintes. 

 
59 
     

7. CONCLUSION 

En  réfléchissant  au  cadre  de  reconnaissance  d'objets  proposé  à  la  lumière  des  exigences  et  des 
contraintes  définies,  il  est  conclu  qu'une  précision  suffisante  est  atteinte  de  44,64  %,  supérieure  à 
l'exigence  de  40  %.  Afin  d'atteindre  un  cadre  qui  automatise  de  manière  robuste  la  phase  de 
réaffectation  du  processus  d'exécution  des  commandes  au  sein  des  entrepôts,  la  précision  de  la 
classification du CNN doit être améliorée. La conclusion logique qui pourrait être tirée des résultats 
de la formation est que l'ensemble de données doit être considérablement augmenté pour éviter le 
surajustement  des  données.  De  plus,  les  ensembles  de  données  de  toutes  les  autres  catégories  de 
produits GS1US doivent être ajoutés au CNN pour que le cadre soit mis en œuvre dans un entrepôt. 
Bien que la génération et la collecte de ces données puissent prendre beaucoup de temps, d'après 
les résultats obtenus jusqu'à présent, on peut voir que même avec de petits ensembles de données, 
des résultats prometteurs sont affichés. 

Lors de la formation du CNN, la mise en œuvre du GPU est nécessaire. La formation du CNN avec une 
simple  implémentation  CPU  peut  prendre  des  mois  pour  l'ensemble  de  données  complet  de  la 
catégorie de produits GS1US. Il est logique de conclure qu'un réglage fin du système au cours de ce 
processus  n'est  pas  réalisable  dans  ce  délai.  L'évolutivité  ne  semble  pas  être  un  problème  avec  la 
mise en œuvre du calcul GPU, et en outre, le calcul basé sur le cloud peut être mis en œuvre pour 
réduire  encore  plus  le  temps  de  formation,  lors  de  la  formation  de  très  grands  ensembles  de 
données. 

Lorsque  des  précisions  de  classification  CNN  suffisantes  sont  atteintes,  des  stratégies  de  sélection 
intelligentes peuvent être mises en œuvre où un robot de cueillette essaie de classer les produits en 
montrant  les  faces  d'un  produit  le  long  du  vecteur  de  probabilité  de  classification.  Cette  méthode 
assure un picking immédiat lorsque le produit est correctement classé, et un picking secondaire en 
cas  de  mauvaise  classification,  où  le  robot  essaie  de  scanner  les  visages  selon  le  vecteur  de 
probabilité de classification jusqu'à ce que le code‐barres soit trouvé. Cela garantit des coûts d'erreur 
minimes,  voire  nuls,  puisque  le  produit  est  toujours  numérisé.  Dans  ce  cas,  la  précision  de  la 
classification CNN est corrélée à la vitesse à laquelle les produits sont classés par le lecteur de codes‐
barres lors du premier essai, où des améliorations de la précision signifient une sélection plus rapide.  

 
60 
     

8. BIBLIOGRAPHIE 

 
[1] Tompkins, J. A., White, J. A., Bozer, Y. A., & Tanchoco, J. M. A. (2010). Facilities Planning. John 
Wiley & Sons. 

[2] Drury, J. (1988). Towards more efficient order picking. IMM monograph, 1. 

[3] Henn, S., & Schmid, V. (2013). Metaheuristics for order batching and sequencing in manual order 
picking systems. Computers & Industrial Engineering, 66(2), 338–351. 

[4] Lambert, D. M., Stock, J. R., & Ellram, L. M. (1998). Fundamentals of logistics management. 
McGraw‐Hill/Irwin. 

[5] Gu, J., Goetschalckx, M., & McGinnis, L. F. (2010). Research on warehouse design and 
performance evaluation: A comprehensive review. European Journal of Operational 
Research, 203(3), 539-549. 

[6] De Koster, R., Le‐Duc, T., & Roodbergen, K. J. (2007). Design and control of warehouse order 
picking: A literature review. European Journal of Operational Research, 182(2), 481-501. 

[7] Shouman, M. A., Khater, M., & Boushaala, A. A. (2005). Comprehensive survey and classification 
scheme of warehousing systems. In Proceedings of the 2005 International Conference on 
Simulation and Modeling V. Kachitvichyanukul, U. Purintrapiban, P. Utayopas, eds., 
Nakompathon, Thailand (Vol. 1). 

[8] Chan, F. T., & Chan, H. K. (2011). Improving the productivity of order picking of a manual‐pick 
and multi‐level rack distribution warehouse through the implementation of class‐based 
storage. Expert Systems with Applications, 38(3), 2686–2700. 

[9] Bartholdi, J. J., & Hackman, S. T. (2011). Warehouse and Distribution Science: Release 0.95, The 
Supply Chain and Logistics Institute, School of Industrial and Systems Engineering. 
Atlanta. 

[10] Kallina, C., & Lynn, J. (1976). Application of the cube‐per‐order index rule for stock location in a 
distribution warehouse. Interfaces, 7(1), 37–46. 

[11] Malmborg, C. J., Balachandran, S., & Kyle, D. M. (1986). A model‐based evaluation of a 
commonly used rule of thumb for warehouse layout. Applied Mathematical Modelling, 10(2), 133– 
138. 

 
61 
     

[11] Malmborg, C. J., & Bhaskaran, K. (1989). Optimal storage assignment policies for multiaddress 
warehousing systems. IEEE Transactions on Systems, Man, and Cybernetics, 19(2), 197– 
204. 
 
[11] Malmborg, C. J., & Bhaskaran, K. (1987). On the optimality of the cube per order index for 
conventional warehouses with dual command cycles. Material Flow, 4(3), 169–175. 
 
[11] Malmborg, C. J., & Bhaskaran, K. (1990). A revised proof of optimality for the cube‐per‐order 
index rule for stored item location. Applied Mathematical Modelling, 14(2), 87–95. 

[13] Van Den Berg, J. P., & Gademann, A. (2000). Simulation study of an automated storage/retrieval 
system. International Journal of Production Research, 38(6), 1339–1356. 

[13] Le‐Duc, T., & De Koster, R. (2005). Layout optimization for class‐based storage strategy 
warehouses. Supply Chain Management‐European Perspective, 191–214. 

[14] Le‐Duc, T. (2005). Design and control of efficient order picking processes. 

[15] Yang, M. (1988). Analysis and optimization of class‐based dedicated storage systems. Georgia 
Institute of Technology. 

[16] Pazour, J. A., & Meller, R. D. (2013). The impact of batch retrievals on throughput performance 
of a carousel system serviced by a storage and retrieval machine. International Journal of 
Production Economics, 142(2), 332–342. 

[17] Armstrong, R. D., Cook, W. D., & Saipe, A. L. (1979). Optimal batching in a semi‐automated order 
picking system. Journal of the operational research society, 711–720. 

[17] Bartholdi III, J. J., & Platzman, L. K. (1986). Retrieval strategies for a carousel conveyor. IIE 
transactions, 18(2), 166–173. 

[18] Roodbergen, K. J., & Vis, I. F. (2009). A survey of literature on automated storage and retrieval 
systems. European journal of operational research, 194(2), 343–362. 

[19] Petersen, C. G., & Aase, G. (2004). A comparison of picking, storage, and routing policies in 
manual order picking. International Journal of Production Economics, 92(1), 11–19. 

[20] Gademann, N., & Velde, S. (2005). Order batching to minimize total travel time in a parallel‐aisle 
warehouse. IIE transactions, 37(1), 63–75. 

[21] Gademann, A., Van Den Berg, J. P., & Van Der Hoff, H. H. (2001). An order batching algorithm 

 
62 
     

for wave picking in a parallel‐aisle warehouse. IIE transactions, 33(5), 385–398. 

[22] Koch, S., Wäscher, G., & others. (2011). A grouping genetic algorithm for the order batching 
problem in distribution warehouses. Otto‐von‐Guericke University Magdeburg, Faculty of 
Economics and Management. 

[23] Azadnia, A. H., Taheri, S., Ghadimi, P., Mat Saman, M. Z., & Wong, K. Y. (2013). Order batching 
in warehouses by minimizing total tardiness: a hybrid approach of weighted association 
rule mining and genetic algorithms. The Scientific World Journal, 2013. 

[24] Iraji, M. S., Jafari, S., & Sookhtsaraei, R. (s. d.). Algorithms for On‐line Order Batching for 
Minimized Total Tardiness in an Order‐Picking Warehouse. 

[25] Bukchin, Y., Khmelnitsky, E., & Yakuel, P. (2012). Optimizing a dynamic order‐picking process. 
European Journal of Operational Research, 219(2), 335–346. 

[26] R. Bekkerman, M. Bilenko, J. Langford, Scaling Up Machine Learning, Cambridge University 
Press, January 2012. 

[27] Mitchell, T. (1997). Machine Learning. McGraw Hill. 

[28] Goodfellow, Ian, Yoshua Begnio, and Aaron Courville. 2016. Deep Learning. Cambridge: 
MIT Press. 

[29] Hady M.F.A., Schwenker F. (2013). Semi‐supervised Learning. In: Bianchini M., Maggini 
M., Jain L. (eds) Handbook on Neural Information Processing. Intelligent Systems Reference 
Library, vol 49. Springer, Berlin, Heidelberg. 

[30] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. 2012. ImageNet classification 
with deep convolutional neural networks. In: Proceedings of the 25th International Conference 
on Neural Information Processing Systems ‐ Volume 1 (NIPS’12), F. Pereira, C. J. C. 
Burges, L. Bottou, and K. Q. Weinberger (Eds.), Vol. 1. Curran Associates Inc., USA, 1097‐ 
1105. 

[31] Kotsiantis, S.B. (2007). Supervised Machine Learning: A Review of Classification Techniques. 
Informatica 31:249‐268. 

[32] R. A. Fisher (1936). The use of multiple measurements in taxonomic problems. Annals 
of Eugenics. 7 (2): 179‐188. 

[33] A. Eitel, J. T. Springenberg, L. Spinello, M. Riedmiller, and W. Burgard (2015). Multimodal 
Deep Learning for Robust RGB‐D Object Recognition. In: Proceedings of 2015 

 
63 
     

IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 681âAS687. 

[34] B. Baharudin, L.H. Lee, K. Khan (2010). A review of machine learning algorithms for 
textdocuments classification, In: Journal of Advances in Information Technology 1:4âAS20. 

[35] Wu, X., Kumar, V., Quinlan, J. R., Ghosh, J., Yang, Q., Motoda, H., McLachlan, 
G. J., Ng, A., Liu, B., Yu, P.S., Zhou, Z.H.,Steinbach, M., Hand, D. J., and Steinberg, D. 2007. Top 10 
Algorithms in Data Mining, Knowledge and Information Systems (14:1), pp. 
1‐37. 
 
[36] Wettschereck, D., Aha, D. W. & Mohri, T. (1997). A Review and Empirical Evaluation 
of Feature Weighting Methods for a Class of Lazy Learning Algorithms. In: Artificial 
Intelligence Review 10:1âAS37. 
 
[37] Mooney RJ (1996) Comparative experiments on disambiguating word senses: an illustration 
of the role of bias in machine learning. In: Proceedings of the conference on Empire 
methods in national language processing, pp 82âAS91. 
 
[38] Wolpert DH (1992) On the connection between in‐sample testing and generalization 
error. Complex Systems 6:47âAS94. 
 
[39] D. H. Wolpert and W. G. Macready. (1997). No free lunch theorems for optimization. 
Trans. Evol. Comp 1, 1, 67‐82. 
 
[40] Ho YC, Pepyne DL (2002) Simple explanation of the no free lunch theorem of optimization. 
Cybern Syst Anal 38(2):4409âAS4414.  
 
[41] Murthy, (1998), Automatic Construction of Decision Trees from Data: A Multi‐Disciplinary 
Survey, Data Mining and Knowledge Discovery 2:345âAS389. 
 
[42] Quinlan, J.R. (1993). C4.5: Programs for machine learning. Morgan Kaufmann, San 
Francisco 
 
[43] Quinlan, J.R. (1979), "Discovering rules by induction from large collections of examples", 
D. Michie ed., Expert Systems in the Microelectronic age, pp. 168‐201. 
 

 
64 
     

[44] Breiman L., Friedman J.H., Olshen R.A., Stone C.J. (1984) Classification and Regression 
Trees, Wadsforth International Group. 
 
[45] Hunt E., Martin J & Stone P. (1966), Experiments in Induction, New York, Academic 
Press. 
 
[46] Kononenko I. (1994) Estimating attributes: Analysis and extensions of RELIEF. In: 
Bergadano F., De Raedt L. (eds) Machine Learning: ECML‐94. ECML 1994. 
 
[47] Scholkopf, C., Burges, J. C. & Smola, A. J.(1999). Advances in Kernel Methods. MIT 
Press. 
 
[48] Vapnik, V. (1995). The Nature of Statistical Learning Theory. New York: Springer. 
 
[49] Neocleous, C. & Schizas, C., (2002), Artificial Neural Network Learning: A Comparative 
Review, LNAI 2308, pp. 300âAS313, Springer. 
 
[50] Jürgen Schmidhuber, Deep learning in neural networks: An overview, In: Neural Net‐works, 
Volume 61, 2015, Pages 85‐117.  
 
[51] Weigend, A. S., Rumelhart, D. E., & Huberman, B. A. (1991). Generalization by weightelimination 
with application to forecasting. In: R. P. Lippmann, J. Moody, & D. S. Touretzky 
(eds.), Advances in Neural Information Processing Systems 3, San Mateo, CA: Morgan Kaufmann. 
 
[52] Siddique, M. N. H. and Tokhi, M. O. (2001), Training Neural Networks: Backpropagation 
vs. Genetic Algorithms, IEEE International Joint Conference on Neural Networks, 
Vol. 4, pp. 2673âAS2678. 
 
[53] Kuramochi M, Karypis G (2005), Gene Classification using Expression Profiles: A 
Feasability Study. Int J Artif Intell Tools 14(4):641‐660. 
 
[54] Tjen‐Sien, L., Wei‐Yin, L., Yu‐Shan, S. (2000). A Comparison of Prediction Accuracy, 
Complexity, and Training Time of Thirty‐Three Old and New Classification Algorithms. Machine 
Learning 40 : 203âAS228. 
 

 
65 
     

[55] Ruggieri, S. (2001). Efficient C4.5. IEEE Transactions on Knowledge and Data Engineering 
14 (2): 438‐444. 
 
[56] Olcay Taner YÄsldÄsz, Onur Dikmen (2007), Parallel univariate decision trees, Pattern 
Recognition Letters, Volume 28 , Issue 7 (May 2007), Pages: 825‐832. 
 
[57] Anil K. Jain, Jianchang Mao, and K.M Mohiuddin (1996), Artificial Neural Networks: A 
Tutorial, IEEE Computer Society, Volume 29, Number 3 
 
[58] Barron, A.R. (1993), âA.Universal Approximation Bounds for Superpositions of Sigmoidal 
Functions,âAI IEEE Transactions on Information Theory, Vol. 39. 
 
[59] Haykin, S. (1999), Neural Networks: A Comprehensive Foundation, 2nd Edition, Prentice‐ 
Hall. 
 
[60] Platt, J. (1999). Using sparseness and analytic QP to speed training of support vector 
machines. In Kearns, M., Solla, S. & Cohn, D. (ed.), Advances in neural information 
processing systems. MIT Press. 
 
[61] Lee, D., Park, J., Shim, J., Lee, S.‐g. (2010): An efficient similarity join algorithm 
with cosine similarity predicate. In: Bringas, P.G., Hameurlain, A., Quirchmayr, G. (eds.) 
DEXA 2010, Part II. LNCS, vol. 6262, pp. 422âAS436. Springer, Heidelberg 
 
[62] Park, Y., Park, S., Lee, S.‐g., & Jung, W. (2014). Greedy filtering: A scalable algorithm 
for k‐nearest neighbor graph construction. In: Database systems for advanced applications 
(pp. 327âAS341). Springer. 
 
[63] Miyamoto D, Hazeyama H, Kadobayashi Y (2008) An evaluation of machine learningbased 
methods for detection of phishing sites. Aus J Intell Inf Process Syst 10(2):54âAS63 

[64] Rojas‐Bello RN, Lago‐FernÃandez LF, MartÃ‐nez‐MuÃsoz G, SÃanchez‐MontaÃsÃls 
MA (2011) A comparison of techniques for robust gender recognition. IEEE Int Conf Image 
Process 569âAS572 
 
[65] Aruna S, Rajagopalan SP, Nandakishore LV (2011). An empirical comparison of supervised 

 
66 
     

learning algorithms in disease detection. Int J Inf Technol Converg Serv 1:81âAS92 
 
[66] Mathworks (2017). Introducing Deep Learning with MATLAB. 80789v00 
 
[67] Li, Fei‐Fei, and Justin Johnson. ’CS231n: Convolutional Neural Networks for Visual 
Recognition.’ CS231n: Convolutional Neural Networks for Visual Recognition, Stanford University, 
cs231n.github.io/. 

 
67 

Vous aimerez peut-être aussi