Académique Documents
Professionnel Documents
Culture Documents
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.
1
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
2
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
3
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
1
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
2
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 à
3
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é.
4
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.
5
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.
‐ 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.
6
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.
7
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 :
8
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
9
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,
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
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
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