Vous êtes sur la page 1sur 95

République du Bénin

Université d’Abomey-Calavi

École Polytechnique d’Abomey-Calavi


(EPAC)

DÉPARTEMENT DE GÉNIE INFORMATIQUE ET TÉLÉCOMMUNICATIONS

Option: Réseaux Informatiques et Internet (RII)

MÉMOIRE DE FIN DE FORMATION


POUR L’OBTENTION DU

DIPLÔME D’INGÉNIEURE DE CONCEPTION


Thème:

Prédiction de ventes et génération de motifs pour les produits


textiles en utilisant les techniques du machine learning

Réalisé et soutenu par:

Elwis KOULO
Le 13 Avril 2021

Sous la direction de:

Dr. Maurice COMLAN

Membres du Jury :

• Président du jury :
Dr. Médésu SOGBOHOSSOU

• Membres :
Dr. Maurice COMLAN
Ing. Ambarka RAHAMAN
Ing. René HOUNTONDJI

Année académique : 2018 - 2019


Dédicaces

À
• Mon père Augustin KOULO, pour avoir soutenu mes études et assuré mon éducation.
Reçois ici le fruit de tes efforts.

• Ma mère Pauline TODEGNI, pour tes sacrifices, ton amour, ta tendresse, ton soutien et
tes prières tout au long de mes études.

• Mes frères, Hugues KOULO et Sergio KOULO pour leur soutien.


Puisse Dieu, le très haut, vous accorder santé, bonheur et longue vie et faire en sorte que
jamais je ne vous déçoive.

i
Remerciements

En préambule de ce mémoire, je tiens à remercier le Seigneur tout puissant qui nous a ac-
cordé la santé, la force et la persévérance nécessaires pour la réalisation de ce projet de fin
d’études.
Mes remerciements vont à l’endroit de tous ceux qui, de près ou de loin, ont participé à la
réalisation de ce travail. Je pense particulièrement :

• au Pr. Guy ALITONOU, Directeur de l’EPAC ainsi qu’au Directeur Adjoint Pr. François-
Xavier FIFATIN ;

• au Dr. Tahirou DJARA , chef du Département de Génie Informatique et Télécommunica-


tions (GIT) et à tous les enseignants dudit département ;

• au Dr. Ing. Maurice COMLAN, mon superviseur pour ses conseils, ses directives et tout
ce qu’il a apporté dans la concrétisation de ce travail ;

• à M. Bidossesi Habib Junior AHODEGNON, Directeur Général de John Walkden et


Compagnie, pour son accueil et la confiance qu’il m’a accordé dès mon arrivé dans l’en-
treprise ;

• à mon maitre de stage, Ing. René HOUNTONDJI, Business Analyst à John Walkden et
Compagnie, pour son accueil, le temps passé ensemble et le partage de son expertise au
quotidien ;

• à Mme. Hadi Bio-Tchané et M. Boris ADJOVI pour leurs soutiens et conseils ;

• à toute ma famille pour leur soutien indéfectible ;

• à mes amis Zianath ADECHINA, Enselme AGUIDIGODO et à tous ceux que je ne pour-
rais citer ici.

ii
Sommaire

Dédicaces i

Remerciements ii

Liste des figures vi

Liste des tableaux vii

Liste des sigles et abréviations viii

Introduction 1

1 Etat de l’art 4
1.1 Le commerce du textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Prédiction des ventes dans le domaine du textile et de la mode . . . . . . . . . . . 6
1.3 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Matériel et Méthodes 17
2.1 Matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Solution proposée 24
3.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Génération de motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4 Résultats et discussion 44
4.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

iii
SOMMAIRE SOMMAIRE

Conclusion et perspectives 57

English Part
Sales forecast and design generation for textile products using machine
learning 58
4.3 Textile trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 Related Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.5 Material and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 Proposed solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Bibliographie 73

A Dropout 77

B Quelques portions de codes 79

iv
Liste des figures

1.1 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


1.2 Réseau de neurones artificiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Fonction sigmoïde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Fonction tangente hyperbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Fonction linéaire rectifiée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Fonction LeakyReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7 Generative Adversarial Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1 KDnuggets Analytics / Data Science 2019. Sondage sur les logiciels : les princi-
paux outils en 2019 et leur part dans les sondages 2017-8 . . . . . . . . . . . . . . 20
2.2 Diagramme des étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1 Quantité vendue par type de produit . . . . . . . . . . . . . . . . . . . . . . . . . . 25


3.2 Quantité vendue par type de produit . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Quantité vendue par type de produit et par marque . . . . . . . . . . . . . . . . . 26
3.4 Quantité de Fabrics vendue par mois . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Quantité de PAP vendue par mois . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.6 Quantité vendue par type de produit et par saison . . . . . . . . . . . . . . . . . . 28
3.7 Quantité vendue par type de produit et par période . . . . . . . . . . . . . . . . . 29
3.8 Exemple d’arbre de décision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.9 Le générateur du GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.10 Le discriminateur du GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.11 Le générateur du DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.12 Le discriminateur du DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1 Prédictions de ventes obtenues avec Decision Tree pour Woodin Ganhi de Jan-
Dec 2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Prédictions de ventes obtenues avec Decision Tree pour Vlisco Ganhi de Jan-Dec
2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3 Prédictions de ventes obtenues avec Random forest pour Woodin Ganhi de Jan-
Dec 2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Prédictions de ventes obtenues avec Random forest pour Vlisco Ganhi de Jan-Dec
2019 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

v
LISTE DES FIGURES LISTE DES FIGURES

4.5 Prédictions de ventes obtenues avec Xgboost pour Woodin Ganhi de Jan-Dec 2019 47
4.6 Prédictions de ventes obtenues avec Xgboost pour Vlisco Ganhi de Jan-Dec 2019 47
4.7 Prédictions de ventes obtenues avec ANN pour Woodin Ganhi de Jan-Dec 2019 . 48
4.8 Prédictions de ventes obtenues avec ANN pour Vlisco Ganhi de Jan-Dec 2019 . . 48
4.9 Prédiction de ventes Septembre 2020 à Décembre 2021 de Vlisco Ganhi . . . . . . 50
4.10 Prédiction de ventes Septembre 2020 à Décembre 2021 de Woodin Ganhi . . . . . 51
4.11 Images générées avec le GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.12 Images générées avec le DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.13 Sales predictions obtained with Random forest for Woodin Ganhi of Jan-Dec 2019 66
4.14 Sales predictions obtained with Random forest for Vlisco Ganhi of Jan-Dec 2019 . 67
4.15 Images generated with GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.16 Images generated with DCGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

A.1 Example de réseau de neurone avant dropout . . . . . . . . . . . . . . . . . . . . . 77


A.2 Example de réseau de neurone après dropout . . . . . . . . . . . . . . . . . . . . . 78

vi
Liste des tableaux

3.1 Variables quantitatives et qualitatives . . . . . . . . . . . . . . . . . . . . . . . . . 30


3.2 Corrélation de Pearson entre la variable cible et les autres variables quantitatives 31
3.3 Corrélation de Pearson entre les variables quantitatives . . . . . . . . . . . . . . . 32
3.4 Attributs finaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.1 Mesures de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50


4.2 Features final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3 Performance measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

vii
Liste des sigles et abréviations

ANN : Artificial Neural Networks

ARIMA : Autoregressive Integrated Moving Average

CNN : Convolutional Neural Network

DCGAN : Deep Convolutional Generative Adversarial Network

GAN : Generative Adversarial Network

IA : Intelligence Artificielle

JWC : John Walkden et Compagnie

MAE : Mean Absolute Error

RMSE : Root Mean Square Error

SARIMA : Seasonal Autoregressive Integrated Moving Average

SGD : Stochastic Gradient Descent

viii
Résumé

Dans le contexte de la vente au détail, une détermination erronée des quantités à acheter de
chaque article auprès des fournisseurs, soit par excès, soit par défaut, peut entraîner respecti-
vement des coûts de stockage inutiles ou des pertes de ventes. Ces deux situations doivent être
évitées par les entreprises, ce qui favorise la nécessité de déterminer efficacement les quantités
à acheter. Dans cette étude, nous avons appliqué des méthodes d’intelligence artificielle pour
prévoir les ventes en fonction de plusieurs caractéristiques. Nous avons développé quatre mo-
dèles (arbre de décision, forêt aléatoire, XGBoost et réseaux de neurones) en nous basant sur les
données de vente de l’entreprise John Walkden et Compagnie, filiale de distribution du Groupe
VLISCO, spécialisée dans l’importation et la distribution exclusive de ses quatre (04) marques
de produits textiles : VLISCO, WOODIN, UNIWAX et GTP. Il a été démontré que l’algorithme
random forest fournit les meilleures performances sur ces données de ventes. Par ailleurs, nous
avons aussi abordé la conception de dessins en proposant deux modèles (GAN et DCGAN) ba-
sés sur les techniques d’IA. Ces modèles sont capables de générer des dessins à partir d’un bruit
dans le but d’automatiser la conception desdits dessins ou motifs qui jusque là est fait par des
humains. Nous avons formé ces deux modèles en utilisant un dataset public "QuickRaw data-
set" et à la fin de nos expérimentations, il ressort que le modèle DCGAN fournit les meilleures
performances.

Mots clés : produits textiles, intelligence artificielle, arbre de décision, forêt aléatoire

ix
Abstract

In the retail context, an incorrect determination of the quantities to be purchased of each article
from vendors, either in excess or by default, can lead to unnecessary storage costs or loss of
sales, respectively. Both of these situations should be avoided by companies, thus promoting
the need for efficient determination of quantities to be purchased. In this study, we applied
artificial intelligence methods to forecast sales based on several characteristics. We developed
four models (Decision tree, Random forest, XGBoost and ANN) based on sales data from John
Walkden et Compagnie, a distribution subsidiary of the VLISCO Group, which specializes in
the importation and exclusive distribution of its four (04) brands of textile products: VLISCO,
WOODIN, UNIWAX and GTP. It has been demonstrated that the random forest algorithm pro-
vides the best performance on these sales data. In addition, we also approached the design of
drawings by proposing two models (GAN and DCGAN) based on IA techniques. These mod-
els are able to generate designs from noise in order to automate the design of these designs or
patterns which until now has been done by humans. We formed these two models using a pub-
lic "QuickRaw dataset" and at the end of our experiments, it appears that the DCGAN model
provides the best performance.

Key words: textile products, artificial intelligence, decision tree, random forest

x
Introduction

Contexte et Justification
En Afrique sub-saharienne, le pagne est devenu un outil important de distinction culturelle et
sociale. La rencontre des Africains avec ce tissu qui occupe une place capitale dans leur mœurs
remonte à plus d’un siècle. Le pagne imprimé, porteur d’un message, est considéré comme une
expression de la personnalité [1]. L’intégration du pagne dans les cultures vestimentaires lo-
cales a été si poussée que des usines d’impression se sont installées un peu partout en Afrique
(Côte d’Ivoire, Ghana,...) mais une grande partie du volume consommé continue d’être im-
portée d’Europe et d’Asie. La demande est plus forte que jamais et ne cesse de croître. Par
conséquent, l’industrie évolue à un rythme alarmant dont il est nécessaire de rationaliser les
processus de conception et de production. La plupart des progrès technologiques de l’indus-
trie ont révolutionné la production grâce à l’automatisation. Toutefois, l’aspect design reste un
obstacle considérable à la commercialisation d’un plus grand nombre de pagnes ou de nou-
veaux modèles. Aujourd’hui, les conceptions de motifs de pagnes prennent racine dans l’esprit
des concepteurs humains et sont méticuleusement raffinées au fil de nombreuses itérations.
Le pari retenu dans ce travail est de voir s’il est possible d’utiliser les dernières avancées de
l’intelligence artificielle pour générer numériquement de nouveaux modèles afin d’accélérer le
processus de conception.
L’autre aspect tout aussi important que le design, est la vente du produit car l’objectif de toute
entreprise est de réaliser un profit. Ceci est accompli en ayant plus de ventes que de coûts.
JOHN WALKDEN et Cie S.A. (JWC) est une filiale de distribution du Groupe VLISCO, spé-
cialisée dans l’importation et la distribution exclusive de ses quatre (04) marques de produits :
VLISCO, WOODIN, UNIWAX et GTP, basée à Cotonou. L’environnement commercial actuel
exige des entreprises qu’elles maintiennent un avantage concurrentiel qui peut générer de la
rentabilité. Le marketing joue un rôle crucial dans la concurrence et les entreprises qui gèrent ef-
ficacement leurs coûts peuvent générer des profits. Les prévisions de ventes permettent aux en-
treprises de gérer efficacement leurs budgets, de réduire les incertitudes, de réduire les risques,
d’accélérer le processus décisionnel, etc. Il est donc essentiel de prévoir la quantité des ventes

1
et des produits des ventes pour qu’une entreprise puisse prendre des mesures pour la période
suivante.
A l’heure où l’intelligence artificielle a de nombreuses applications et des résultats encoura-
geants, il serait intéressant d’analyser son utilité tant dans la conception de nouveaux motifs
que dans la prévision des ventes afin de faciliter la prise de décision.

Problématique
Avant d’arriver dans les magasins, les produits passent par une chaîne d’approvisionnement
qui commence par la conception des motifs des pagnes et la production des produits plusieurs
mois avant leur entrée sur le marché. Ce fait impose aux entreprises de prévoir la quantité
vendue de chaque produit afin de définir la quantité à acquérir du fournisseur. Une prévision
erronée se traduit par un manque à gagner, dû à une perte de ventes ou à un excédent de stocks.
Les entreprises collectent en permanence des données concernant leurs ventes. Par conséquent,
ces données peuvent constituer une source importante de connaissances pour améliorer la qua-
lité des prévisions de ventes.
Malheureusement, ces connaissances sont rarement utilisées pour aider à la prise de décision.
Il y a une mine d’informations cachées dans ces connaissances qui sont pour la plupart inex-
ploitées. Cela soulève une question cruciale : « A partir de ces connaissances, comment faciliter
la prise de décision ? » Pour répondre à cette question, nous ferons recours à l’intelligence arti-
ficielle plus précisément aux algorithmes de machine learning.
Dans ce projet nous nous intéressons aussi à la conception des motifs, tout d’abord il faut savoir
qu’actuellement les motifs sont dessinés à la main par des designers et sont affinés par plusieurs
itérations ce qui prend un temps important. Le marché de consommation étant de plus en plus
important, nous allons être confrontés d’ici là à une pénurie. Il serait donc intéressant de penser
à un système capable de produire de manière automatique et dynamique des motifs pouvant
servir à la conception de tissu.

Objectifs
Compte tenu du contexte introduit, l’objectif de ce travail est de développer deux modèles,
l’un capable d’estimer les ventes de produits textiles (dans les boutiques de ventes en détail) à
travers l’analyse des ventes des années précédentes et l’autre permettant de générer des motifs
créatifs pour les pagnes. De façon spécifique, il s’agira :

• de créer une base de données pour la prédiction des ventes à partir des données collec-
tionnées auprès des boutiques de vente de produits textiles ;

2
• de collectionner un certains nombre d’images pour le système de génération de motifs de
pagne

• d’étudier et d’implémenter différents modèles de machine learning capables de donner


réponse à notre problématique ;

• de faire une étude comparative et de déduire le meilleur modèle après une étude théo-
rique et empirique

