Mémoire
Mémoire
Mémoire
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Hypothèses et définitions . . . . . . . . . . . . . . . . . . . . . . 10
3 TCL quantitatif en dimension 1 . . . . . . . . . . . . . . . . . . . 13
4 TCL quantitatif en dimension finie . . . . . . . . . . . . . . . . . 23
5 Illustration du TCL quantitatif en dimension 1 . . . . . . . . . . . 25
6 Annexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1
1 Introduction
Ce mémoire est un travail sur l’article « Quantitative CLTS in deep neu-
ral networks »[1].
2
Chaque couche est donc consituée de neurones, recevant chacun des
entrées (𝑥𝑖 ), pondérées par un poids (𝑤 𝑖 ) à laquelle un biais est ajouté pour
calculer une somme pondérée. Pour une couche donnée, l’entrée totale est
donc donnée par:
Í
𝑖 𝑤 𝑖 𝑥𝑖 + biais
3
De façon rigoureuse, le réseau le plus simple, le réseau neuronal entière-
ment connecté, est défini de la manière suivante:
Definition 1.1 (Réseau neuronal entièrement connecté).
Fixons un entier positif L ainsi que L+2 entiers positifs 𝑛0 , . . . , 𝑛 𝐿+1 et
une fonction 𝜎 : R → R. Un réseau neuronal entièrement connecté
de profondeur L aux dimensions d’entrée 𝑛0 et de sortie 𝑛 𝐿+1 , de largeurs
de couches 𝑛1 , . . . , 𝑛 𝐿 et de non-linéarité 𝜎 est une fonction 𝑥 𝛼 ∈ R𝑛0 ↦→
𝑧 𝛼(𝐿+1) ∈ R𝑛 𝐿+1 de la forme suivante:
(1)
(ℓ) 𝑊 𝑥 𝛼 + 𝑏 (1) , ℓ=1
𝑧𝛼 = (ℓ) (ℓ−1) (ℓ)
𝑊 𝜎(𝑧 𝛼 ) + 𝑏 , ℓ = 2, . . . , 𝐿 + 1.
où 𝑧 𝛼(ℓ) ∈ R𝑛ℓ et 𝑏 (ℓ) ∈ R𝑛ℓ sont des vecteurs, 𝑊 (ℓ) ∈ R𝑛ℓ ×𝑛ℓ −1 des
matrices, et 𝜎 appliqué à un vecteur est 𝜎 appliqué à chaque composante.
Notons que 𝜎 sert de fonction d’activation non-linéaire.
Les paramètres d’un tel réseau de neurones sont les poids 𝑊𝑖(𝑙)
𝑗 et les
biais 𝑏𝑖(𝑙) associés à chaque couche. Le but étant, pour un jeu de données,
de trouver une combinaison de poids et de biais telle que 𝑧 𝛼(𝐿+1) ≈ 𝑓 (𝑥 𝛼 )
pour 𝑥 𝛼 appartenant au jeu de données ou non, avec 𝑓 la fonction que l’on
essaie d’approximer (dans le cas de l’exemple simple précédant, la fonction
binaire qui renseigne sur le fait d’aller surfer ou non). Une telle optimisation
requiert typiquement deux étapes:
Une façon de choisir nos paramètres est de les supposer aléatoires, mais
de loi connue. Ceci livre la définition suivante:
4
Definition 1.2 (Réseau neuronal aléatoire entièrement connecté).
Fixons un entier positif L ainsi que L+2 entiers positifs 𝑛0 , . . . , 𝑛 𝐿+1 ,
une fonction 𝜎 : R → R ainsi que deux constantes 𝐶𝑏 ≥ 0 et 𝐶𝑤 > 0. Un
réseau neuronal aléatoire entièrement connecté de profondeur L aux
dimensions d’entrée 𝑛0 et de sortie 𝑛 𝐿+1 , de largeurs de couches 𝑛1 , . . . , 𝑛 𝐿
et de non-linéarité 𝜎 est un réseau neuronal de la forme donnée en (1.1) où
les paramètres sont aléatoires, indépendants, mais de loi normale connue:
𝑊𝑖(𝑙) 𝐶𝑤 (𝑙)
𝑗 ∼ N (0, 𝑛𝑙−1 ), 𝑏 𝑖 ∼ N (0, 𝐶𝑏 )
Notons que le caractère aléatoire des paramètres est utile pour différentes
raisons, la principale est la diversité des paramètres qu’il permet d’obtenir.
En effet, en utilisant une distribution aléatoire, chaque neurone dans le
réseau peut commencer avec des poids différents. Cela permet d’explorer
plus efficacement l’espace des paramètres et peut conduire à une meilleure
performance du modèle.
5
du réseau avec les valeurs attendues, puis à ajuster les paramètres du réseau
de manière itérative afin de minimiser une fonction de perte ou d’erreur.
satisfaisant
( (𝑙) (𝑙)
(𝑙+1) 𝐶𝑏 + 𝐶𝑤 ⟨𝜎(𝑧𝑖;𝛼 ) , 𝜎(𝑧𝑖;𝛽 )⟩𝐾 (𝑙) 𝑙≥1
𝐾𝛼𝛽 = 𝐶𝑤
𝐶 𝑏 + 𝑛0 𝑥 𝛼 · 𝑥 𝛽 𝑙=0
(𝑙) (𝑙)
où pour 𝑔 : R2 → R nous écrivons ⟨𝑔(𝑧𝑖;𝛼 ) , 𝑔(𝑧𝑖;𝛽 )⟩𝐾 (𝑙) pour la valeur
moyenne de 𝑔 par rapport à la distribution
(𝑙) (𝑙)
!!
(𝑙) (𝑙) 𝐾 𝛼𝛼 𝐾 𝛼𝛽
(𝑧𝑖;𝛼 , 𝑧𝑖;𝛽 ) ∼ N 0, (𝑙) (𝑙)
𝐾𝛼𝛽 𝐾 𝛽𝛽
6
donc 𝐿 = 1, 𝑛0 = 2 (deux entrées), et 𝑛 𝐿+1 = 𝑛2 = 1 (une sortie). Soit
également 𝑛1 = 2 (deux neurones dans la couche cachée). Supposons aussi
que les constantes soient 𝐶𝑏 = 0 (pas de biais), et 𝐶𝑤 = 1. Pour la fonction
d’activation, utilisons la fonction linéaire 𝜎(𝑥) = 𝑥. Si nous calculons la
(2)
covariance limite 𝐾𝛼𝛽 entre les sorties des neurones de la couche de sortie
pour les entrées 𝛼 et 𝛽, nous obtenons, selon le théorème,
(2) (1) (1)
𝐾𝛼𝛽 = ⟨𝑧𝑖;𝛼 , 𝑧𝑖;𝛽 ⟩𝐾 (1)
(2)
La covariance limite 𝐾𝛼𝛽 est donc simplement proportionnelle à la co-
variance entre les sorties des neurones de la couche de sortie pour les entrées
𝛼 et 𝛽. Si nous supposons en plus que les entrées sont des variables aléa-
toires indépendantes, la covariance entre 𝑥 𝛼 et 𝑥 𝛽 est nulle. Dans ce cas, la
(2)
covariance limite 𝐾𝛼𝛽 sera également nulle.
7
moyenne comme fonction de perte, la trajectoire d’optimisation corre-
spond à celle obtenue en remplacant le réseau non-linéaire 𝑧 𝛼𝐿+1 par sa
linéarisation autour des paramètres aléatoires initiaux (poids et biais)
du réseau.
8
distances spécifiques, proportionnelles a l’inverse de la profondeur du
champ considérée.
9
2 Hypothèses et définitions
Les définitions et résultats suivants seront utilisés tout au long du travail.
Definition 2.1 (Borne polynomiale d’ordre r).
Pour 𝑟 ≥ 1 fixé, une fonction 𝜎 : R → R est bornée polynomialement à
l’ordre 𝑟 si, soit 𝜎 est 𝑟 fois continûment différentiable, soit 𝜎 est 𝑟 − 1 fois
continûment différentiable et sa (𝑟 −1)-ème dérivée est une fonction linéaire
continue par morceaux avec un nombre fini de points de discontinuité pour
sa dérivée. Dans les deux cas on demande aussi que la r-ème dérivée soit
bornée polynomialement:
𝑟
∃𝑘 ≥ 0 tel que (1 + |𝑥|) −𝑘 𝑑𝑥
𝑑
𝑟 𝜎(𝑥) 𝐿 ∞ (R)
<∞
10
Definition 2.2 (Non-dégénérescence de la matrice de covariance).
Pour 𝑟 > 1 fixé et 𝜎 borné polynomialement à l’ordre 𝑟, et A un en-
semble fini indiçant des inputs distincts du réseau,
𝑥 A = {𝑥 𝛼 : 𝛼 ∈ A} ⊆ R𝑛0
et un ensemble fini d’opérateurs de dérivées directionnelles,
Í𝑛 0
𝑉 = {𝑉1 , . . . , 𝑉𝑝 }, 𝑉 𝑗 := 𝑖=1 𝑣 𝑖 𝑗 𝜕𝑥𝑖
𝑗 𝑗
𝑉𝛼𝐽𝑖𝑖 := 𝑉1 𝑖1 . . . 𝑉𝑝𝑖 𝑝
𝑥=𝑥 𝛼𝑖
où
11
(𝑙)
𝜎(𝑧 (𝑙) (𝑙)
𝐶𝑤 Í𝑛 𝑙
Σ𝛼𝛽 := 𝐶𝑏 + 𝑛𝑙 𝑗=1 𝑗;𝛼 )𝜎(𝑧 𝑗;𝛽 )
12
3 TCL quantitatif en dimension 1
Nous présentons dans cette section le premier résultat de l’article, à
savoir le TCL quantitatif en dimension 1.
sont proches (dans un sens qui sera précisé par la suite) de ceux d’un pro-
cessus Gaussien de 𝑛 𝐿+1 composantes indépendantes et identiquement dis-
tribuées.
Nous avons donc besoin d’une notion de distance. Nous utiliserons prin-
cipalement la distance de Wasserstein définie de la façon suivante:
Definition 3.1 (Distance de Wasserstein d’ordre p).
Soit (X, 𝑑) un espace polonais (i.e. un espace métrisable à base dénom-
brable) muni de sa tribu borélienne. Soit 𝑝 ∈ [0, +∞[ et 𝜇, 𝜈 deux mesures
de probabilité sur X. La distance de Wassertein d’ordre 𝑝 entre 𝜇 et 𝜈
est:
∫ 1/𝑝
W 𝑝 (𝜇, 𝜈) := inf 𝜋∈Π(𝜇,𝜈) X×X 𝑑 (𝑥, 𝑦) 𝑝 d𝜋(𝑥, 𝑦)
13
où Π(𝜇, 𝜈) désigne l’ensemble des mesures de probabilités sur X × X
dont les lois marginales sont 𝜇 et 𝜈.
Une définition alternative est donnée par:
Definition 3.2 (Distance de Wasserstein d’ordre p - définition alternative).
Soit 𝐾 un espace de Hilbert séparable sur R, 𝑋 et 𝑌 deux éléments aléa-
toires à valeurs sur 𝐾, et 𝑝 ≥ 1 fixé. La distance de Wasserstein d’ordre
p entre les distributions de 𝑋 et 𝑌 , est définie comme étant la quantité:
𝑝 1/𝑝
W 𝑝 (𝑋, 𝑌 ) := inf (𝑇,𝑆) E[∥𝑇 − 𝑆∥ 𝐾 ]
loi loi
où l’infimum est pris sur les éléments (𝑇, 𝑆) tels que 𝑇 = 𝑋 et 𝑆 = 𝑌 .
La distance de Wasserstein est liée au problème du transport optimal, qui
consiste à transformer une mesure finie 𝜇 sur un espace X en une mesure
𝜈 sur ce même espace, moyennant une certaine fonction de coût. Lorsque
cette fonction de coût entre deux points est simplement la distance entre
ceux-ci, le coût optimal de transformation des mesures nous donne la défi-
nition de la distance de Wassertein (de premier ordre).
14
où nous avons adopté la notation de la définition 2.2. Si la structure de co-
variance {𝐾 (ℓ) } évaluée au singleton {𝑥 𝛼 } est non-dégénérée (au sens de
la définition 2.2) jusqu’à l’ordre 𝑞 = |𝐽 | ≤ 𝑟, nous obtenons les résultats
suivants:
15
1. Il existe 𝐶 > 0, dépendant de 𝑟, 𝑉, 𝐽, 𝑥 𝛼 , P, avec la propriété suivante:
pour tout 𝑖 = 1, . . . , 𝑛 𝐿+1 ,
n o
(𝐿+1) (𝐿+1)
max W1 (𝑉𝛼𝐽 𝑧𝑖;𝛼 , 𝑍), 𝑑𝑇𝑉 (𝑉𝛼𝐽 𝑧𝑖;𝛼 , 𝑍) ≤ 𝐶𝑛−1
Quelques remarques:
• Le point 1. fournit une borne décroissante en 𝑛, qui est la contrainte
sur les dimensions des différentes couches du réseau neuronal (𝑐 2 𝑛 ≤
𝑛1 , . . . , 𝑛 𝐿 ≤ 𝑐 1 𝑛, où 𝑐 1 et 𝑐 2 sont des constantes fixées: les dimen-
sions des couches cachées croissent linéairement avec 𝑛, avec des
bornes fixées par 𝑐 1 et 𝑐 2 ).
• Le point 1. indique également que la constante 𝐶 peut être choisie de
2
manière à rester uniforme, peu importe comment la quantité ∥𝑥𝑛𝛼0∥
varie sur un ensemble compact. Cela signifie que la constante 𝐶
ne dépend pas spécifiquement des valeurs individuelles de 𝑥 𝛼 mais
plutôt de la manière dont ces valeurs varient sur un ensemble com-
pact. Ainsi, même si les valeurs de 𝑥 𝛼 changent dans cet ensemble
compact, la constante 𝐶 reste stable et ne dépend que de la structure
générale de cet ensemble. Cette propriété permet d’avoir une certaine
uniformité dans le comportement du réseau neuronal sur cet ensemble
de données d’entrée.
• Le point 2. garantit l’existence d’une constante 𝐶0 telle que la dis-
tance minimale entre la sortie du réseau neuronal et une autre variable
aléatoire normale centrée 𝑍 ′ soit au moins de l’ordre de 𝑛−1 . Ce cas a
lieu lorsque 𝑞 = 0, i.e. lorsque nous considérons le cas où il n’y a pas
de dépendance en direction des dérivées pour la variable aléatoire en
question. Autrement dit, lorsque nous n’examinons pas la variation
de la covariance par rapport à différentes directions. Cette propriété
assure que, dans le cas considéré, la distance entre la sortie du réseau
neuronal et une variable aléatoire normale centrée décroît de manière
suffisamment rapide lorsque la taille du réseau neuronal augmente.
16
Un exemple de situation où le théorème s’applique est le cas où 𝜎(𝑡) =
𝑅𝑒𝐿𝑈 (𝑡) = max{0, 𝑡}, 𝐶𝑏 = 0, 𝐶𝑤 = 2 et 𝑉 = {𝜕𝑥𝑖 } pour un certain 𝑖. Pour
une donnée d’entrée non-nulle 𝑥 𝛼 , un calcul simple montre que
(ℓ) 2 2 (ℓ) 2
𝐾𝛼𝛼 = 𝑛0 ∥𝑥 𝛼 ∥ et 𝜕𝑥𝑖;𝛼 𝜕𝑥𝑖;𝛽 𝐾𝛼𝛽 = 𝑛0
𝛼=𝛽
17
1. Pour ℓ = 1, . . . , 𝐿, tous les multi-indices 𝐽1 , 𝐽2 d’ordre au plus 𝑞, et
toutes les entrées de réseau 𝑥 𝛼1 , 𝑥 𝛼2 ∈ 𝑥 𝐴 , nous avons pour tout 𝑛 ≥ 1
(ℓ) (ℓ) (ℓ+1)
max Var(𝑉𝐽1 𝛼1 𝑉𝐽2 𝛼2 Σ𝛼1 𝛼2 ), 𝑉𝐽1 𝛼1 𝑉𝐽2 𝛼2 E[Σ𝛼1 𝛼2 ] − 𝐾𝛼1 𝛼2 ≤ 𝐶𝑛−1 ,
(3.5.1)
où pour un multi-index 𝐽 = ( 𝑗1 , . . . , 𝑗 𝑝 ) nous avons utilisé la notation
(2.2) et adopté les conventions notationales
• La séquence des champs 𝑧 𝛼(ℓ) est une chaîne de Markov par rapport à
ℓ.
18
• Conditionnellement à l’algèbre sigma F (ℓ) définie par 𝑧 𝛼(ℓ) , le champ
𝑧 𝛼(ℓ+1) est un champ gaussien avec des composantes indépendantes
(ℓ+1)
𝑧𝑖;𝛼 .
(ℓ) (ℓ+1)
• La variance conditionnelle Σ𝛼𝛼 de chaque composante 𝑧𝑖;𝛼 dépend
de 𝑧 𝛼(ℓ) uniquement à travers des variables aléatoires de la forme
𝑛ℓ
1 ∑︁
𝑂 (ℓ)
𝑓 := (ℓ)
𝑓 (𝑧𝑖;𝛼 ).
𝑛ℓ 𝑖=1
(ℓ)
Nous étudions à présent la moyenne et la variance de Σ𝛼𝛼 . En partic-
ulier, grâce à un développement en séries de puissances, nous trouvons des
bornes en 1/𝑛 pour ces quantités.
Nous considérons dans un premier temps la fonction caractéristique (𝜉 =
(𝜉1 , . . . , 𝜉𝑚 ) sont des variables duales):
" 𝑚
!#
∑︁
(ℓ+1)
𝑝 (ℓ+1) (𝜉) := E exp −𝑖 𝜉𝑖 𝑧𝑖;𝛼
𝑖=1
nous trouvons
(ℓ+1) 1 (ℓ) 1 2 (ℓ)
𝑝 (𝜉) := E exp − ∥𝜉 ∥ 2 Δ𝛼𝛼 exp − ∥𝜉 ∥ 𝜅 𝛼𝛼 .
2 2
Où le second terme est précisément la fonction caractéristique d’une
Gaussienne centrée m-dimensionelle avec des composants i.i.d. de variance
(ℓ)
𝜅 𝛼𝛼 . De plus, le premier terme peut s’écrire:
19
i (−1) 𝑞
1 (ℓ)
∑︁ h
(ℓ) 𝑞
E exp − ∥𝜉 ∥ 2 Δ𝛼𝛼 = E (Δ𝛼𝛼 ) ∥𝜉 ∥ 2𝑞
2 𝑞≥0
2 𝑞!
𝑞
(ℓ+1)
Enfin, puisque −∥𝜉 ∥ 2 représente le Laplacien dans les variables 𝑧𝑖;𝛼 ,
nous avons, pour toute fonction test raisonnable 𝑓 , que
∞
* 𝑚 +
h
(ℓ+1)
i ∑︁ 1 h
(ℓ) 𝑞
i ∑︁ 𝑞
𝜕𝑧2𝑖 ;𝛼 𝑓 𝑧𝑖;𝛼 , 𝑖 = 1, . . . , 𝑚
E 𝑓 𝑧𝑖;𝛼 , 𝑖 = 1, . . . , 𝑚 = E (Δ𝛼𝛼 )
𝑞=0
2𝑞 𝑞! 𝑖=1 (ℓ )
𝜅 𝛼𝛼
nous assure que notre expression est une série de puissance d’ordre 1/𝑛.
En particulier,
h i
(ℓ+1)
E 𝑓 𝑧𝑖;𝛼 , 𝑖 = 1, . . . , 𝑚 = E 𝑓 𝑧𝑖;𝛼 , 𝑖 = 1, . . . , 𝑚 𝜅 (ℓ )
𝛼𝛼
h i
(ℓ) 2 *
E (Δ𝛼𝛼 ) 𝑚
+
∑︁ 2
𝜕𝑧2𝑖 ;𝛼 𝑓 𝑧𝑖;𝛼 , 𝑖 = 1, . . . , 𝑚
+
8 𝑖=1 (ℓ )
𝜅 𝛼𝛼
+ 𝑂 𝑛−2 . □
Proposition 3.6. Soit 𝐹 une variable aléatoire centrée avec une variance
finie 𝜎 2 > 0, et considérons 𝑍 ∼ 𝑁 (0, 𝜎 2 ). Supposons qu’il existe une
variable aléatoire auxiliaire intégrable 𝐴 ≥ 0 telle que, conditionnellement
à 𝐴, la variable aléatoire 𝐹 suive une distribution gaussienne centrée avec
variance 𝐴. Alors, pour toutes fonctions 𝑓 : R → R continûment différen-
tiables et lipschitziennes et toute 𝜑 : R+ → R bornée,
20
2. si E( 𝐴4 ) < ∞, alors
−𝜎 2 /2 1 1 2 3
min{2𝑑𝑇𝑉 (𝐹, 𝑍); 𝑊1 (𝐹, 𝑍)} ≥ 𝑒 Var( 𝐴) − E[( 𝐴 − 𝜎 ) ] + 𝑅 ,
8 48
(3.6.4)
1 𝜎 2 /2
où |𝑅| ≤ 384 𝑒 E[( 𝐴 − 𝜎 2 ) 4 ].
21
Remarque 3.7. Si 𝑍1 ∼ 𝑁 (0, 𝜎12 ) et 𝑍2 ∼ 𝑁 (0, 𝜎22 ), alors [3, Proposition
3.6.1] implique que
2
𝑑𝑇𝑉 (𝑍1 , 𝑍2 ) ≤ × |𝜎12 − 𝜎22 |. (3.7.1)
𝜎12 ∨ 𝜎22
22
4 TCL quantitatif en dimension finie
Le second résultat concerne le niveau fini-dimensionnel. Nous com-
mencons par rappeler la définition de distance convexe entre deux distribu-
tions.
Definition 4.5 (Distance convexe).
Pour tout entier 𝑚 ≥ 1, la distance convexe entre les distributions de
deux vecteurs aléatoires m-dimensionnels 𝑋, 𝑌 est
23
𝐽 𝑘 (𝐿+1)
𝐺 := 𝑉𝛼𝑘 Γ𝑖;𝛼𝑘 ∈ R 𝑀×𝑛 𝐿+1
1≤𝑖≤𝑛 𝐿+1 ,(𝐽 𝑘 ,𝛼 𝑘 )∈B
(𝐿+1)
où R𝑛0 ∋ 𝑥 𝛼 ↦→ (Γ1;𝛼 , . . . , Γ𝑛(𝐿+1)
𝐿+1 ;𝛼
) est un champ aléatoire gaussien avec
covariance
(𝐿+1)
Cov Γ𝑖;𝛼 , Γ (𝐿+1)
𝑗;𝛽
(𝐿+1)
= 𝛿𝑖 𝑗 𝐾𝛼𝛽
comme défini dans le théorème 1.1. Nous obtenons alors les résultats suiv-
ants:
où
(𝐽 𝑘 ,𝛼 𝑘 )∈𝐵
𝐺 ′ := 𝑉𝛼𝐽𝑘𝑘 Γ𝑖;𝛼
′
𝑘 1≤𝑖≤𝑛 𝐿+1
∈ R 𝑀×𝑛 𝐿+1 ,
′ , ..., Γ′
et R𝑛0 ∋ 𝑥 𝛼 ↦→ (Γ1;𝛼 𝑛 𝐿+1 ;𝛼 ) est le champ gaussien centré avec covari-
ance
′ (𝐿) (𝐿+1)
Cov(Γ𝑖;𝛼 , Γ′𝑗;𝛽 ) = 𝛿𝑖 𝑗 E[Σ𝛼𝛽 ] = 𝛿𝑖 𝑗 𝜅 𝛼𝛽
24
5 Illustration du TCL quantitatif en dimension 1
Dans cette section, nous utilisons un code R afin d’illustrer le com-
portement des sorties d’un réseau de neurones simple avec une largeur
de couche finie en comparaison avec une distribution gaussienne. Nous
générons des échantillons de données i.i.d., entraînons un réseau de neu-
rones, et comparons ses sorties à celles d’une variable gaussienne ayant la
même moyenne et écart-type.
Nous utilisons des histogrammes pour visualiser la distribution des sor-
ties du réseau et des variables gaussiennes, et nous calculons nos deux
mesures clés pour quantifier la proximité entre ces deux distributions :
25
Figure 3: Histogramme des sorties du réseau de neurones vs variables gaussiennes,
n=1000.
26
Les distances de Variation Totale et de Wasserstein pour nos 3 tailles
d’échantillons sont reprises dans le tableau suivant.
27
6 Annexe
Code R utilisé pour générer les histogrammes de la section 5.
1 # Installer et charger les packages necessaires
2 if (!requireNamespace("nnet", quietly = TRUE)) {
3 install.packages("nnet")
4 }
5 if (!requireNamespace("ggplot2", quietly = TRUE)) {
6 install.packages("ggplot2")
7 }
8 if (!requireNamespace("transport", quietly = TRUE)) {
9 install.packages("transport")
10 }
11 library(nnet)
12 library(ggplot2)
13 library(transport)
14
15 # Fonction pour executer l’analyse et creer les histogrammes
16 run_analysis <- function(n_samples) {
17 # Parametres
18 n_features <- 30 # Nombre de variables i.i.d
19
20 # Generer des donnees i.i.d.
21 set.seed(123)
22 X <- matrix(rnorm(n_samples * n_features), nrow = n_samples,
ncol = n_features)
23 Y <- rnorm(n_samples)
24
25 # Construire un reseau de neurones simple avec une taille de
reseau reduite
26 model <- nnet(X, Y, size = 10, linout = TRUE, maxit = 100)
27
28 # Obtenir la sortie du modele
29 outputs <- predict(model, X)
30
31 # Calculer les variables aleatoires gaussiennes
32 output_mean <- mean(outputs)
33 output_sd <- sd(outputs)
34 Z <- rnorm(n_samples, mean = output_mean, sd = output_sd)
35
36 # Determiner les breaks pour les histogrammes
37 breaks <- seq(min(c(outputs, Z)), max(c(outputs, Z)), length.out
= 31)
38
39 # Calculer les histogrammes
40 hist_nn <- hist(outputs, breaks = breaks, plot = FALSE)
41 hist_gaussian <- hist(Z, breaks = breaks, plot = FALSE)
42
43 # Normaliser les histogrammes
44 hist_nn_density <- hist_nn$counts / sum(hist_nn$counts)
45 hist_gaussian_density <- hist_gaussian$counts / sum(hist_
gaussian$counts)
46
28
47 # Fonction pour calculer la distance de variation totale
48 total_variation_distance <- function(hist1, hist2) {
49 0.5 * sum(abs(hist1 - hist2))
50 }
51
52 # Calculer la distance de Wasserstein
53 w1_distance <- wasserstein1d(as.vector(outputs), Z)
54
55 # Calculer la distance de variation totale
56 dT_distance <- total_variation_distance(hist_nn_density, hist_
gaussian_density)
57
58 # Tracer les histogrammes
59 df <- data.frame(
60 values = c(as.vector(outputs), Z),
61 type = rep(c("Neural Network Outputs", "Gaussian Variables"),
each = n_samples)
62 )
63
64 plot <- ggplot(df, aes(x = values, fill = type)) +
65 geom_histogram(position = "identity", alpha = 0.5, bins =
length(breaks) - 1) +
66 labs(title = sprintf("Histogramme des sorties du reseau de
neurones vs. Variables gaussiennes (n = %d)", n_samples),
x = "Valeur", y = "Frequence") +
67 theme_minimal()
68
69 return(list(plot = plot, w1_distance = w1_distance, dT_distance
= dT_distance))
70 }
71
72 # Executer l’analyse pour differents nombres d’observations
73 results_500 <- run_analysis(500)
74 results_1000 <- run_analysis(1000)
75 results_2000 <- run_analysis(2000)
76
77 # Afficher les histogrammes
78 print(results_500$plot)
79 print(results_1000$plot)
80 print(results_2000$plot)
81
82 # Sauvegarder les histogrammes dans des fichiers separes
83 ggsave("histogram_500.png", plot = results_500$plot, width = 8,
height = 6)
84 ggsave("histogram_1000.png", plot = results_1000$plot, width = 8,
height = 6)
85 ggsave("histogram_2000.png", plot = results_2000$plot, width = 8,
height = 6)
86
87 # Imprimer les distances
88 cat(sprintf("Pour n = 500:\n"))
89 cat(sprintf("Distance de Wasserstein: %.4f\n", results_500$w1_
distance))
90 cat(sprintf("Distance de variation totale: %.4f\n", results_500$dT
29
_distance))
91 cat(sprintf("Pour n = 1000:\n"))
92 cat(sprintf("Distance de Wasserstein: %.4f\n", results_1000$w1_
distance))
93 cat(sprintf("Distance de variation totale: %.4f\n", results_1000$
dT_distance))
94 cat(sprintf("Pour n = 2000:\n"))
95 cat(sprintf("Distance de Wasserstein: %.4f\n", results_2000$w1_
distance))
96 cat(sprintf("Distance de variation totale: %.4f\n", results_2000$
dT_distance))
30
7 Bibliographie
[1] Stefano Favaro, Boris Hanin, Domenico Marinucci, Ivan Nourdin,
Giovanni Peccati: “Quantitative CLTs in Deep Neural Networks”,
2023; arXiv:2307.06092.
[2] Boris Hanin: “Random fully connected neural networks as perturba-
tively solvable hierarchies”, 2022; arXiv:2204.01058.
[3] Ivan Nourdin, Giovanni Peccati: "The optimal fourth moment theo-
rem." Proceedings of the American Mathematical Society, 2015, 145(7):3123–3133.
31