Plan du document
La suite de ce document est organisée comme suit : le chapitre 1 fait l’état de l’art des recherches
effectuées dans le cadre de la prédiction des ventes et de la génération d’images ; le chapitre 2
présente le matériel ainsi que les choix techniques effectués que nous utilisons pour l’élabora-
tion des modèles de prédiction ; le chapitre 3 présente notre solution et les modèles mis en place
et enfin, dans le chapitre 4, nous présentons les résultats obtenus après les différents tests ainsi
que l’analyse de ces résultats.

3
Chapitre 1
Etat de l’art

Introduction
Ce chapitre sera divisé en quatre (04) sections. La première partie décrira les principales ca-
ractéristiques du marché pour lequel le projet sera développé et son influence sur les modèles
de prévision. Les deuxième et troisième parties décriront respectivement plusieurs méthodes
proposées par différents auteurs pour résoudre les problèmes de prévision des ventes et ce-
lui de la génération d’images. Et la dernière partie présentera quelques notions de bases de
l’intelligence artificielle nécessaire pour la suite de ce document.

1.1 Le commerce du textile


Dans le commerce du textile, la vente d’un produit au client correspond à la dernière étape
d’un processus complexe par lequel le produit est passé. Ce processus correspond à une chaîne
d’étapes impliquant l’intervention de plusieurs entreprises. L’entreprise de vente au détail est
la turbine de la chaîne et est responsable de la vente des produits au client final. En tant que
telle, il est probable que la société prévoit les ventes qu’elle réalisera. Pour une bonne prévision
des ventes, il est nécessaire de connaître d’abord les caractéristiques de l’industrie de la mode :
• les tendances de la mode entraînent une forte volatilité de la demande des consomma-
teurs. Le style des articles doit toujours être mis à jour et les articles ne sont souvent
pas répétés pour la prochaine collection. En raison de la nouveauté constante et de la
courte durée des articles dans les magasins, les ventes historiques sont pratiquement in-
existantes. Il en résulte une faible prévisibilité de la demande.

• les ventes sont conditionnées par de nombreuses autres variables telles que les ventes de
fin de saison, la promotion des ventes, le pouvoir d’achat des consommateurs, etc.

• il y a une grande variabilité des produits. Ils peuvent avoir différentes couleurs, formes et
tailles. Tous doivent satisfaire le consommateur final.

4
• sur le marché de la mode, les achats se font le plus souvent par impulsion lorsqu’on est
confronté au produit dans un magasin, et non par nécessité, de sorte que la disponibi-
lité et la visibilité du produit dans les magasins est d’une grande importance, il est donc
important d’avoir le bon produit à vendre ;

• les produits de mode ont également une grande instabilité de la demande, car ils sont
généralement affectés par des conditions extérieures telles que les conditions météorolo-
giques ou l’utilisation de tels articles par des célébrités ;

Compte tenu de tous ces facteurs, la prévision des ventes est un problème réel dans le commerce
du textile.
Selon une étude réalisée par Thomassey [2], les modèles prévisionnels de mode sont in-
fluencés par plusieurs caractéristiques. Ces caractéristiques seront décrites dans les sections
suivantes.

1.1.1 Les variables exogènes


Le marché de l’habillement est fortement impacté par de nombreux facteurs qui rendent
les ventes très fluctuantes. Ces facteurs, aussi appelés variables explicatives, sont parfois non
contrôlés et même inconnus. Certains d’entre eux impliquent une décision d’achat accrue,
d’autres modifient l’achalandage du magasin [3]. L’impact de ces facteurs peut être très dif-
férent sur les ventes. En fait, certains facteurs génèrent des fluctuations de points sans affecter
de façon significative le volume total des ventes, par exemple, le moment où la remise sur prix
produit des pointes de ventes. D’autres ont un impact plus global sur les ventes, comme l’envi-
ronnement macroéconomique ou la stratégie de vente au détail. Par conséquent, les praticiens
devraient garder à l’esprit les aspects suivants lorsqu’ils construisent le système de prévision :

• Les variables explicatives sont essentielles pour modéliser les ventes de vêtements et, si
possible, les plus pertinentes devraient être intégrées dans le calcul des prévisions. Les
variables sont nombreuses et variées et il n’est pas possible d’établir une liste exhaustive.

• L’impact de chacune de ces variables est particulièrement difficile à estimer et n’est pas
constant dans le temps.

• Ces variables peuvent être corrélées entre elles.

• Certaines variables ne sont pas disponibles (p. ex. données concurrentes) ou prévisibles
(p. ex. données météorologiques) et ne peuvent donc pas être intégrées dans le système
de prévision.

5
1.1.2 La saisonnalité
Une autre caractéristique de l’industrie de la mode est la saisonnalité. La saisonnalité des
ventes est un phénomène par lequel le niveau des ventes de produits ou service est influencé de
manière régulière par la saison, une période de l’année ou un événement calendaire récurrent.
Chaque analyse de séries chronologiques doit utiliser le facteur de saisonnalité pour ajuster les
résultats des prévisions. Cependant, dans l’industrie de la mode, certains articles sont logique-
ment très sensibles aux variations saisonnières, d’autres ne sont pas affectés. Ainsi, en fonction
de la sensibilité du domaine considéré, la saisonnalité devrait être plus ou moins intégrée dans
le système de prévision des ventes.

1.2 Prédiction des ventes dans le domaine du textile et de la


mode
La prévision des ventes est une tâche très importante. Il est particulièrement important dans
le domaine du textile en raison de l’évolution constante des tendances de la mode et d’une
demande très volatile. Il est bien connu que les produits à la mode ont généralement des cycles
de vie assez courts et, par conséquent, pour chaque gamme de produits, l’entreprise dispose
généralement de très peu de données historiques pour faire des prévisions. Comme l’indique
la documentation, il existe de nombreux modèles analytiques qui peuvent être utilisés pour
mener à bien la tâche de prévision. Ces différents modèles peuvent être classés en trois (03)
grandes familles à savoir les méthodes traditionnelles, méthodes d’intelligence artificielle et les
méthodes hybrides.
Traditionnellement, la prévision des ventes s’effectue par des méthodes statistiques. En fait,
de nombreuses méthodes statistiques ont été utilisées pour la prévision des ventes, notamment
la régression [4], la moyenne mobile, la moyenne pondérée, le lissage exponentiel [5], l’analyse
bayésienne, etc. Cependant, l’efficacité de ces méthodes dépend du domaine d’application, de
l’horizon et même de l’expérience utilisateur [6]. Il existe également des modèles statistiques
d’analyse de séries chronologiques comme ARIMA et SARIMA. Ces méthodes sont simples et
faciles à mettre en œuvre et les résultats peuvent être calculés très rapidement. Un autre modèle
appliqué par Green et Harrison [7] utilise une approche bayésienne pour explorer la prédiction
d’une entreprise qui vend des robes pour femmes sur commande. Un autre travail récent [8]
examine l’applicabilité d’un modèle bayésien de prédiction pour prédire la demande dans le
secteur de la mode. On constate que l’approximation bayésienne hiérarchique proposée pro-
duit des résultats quantitatifs supérieurs à ceux de nombreuses autres méthodes. Bien que ces
méthodes soient largement utilisées, notamment en raison de leur simplicité et de leur facilité
de calcul, elles présentent certains inconvénients. Il est parfois difficile de choisir la méthode
statistique la plus appropriée pour la prévision en question, le choix des bonnes méthodes sta-
tistiques est une tâche difficile et elle nécessite une connaissance "experte". Ces inconvénients

6
passent aussi par la difficulté de travailler sur des données de demande intermittentes ou ir-
régulières. Ces méthodes se limitent également à leur structure linéaire. Ce type de méthodes
nécessite également de grands ensembles de données historiques et il est difficile d’incorpo-
rer d’autres variables telles que les caractéristiques exogènes du marché. Par conséquent, les
méthodes statistiques pures peuvent ne pas permettre d’obtenir un résultat de prédiction sou-
haitable. Comparées à des méthodes plus sophistiquées, les méthodes purement statistiques ne
donnent pas de résultats très prometteurs. L’adoption d’autres techniques en conjonction avec
ces méthodes statistiques peut être un moyen de surmonter certains de ces obstacles.
Comme nous l’avons vu, les modèles statistiques purs ne permettent pas de faire des prévi-
sions sur les ventes. Afin d’améliorer la précision des prévisions, les méthodes d’IA émergent
avec les progrès de la technologie informatique. En fait, les modèles d’IA peuvent efficacement
dériver des fonctions d’approximation "arbitrairement non linéaires" directement à partir des
données. Des algorithmes populaires du machine learning comme decision tree, random fo-
rest ou Xgboost ont été appliqués pour la prévision des ventes que ce soit dans le secteur de
la mode ou dans d’autres. Par exemple Mikael Holmberg et Pontus Halldén [9] ont appliqué
les algorithmes tels que Xgboost, decision tree pour prédire les ventes d’un restaurant. Dans le
secteur de la mode, nous avons aussi Nelson da Silva Alves [10] qui a appliqué en plus du de-
cision et du random forest, Le SVm pour prédire les ventes, il démontre à la fin que son modèle
random forest offre les meilleures performances comparé aux autres modèles developpés. Par
ailleurs, d’autres méthodes telles que les modèles de réseaux neurones artificiels (ANN) [11]
et les modèles logiques flous sont couramment utilisés dans la littérature. Plus précisément,
des modèles ANN ont été développés et donnent des résultats satisfaisants dans différents do-
maines [12, 13, 14]. Dans la littérature sur la prévision des ventes dans le secteur de la mode, C.
Frank [11] explorent l’utilisation du modèle ANN pour la prévision des ventes. En le compa-
rant à deux autres méthodes statistiques en termes de résultats prévisionnels, on constate que le
modèle ANN obtient les meilleures performances. Malgré le fait que les modèles d’IA donnent
de bons résultats en termes de précision des prévisions (comme l’indiquent les mesures de per-
formance telles que l’erreur quadratique moyenne), ces modèles de prévision nécessitent un
temps très long pour accomplir la tâche de prévision. La raison d’un tel inconvénient vient du
fait que ces modèles utilisent des algorithmes d’apprentissage basés sur le gradient tels que le
réseau de neurone de rétro-propagation.
Les méthodes de prévision hybrides sont habituellement élaborées en fonction du fait qu’elles
peuvent utiliser les forces de différents modèles ensemble pour former une nouvelle méthode
de prévision. Ainsi, bon nombre d’entre eux sont considérés comme étant plus efficaces que les
modèles statistiques purs et les modèles d’IA purs. En raison de l’utilisation de plusieurs tech-
niques dans un même modèle, les modèles statistiques ou même comme ANN pur finissent
par devenir moins efficaces. Il n’est pas surprenant qu’au cours des dernières années, un cer-
tain nombre de travaux de recherche aient examiné les méthodes de prévision hybrides, par
exemple [15, 16, 17, 18]. Les méthodes hybrides utilisées dans la littérature de prévision de la

7
mode combinent souvent différents schémas tels que le modèle flou, ANN, avec d’autres tech-
niques.
Vroman et al [19] ont mis au point un modèle adaptatif flou qui contrôle les facteurs de
pondération d’une méthode de prédiction statistique "Holt-Winter" à lissage exponentiel. Ils
montrent que le modèle hybride flou proposé surpasse la méthode Holt-Winter convention-
nelle. Ils préconisent également que la méthode qu’ils proposent puisse être appliquée à la pré-
vision des ventes de nouveaux articles dans le secteur de la mode. Récemment, Yesil et al [20]
développent une méthode qui combine la logique floue et le modèle statistique pour effectuer
des prévisions. Dans leur méthode hybride, ils calculent les prévisions finales hebdomadaires
sur la base de la moyenne pondérée des prévisions que sont générés par de multiples méthodes.
Ils font valoir que la méthode proposée permet d’obtenir une grande précision.

1.3 Génération de motif


De récentes percées dans le domaine de la vision par ordinateur ont conduit à un succès
sans précédent dans la génération d’images. Ces solutions sont capables de générer des images
qui deviennent rapidement impossibles à distinguer des images réelles. Au cours des dernières
années, plusieurs modèles génératifs ont été mis au point. Par exemple, les réseaux de neu-
rones récurrents de pixels [21] et PixelCNN [22] ont tous deux très bien réussi à générer des
images. Des travaux antérieurs sur la créativité pour la génération de peintures ont utilisé des
algorithmes génétiques [23] [24] pour créer de nouvelles œuvres d’art en partant de celles déjà
générées par l’homme et en les modifiant progressivement à l’aide de fonctions de transforma-
tion des pixels. Dans ce cas, la créativité est guidée par des fonctions de mise en forme prédéfi-
nies qui peuvent être adaptées. Par exemple, pour générer des portraits, DiPaola et Gabora [25]
définissent une famille de fonctions de mise en forme basées sur des règles spécifiques.
Un autre modèle puissant qui a vu le jour est le Generative Adversarial Network (GAN)
[26]. Goodfellow a proposé un système de génération d’images basé sur un réseau de géné-
rateurs, G, et un réseau de discriminateurs, D. A chaque itération de formation, G génère un
ensemble d’images et essaie de les rendre aussi réalistes que possible. Simultanément, D essaie
de déterminer si chacune des images de G est réelle ou non. Au fur et à mesure que G et D
s’entraînent l’un contre l’autre, les images générées devraient devenir de plus en plus réalistes.
Sur la base de ce modèle, des chercheurs de différents pays ont développé des applications in-
téressantes pour la technologie, notamment l’animation d’images, la super résolution d’images
[27] et la synthèse texte-image [28].
De nombreuses variantes du GAN ont été proposées pour générer des images. Radford et
al [29] ont appliqué un réseau de neurone convolutionnel en GAN pour générer des images à
partir d’entrées vectorielles. Au lieu de générer des images à partir de vecteurs, des méthodes
utilisent la même idée pour générer des images avec une entrée plus significative. Mirza &
Osindero et al. ont introduit des réseaux GAN conditionnels [30] en utilisant l’étiquette de

8
classe d’image comme entrée conditionnelle pour générer des nombres MNIST dans une classe
particulière.
Dans le secteur de la mode, Jaime Deverall, Jiwoo Lee, Miguel Ayala proposent un modèle
Conditional Deep Convolutional GAN (CDCGAN) capable de générer des modèles de chaus-
sures en fonction d’un vecteur d’entrée codant les caractéristiques désirées [31]. Aussi Fashion-
GAN proposé par Y. R.Cui, Q.Liu, C.Y.Gao et Z.Su [32] génère directement certaines images de
vêtements spécifiques à partir des éléments de conception du vêtement tels que les croquis de
mode et les motifs de tissu.

1.4 Intelligence Artificielle


L’intelligence artificielle (IA) consiste à mettre en œuvre un certain nombre de techniques
visant à permettre aux machines d’imiter une forme d’intelligence humaine. L’IA se retrouve
implémentée dans un nombre grandissant de domaines d’application.
La notion voit le jour dans les années 1950 grâce au mathématicien Alan Turing. Dans son
livre Computing Machinery and Intelligence, ce dernier soulève la question d’apporter aux ma-
chines une forme d’intelligence. Il décrit alors un test aujourd’hui connu sous le nom « Test de
Turing » dans lequel un sujet interagit à l’aveugle avec un autre humain, puis avec une ma-
chine programmée pour formuler des réponses sensées. Si le sujet n’est pas capable de faire la
différence, alors la machine a réussi le test et, selon l’auteur, peut véritablement être considérée
comme « intelligente ».
Depuis l’introduction du big data, les systèmes d’IA ont désormais accès à de très grandes
quantités de données, qu’ils peuvent également traiter très rapidement et parvenir à une conclu-
sion efficace. Par conséquent, l’IA progresse à grands pas dans la recherche et est considérée
comme l’une des technologies les plus prometteuses à l’horizon pour permettre une toute nou-
velle façon d’utiliser les ordinateurs pour résoudre les problèmes du monde réel.

1.4.1 Machine Learning


Les êtres humains apprennent par l’expérience : nous utilisons un processus d’essais et d’er-
reurs afin de découvrir quelles actions doivent être déclenchées dans certaines circonstances.
Cela nous permet de faire des abstractions et de construire des connaissances. L’apprentissage
machine encore appelé machine learning est en quelque sorte similaire ; il est peut être considéré
comme un algorithme ayant pour objectif d’améliorer une mesure de performance en dérivant
automatiquement ses propres règles et en créant ses propres modèles basés sur des informa-
tions données [33]. Autrement dit, la machine apprend des règles en se basant sur les données
d’apprentissages et peut les appliquer à de nouvelles données entrantes. Exemples d’usage de
Machine Learning : Recommandations en fonction de vos achats et écoutes (Amazon, Spotify),
Suggestions en fonction de vos recherches précédentes et des recherches réalisées par tous les

9
utilisateurs ainsi que les sujets d’actualités (Google Search), Prédictions (Prix, Trafic), Diagnos-
tiques médical (Imagia), Reconnaissance d’images (Amis Facebook, Microsoft Cognitive Ser-
vices), Détection de fraude (Paypal), etc.

F IGURE 1.1 – Les différentes familles en Machine Learning [34]

En se référant à la Figure 1.1 nous distinguons six(06) familles d’algorithmes en machine


learning :

• apprentissage supervisé (Supervised learning) : ici, on dispose d’un ensemble d’objets et


pour chaque objet d’une valeur cible associée ; le modèle doit être capable de prédire la
bonne valeur cible pour un nouvel objet. On distingue les problèmes de régression des
problèmes de classification. Ainsi, on considère que les problèmes de prédiction d’une
variable quantitative sont des problèmes de régression (dont relève notre travail) tandis
que les problèmes de prédiction d’une variable qualitative sont des problèmes de classifi-
cation ;

• apprentissage non supervisé (Unsupervised learning) : ici, on dispose d’un ensemble


d’objets sans aucune valeur cible associée ; le modèle doit être capable d’extraire les ré-
gularités présentes au sein des objets pour mieux visualiser ou appréhender la structure
de l’ensemble des données. Contrairement à l’apprentissage supervisé le non supervisé
permet de s’abstraire d’un étiquetage humain. L’apprentissage non supervisé va lui même
détecter les similarités (une structuration) dans un jeu de données et les étiqueter, on com-
prend ici que cette approche est plus complexe étant donné que nous ne connaissons pas
les étiquettes en amont de la démarche de classification. Tout dépendra du jeu de donnée.
Plusieurs approches existent : le partitionnement des données (clustering), la détection
d’éléments atypiques (outlier detection), la réduction de dimensions, etc. Par exemple
Netflix et la proposition de film, Amazon et la recommandation de produit

10
• apprentissage semi-supervisé (Semi-supervised learning) : il se situe entre l’apprentissage
supervisé et l’apprentissage non supervisé. Il utilise ainsi des données étiquetées et des
données non étiquetées. Cette méthode permet d’améliorer la qualité de l’apprentissage.

• apprentissage par renforcement : ici, on dispose d’un ensemble de séquences de déci-


sions dans un environnement dynamique, et pour chaque action de chaque séquence une
valeur de récompense (la valeur de récompense de la séquence est alors la somme des
valeurs des récompenses des actions qu’elle met en œuvre) ; il faut un modèle capable de
prédire la meilleure décision à prendre pour un état donné de l’environnement. Exemple :
jeu d’échec, poker, backgammon,go

• apprentissage par transfert (Transfer learning) : C’est un apprentissage qui peut venir
optimiser et améliorer un modèle d’apprentissage déjà en place. Sa compréhension est
donc assez conceptuelle. L’idée est de pouvoir appliquer un ensemble acquis sur une tâche
à un second ensemble relatif. Exemple d’usage : word2vec

• apprentissage profond (Deep Learning) : Sans doute le plus connu car très utilisé et effi-
cace, l’apprentissage profond est une méthode d’apprentissage automatique. La machine
va elle même apprendre à réaliser une tâche. Il existe plusieurs champs d’application
comme la reconnaissance de forme, la reconnaissance de la parole, le traitement automa-
tique des langues (TAL), les prédictions (Prix, Trafic).

1.4.2 Deep Learning


L’apprentissage profond est un sous-domaine de l’apprentissage machine qui traite des al-
gorithmes inspirés par la structure et le fonctionnement du cerveau appelés réseaux neuronaux
artificiels. En d’autres termes, il reflète le fonctionnement de nos cerveaux. Les algorithmes
d’apprentissage profond sont similaires à la structure du système nerveux où chaque neurone
est connecté aux autres et transmet des informations. Les modèles d’apprentissage profond
fonctionnent par couches et un modèle type comporte au moins trois couches :

• une couche d’entrée ;

• une ou plusieurs couches cachées ;

• une seule couche de sortie.

11
Couche Couche Couche
d’entrée cachée de sortie

Entrée #1

Entrée #2
Sortie
Entrée #3

Entrée #4

F IGURE 1.2 – Réseau de neurones artificiels [35]

Chaque couche accepte les informations de la précédente et les transmet à la suivante. Dif-
férents éléments caractérisent un neurone à savoir :

Poids de connexion

Les poids sur les connexions dans un réseau de neurones sont des cœfficients qui modifient
(amplifient ou minimisent) le signal entrant dans un neurone donné du réseau. Dans les repré-
sentations communes des réseaux de neurones, il s’agit des lignes allant d’un point à l’autre,
des arêtes du graphe mathématique. Souvent, les connexions sont notées comme w dans les re-
présentations mathématiques des réseaux de neurones. Les réseaux neuronaux sont formés par
un réglage fin des poids, afin de découvrir l’ensemble optimal de poids qui génère la prédiction
la plus précise.

Les biais

Les biais sont des valeurs scalaires ajoutées à l’entrée pour garantir qu’au moins quelques
nœuds par couche soient activés, quelle que soit la puissance du signal. Les biais permettent
l’apprentissage en donnant au réseau une action en cas de faible signal. Ils permettent au réseau
d’essayer de nouvelles interprétations ou comportements. Les biais sont généralement notés b
et, comme les poids, ils sont modifiés tout au long du processus d’apprentissage.

Fonctions d’activation

Une fonction d’activation est une équation mathématique qui détermine la sortie de chaque
élément (neurone) dans le réseau de neurone. Elle prend l’entrée de chaque neurone et la trans-
forme en une sortie, généralement comprise entre 1 et 0 ou entre -1 et 1. Les fonctions d’ac-

12
tivation classiques utilisées dans les réseaux neuronaux comprennent la fonction sigmoïde et
tangente hyperbolique (tanh). Parmi les nouvelles fonctions d’activation, destinées à améliorer
l’efficacité des calculs, figure la fonction linéaire rectifiée (ReLu).

• sigmoïde : une fonction sigmoïde est une machine qui convertit des variables indépen-
dantes d’une étendue quasi infinie en probabilités simples comprises entre 0 et 1, et la
plupart de ses sorties seront très proches de 0 ou 1. Sa formule est :

1
g(x) = σ(x) = (1.1)
1 + e−x

et une représentation est donnée à la figure 1.3 ;

F IGURE 1.3 – Fonction sigmoïde

• tanh : est une fonction trigonométrique hyperbolique (voir figure 1.4). Tout comme la
tangente représente un rapport entre les côtés opposés et adjacents d’un triangle rectangle,
tanh représente le rapport entre le sinus hyperbolique et le cosinus hyperbolique :

sinh(x)
tanh(x) = (1.2)
cosh(x)

Contrairement à la fonction Sigmoïde, la plage normalisée de tanh est comprise entre -1


et 1. L’avantage de tanh est qu’il peut traiter plus facilement les nombres négatifs ;

13
F IGURE 1.4 – Fonction tangente hyperbolique

• fonction linéaire rectifiée : est une transformation plus intéressante qui active un nœud
uniquement si l’entrée dépasse une certaine quantité. Lorsque l’entrée est inférieure à
zéro, la sortie est égale à zéro, mais lorsque l’entrée dépasse un certain seuil, elle présente
une relation linéaire avec la variable dépendante :

f (x) = max(0, x) (1.3)

comme illustré à la Figure 1.5 ;

F IGURE 1.5 – Fonction linéaire rectifiée

Cette fonction possède une variante assez populaire et efficace du nom de LeakyReLU.
Celle ci possède une faible pente pour les valeurs négatives, au lieu d’être totalement
nulles. Par exemple, une LeakyReLU peut avoir y = 0,1x lorsque x < 0 comme illustré à la
Figure 1.6

14
F IGURE 1.6 – Fonction LeakyReLU

L’apprentissage
Les pondérations commencent avec des valeurs aléatoires, et à mesure que le réseau de neurone
en apprend davantage sur le type de données en entrée, le réseau ajuste les pondérations en
fonction des erreurs que les pondérations précédentes ont entraînées. C’est ce que l’on appelle
la formation, l’apprentissage ou encore entraînement du réseau de neurone. Une fois le réseau
formé, nous pouvons l’utiliser pour prédire la sortie pour les données d’entrée similaires.

1.4.3 Generative Adversarial Networks (GAN)


Les réseaux GAN permettent aux réseaux neuronaux de générer des photos, des peintures et
d’autres artefacts qui ressemblent beaucoup à ceux créés par les humains. Il utilise deux réseaux
de neurones, dont l’un génère des échantillons d’images, et l’autre apprend à distinguer les
images générées automatiquement des images réelles. La boucle de rétroaction fermée entre les
deux réseaux les rend de plus en plus aptes à générer de faux artefacts qui ressemblent à des
images réelles.

15
F IGURE 1.7 – Generative Adversarial Networks [36]

Le GAN imite les images en opposant deux réseaux de neurones, l’un étant le "généra-
teur", et l’autre le "discriminateur". Le générateur part d’un bruit aléatoire et crée de nou-
velles images, qu’il transmet au discriminateur, dans l’espoir qu’elles seront jugées authen-
tiques (même si elles sont fausses). Le discriminateur vise à identifier les images provenant du
générateur comme étant fausses, en les distinguant des images réelles. Au début, c’est facile,
mais cela devient de plus en plus difficile. Le discriminateur apprend sur la base des échan-
tillons d’images réels qu’il connaît. Le générateur quant à lui apprend à partir du retour d’in-
formation du discriminateur. Les réseaux GAN peuvent générer ou améliorer des photos, pein-
tures, discours, vidéo. Dans le cas de notre projet, nous avons utilisé les réseaux GAN pour
générer des images.

Conclusion
Dans ce chapitre, nous avons exposé les différentes méthodes utilisées généralement pour
prédire les ventes ainsi que celles utilisées pour la génération d’image. Nous avons aussi pré-
senté des notions relatives à l’intelligence artificielle qui seront utiles à comprendre la suite de
ce document. Plus précisément nous avons abordé le machine learning et ses différentes caté-
gories.

16
Chapitre 2
Matériel et Méthodes

Introduction
Ce chapitre fait la synthèse des différents outils aussi bien matériels que logiciels que nous
avons utilisé tout au long de notre étude. Nous y présentons aussi les différents choix tech-
niques que nous avons opéré pour mener à bien ce travail.

2.1 Matériel
Pour mener à bien notre projet, les expériences et les tests ont été effectués sur un ordinateur
dont les caractéristiques sont les suivantes :

• Système d’exploitation : Ubuntu 18.04 LTS [37]

• Architecture : 64 bits

• Processeur : Intel® Core™ i3-7700HQ CPU @ 2.80GHz x 8

• Mémoire RAM : 4.00 Go

2.2 Choix techniques


Pour notre travail, nous avons été confrontés à des choix quant au langage de programma-
tion et aux différentes librairies à utiliser. Nous avons effectué une étude comparative entre les
langages de programmation recommandés pour le machine learning.
Parmi cette multitude de langages, il existe trois qui se démarquent de par leur nombre
d’utilisateurs, leur efficacité et les différentes fonctionnalités qu’ils offrent :

1. MATLAB (matrix laboratory) : c’est un environnement informatique numérique multi-


paradigmes. MATLAB, langage de programmation propriétaire développé par MathWorks,

17
permet des manipulations matricielles, le traçage de fonctions et de données, la mise
en œuvre d’algorithmes, la création d’interfaces utilisateur et l’interfaçage avec des pro-
grammes écrits dans d’autres langages, notamment C, C ++, C#, Java, Fortran et Python.
Avantages :

• plate-forme mathématique et informatique la plus rapide, en particulier pour les opé-


rations vectorisées / algèbre à matrice linéaire ;
• très courts scripts en considérant la forte intégration de tous les paquets ;
• meilleure visualisation des figures et des graphiques interactifs ;
• bien testé et supporté car c’est un produit commercial.

Inconvénients :

• impossible d’exécuter les scripts de façon autonome - ils doivent être traduits dans
un autre langage ;
• prix d’acquisition de licence élevé ;
• mauvaise intégration avec d’autres langages ;
• mauvaise performance pour les boucles itératives.

2. R : c’est un langage et un environnement pour l’informatique statistique et les graphiques.


Il s’agit d’un projet GNU similaire au langage et environnement S développé par John
Chambers et ses collègues aux laboratoires Bell (anciennement AT&T, maintenant Lucent
Technologies). R peut être considéré comme une implémentation différente de S. Il existe
quelques différences importantes, mais une grande partie du code écrit pour S fonctionne
sans modification sous R.
Avantages :

• vitesse de développement rapide (60% de lignes en moins par rapport au python,


environ 500% de moins que C) ;
• beaucoup de paquets Open Source ;
• peut s’intégrer dans du C++/C avec rcpp ;
• plus grande communauté.

Inconvénients :

• lent par rapport à Python en particulier dans les boucles itératives et les fonctions
non vectorisées ;

18
• mauvais tracé de figure par rapport à Python et des difficultés à mettre en œuvre des
graphiques interactifs ;
• capacités limitées pour créer des applications autonomes.

3. Python : c’est un langage de programmation de haut niveau, interprété et utilisé pour la


programmation à usage général. Créé par Guido van Rossum et publié pour la première
fois en 1991, Python repose sur une philosophie de conception qui met l’accent sur la lisi-
bilité du code, en utilisant notamment des espaces significatifs. Il fournit des constructions
permettant une programmation claire à petite et grande échelle.
Avantages :

• idéal pour la programmation générale et le développement d’applications ;


• beaucoup de paquets Open Source (Pandas, Numpy, Scipy) ;
• peut être un langage utilisé pour connecter d’autres langages : R, C ++ et autres
(python) ;
• La vitesse générale la plus élevée, en particulier dans les boucles itératives.

Inconvénients :

• erreurs silencieuses pouvant être très longues à retrouver (même avec les débogueurs
visuels / IDE) ;
• plus de code requis pour les mêmes opérations que R ou MATLAB ;
• certains paquets ne sont pas compatibles avec d’autres ou contiennent des chevau-
chements.

De même une étude menée par KDNuggets [38] auprès de ses utilisateurs sur les outils les
plus utilisés dans les sciences de données entre 2017 et 2019 a donné les résultats présentés dans
la figure 2.1.

19
F IGURE 2.1 – KDnuggets Analytics / Data Science 2019. Sondage sur les logiciels : les principaux
outils en 2019 et leur part dans les sondages 2017-9 [38]

La Figure 2.1 nous montre ainsi que depuis 2017, Python avec ses différents avantages est
l’outil le plus utilisé pour le Machine Learning à la vue des différentes possibilités qu’il offre.
Notre choix après ces différentes analyses s’est donc porté sur lui en tant qu’outil principal pour
mener à bien notre étude.
En outre, il existe plusieurs distributions, paquets et modules conçus pour Python facilitant
l’utilisation des concepts clés de l’apprentissage automatique. Listés sur la Figure 2.1, ils se sont
avérés importants dans notre étude. Il s’agit de :

Anaconda[39] : c’est une distribution libre et gratuite des langages de programmation Py-
thon et R ainsi que de nombreux autres outils tels que spyder (un environnement de déve-
loppement intégré abrégé EDI en français pour écrire du code en python), matplotlib (pour
visualiser des données à travers les courbes) pour les applications liées à la science des données
et à l’apprentissage automatique (traitement de données à grande échelle, analyse prédictive,
calcul scientifique). Il vise à simplifier la gestion et le déploiement d’applications relatives à
cette dernière.

Tensorflow[40] : est un framework de programmation pour le calcul numérique qui a été


rendu Open Source par Google en Novembre 2015. TensorFlow n’a cessé de gagner en popula-
rité, pour devenir très rapidement l’un des frameworks les plus utilisés pour le deep learning
et donc les réseaux de neurones. Son nom est notamment inspiré du fait que les opérations
courantes sur des réseaux de neurones sont principalement faites via des tables de données

20
multi-dimensionnelles, appelées Tenseurs (Tensor). Un Tenseur à deux dimensions est l’équi-
valent d’une matrice. Aujourd’hui, les principaux produits de Google sont basés sur Tensor-
Flow ( Gmail, Google Photos, Reconnaissance de voix) ; sa documentation très riche fait d’elle
une bibliothèque facile à utiliser.

Keras[41] : est une API de réseaux de neurones de haut niveau, écrite en Python et capable
de fonctionner sur TensorFlow ou Theano. Il a été développé en mettant l’accent sur l’expéri-
mentation rapide. Être capable d’aller de l’idée à un résultat avec le moins de délai possible est
la clé pour faire de bonnes recherches. Il a été développé dans le cadre de l’effort de recherche
du projet ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System), et son
principal auteur et mainteneur est François Chollet, un ingénieur Google. En 2017, l’équipe Ten-
sorFlow de Google a décidé de soutenir Keras dans la bibliothèque principale de TensorFlow.
Chollet a expliqué que Keras a été conçu comme une interface plutôt que comme un cadre
d’apprentissage end-to-end. Il présente un ensemble d’abstractions de niveau supérieur et plus
intuitif qui facilitent la configuration des réseaux neuronaux.

Scikit-learn[42] : est une bibliothèque libre Python dédiée à l’apprentissage automatique. Il


est développé par de nombreux contributeurs notamment dans le monde académique par des
instituts français d’enseignement supérieur et de recherche comme Inria et Télécom ParisTech.
Il comprend notamment des fonctions pour estimer des forêts aléatoires, des régressions logis-
tiques, des algorithmes de classification, et les machines à vecteur de support. Il est conçu pour
s’harmoniser avec d’autres bibliothèques libre Python, notamment NumPy et SciPy.

Dans ce projet, nous avons utilisé Tensorflow, Keras et Scikit-learn pour la construction de
nos modèles.

21
2.3 Méthodes
L’exécution du projet a été divisée en plusieurs étapes, afin de définir le problème de ma-
nière structurée. Ainsi, les principales étapes ont été les suivantes :

F IGURE 2.2 – Diagramme des étapes

Collecte de données

La toute première et la plus importante étape est de collecter les données pertinentes corres-
pondant à notre problématique. La collecte de données précises est essentielle au maintien de
l’intégrité de notre projet d’apprentissage machine.

Prétraitement

Le prétraitement des données est un processus de nettoyage des données brutes, c’est-à-
dire que les données recueillies dans le monde réel sont converties en un ensemble de données
propres. En d’autres termes, l’ensemble de données qui soutient le projet est analysé. La base
de données est étudiée, la qualité des données sera analysée, par exemple s’il y a des données
manquantes, des valeurs redondantes, des informations incohérentes, des données bruyantes,
des valeurs aberrantes ou des données à valeurs impossibles qui nécessitent un traitement. Les
données feront l’objet d’une analyse statistique, de sorte qu’elles puissent être mieux interpré-
tés. A la fin de cette étape nous divisons notre ensemble de donnée en deux : une partie qui
servira à la formation des modèles et l’autre servira lors de l’évaluation.

22
Modélisation

La modélisation comprend le choix, le paramétrage et le test de différents algorithmes ainsi


que leur enchaînement, qui constitue un modèle. Ce processus est d’abord descriptif pour gé-
nérer de la connaissance, en expliquant pourquoi les choses se sont passées. Il devient ensuite
prédictif en expliquant ce qu’il va se passer, puis prescriptif en permettant d’optimiser une si-
tuation future.Dans cette phase, plusieurs modèles sont créés, utilisant différentes approches
du problème et différentes stratégies de résolution.

Evaluation

Une fois la formation terminée, il est temps de voir si le modèle est bon, à l’aide de l’éva-
luation. C’est là que l’ensemble de données que nous avons mis de côté plus tôt entre en jeu.
L’évaluation nous permet de comparer notre modèle à des données qui n’ont jamais été utilisées
pour la formation. Cette mesure nous permet de voir comment le modèle pourrait fonctionner
par rapport à des données qu’il n’a pas encore vues. Cela se veut représentatif de la façon dont
le modèle pourrait fonctionner dans le monde réel.

Conclusion
Dans ce chapitre nous avons fait la synthèse du matériel aussi bien physique que logiciel
que nous avons utilisé dans notre étude. Nous y avons aussi présenté les raisons qui nous ont
poussé à faire certains choix techniques dans le choix des outils nécessaires pour cette étude.
Ce chapitre fait aussi la synthèse sur la méthodologie utilisée dans l’élaboration des modèles.

23
Chapitre 3
Solution proposée

Introduction
Dans ce chapitre, nous présentons l’ensemble des solutions que nous avons développé pour
répondre aux problèmes posés. Pour parvenir à ces solutions nous avons suivi une méthodolo-
gie bien précise déjà présenté au chapitre précédent, il s’agira donc dans ce chapitre de décrire
pour chaque étape de la méthodologie les différentes actions ou opérations menées qui nous ont
conduit à nos différents modèles. Ce chapitre sera divisé en deux parties qui décriront respecti-
vement nos solutions pour résoudre le problème de prévision des ventes et celui de génération
de motifs.

3.1 Prédiction de ventes dans les boutiques

3.1.1 Collecte de données


Comme dans tous les problèmes d’apprentissage automatique, l’entraînement et l’évalua-
tion d’un modèle d’apprentissage s’effectue au moyen d’un ensemble de données comportant
des exemples appelés "dataset". Dans le cadre de nos travaux nous avons utilisé un dataset pour
la prédiction des ventes dans les boutiques (dataset 1). Nous tenons à notifier que les boutiques
dont il est question dans le dataset 1 sont celles de vente en détail.

Dataset 1
Le présent dataset relatif à la prédiction de vente a été extrait de la base de données de JWC
à l’aide du logiciel QlickView et contient 170294 échantillons de données. Il contient des infor-
mations relatives aux ventes journalières des boutiques couvrant la période de Janvier 2013 à
Décembre 2019. Chaque entrée de produit dans l’ensemble de données présente diverses va-
riables qui sont décrites ci-après :

24
• Inv Date : C’est la date à laquelle le produit est vendu.

• Boutique : C’est le nom des boutiques. Dans l’ensemble de données utilisé, il y a : "Woodin
Ganhi" et "Vlisco Ganhi".

• Product_Type : C’est le type de produit. Il est important de noter que dans les boutiques
deux (02) types de produit sont vendus. Il s’agit des prêts-à-porter et des tissus représen-
tés respectivement par les valeurs "PAP" et "Fabric" dans notre ensemble de données. La
Figure 3.1 présente la quantité vendue par type de produit, on note que les tissus sont
plus vendus que les prêts-à-porter.

F IGURE 3.1 – Quantité vendue par type de produit

• Location : C’est l’identifiant permettant de distinguer chaque boutique. En occurrence,


le code 112 pour distinguer "Woodin Ganhi" et le code 117 pour "Vlisco Ganhi". Ci- des-
sous la Figure 3.2 présentant le nombre de produit vendu par type et par boutique. On
remarque que la boutique Woodin Ganhi vend plus que Vlisco Ganhi en matière de quan-
tité que ce soit en tissu ou prêts-à-porter.

25
F IGURE 3.2 – Quantité vendue par type de produit

• Item code : Il s’agit d’un code qui permet d’identifier chaque produit de façon unique.
Nous pouvons énumérer quelques codes dont VL317 A0979F008, WOPEGHA, VL327
49600F002, UWBLKCO.

• Marque : C’est la marque du produit. Dans notre dataset les produits sont de marques :
Vlisco, GTP, Woodin, Uniwax(UW). La Figure 3.3 présente le total des ventes regroupées
par type de produit et par marque. On remarque que les tissus de marque Vlisco sont les
plus vendus mais en ce qui concerne les prêts-à-porter les produits de marques Woodin
dominent.

F IGURE 3.3 – Quantité vendue par type de produit et par marque

• Sales : Il s’agit du volume en yards vendu par produit. C’est notre variable cible c’est à
dire la variable qu’on veut prédire.

26
3.1.2 Prétraitement
La base de données comprend des données relatives aux ventes journalières des boutiques
de vente en détail. Dans un premier temps, les données ont été groupées par mois grâce à l’attri-
but "Inv date" puis par type de produit (PAP et Fabrics) proposé dans les boutiques (figures 3.4
et 3.5). L’analyse du dataset, nous a fait remarquer que certains tuples n’avaient pas de valeurs.
Ces données ont été filtrées et retirées de l’ensemble de données. Par ailleurs, aucune valeur
redondante, aucune information incohérente,n’a été trouvée. En observant les figures 3.4 et 3.5
on remarque une hausse des ventes pendant les trois derniers mois de l’année. Cette hausse est
due aux fêtes de fin d’année (Noël et Nouvel an).

F IGURE 3.4 – Quantité de Fabrics vendue par mois

F IGURE 3.5 – Quantité de PAP vendue par mois

27
Les sections suivantes présenteront d’autres méthodes utilisées pour le prétraitement.

3.1.2.1 Création d’attributs

Les attributs utilisés pour la phase d’entraînement sont très déterminants pour une bonne
prédiction. Cependant, l’ingénierie des caractéristiques consiste non seulement à créer des at-
tributs mais aussi à sélectionner les bons. La première étape, celle de la création d’attributs,
exige de l’expérience, des connaissances spécialisées et de la créativité.
Dans le cas d’espèce, il s’agira de créer des attributs susceptibles d’affecter les ventes dans
les boutiques et ceux qui peuvent stimuler le système d’apprentissage. Ainsi on a :

• Season : Indique la saison météorologique du mois courant. Compte tenu du climat bé-
ninois il n’y a que deux valeurs possibles : "0" pour indiquer la saison pluvieuse et "1"
pour indiquer la saison sèche. Cet attribut a été créé à partir des informations relatives
au climat tiré du site web du gouvernement du Bénin [43] et de l’attribut "Inv Date" ini-
tialement présent dans l’ensemble de données. La Figure 3.6 indique que les ventes des
saisons sèches sont supérieures à celles des saisons pluvieuses.

F IGURE 3.6 – Quantité vendue par type de produit et par saison

• goodPeriod : Indique les mois spéciaux ou festifs c’est-à-dire les mois qui contiennent des
évènements de fêtes tels que Noël, Fêtes des mères, Fêtes des pères, St valentin, Tabaski,
Ramadan. Les valeurs possibles sont : "0" pour les mois normaux(sans événements de
fêtes) et "1" pour signifier le contraire. La Figure 3.7 présente une répartition des ventes
suivant cet attribut. Comme on pouvait s’y attendre les ventes des périodes festives sont
largement supérieure à celles des périodes non festives.

28
F IGURE 3.7 – Quantité vendue par type de produit et par période

• Nb_boutique : Indique le nombre de boutiques dans la ville de Cotonou.

• Boutique_type : Il est possible de catégoriser les boutiques selon la marque qui constitue
leurs spécialités. Par exemple "Woodin Ganhi" est une boutique spécialisée dans la vente
de la marque "Woodin".

• NB_boutique_type : indique le nombre de boutiques suivant la catégorie.

• Sales_last_1_month, Sales_last_2_month, Sales_last_3_month, Sales_last_6_month : Quan-


tité d’article vendue les 1, 2, 3, 6 derniers mois. Ces attributs sont expérimentales et per-
mettent de détecter la saisonnalité et les tendances.

• Sales_Avg_last_3_month, Sales_Avg_last_6_month : Quantité moyenne de produit vendu


les 3 et 6 derniers mois par type de produit, par marque et par boutique.

Nous pouvons classer l’ensemble des variables ou attribut de notre dataset en deux groupes
(quantitative et qualitative) comme le montre le tableau 3.1.

29
TABLEAU 3.1 – Variables quantitatives et qualitatives

Quantitatives Qualitatives

• Nb_boutique
• Boutique
• Nb_boutique_type
• Product_Type
• Sales
• Location
• Sales_last_1_month
• Marque
• Sales_last_3_month
• Season
• Sales_last_6_month
• goodPeriod
• Sales_Avg_last_3_month
• item code
• Sales_Avg_last_6_month

3.1.2.2 Sélection des attributs finaux

La sélection des caractéristiques est une très importantes étapes de l’apprentissage d’une
machine. Lorsque nous prenons un ensemble de données, chaque attribut (caractéristique)
n’aura pas nécessairement un impact sur la variable de sortie. Si nous ajoutons ces variables
non pertinentes dans le modèle, cela ne fera qu’aggraver les performances du modèle. D’où
la nécessité de procéder à une sélection. Pour faire la sélection nous avons étudié la corréla-
tion entre les différents variables quantitative de notre dataset en évaluant le coefficients de
corrélation de Pearson.

Coefficient de corrélation de Pearson

Le coefficient de corrélation de Pearson (du nom de Karl Pearson) peut être utilisé pour me-
surer la relation linéaire entre deux échantillons de données. Ce coefficient est calculé comme
la covariance de deux variables divisée par le produit de l’écart-type de chaque échantillon de
données. C’est la normalisation de la covariance entre deux variables pour donner un score
interprétable. Le résultat du calcul, le coefficient de corrélation peut être interprété pour com-
prendre la relation.

Cov(X, Y )
ρX,Y = (3.1)
σX σY

30
où : Cov(X, Y ) : est la covariance
σX : est l’écart-type de la variable X
σY : est l’écart-type de la variable Y

Le coefficient renvoie une valeur entre -1 et 1 qui représente les limites de corrélation d’une
corrélation négative complète à une corrélation positive complète. Une valeur de 0 signifie qu’il
n’y a pas de corrélation. Le tableau 3.2 illustre le coefficient de corrélation de Pearson entre la
variable cible (Sales) et les autres variables quantitatives de notre dataset.

TABLEAU 3.2 – Corrélation de Pearson entre la variable cible et les autres variables quantitatives

Nb_boutique_type 0.02
Nb_boutique 0.3
Sales_last_1_month 0.72
Sales_last_2_month 0.71
Sales_last_3_month 0.75
Sales_last_6_month 0.71
Sales_Avg_last_3_month 0.75
Sales_Avg_last_6_month 0.74

La variable "Nb_boutique_type" est la moins corrélée avec la variable cible. Toutefois, le pro-
cessus de sélection ne s’arrête pas là, car un bon ensemble de données se compose de variables
pertinentes mais aussi de variables indépendantes les unes des autres. Gennari [44][45] affirme
que les variables qui sont fortement corrélées entre elles sont des informations redondantes et
devraient être éliminées de l’ensemble de données, car elles décrivent essentiellement la même
chose. Vérifions donc la corrélation des variables les unes avec les autres. Le tableau 3.3 pré-
sente le coefficient de corrélation de Pearson entre les différentes variables quantitatives. Il n’y
a pas de valeur exacte du coefficient de corrélation qui détermine si une caractéristique doit être
incluse ou non, mais pour ce projet nous considérons les paires de variable ayant une valeur
supérieure ou égale à 0.8, et des deux nous supprimons celle qui est la moins corrélé avec la
variable cible en se référant au tableau 3.2.
En ce qui concerne les variables qualitatives nous avons conservé l’ensemble des variables
à l’exception de "item code" qui ne nous sera pas utile. Ainsi les attributs retenus pour le reste
de notre étude sont présentés au tableau 3.4

31
TABLEAU 3.3 – Corrélation de Pearson entre les variables quantitatives

Nb_boutique et Nb_boutique_type 0.92


Sales_last_1_month et Sales_last_2_month 0.83
Sales_last_3_month et Sales_last_6_month 0.75
Sales_Avg_last_3_month et 0.76
Sales_last_6_month
Sales_Avg_last_6_month et 0.75
Sales_Avg_last_3_month

TABLEAU 3.4 – Attributs finaux

Date
season
goodPeriod
Location
Marque
Product_Type
Nb_boutique
Boutique_type
Sales_last_1_month
Sales_last_3_month
Sales_last_6_month
Sales_Avg_last_3_month
Sales_Avg_last_6_month
Sales

3.1.2.3 Normalisation de l’ensemble de données

La normalisation des données est définie comme le processus de redimensionnement des


données d’origine sans modifier leur comportement ou leur nature. Il s’agit simplement d’ob-
tenir toutes les données à la même échelle ; si les échelles des différentes variables de l’ensemble
de données sont très différentes, cela peut avoir un effet néfaste sur l’entraînement. Ainsi pour
la normalisation de notre dataset nous avons utilisé la méthode appelé "min-max normaliza-
tion". Cette méthode est simple et consiste à redimensionner les valeurs dans l’intervalle [0, 1].

32
Elle s’exprime par la formule suivante :

0 x − min(x)
x = (3.2)
max(x) − min(x)
0
où : x : est la valeur normalisée
x : est une valeur originale

Après la normalisation nous avons divisé notre dataset en deux parties : une pour la for-
mation des modèles (Train dataset) qui contient les données de 2013 à 2018 et l’autre pour
l’évaluation des résultats (Test dataset) qui contient les données de 2019.

3.1.3 Modélisation
Comme annoncé dans le chapitre précédent, après la phase d’exploration, de nettoyage et de
préparation de données, vient la phase de modélisation. Le but de cette étape est de construire
un modèle capable de prédire les ventes. Dans cette étude, plusieurs algorithmes de machine
learning ont été appliqués pour la prévision des ventes. Ces différents algorithmes sont présen-
tés dans les sections suivantes.

3.1.3.1 Arbre de décisions

Un arbre de décision est un outil d’aide à la décision représentant un ensemble de choix


sous la forme graphique d’un arbre. Les différentes décisions possibles sont situées aux extré-
mités des branches (les « feuilles » de l’arbre), et sont atteintes en fonction de décisions prises à
chaque étape. Plus explicitement, il s’agit d’un arbre qui est composé d’un ensemble de nœuds.
Chaque nœud est composé de branches qui mènent à d’autres nœuds. L’objectif est de créer un
modèle qui prédit la valeur d’une variable cible en fonction de plusieurs variables d’entrée en
partant du nœud racine à un nœud final (feuille), c’est-à-dire à un nœud qui ne possède plus
de branches. Un exemple est illustré à la figure 3.8. Chaque nœud intérieur correspond à l’une
des variables d’entrée ; il y a des bords aux enfants pour chacune des valeurs possibles de cette
variable d’entrée. Chaque feuille représente une valeur de la variable cible compte tenu des
valeurs des variables d’entrée représentées par le chemin de la racine à la feuille.

33
F IGURE 3.8 – Exemple d’arbre de décision

L’algorithme d’arbre de décision a été implémenté en utilisant la bibliothèque Scikit-learn


présenté à la Section 3.2. Cette bibliothèque contient la classe DecisionTreeRegressor qui nous a
permis d’implémenter notre modèle. La documentation officielle de cette classe se trouve à la
référence [46], dans laquelle ses nombreux paramètres et méthodes sont énumérés et expliqués.

3.1.3.2 Forêts d’arbres décisionnels ou Forêts aléatoires

L’algorithme des « forêts aléatoires » a été proposé par Leo Breiman et Adèle Cutler en
2001. La forêt aléatoire est simplement une amélioration par rapport à l’algorithme de l’arbre
de décision. Dans sa formule la plus classique, il effectue un apprentissage en parallèle sur de
multiples arbres de décision construits aléatoirement et entraînés sur des sous-ensembles de
données différents. Le nombre idéal d’arbres, qui peut aller jusqu’à plusieurs centaines voire
plus, est un paramètre important : il est très variable et dépend du problème. Concrètement,
chaque arbre de la forêt aléatoire est entraîné sur un sous ensemble aléatoire de données, avec
un sous ensemble aléatoire de features (caractéristiques ou variables). Les prédictions sont en-
suite moyennées lorsque les données sont quantitatives ou utilisés pour un vote pour des don-
nées qualitatives.
L’algorithme de forêts aléatoires a été implémenté en utilisant la bibliothèque Scikit-learn
avec l’aide de la classe RandomForestRegressor. La documentation officielle de cette classe se
trouve à la référence [47], dans laquelle ses nombreux paramètres et méthodes sont énumérés
et expliqués.

3.1.3.3 Extreme Gradient Boosting (XGBoost)

XGBoost est un algorithme d’apprentissage machine d’ensemble basé sur l’implémentation


d’arbres de décision conçus pour la vitesse et la performance qui utilise le "gradient boosting".
Le gradient boosting est une technique d’apprentissage machine pour les problèmes de régres-
sion et de classification, qui produit un modèle de prédiction sous la forme d’un ensemble de
modèles de prédiction faibles, généralement des arbres de décision. En "boosting", les arbres

34
sont construits séquentiellement de telle sorte que chaque arbre suivant vise à réduire les er-
reurs de l’arbre précédent. Chaque arbre apprend de ses prédécesseurs et met à jour les er-
reurs résiduelles. Par conséquent, l’arbre qui croîtra ensuite dans la séquence apprendra à par-
tir d’une version mise à jour des résidus. Les modèles de base en boosting sont des modèles
faibles dans lesquels le biais1 est élevé, et le pouvoir prédictif est juste un peu meilleur que
la devinette aléatoire. Chacun de ces modèles faibles apporte des informations vitales pour la
prédiction, permettant à la technique de stimulation de produire un modèle fort en combinant
efficacement ces modèles faibles. Le modèle fort final réduit à la fois le biais et la variance2 .
L’algorithme de XGBoost a été implémenté en utilisant la bibliothèque Scikit-learn [48].

3.1.3.4 Réseaux de neurones artificiels

Pour répondre à notre question, nous avons essayé différents modèles de réseaux de neu-
rones en modifiant le nombre de couches ou de neurones en fonction des résultats obtenus. Du
point de vue du test et de la correction, les hyperparamètres que nous avons modifiés peuvent
être divisés en deux catégories :

Hyperparamètres liés à la structure du réseau de neurone

• le nombre de neurones dans la couche d’entrée : Nous disposons de 13 neurones dans


la couche d’entrée car l’ensemble de données après la phase prétraitement possède 13
variables.

• le nombre de neurones dans la couche de sortie : un seul neurone correspondant à la


quantité d’article vendu à prédire ;

• nombre de couches cachées : nous avons testé des configurations avec 2 et 3 couches
cachées dont nous faisons varier le nombre de neurones ;

• les fonctions d’activation : étant dans un cas de régression car prédisant des valeurs
réelles dans la couche de sortie, nous utilisons la fonction d’activation linéaire. Dans les
couches cachées, nous avons utilisé la fonction d’activation relu ;

1
Le biais est la différence entre la prédiction moyenne de notre modèle et la valeur correcte que nous essayons
de prédire.
2
La variance est la variabilité de la prédiction du modèle pour un point de données donné ou une valeur qui
nous indique la propagation de nos données

35
Hyperparamètres liés à l’algorithme d’entraînement

• la fonction d’entraînement : pour la fonction d’entraînement, nous en avons testé plu-


sieurs telles que sgd, rmsprop et adam qui sont tous des variantes de l’algorithme de la
descente de gradient. Nous retenons après tous les tests adam.

• le nombre d’époques entre 20 et 150 avec une époque qui correspond au passage de l’en-
semble de données entier à travers le réseau de neurones une seule fois ;

• la taille de lot (3, 4, 5) : au cours de l’entraînement, des poids sont affectés aux neurones
et on calcule une perte ou une précision. L’ensemble de données entier est divisé en lots.
Ainsi, afin de minimiser la perte ou augmenter la précision après une évaluation, le réseau
de neurones modifie en conséquence les poids à chaque lot.

3.2 Génération de motifs

3.2.1 Collecte des données


Dans le cadre de nos travaux nous avons utilisé un autre dataset, différent du précédent
pour la génération de motifs de pagnes (dataset 2).

Dataset 2
L’ensemble de données sur lequel s’est porté notre choix est dénommé « QuickRaw dataset
». Il est une collection de 50 millions de dessins de 345 catégories différentes, fournis par les
joueurs du jeu Quick Draw. Les dessins ont été capturés sous forme de vecteurs et étiquetés
avec des métadonnées incluant ce que le joueur devait dessiner et dans quel pays le joueur
se trouvait. Nous avons choisi de former et de valider cet ensemble de données particulier
en raison de sa taille relativement grande. Notifions qu’à la base nous avons voulu former
notre dataset à partir des dessins de VLISCO mais suite à plusieurs raisons telles que l’aspect
confidentiel et la contrefaçon des motifs de VLISCO nous avons été contraint de trouver un
autre dataset et c’est ce qui nous a conduit au « QuickRaw dataset ».

3.2.2 Prétraitement
En ce qui concerne le dataset 2, la phase de prétraitement permet de préparer les images
de telle sorte qu’elles soient exploitables. On l’appelle aussi phase de normalisation puisqu’elle
ramène à un format prédéfini toutes les images extraites de notre dataset. Pour garantir la bonne
performance du système, il est important que toutes les images soient de taille identique, à la
même échelle et au même format concernant les couleurs. Initialement toutes les images de
notre dataset sont en niveaux de gris sur ce point aucune transformation n’a été fait. Elles sont

36
donc représentées uniquement sur une seule couche et la valeur d’un pixel est comprise entre
0 et 255 car codée sur 8 bits. Ensuite on normalise les images ce qui a pour effet de ramener
la valeur d’un pixel entre -1 et 1. Et pour finir, on redimensionne pour une taille de 28 x 28
pixels toutes les images afin de réduire la taille en mémoire et de facilité l’apprentissage de
notre modèle. En effet, les images utilisées pour entraîner notre système sont au format 28 x 28
pixels.

3.2.3 Modélisation
Comme introduit dans le chapitre 1, le GAN imite les images en opposant deux réseaux de
neurones l’un à l’autre, l’un appelé le «générateur» et l’autre appelé le «discriminateur». Le gé-
nérateur part d’un bruit aléatoire et crée de nouvelles images, en les passant au discriminateur,
dans l’espoir qu’ils seront considérés comme authentiques (même s’ils sont faux). Le discrimi-
nateur vise à identifier les images provenant du générateur comme fausses, en les distinguant
des images réelles. Dans le cadre de notre projet nous avons implémenté deux(02) architectures
du GAN qui seront présentées dans les sections suivantes.

3.2.3.1 GAN

L’architecture d’un GAN comporte deux éléments de base : le réseau générateur et le réseau
discriminateur. Chaque réseau peut être un réseau de neurone quelconque. Le discriminateur
doit avoir des couches entièrement connectées avec un classificateur à l’extrémité. Examinons
de plus près les composants de l’architecture du GAN que nous avons implémenté :

• Le générateur de notre GAN est un simple réseau de neurones comportant cinq couches :
une couche d’entrée, trois couches cachées et une couche de sortie. La fonction d’activa-
tion utilisée pour chaque couche est le "LeaklyRelu" sauf la couche de sortie qui utilise
tanh.

37
F IGURE 3.9 – Le générateur du GAN

• Le discriminateur de notre GAN est un réseau de neurones standard comportant cinq


couches, dont une couche d’entrée, une couche de sortie, et trois couches cachées comme
le montre la figure ci dessous. A ce niveau la fonction "LeaklyRelu" a été aussi utilisé
pour les couches cachées accompagné d’un "dropout" (cf. annexe A) et par contre pour la
couche de sortie nous avons utilisé la fonction sigmoïde.

38
F IGURE 3.10 – Le discriminateur du GAN

39
3.2.3.2 DCGAN

Le DCGAN est une extension de l’architecture GAN qui utilise des réseaux de neurones
convolutifs pour la configuration du générateur et du discriminateur.

• Le générateur similaire a l’architecture de GAN à la différence que ici nous utilisons des
couches de convolution transposée ou sur échantillonnage (Conv2DTranspose) pour pro-
duire une image à partir d’un bruit. Comme le montre la figure ci dessous, l’architecture
est composée de cinq couches, dont une couche d’entrée, une couche de sortie, et trois
couches cachées.

40
F IGURE 3.11 – Le générateur du DCGAN

41
• Le discriminateur de notre DCGAN est un réseau de neurones convolutif standard com-
portant cinq couches, dont une couche d’entrée, une couche de sortie, deux couches de
convolution (conv2D) et une couche flatten comme le montre la figure ci dessous. La
fonction d’activation utilisée pour chaque couche est le "LeaklyRelu" accompagné d’un
"dropout" sauf la couche de sortie qui utilise une fonction sigmoïde.

F IGURE 3.12 – Le discriminateur du DCGAN

42
Conclusion
Ce chapitre fait la synthèse sur la méthodologie utilisée dans l’élaboration des modèles de
prédiction en décrivant les différentes étapes qui ont permis d’aboutir aux modèles finaux.
Ensuite, il fait le point sur la configuration expérimentale ainsi que les différents paramètres
utilisés.

43
Chapitre 4
Résultats et discussion

Introduction
Ce chapitre correspond à la dernière étape de notre travail. On y présentera dans un premier
temps les résultats obtenu grâce à nos différents modèles et par la suite on les évaluera afin de
déterminer leurs efficacités.

4.1 Résultats

4.1.1 Prédiction de ventes dans les boutiques


Dans cette section, nous présentons les différents résultats obtenus à partir des modèles
implémentés à savoir : arbre de décisions, forêt aléatoire, Xgboost et réseau de neurones(voir
section 3.1.3). Ces résultats présentent pour chaque modèle implémenté les prédictions de
ventes(en orange contre les ventes réelles en bleu) par marque et par type de produit(prêt à
porter et tissus) pour chaque boutique. Notons que nous avons réalisé plusieurs modèles en
variant les paramètres présentés à la section précédente, mais ici nous présentons uniquement
les meilleurs modèles.

44
• Arbre de décisions :

F IGURE 4.1 – Prédictions de ventes obtenues avec Decision Tree pour Woodin Ganhi de Jan-Dec
2019

F IGURE 4.2 – Prédictions de ventes obtenues avec Decision Tree pour Vlisco Ganhi de Jan-Dec
2019

45
• Forêts aléatoires

F IGURE 4.3 – Prédictions de ventes obtenues avec Random forest pour Woodin Ganhi de Jan-
Dec 2019

F IGURE 4.4 – Prédictions de ventes obtenues avec Random forest pour Vlisco Ganhi de Jan-Dec
2019

46
• Extreme Gradient Boosting (XGBoost)

F IGURE 4.5 – Prédictions de ventes obtenues avec Xgboost pour Woodin Ganhi de Jan-Dec 2019

F IGURE 4.6 – Prédictions de ventes obtenues avec Xgboost pour Vlisco Ganhi de Jan-Dec 2019

47
• Réseaux de neurones artificiels

F IGURE 4.7 – Prédictions de ventes obtenues avec ANN pour Woodin Ganhi de Jan-Dec 2019

F IGURE 4.8 – Prédictions de ventes obtenues avec ANN pour Vlisco Ganhi de Jan-Dec 2019

Pour évaluer la précision des modèles développés nous allons calculer des métriques de

48
mesures de performance mais avant présentons ces métriques. Dans chacune des définitions à
venir, Y est la valeur réelle, Y 0 est la valeur prédite, Y est la moyenne des valeurs réelles et n est
la taille de l’ensemble de test :

• L’erreur moyenne absolue (MAE, 4.1) : L’erreur moyenne absolue est un très bon indi-
cateur de performance (KPI) pour mesurer la précision des prévisions. Comme son nom
l’indique, il s’agit de la moyenne de l’erreur absolue. Elle est calculée en tant que moyenne
des différences absolues entre les valeurs cibles et les prédictions.
n
1X
M AE = |Y −Y0 | (4.1)
n i=1

• L’erreur quadratique moyenne (RMSE, 4.2) : est l’écart type des erreurs qui se produisent
lorsqu’une prédiction est faite sur un ensemble de données. Cette mesure est utilisée pour
mesurer les différences entre les valeurs prédites par un modèle et les valeurs réelles. Plus
l’erreur est faible, meilleur est le modèle. Pour calculer l’erreur quadratique moyenne,
pour chaque point, il faut calculer le carré de la différence entre les prédictions et la cible,
puis calculer la racine carrée de la moyenne de ces valeurs.

v
u n 
u1 X 2
RM SE = t Y −Y0 (4.2)
n i=1

• Coefficient de détermination (R2 , 4.3) : C’est un indicateur qui permet de juger de la


qualité d’un modèle sous la forme d’une valeur comprise entre 0 et 1. Il mesure l’adéqua-
tion entre le modèle et les données observées ou la manière dont l’équation de régression
est adaptée pour décrire la distribution des points. Plus le coefficient de détermination
est proche de 0, plus le nuage de points se disperse autour de la ligne de régression. Au
contraire, plus le R2 tend vers 1, plus le nuage de points se resserre autour de la ligne de
régression. Nous avons utilisé le facteur de coefficient de détermination pour exprimer la
précision des modèles.

Pn  2
0
i=1 Y − Y
R2 = 1 − P  2 (4.3)
n
i=1 Y − Y

Nous présentons dans le tableau 4.1 les résultats obtenus en calculant les différentes mé-
triques entre les valeurs exactes et les valeurs prédites sur l’ensemble de validation pour chaque
modèle.

49
TABLEAU 4.1 – Mesures de performance

R2 MAE RMSE
ANN 0.74 1134 2674
Decision Tree 0.83 1074 2143
Random Forest 0.91 904 1570
Xgboost 0.86 1138 1948

Prédiction 2020-2021
D’après le tableau 4.1 le modèle random forest offre les meilleures performances avec une
précision de 91%, nous allons donc utilisé ce modèle pour faire des prédictions de ventes (pour
les deux magasins de notre ensemble de données ) de Septembre 2020 à Décembre 2021. Les
prédictions sont renseignées au niveau des figures 4.9 et 4.10, on note que sur toutes l’année
2021 la boutique Vlisco Ganhi pourrait vendre plus ou moins 102660 yards de tissus Vlisco
contre 450 prêt à porter tandis que la boutique woodin Ganhi pourrait vendre 126200 yards de
tissu woodin contre 11745 prêt à poter.

F IGURE 4.9 – Prédiction de ventes Septembre 2020 à Décembre 2021 de Vlisco Ganhi

50
F IGURE 4.10 – Prédiction de ventes Septembre 2020 à Décembre 2021 de Woodin Ganhi

4.1.2 Génération de motif


Ici nous présentons les résultats obtenus à partir des deux modèles(GAN et DCGAN) im-
plémentés pour la génération de motif. Ces résultats présentent pour chacun des modèles les
images générées à partir d’un bruit. Pour une meilleure évaluation des résultats nous présen-
tons quelques images obtenues pour les epochs 1, 20, 50, 1000 et 2000. Les figures 4.15 et 4.16
présentent respectivement les motifs obtenus à partir des modèles GAN et DCGAN.

• GAN

51
(a) 1 epoch (b) 5 epoch

(c) 50 epoch (d) 100 epoch

52
(e) 1000 epoch (f) 2000 epoch

F IGURE 4.11 – Images générées avec le GAN

• DCGAN

53
(a) 1 epoch (b) 5 epoch

(c) 50 epoch (d) 100 epoch

54
(e) 1000 epoch (f) 2000 epoch

F IGURE 4.12 – Images générées avec le DCGAN

En général, il n’existe pas de moyens objectifs d’évaluer la performance d’un modèle GAN[49].
Nous ne pouvons donc pas calculer un score d’erreur objectif pour les images générées. La
qualité des images doit donc plutôt être évaluée subjectivement par un opérateur humain. En
observant les images 4.11 et 4.12 générées, l’un des premiers constats à faire est que la qualité
des images générées évolue de manière proportionnelle par rapport au nombre d’epoch c’est à
dire plus nous augmentons le nombre d’epoch plus nos motifs générés sont de meilleure qua-
lité et ceci pour nous deux modèles. Ensuite, à travers une analyse comparative des résultats
ci-dessus nous remarquons que la qualité des images obtenue à 1000 (voir figure 4.11e) epochs
avec le GAN est déjà obtenue à l’epoch 50 avec le DCGAN (voir figure 4.12c). On peut alors
conclure que le DCGAN donne de meilleurs résultats par rapport GAN.

4.2 Discussion
Des résultats présentés dans la section précédente, nous pouvons tirer plusieurs conclu-
sions :

• En ce qui concerne la prédiction des ventes, le modèle de Forêt aléatoire ou Random


Forest offre de meilleurs résultats avec des erreurs moyennes quadratiques plus faibles
(MAE :904 et RMSE 1570) et un coefficient de corrélation multiple plus élevé (0.91). Ce
qui veut dire que les prédictions faites avec ce modèle sont plus proches des données de
validation et qu’il s’agit ainsi de l’architecture ayant donné les meilleurs résultats. Pas
loin de ce modèle nous retrouvons en deuxième position le modèle Xgboost avec 0.86

55
comme coefficient de corrélation multiple. Et pour finir nous avons les modèles arbres
de décisions (Decision Tree) et Réseau de neurones qui ferment la marche avec respec-
tivement 0.83 et 0.74 comme coefficient de corrélation multiple. Comme il est expliqué
dans la section d’état de l’art, plusieurs études ont appliqué les approches d’analyse des
séries chronologiques, des algorithmes d’intelligence artificielle et même des méthodes
hybrides pour prédire les ventes. Dans cette étude, nous nous sommes concentrés sur
certaines méthodes d’intelligence artificielle plus précisément celles du machine learning
et avons démontré que ces méthodes sont performantes avec des résultats satisfaisants
dans l’ensemble. Toutefois choisir des algorithmes pour un problème n’est pas un choix
trivial. Il n’y a pas d’algorithme parfait qui fonctionne pour chaque problème. Ainsi pour
de futurs travaux, il serait donc intéressant d’essayer d’autres types d’algorithmes afin
d’obtenir des modèles de prédiction encore plus performants. De plus, il pourrait aussi
être avisé d’élargir notre dataset et de créer une application web qui intègre nos différents
modèles afin de faciliter leur utilisation par le commun des mortels.

• Quant au problème de génération de motif nous avons implémenté deux modèles (GAN
et DCGAN) qui présentent des résultats encourageant. La qualité des images varie de fa-
çon proportionnelle au nombre d’epoch pour chacun des deux modèles mais par contre
le modèle DCGAN est plus intéressant parce qu’il arrive à produire des images avec une
bonne qualité, beaucoup plus rapidement que le GAN. En effet, nous avons observé qu’à
partir de 50 epochs le DCGAN produit deja des dessins alors que avec GAN il faut at-
teindre au minimum 1000 epochs. Il est aussi important de notifier que les motifs générés
de façon générale sont à l’image du dataset utilisé et ne sont pas assez représentatifs des
motifs de pagnes, on pourrait obtenir des résultats beaucoup plus intéressants avec un
meilleur dataset. Pour la suite de ce travail, il serait impératif de changer de dataset et
d’essayer d’autres architectures de modèles toujours dans l’objectif d’améliorer nos résul-
tats.

Conclusion
Ce chapitre a fait la synthèse des résultats de notre étude. Nous avons dans un premier
temps présenté les résultats obtenus et nous avons ensuite ressorti les meilleurs modèles obte-
nus.

56
Conclusion et perspectives

Comme mentionné tout au long de ce document, les objectifs étaient de développer deux
modèles, l’un capable d’estimer les ventes de produits textiles (dans les boutiques de ventes en
détail) à travers l’analyse des ventes des années précédentes et l’autre permettant de générer
des motifs. Pour ce qui est de la prédiction des ventes, nous avons développé quatre diffé-
rents modèles (Decision tree, random forest, XGBoost et ANN) en nous basant sur un ensemble
de données contenant des informations relatives aux ventes journalières des boutiques (Vlisco
Ganhi et Woodin Ganhi) couvrant la période de janvier 2013 à décembre 2019. Nos modèles
dans l’ensemble montrent de bons résultats sur l’ensemble de données. L’algorithme de régres-
sion Random Forest est celle qui a donné les meilleurs résultats. Les résultats montrent que le
modèle proposé présente une capacité prédictive dont le coefficient de détermination est d’en-
viron 91% ce qui montre que les méthodes d’intelligence artificielle représentent une option
assez intéressante dans la prédiction des ventes. En ce qui concerne la génération des motifs,
nous avons aussi obtenu des résultats assez encourageants avec nos deux modèles développés
(GAN et DCGAN). Le modèle DCGAN est plus performant parce qu’il arrive à produire des
images avec une bonne qualité, beaucoup plus rapidement que le GAN. Mais les motifs pro-
duits par notre modèle le plus performant ne sont pas directement exploitables par l’équipe
de fabrication pour en confectionner des tissus compte tenu de l’ensemble de données utilisé
pour la formation et l’entraînement de notre modèle. N’empêche que ces résultats valident
l’hypothèse selon laquelle nous pouvons obtenir des motifs à partir d’un bruit en utilisant les
techniques de l’intelligence artificielle.
À l’avenir, il serait intéressant d’appliquer d’autres méthodes d’intelligence artificielle aux
différents problèmes afin d’obtenir des modèles encore plus performants. Aussi, construire une
application web qui intègre nos différents modèles afin de faciliter leur usage. Pour la généra-
tion de motif de façon spécifique il serait important de changer de dataset afin d’obtenir des
motifs beaucoup plus parlants et exploitables.

57
English Part
Sales forecast and design generation for
textile products using machine learning

58
Introduction
In sub-Saharan Africa, the loincloth has become an important tool of cultural and social
distinction. The encounter of Africans with this fabric, which occupies a capital place in their
customs, goes back more than a century. The printed loincloth, carrying a message, is consid-
ered as an expression of the personality [1]. The integration of the loincloth into local clothing
cultures has been so extensive that printing plants have been set up all over Africa (Ivory Coast,
Ghana) but a large part of the volume consumed continues to be imported from Europe and
Asia. Demand is stronger than ever and continues to grow. As a result, the industry is evolving
at an alarming rate. Part of the challenge is to streamline design and production processes. Most
of the industry’s technological advances have revolutionized production through automation.
However, the design aspect remains a considerable obstacle to the marketing of more loincloths
or new models. Today, designs for loincloth patterns take root in the minds of human designers
and are meticulously refined over many iterations. What we want to see is whether we can use
the latest advances in artificial intelligence to digitally generate new designs to speed up the
design process.
Just as important as the design is the sale of the product because the goal of any business is to
make a profit. This is accomplished by having more sales than costs. JOHN WALKDEN et Cie
S.A. (JWC) is a distribution subsidiary of the VLISCO Group, specialized in the importation and
exclusive distribution of its four (04) product brands: VLISCO, WOODIN, UNIWAX and GTP,
based in Cotonou. Before arriving in stores, the products go through a supply chain that begins
with the design of the designs of the loincloths and the production of the products several
months before they enter the market. This fact requires companies to forecast the quantity sold
of each product in order to determine the quantity to be purchased from the supplier. A wrong
forecast results in a loss of profit, due to a loss of sales or an excess of stocks. In this work we
propose models based on artificial intelligence methods to predict sales.
To summarize the objective of this work is to develop two models, one capable of estimating
the sales of textile products (in retail shops) through the analysis of previous years sales and
the other capable of generating creative designs for loincloths.

4.3 Textile trade


In the textile trade, the sale of a product to the customer is the last step in a complex process
through which the product has passed. This process corresponds to a chain of steps involving
several companies. The retail company is the turbine of the chain and is responsible for sell-
ing the products to the customer. For a good sales forecast, it is necessary to first know the
characteristics of the retail fashion industry :

• fashion trends lead to high volatility in consumer demand. The style of articles must

59
always be updated and articles are often not repeated for the next collection. Due to
the constant novelty and short duration of the articles in the stores, historical sales are
practically non-existent. This results in a low predictability of demand;

• sales are conditioned by many other variables such as end-of-season sales, sales promo-
tion, consumer purchasing power, etc.

• there is a high variability of products. They can have different colours, shapes and sizes.
All of them must satisfy the final consumer;

• in the fashion market, purchases are most often made on impulse when confronted with
the product in a store, and not out of necessity, so the availability and visibility of the
product in stores is of great importance, so it is important to have the right product to sell;

• fashion products also have a high instability of demand, as they are usually affected by
external conditions such as weather or the use of such items by celebrities;

Taking all these factors into account, sales forecasting is a real problem in the textile trade.

4.4 Related Works

4.4.1 Sales Prediction


The literature indicates that there are many analytical models that can be used to carry
out the forecasting task. These different models can be classified into three (03) main families
namely traditional methods, artificial intelligence methods and hybrid methods.
Traditionally, sales forecasting is performed using statistical methods. In fact, many sta-
tistical methods have been used for sales forecasting, such as regression[4], moving average,
weighted average, exponential smoothing [5], Bayesian analysis, etc. However, the effective-
ness of these methods depends on the field of application, the time horizon and even the user
experience [6]. There are also statistical models for time series analysis such as ARIMA and
SARIMA. These methods are simple and easy to implement and the results can be calculated
very quickly. Although these methods are widely used, particularly because of their simplic-
ity and ease of calculation, they have some drawbacks. It is sometimes difficult to choose the
most appropriate statistical method for the prediction in question, choosing the right statisti-
cal methods is a difficult task and requires "expert" knowledge. These drawbacks also include
the difficulty of working with intermittent or irregular demand data. These methods are also
limited to their linear structure. Such methods also require large historical data sets and it is
difficult to incorporate other variables such as exogenous market characteristics. As a result,
pure statistical methods may not provide a desirable predictive result. Compared to more so-
phisticated methods, pure statistical methods do not give very promising results. Adopting

60
other techniques in conjunction with these statistical methods may be a way to overcome some
of these obstacles.
As we have seen, pure statistical models do not provide good sales forecasts. In order to
improve forecast accuracy, AI methods are emerging with advances in computer technology. In
fact, AI models can effectively derive "arbitrarily non-linear" approximation functions directly
from the data. Popular machine learning algorithms such as decision tree, random forest or
Xgboost have been applied for sales forecasting in the fashion industry and elsewhere. For ex-
ample Mikael Holmberg and Pontus Halldén [9] applied algorithms such as Xgboost, decision
tree to predict the sales of a restaurant. In the fashion industry, we also have Nelson da Silva
Alves [10] who applied in addition to decision and random forest, the SVm to predict sales, he
demonstrates at the end that his random forest model offers the best performance compared
to other models developed. In addition, other methods such as artificial neural network mod-
els (ANN) [11] and fuzzy logic models are commonly used in the literature. More specifically,
ANN models have been developed and give satisfactory results in different domains. Despite
the fact that ANN models perform well in terms of forecast accuracy (as indicated by perfor-
mance measures such as root mean square error), these forecast models require a very long
time to complete the forecasting task. The reason for this drawback is that these models use
gradient-based learning algorithms such as the neural network of backpropagation.
Hybrid forecasting methods are usually developed on the basis that they can use the strengths
of different models together to form a new forecasting method. As such, many of them are con-
sidered to be more efficient than pure statistical models and pure AI models. Due to the use of
several techniques in the same model, statistical models or even pure ANN models eventually
become less efficient. Not surprisingly, in recent years, a number of research studies have ex-
amined hybrid forecasting methods, for example[15, 16, 17, 18]. Hybrid methods used in the
fashion forecasting literature often combine different schemes such as the fuzzy model, ANN,
with other techniques.

4.4.2 Design generation


Recent breakthroughs in computer vision have led to unprecedented success in image gen-
eration. These solutions are capable of generating images that quickly become indistinguish-
able from real images. In recent years, several generative models have been developed. For
example, the recurrent neural networks of pixels [21] and PixelCNN [22] have both been very
successful in generating images. Previous work on creativity for painting generation has used
genetic algorithms to create new works of art by starting with existing human-generated art-
works and gradually modifying them using pixel transformation functions. In this case, cre-
ativity is guided by predefined shaping functions that can be adapted. For example, to generate
portraits, DiPaola and Gabora define a family of formatting functions based on specific rules.
Another powerful model that has emerged is the Generative Adversarial Network (GAN)

61
[26]. Goodfellow proposed an image generation system based on a network of generators, G,
and a network of discriminators, D. At each iteration of shaping, G generates a set of images
and tries to make them as realistic as possible. Simultaneously, D tries to determine whether
each of the images of G is real or not. As G and D train against each other, the generated images
should become increasingly realistic. Based on this model, researchers from different countries
have developed interesting applications for the technology, including image animation, super-
resolution images [27] and text-to-speech image synthesis [28].

4.4.3 Primer on Artificial Neural Network


Artificial neural networks, one of the main tools of machine learning, are architectures de-
signed to mimic the behavior of a biological neural network. Simulating the behavior of bi-
ological neurons, an artificial neural network consists of an input layer, one or more hidden
layers and an output layer. The input layer receives the data and passes it to the hidden layers
that process it and transform it before sending it to the output layer. The basic element of an
artificial neural network is the artificial neuron. Like the biological one, it consists of inputs
(dendrites) and output (axon). The neuron receives data at its inputs, then performs operations
on these data and passes the result of these operations to other neurons via its output. In ar-
tificial neurons, these different operations are done with an activation function. An artificial
neural network is composed of several neurons connected by links and interacting with each
other. Each link is associated with a weight that is associated with the data from this link. There
are two types of topologies in the constitution of an artificial neural network: feed-forward and
feedback. In the first the flow of information is unidirectional. A neuron sends information to
another neuron (on the next layer) from which it receives no information. This type of networks
has fixed inputs and outputs. In the second type, feedback loops are allowed. Information can
be transmitted from an upper layer to a lower layer. This can be used when one needs to keep
this information in mind. ANN learns through a training phase. This training allows the net-
work to find and memorize patterns in the data submitted to it. A well trained artificial neural
network has weights that amplify the signal and attenuate the noise. Larger weight means
a closer correlation between a signal and the result of the network. Entries associated with
higher weights will affect the network’s interpretation of the data more than the entries associ-
ated with lower weights. Actually, the learning process for a learning algorithm using weights
is the process of adjusting weights and biases.

4.5 Material and Methods


Here we synthesize the various tools, both hardware and software that we used throughout
our study.

62
Experimental setup The implementations and tests have been realized with python and ana-
conda distribution packages [50, 39]. We also use keras [41] with tensorflow [40] as backend to
build Our different models. All experiments were conducted on a 2.8 GHz Intel core i3 proces-
sor using Ubuntu 18.04 LTS [37].

Methods The execution of the project was divided into several stages in order to define the
problem in a structured manner. Thus, the main steps were as follows:

• Data collection: The very first and most important step was to collect the relevant data
corresponding to our problem. Accurate data collection is essential to maintain the in-
tegrity of our machine learning project;

• Data pre-processing: It is a process of cleaning up raw data, i.e. data collected in the real
world is converted into a clean data set. In other words, the data set that supports the
project is analyzed. The database is studied, the quality of the data will be analyzed, e.g.
if there are missing data, redundant values, inconsistent information, noisy data, outliers,
or data with impossible values that need to be processed. The data will be subject to
statistical analysis so that they can be better interpreted.

• Modeling : it includes the selection, parameterization and testing of different algorithms


as well as their sequencing, which constitutes a model. This process is first descriptive
to generate knowledge, explaining why things happened. It then becomes predictive by
explaining what is going to happen, then prescriptive by allowing the optimization of a
future situation. In this phase, several models are created, using different approaches to
the problem and different resolution strategies.

• Evaluation: Once the training is completed, it is time to see if the model is good, using
evaluation. This is where the data set we set aside earlier comes in. Evaluation allows
us to compare our model to data that has never been used for training. It allows us to
see how the model might work against data that it has not yet seen. This is meant to be
representative of how the model might work in the real world.

4.6 Proposed solution


We describe in this section the experimental setups put in place to obtain prediction models.
We also detail the different parameters involved in the training and construction of these mod-
els. Carrying out the different experiments in order to obtain the best prediction model requires
using the dataset in the best way and following the best associated method.

63
Sales Prediction As with all machine learning problems, the training and evaluation of a
learning model is done using a dataset with examples called a "dataset". In our work we used
a dataset for the prediction of sales in stores (dataset 1). This dataset for sales prediction was
extracted from the JWC database using QlickView software and contains 170294 sample data
sets. It contains daily store sales information covering the period from January 2013 to Decem-
ber 2019. During the pre-processing phase we analyzed our dataset, created new variables,
made a selection by studying the correlation between the variables as well as with the target
variable. At the end of all this process we were able to retain the variables indicated in the
following table4.2 for the training and validation of our prediction models.

Table 4.2 – Features final

Date
season
goodPeriod
Location
Marque
Product_Type
Nb_boutique
Boutique_type
Sales_last_1_month
Sales_last_3_month
Sales_last_6_month
Sales_Avg_last_3_month
Sales_Avg_last_6_month
Sales

In order to respond to our problem, we developed four (04) models of the learning machines
during the modeling phase:

• Decesion Tree;

• Random Forest;

• Xgboost;

• ANN

These models were mainly developed using the Scikit-learn and tensorflow library. It is
important to add that for the training of the models we used data from 2013 to 2018 and for

64
the tests we used data from 2019. The next chapter will present the results and scores obtained
with these models.

Design Generation Within the framework of our work we used another dataset, different
from the previous one for the generation of patterns for loincloths (dataset 2). The dataset we
chose is called "QuickRaw dataset". It is a collection of 50 million designs from 345 different
categories, provided by players of the Quick Draw game. The drawings were captured as
vectors and tagged with metadata including what the player should draw and in which country
the player was located. We chose to train and validate this particular dataset because of its
relatively large size. Let’s note that we originally wanted to form our dataset from the VLISCO
drawings but due to several reasons such as the confidential aspect and the counterfeiting of
the VLISCO patterns we were forced to find another dataset and this is what led us to the
"QuickRaw dataset". In order to guarantee the good performance of the system, it is important
that all the images are of the same size, at the same scale and in the same format concerning the
colors. Initially all the images of our dataset are in grayscale on this point no transformation
was made. They are thus represented only on a single layer and the value of a pixel is between 0
and 255 because coded on 8 bits. Then we normalize the images which has the effect of reducing
the value of a pixel between -1 and 1. And finally, we resize all the images to a size of 28 x 28
pixels in order to reduce the size in memory and facilitate the learning of our model. Indeed,
the images used to train our system are in 28 x 28 pixels format.
To answer our problem of pattern generation we have developed two models namely GAN
and DCGAN. Each of these models is composed of two neural networks (generator and dis-
crimer) whose architectures will be described in figures 3.9, 3.10 for GAN and 3.11, 3.12 for
DCGAN.

4.7 Results and discussion

4.7.1 Sales Prediction


As explained in the previous chapter, in order to respond to our problem of sales prediction,
we have developed four (04) models of the machine learning, namely Decesin tree, Random
Forest , Xgboost and ANN. To evaluate the performance of these models we made a test by
predicting the sales for our two stores for the year 2019 and then we evaluated the results
obtained by calculating three different metrics namely MAE, RMSE, R2 . The scores obtained
for each model are recorded in the following table:

65
Table 4.3 – Performance measures

R2 MAE RMSE
ANN 0.74 1134 2674
Decision Tree 0.83 1074 2143
Random Forest 0.91 904 1570
Xgboost 0.86 1138 1948

The Random Forest model offers better results with lower root mean square errors (MAE:904
and RMSE 1570) and a higher multiple correlation coefficient(0.91). This means that the predic-
tions made with this model are closer to the validation data and thus it is the architecture that
gave the best results. Not far from this model we find in second position the Xgboost model
with 0.86 as multiple correlation coefficient. And finally we have the Decision Tree and Neural
Network models that close the gap with respectively 0.83 and 0.74 as multiple correlation coef-
ficient. The figures 4.13 and 4.14 show the results obtained with the random forest model and
we notice that the predictive data (see orange color) are quite close to the real values (see blue
color).

Figure 4.13 – Sales predictions obtained with Random forest for Woodin Ganhi of Jan-Dec 2019

66
Figure 4.14 – Sales predictions obtained with Random forest for Vlisco Ganhi of Jan-Dec 2019
2

Indeed, as explained in the state of the art section, several studies have applied time se-
ries analysis approaches, artificial intelligence algorithms and even hybrid methods to predict
sales. In this study, we focused on some artificial intelligence methods more specifically those
of machine learning and demonstrated that these methods are efficient with satisfactory results
overall. However, choosing algorithms for a problem is not a trivial choice. There is no perfect
algorithm that works for every problem. Therefore, for future work, it would be interesting
to try other types of algorithms in order to obtain even better prediction models. Moreover,
it could also be wise to expand our dataset and create a web application that integrates our
different models to facilitate their use by the common man.

4.7.2 Design Generation


Here we present the results obtained from the two models (GAN and DCGAN) imple-
mented for design generation. These results present for each model the images generated from
a noise. For a better evaluation of the results we present some images obtained for epochs 1,
20, 50, 1000 and 2000. Figures 4.15 and 4.16 present respectively the design obtained from the
GAN and DCGAN models.

• GAN

67
(a) 1 epoch (b) 5 epoch

(c) 50 epoch (d) 100 epoch

68
(e) 1000 epoch (f) 2000 epoch

Figure 4.15 – Images generated with GAN

• DCGAN

69
(a) 1 epoch (b) 5 epoch

(c) 50 epoch (d) 100 epoch

70
(e) 1000 epoch (f) 2000 epoch

Figure 4.16 – Images generated with DCGAN

Analyzing the results obtained we realize that the quality of the images varies proportion-
ally to the number of epochs for each of the two models, but on the other hand the DCGAN
model is more interesting because it is able to produce images with good quality, much faster
than GAN. Indeed, we have observed that from 50 epochs DCGAN already produces drawings
whereas with GAN it is necessary to reach at least 1000 epochs. We can therefore say that our
results are encouraging but it is also important to note that the design generated in general are
like the dataset used and are not representative enough of the design of loincloths, we could
obtain much more interesting results with a better dataset. For the continuation of this work,
it would be imperative to change dataset and try other model architectures always with the
objective of improving our results.

Conclusion
As mentioned throughout this document, the objectives were to develop two models, one
capable of estimating sales of textile products (in retail shops) through the analysis of previous
years’ sales and the other capable of generating patterns. In terms of sales prediction, we de-
veloped four different models (Decision tree, random forest, XGBoost and ANN) based on a
data set containing information on daily sales in boutiques (Vlisco Ganhi and Woodin Ganhi)
covering the period from January 2013 to December 2019. Our models as a whole show good re-
sults on the dataset. The Random Forest regression algorithm gave the best results. The results
show that the proposed model has a predictive capability with a coefficient of determination
of about 91% which shows that artificial intelligence methods are a fairly interesting option in

71
sales prediction. As far as pattern generation is concerned, we also obtained quite encouraging
results with our two developed models (GAN and DCGAN). The DCGAN model is more ef-
ficient because it can produce images with good quality, much faster than GAN. However, the
patterns produced by our best performing model are not directly usable by the manufacturing
team to make fabrics from it, given the data set used for the training and practice of our model.
Nevertheless, these results validate the hypothesis that we can obtain patterns from noise using
artificial intelligence techniques.
In the future, it would be interesting to apply other artificial intelligence methods to different
problems in order to obtain even better models. Also, build a web application that integrates
our different models in order to facilitate their use. For pattern generation in a specific way,
it would be important to change dataset in order to obtain much more meaningful and usable
patterns.

72
Bibliographie

[1] Romaric AHODEGNON et David MAFONGOU., Quelles stratégies pour JOHN WALKDEN
et Compagnie S.A pour accroître la consommation des produits de la marque VLISCO au Bénin ?.pp.
1–3.

[2] Thomassey, S. (2014)., Intelligent fashion forecasting systems : Models and applications. In T.-M.
Choi, C.-L. Hui, Y. Yu(eds.), pp. 9–27.

[3] P. Vroman, M. Happiette, and C. Vasseur, A hybrid neural model for mean-term sales forecasting
of textile items, Studies in Informatics and Control, vol. 10, no. 2, pp. 149–168, 2001

[4] Papalexopoulos AD, Hesterberg TC., A regression-based approach to short-term system load fo-
recasting. IEEE Trans Power Syst 5 :1535–1547. 1990.

[5] Brown RG., Smoothing forecasting and prediction of discrete time series. Prentice Hall, Engle-
wood Cliffs. 1959.

[6] Armstrong JS., Principles of forecasting – a handbook for researchers and practitioners. Kluwer,
Norwell. 2001.

[7] M. Green and P. J. Harrison., Fashion forecasting for a mail order company using a bayesian
approach. Operational Research Quarterly, vol. 24, no. 2, pp. 193–205, 1973.

[8] P. M. Yelland and X. J. Dong, Forecasting demand for fashion goods : a hierarchical Bayesian
approach. in Handbook on Intelligent Fashion Forecasting Systems, 2013.

[9] Mikael Holmberg and Pontus Halldén, Machine Learning for Restaurant Sales Forecast. May
2018

[10] Nelson da Silva Alves, Predicting product sales in fashion retailing : a data analytics approach.
July 2017

[11] C. Frank, A. Garg, A. Raheja, and L. Sztandera, Forecasting women’s apparel sales using ma-
thematical modeling. International Journal of Clothing Science and Technology, vol. 15, no. 2,
pp. 107–125, 2003.

73
[12] D. Olson and C. Mossman, Neural network forecasts of Canadian stock returns using accounting
ratios. International Journal of Forecasting, vol. 19, no. 3, pp. 453–465, 2003.

[13] H. Yoo, Short term load forecasting using a self-supervised adaptive neural network. IEEE Tran-
sactions on Power Systems, vol. 14, no. 2, pp. 779–784, 1999.

[14] L. M. Zampighi, C. L. Kavanau, and G. A. Zampighi, The Kohonen self-organizing map : a


tool for the clustering and alignment of single particles imaged using random conical tilt. Journal
of Structural Biology, vol. 146, no. 3, pp. 368–380, 2004.

[15] P. G. Zhang., Time series forecasting using a hybrid ARIMA and neural network mo-
del,.Neurocomputing, vol. 50, pp. 159-175, 2003.

[16] A. Sfetsos and C. Siriopoulos., Time series forecasting with a hybrid clustering scheme and pat-
tern recognition,.IEEE Transactions on Systems, Man, and Cybernetics Part A, vol. 34, no. 3,
pp. 399–405, 2004.

[17] L. Aburto and R. Weber., Improved supply chain management based on hybrid demand fore-
casts,.Applied Soft Computing Journal, vol. 7, no. 1, pp. 136–144, 2007.

[18] F. Pan, H. Zhang, and M. Xia, A hybrid time-series forecasting model using extreme learning ma-
chines. in Proceedings of the 2nd International Conference on Intelligent Computing Tech-
nology and Automation (ICICTA ’09), pp. 933–936, Changsha, China, October 2009.

[19] S. Thomassey and M. Happiette, A neural clustering and classification system for sales fore-
casting of new apparel items. Applied Soft Computing Journal, vol. 7, no. 4, pp. 1177–1187,
2007.

[20] E. Yesil, M. Kaya, and S. Siradag, Fuzzy forecast combiner design for fast fashion demand fore-
casting,. in Proceedings of the IEEE International Symposium in Innovations in Intelligent
Systems and Applications (INISTA ’12), pp. 1–5, 2012.

[21] Aaron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu, Pixel recurrent neural
networks,.In : arXiv preprint arXiv :1601.06759 (2016).

[22] Aaron van den Oord et al., Conditional Image Generation with PixelCNN Decoders,.In : arXiv
preprint arXiv :1606.05328 (2016).

[23] P. Machado, J. Romero, and B. Manaris., An iterative approach to stylistic change in evolutio-
nary art,

[24] P. Machado and A. Cardoso, Nevar–the assessment of an evolutionary art tool,In Proc. of the
AISB00 Symposium on Creative & Cultural Aspects and Applications of AI & Cognitive
Science, volume 456, 2000.

74
[25] S. DiPaola and L. Gabora., Incorporating characteristics of human creativity into an evolutionary
art algorithm,.In : Genetic Programming and Evolvable Machines, 10(2) :97–110, 2009.

[26] Ian Goodfellow et al, Generative adversarial nets, In : Advances in neural information pro-
cessing systems. 2014, pp. 2672–2680

[27] Christian Ledig et al., Photo-realistic single image super-resolution using a generative adversa-
rial network, In : arXiv preprint arXiv :1609.04802 2016.

[28] Scott Reed et al., Generative adversarial text to image synthesis, In : Proceedings of The 33rd
International Conference on Machine Learning. Vol. 3. 2016.

[29] Alec Radford, Luke Metz, and Soumith Chintala., Unsupervised representation learning with
deep convolutional generative adversarial networks, In : arXiv preprint arXiv :1511.06434, 2015.

[30] Mehdi Mirza and Simon Osindero. Conditional generative adversarial nets In : arXiv preprint
arXiv :1411.1784,2014.

[31] Jaime Deverall,Jiwoo Lee,Miguel Ayala, Using Generative Adversarial Networks to Design
Shoes (June 13, 2017).

[32] Y. R.Cui, Q.Liu, C.Y.Gao et Z.Su, Display your fashion design using Conditional Generative
Adversarial Nets (2018).

[33] Raschka, S., and Mirjalili, V.,Python Machine Learning, 2nd Ed,. Packt Publishing, Birmin-
gham, UK, 2 edition, 2017.

[34] Machine Learning et Intelligence Artificielle : le b.a.-ba. Disponible depuis : https:


//medium.com/@guillaumeandre/machine-learning-et-intelligence-
artificielle-le-b%C3%A9aba-ec9cc57cf504. Consulté le 7 Septembre 2019.

[35] Harold KIOSSOU, Prédiction des performances d’une architecture 2D SOME-Bus avec le deep
learning, pp.22, 2018.

[36] https://missinglink.ai/guides/neural-network-concepts/complete-
guide-artificial-neural-networks/. Consulté le 21 Janvier 2020.

[37] Ubuntu. Canonical Group. Disponible depuis : https://www.ubuntu.com/. Consulté


le 19 Septembre 2019.

[38] KDNuggets. Disponible depuis : https://www.kdnuggets.com/2018/05/poll-


tools-analytics-data-science-machine-learning-results.html/. Consulté
le 28 Septembre 2019.

[39] Anconda. Anaconda Distribution. Disponible depuis : https://www.anaconda.com/.


Consulté le 19 Septembre 2019.

75
[40] Tensorflow. Google. Disponible depuis : https://www.tensorflow.org/. Consulté le
19 Septembre 2019.

[41] Keras. Python package. Disponible depuis : https://keras.io/. Consulté le 19 Sep-


tembre 2019.

[42] Scikit-learn. Python package. Disponible depuis : https://scikit-learn.org/.


Consulté le 19 Septembre 2019.

[43] https://www.presidence.bj/home/le-benin/geographie/. Consulté le 19 No-


vembre 2019.

[44] John Gennari, Pat Langley, and Doug Fisher. Models of incremental concept formation..
40 :11–61, 09 1989.

[45] Ron Kohavi and George H. John. Wrappers for feature subset selection. Artif. Intell.. 97(1-
2) :273–324, December 1997.

[46] https://scikit-learn.org/stable/modules/generated/sklearn.tree.
DecisionTreeRegressor.html/. Consulté le 19 Janvier 2020.

[47] https://scikit-learn.org/stable/modules/generated/sklearn.
ensemble.RandomForestRegressor.html. Consulté le 19 Janvier 2020.

[48] https://xgboost.readthedocs.io/en/latest/index.html. Consulté le 19 Jan-


vier 2020.

[49] Jason Brownlee ; How to Develop a GAN for Generating MNIST Handwritten Digits :
https://machinelearningmastery.com/how-to-develop-a-generative-
adversarial-network-for-an-mnist-handwritten-digits-from-scratch-
in-keras/. Consulté le 2 Févrié 2020.

[50] Python. Python Software Fundation. Disponible depuis : https://www.python.org/.


Consulté le 19 Septembre 2019.

[51] How to Improve a Neural Network With Regularization. Disponible depuis :


https://towardsdatascience.com/how-to-improve-a-neural-network-
with-regularization-8a18ecda9fe3. Consulté le 04 Janvier 2020.

76
Annexe A
Dropout

Le dropout consiste à passer en revue toutes les couches d’un réseau de neurone et à établir
la probabilité de conserver ou non certains nœuds. Bien sûr, la couche d’entrée et la couche
de sortie restent les mêmes. La probabilité de conserver chaque nœud est fixée au hasard. On
décide seulement du seuil : une valeur qui déterminera si le nœud est conservé ou non. Par
exemple, le seuil est fixé à 0,7, alors il y a une probabilité de 30% qu’un nœud soit retiré du
réseau. Il en résultera donc un réseau de neurones beaucoup plus petit et plus simple, comme
indiqué ci-dessous.

F IGURE A.1 – Example de réseau de neurone avant dropout

77
F IGURE A.2 – Example de réseau de neurone après dropout

Il peut sembler fou de retirer aléatoirement des nœuds d’un réseau de neurones pour le
régulariser. Pourtant, c’est une méthode largement utilisée et il a été prouvé qu’elle améliorait
considérablement les performances des réseaux de neurones[51]. Alors, pourquoi cela fonctionne-
t-il si bien ? Le dropout signifie que le réseau de neurone ne peut compter sur aucun nœud
d’entrée, puisque chacun a une probabilité aléatoire d’être retiré. Par conséquent, le réseau de
neurone hésitera à accorder un poids élevé à certaines caractéristiques, car elles pourraient dis-
paraître. Par conséquent, les poids sont répartis sur toutes les caractéristiques, ce qui les rend
plus petites. Cela a pour effet de rétrécir le modèle et de le régulariser et donc d’éviter le over-
fitting.

78
Annexe B
Quelques portions de codes

Ici nous présentons nos codes implémentés pour les modèles GAN et DCGAN.

• GAN
1 def get_generator(optimizer):
2 generator = Sequential()
3 generator.add(Dense(256, input_dim=random_dim, kernel_initializer=
initializers.RandomNormal(stddev=0.02)))
4 generator.add(LeakyReLU(0.2))
5 generator.add(Dense(512))
6 generator.add(LeakyReLU(0.2))
7

8 generator.add(Dense(1024))
9 generator.add(LeakyReLU(0.2))
10

11 generator.add(Dense(784, activation='tanh'))
12 generator.compile(loss='binary_crossentropy', optimizer=optimizer)
13 return generator
14

Listing B.1 – Implémentation du générateur

2 def get_discriminator(optimizer):
3 discriminator = Sequential()
4 discriminator.add(Dense(1024, input_dim=784, kernel_initializer=
initializers.RandomNormal(stddev=0.02)))
5 discriminator.add(LeakyReLU(0.2))
6 discriminator.add(Dropout(0.3))
7 discriminator.add(Dense(512))
8 discriminator.add(LeakyReLU(0.2))
9 discriminator.add(Dropout(0.3))
10 discriminator.add(Dense(256))
11 discriminator.add(LeakyReLU(0.2))

79
12 discriminator.add(Dropout(0.3))
13 discriminator.add(Dense(1, activation='sigmoid'))
14 discriminator.compile(loss='binary_crossentropy', metrics=['accuracy'],
optimizer=optimizer)
15 return discriminator
16

17

Listing B.2 – Implémentation du discriminateur

• DCGAN
1 def get_generator(optimizer):
2 model = Sequential()
3 model.add(Dense(7*7*256, use_bias=False, input_dim=random_dim))
4 model.add(BatchNormalization())
5 model.add(LeakyReLU())
6

7 model.add(Reshape((7, 7, 256)))
8 assert model.output_shape == (None, 7, 7, 256) # Note: None is the batch
size
9

10 model.add(Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same',


use_bias=False))
11 assert model.output_shape == (None, 7, 7, 128)
12 model.add(BatchNormalization())
13 model.add(LeakyReLU())
14

15 model.add(Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same',


use_bias=False))
16 assert model.output_shape == (None, 14, 14, 64)
17 model.add(BatchNormalization())
18 model.add(LeakyReLU())
19

20 model.add(Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same',


use_bias=False, activation='tanh'))
21 assert model.output_shape == (None, 28, 28, 1)
22 model.compile(loss='binary_crossentropy', optimizer=optimizer)
23 return model
24

Listing B.3 – Implémentation du générateur

2 def get_discriminator(optimizer):
3 discriminator = Sequential()
4 discriminator.add(Conv2D(64, kernel_size=(5, 5), strides=(2, 2), padding='
same', input_shape=(28, 28, 1), kernel_initializer=initializers.
RandomNormal(stddev=0.02)))

80
5 discriminator.add(LeakyReLU(0.2))
6 discriminator.add(Dropout(0.3))
7 discriminator.add(Conv2D(128, kernel_size=(5, 5), strides=(2, 2), padding=
'same'))
8 discriminator.add(LeakyReLU(0.2))
9 discriminator.add(Dropout(0.3))
10 discriminator.add(Flatten())
11 discriminator.add(Dense(1, activation='sigmoid'))
12 discriminator.compile(loss='binary_crossentropy', metrics=['accuracy'],
optimizer=optimizer)
13

14 return discriminator
15

16

Listing B.4 – Implémentation du discriminateur

81
Table des matières

Dédicaces i

Remerciements ii

Liste des figures vi

Liste des tableaux vii

Liste des sigles et abréviations viii

Introduction 1

1 Etat de l’art 4
1.1 Le commerce du textile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Les variables exogènes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 La saisonnalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Prédiction des ventes dans le domaine du textile et de la mode . . . . . . . . . . . 6
1.3 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3 Generative Adversarial Networks (GAN) . . . . . . . . . . . . . . . . . . . 15

2 Matériel et Méthodes 17
2.1 Matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Solution proposée 24
3.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Collecte de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Prétraitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Génération de motifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

82
3.2.1 Collecte des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.2 Prétraitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Résultats et discussion 44
4.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Prédiction de ventes dans les boutiques . . . . . . . . . . . . . . . . . . . . 44
4.1.2 Génération de motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Conclusion et perspectives 57

English Part
Sales forecast and design generation for textile products using machine
learning 58
4.3 Textile trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 Related Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.1 Sales Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2 Design generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.3 Primer on Artificial Neural Network . . . . . . . . . . . . . . . . . . . . . . 62
4.5 Material and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6 Proposed solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Results and discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7.1 Sales Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7.2 Design Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Bibliographie 73

A Dropout 77

B Quelques portions de codes 79

Vous aimerez peut-être aussi