1. Trang chủ
  2. » Luận Văn - Báo Cáo

(LUẬN VĂN THẠC SĨ) Implémentation d''''une copule mutilvariée Luận văn ThS Công nghệ thông tin

61 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Implémentation d'une copule multivariée
Tác giả Gildas Mazo
Người hướng dẫn PHAM Van Trung
Trường học Institut de la Francophonie pour l’Informatique
Chuyên ngành Công nghệ thông tin
Thể loại thesis
Năm xuất bản 2013
Thành phố Grenoble
Định dạng
Số trang 61
Dung lượng 1,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Toutes lesfonctions φsdoivent satisfaire les propri´et´es caract´eristiques des fonctions de r´epartition.La fonction de r´epartition sur toutes les variables dans le CDN s’´ecrit :F x =

Trang 1

M´ emoire de fin d’´ etudes

R´ ealis´ e par : PHAM Van Trung

Superviseur : Gildas MAZO

Projet Mistis Centre de recherche INRIA Grenoble Rhˆ one-Alpes

29 novembre 2013

Trang 2

Je tiens ` a exprimer ma profonde gratitude ` a Gildas Mazo, mon directeur de stage Il

´ etait toujours prˆ et ` a m’avoir donn´ e des aides pour que j’aie pu comprendre bien des connaissances statistiques n´ ecessaires Ses commentaires utiles et ses judicieux conseils m’ont souvent ´ et´ e d’un grand recours pour mener ` a bien les objectifs de mon stage.

Je tiens ´ egalement ` a remercier les membres de l’´ equipe MISTIS Grˆ ace ` a leur soutien, j’ai pu m’int´ egrer facilement ` a l’´ equipe.

Je voudrais adresser mes sinc` eres remerciements aux professeurs de l’IFI Leurs cours m’ont permis d’approfondir mes connaissances sur des langages de programmation tels que R et C++.

Enfin, je tiens ` a remercier ma famille, mes amis et notamment ma copine Truong Hong Van qui m’ont support´ e ces six mois de stage Leurs encouragements m’ont permis d’ˆ etre toujours motiv´ e et d’avoir pu remplir mon rˆ ole.

Trang 3

soci´ ee ` a un Cumulative Distribution Network (CDN) CDN est une fonction de r´ epartition d’un grand nombre de variables qui se factorise en produit de fonctions de r´ epartition bivari´ ees Ce mod` ele permet de d´ ecrire la d´ ependance entre plusieurs variables al´ eatoires via un graphe o` u les arrˆ etes repr´ esentent les fonctions reliant les variables La fonction de vraisemblance est calcul´ ee grˆ ace ` a un algorithme de message-passing L’inf´ erence dans

le CDN est alors mise en oeuvre via la maximisation de la vraisemblance en utilisant une m´ ethode d’optimisation.

Toutefois, l’impl´ ementation d´ elicate de ce mod` ele peut freiner l’utilisateur dans la tique Nous nous proposons de l’impl´ ementer et de le rendre disponible sous la forme d’un paquet R R est un logiciel de statistique tr` es r´ epandu et de plus en plus utilis´ e Avec ce paquet, il est tr` es facile de construire le graphe et de choisir des familles de copule param´ etriques ainsi que de mod´ eliser des donn´ ees avec un CDN Il permet aussi

pra-de calculer la vraisemblance selon l’algorithme pra-de message-passing et pra-de faire l’inf´ erence.

En outre, la vitesse de l’algorithme est augment´ ee grˆ ace ` a l’´ ecriture d’une partie du code

en C++.

Mots-cl´ es : Cumulative Distribution Network, copule, vraisemblance, fonction de r´ epartition multivari´ ee

Trang 4

The goal of the thesis aims at implementing a multivariate copula associated with a Cumulative Distribution Network (CDN) CDN is a high-dimensional cumulative dis- tribution function (CDF) defined as a product of bivariate CDFs This model accounts for dependencies between random variables via a graph where the edges represent the functions linking the variables The likelihood function is computed thanks to a message- passing algorithm The inference in CDN is performed by optimizing the likelihood function.

However, the implementation of this model is not available for users in practice Hence,

we propose to implement it and make it available as an R package R is a statistical software widely spread in pratice Using this package, the users can build easily the graph, choose parametric copula families and generate data with a CDN It allows to compute the likelihood function according to a message-passing algorithm and perform inference in CDN Moreover, the speed of the algorithm has been increased by integrating C++ codes.

Keywords : Cumulative Distribution Network, copula, likelihood, multivariate bution function

Trang 5

distri-Table des mati` eres

1.1 Statistique th´ eorique 3

1.1.1 Mod` ele statistique 3

1.1.2 Estimation des param` etres d’un mod` ele statistique 4

1.1.3 Copules 5

1.1.4 Cumulative distribution networks 6

1.1.5 La copule associ´ ee au CDN 8

1.2 Environnement de programmation 9

1.2.1 R 9

1.2.2 Structure d’un paquet R 9

1.2.3 Rcpp - Interface entre R et C++ 10

2 Algorithme de gradient-derivative-product 11 2.1 Initialisation de l’algorithme 11

2.2 Propagation des messages 12

2.3 Calcul de la fonction de vraisemblance et son gradient 13

3 Impl´ ementation 17 3.1 Structure du paquet 17

3.1.1 Code source 18

3.1.2 Documentation 18

3.1.3 Tests et tutoriels 19

3.2 Fonctions du paquet 19

3.2.1 Cr´ eation d’un objet CDN 20

3.2.2 Impl´ ementation de l’algorithme de message-passing 22

3.2.3 Estimation des param` etres 26

Trang 6

Contents v

4.1 Pr´ ecision num´ erique de l’algorithme de message-passing 28

4.2 Simulation des donn´ ees 30

4.3 Temps d’ex´ ecution 33

4.4 Application avec un jeu de donn´ ees r´ eelles 36

5 Conclusions et perspectives 40 Bibliographie 41 A mpAlgo 43 A.1 Initialisation de l’algorithme de message-passing 43

A.2 Propagation des messages 44

A.3 Calcul de la densit´ e et du gradient 47

B cdnOptim 48 B.1 Calcul de la fonction de vraisemblance et son gradient 48

B.2 M´ ethode de Broyden-Fletcher-Goldfarb-Shanno bfgs 49

B.3 Limited-memory BFGS with bounds lbfgsb 50

C rCdn, pCdn et dCdn 51 C.1 G´ en´ eration al´ eatoire des observations rCdn 51

C.2 Calcul de la fonction de r´ epartition pCdn 52

C.3 Calcul de la densit´ e de plusieurs observations dCdn 52

Trang 7

Table des figures

1.1 Exemple d’un CDN ` a trois variables 7

1.2 Exemple d’un CDN ` a sept variables 8

2.1 Exemple d’un arbre de 5 variables 15

2.2 Propagation des messages dans le CDN 16

3.1 Composants principaux du paquet CDN 17

3.2 Code source du paquet CDN 18

3.3 Documentation du paquet 19

3.4 Tests et d´ emo 19

3.5 Diagramme des fonctions du paquet 20

3.6 Cr´ eation d’un objet CDN 21

3.7 Exemple de transformation d’un graphe des variables en graphe CDN 22

3.8 Exemple de simplification du graphe 23

3.9 Algorithme de message-passing 23

3.10 Calculation de la fonction de r´ epartition normale et ses gradients 24

3.11 Appel des libraries/fonctions dans C/C++ 25

3.12 Comparaison entre cdnOptim et optim 27

4.0 Pr´ ecision de l’algorithme de message passing avec 5 mod` eles existants 31

4.1 Pr´ ecision de l’algorithme de message passing avec le mod` ele normal 32

Trang 8

List of Tables vii

Trang 9

Liste des tableaux

4.1 Probabilit´ e de l’´ ev´ enement (X 1 ≤ x 01 , X 2 ≤ x 02 , X 3 ≤ x 03 , X 4 ≤ x 04 , X 5 ≤

x 05 ) dans les donn´ ees simul´ ees et F (x 0 ) = F (x 01 , x 02 , x 03 , x 04 , x 05 ) 32

4.2 R´ esultats de l’estimation des param` etres 34

(en secondes) 36

Trang 10

Contexte du stage

Probl´ ematique

Les copules [ 1 , 2 ] jouent un rˆ ole de plus en plus important dans la construction de distributions en grande dimension et la description de la d´ ependance entre les variables al´ eatoires L’une des difficult´ es de la construction d’une copule mutilvari´ ee r´ eside dans l’inf´ erence de mod` eles param´ etriques Une copule multivari´ ee associ´ ee ` a un Cumulative Distribution Network (CDN) [ 3 ] a ´ et´ e propos´ ee L’int´ erˆ et de ce mod` ele est la capacit´ e

de faire l’inf´ erence via un algorithme de message-pasing [ 4 ] L’estimation des param` etres est alors mise en oeuvre par la maximisation de la vraisemblance Toutefois, le code pour utiliser le CDN ainsi que l’algorithme de message-passing n’est pas disponible Cela peut freiner l’utilisateur dans la pratique C’est la raison pour laquelle nous nous proposons d’impl´ ementer cet algorithme dans mon stage.

Objectif de stage

L’objectif de mon stage est d’impl´ ementer l’inf´ erence de cette copule multivari´ ee et de

la rendre disponible sous la forme d’un paquet R [ 5 ] Ce paquet qui s’appelle CDN est disponible pour l’utilisation Je l’ai pr´ esent´ e dans une communication orale et un poster

en juin 2013 ` a Lyon lors des deuxi` emes rencontres R [ 6 ] Je pr´ evois de le soumettre sur le d´ epˆ ot des paquets R ( http://cran.r-project.org/ ) en d´ ecembre 2013 apr` es la publication de [ 3 ].

Environnement de stage

Mon stage est r´ ealis´ e au centre de recherche INRIA Grenoble Rhˆ one-Alpes dans le cadre du projet MISTIS sous la direction de Mazo Gildas Cette ´ equipe a pour domaine d’expertise la mod´ elisation de ph´ enom` enes al´ eatoires complexes en grande dimension

Trang 11

et les statistiques des valeurs extrˆ emes, avec pour orientations applicatives privil´ egi´ ees

le traitement d’images et de donn´ ees spatiales et dans les domaines biom´ edicaux et industriels Mon stage s’inscrit ` a l’interface des statistiques des valeurs extrˆ emes et de

la mod´ elisation statistique en grande dimension.

Plan de m´ emoire

Ce m´ emoire se compose des cinq chapitres suivants : – Chapitre 1 Introduction Dans ce chapitre, je vais pr´ esenter quelques notions statistiques n´ ecessaires telles que le mod` ele statistique, la copule, le Cumulative Dis- tribution Network, l’inf´ erence L’environnement de programmation, y compris R et C++, est aussi expliqu´ e.

– Chapitre 2 Algorithme de gradient-derivative-product Ce chapitre sert ` a d´ etailler un algorithme efficace qui permet de calculer la fonction de vraisemblance dans le Cumulative Distribution Network.

– Chapitre 3 Impl´ ementation Ce chapitre pr´ esente les composants importants du paquet CDN et comment ils sont install´ es dans R et C++.

– Chapitre 4 Exp´ erimentations Dans ce chapitre, je vais faire quelques exp´ erimentations pour d´ emontrer la pr´ ecision des r´ esultats obtenus par le paquet CDN, ainsi que ses avantages Les applications sur les donn´ ees simul´ ees et r´ eelles sont aussi montr´ ees.

– Chapitre 5 Conclusion et perspectives Dans la conclusion, je r´ esume les butions et les perspectives qui d´ ecoulent de mon paquet.

Trang 12

contri-Chapitre 1

Introduction

Ce chapitre sert ` a introduire quelques notions n´ ecessaires sur la statistique th´ eorique

et computationnelle Cela permet au lecteur de suivre facilement le rapport Dans la premi` ere partie, ce sont des concepts principaux concernant les mod` eles statistiques, les copules, le Cumulative distribution networks (CDN) [ 7 ], l’inf´ erence et l’optimisation Dans la deuxi` eme, R [ 5 ] est pr´ esent´ e comme un langage de programmation afin de d´ evelopper des outils efficaces pour le traitement des donn´ ees et l’analyse statistique.

1.1 Statistique th´ eorique

1.1.1 Mod` ele statistique

Un mod` ele statistique se compose de deux ingr´ edients : une variable al´ eatoire X et une fonction de r´ epartition F (x) Cette fonction est d´ efinie via la probabilit´ e d’un ´ ev´ enement associ´ e ` a X comme suit :

Trang 13

Dans le cas d’un vecteur al´ eatoires X = (X 1 , X 2 , , X k ), la fonction de r´ epartition multivari´ ee est donn´ ee par :

f (u 1 , , u i−1 , x i , u i+1 , u k )du 1 du i−1 du i+1 du k (1.7)

Dans le cas de plusieurs variables, par exemple X 1 et X 2 , la marge est donn´ ee par :

Soit X 1 , X 2 , , X n (ind´ ependantes et identiquement distribu´ ees) un ´ echantillon d’une population dont la densit´ e de probabilit´ e est f (.|θ) o` u θ est un vecteur de param` etres inconnus de la population L’objectif de l’estimation est de trouver la vraie valeur du param` etre θ ` a partir de cet ´ echantillon La m´ ethode du maximum de vraisemblance est

la plus efficace asymptotiquement [ 8 ] La vraisemblance est donn´ ee par :

Trang 14

Chapitre 1 Introduction 5

∇ θ (−L(θ)) L’algorithme s’arrˆ ete quand la valeur du gradient est suffisamment petite Bas´ ee sur l’id´ ee de la m´ ethode de Newton, les m´ ethodes Broyden-Fletcher-Goldfarb- Shanno (BFGS) et Limited-memory BFGS (L-BFGS) [ 9 ] ont ´ et´ e d´ evelopp´ ees L’avan- tage de ces m´ ethodes est leur impl´ ementation pratique C’est la raison pour laquelle je les ai utilis´ ees dans mon impl´ emetation.

Les copules [ 1 , 2 ] ont pour objectif de mod´ eliser la d´ ependance de plusieurs variables al´ eatoires On va commencer d’abord une d´ efinition de la marge d’une fonction de r´ epartition.

D´ efinition 1.1.3.1 Soit F une fonction de r´ epartition ` a n dimensions, x = (x 1 , , x n ) ∈

R n (n ≥ 2) Sa marge F i (1 ≤ i ≤ n) est obtenue quand x 1 , x 2 , , x i−1 , x i+1 , , x n

C k (u k ) = lim

u\u k →1 C(u 1 , , u n ) = u k ∀k = 1, , n (1.12)

Th´ eor` eme 1.1.3.1 (Sklar [ 1 ]) Soit H une fonction de r´ epartition dont les marges F

et G sont continues Il existe une unique copule C de sorte que ∀x, y ∈ R :

C θ (u, v) = uv(1 + θ(1 − u)(1 − v)), θ ∈ [−1, 1]; (1.15)

 , θ ∈ (0, +∞); (1.16)

C θ (u, v) = uv

1 − θ(1 − u)(1 − v) , θ ∈ [0, 1); (1.17)

C θ (u, v) = 1 − h (1 − u) θ + (1 − v) θ − (1 − u) θ (1 − v) θ i 1/θ , θ ∈ [1, +∞); (1.18)

Trang 15

C θ (u, v) =

Z u 0

Z v 0

1 p(1 − θ 2 ) exp

θ 2 q(x) 2 + θ 2 q(y) 2 − 2θq(x)q(y)

2θ 2 − 2

! dxdy, θ ∈ (−1, 1);

(1.19) o` u θ est un param` etre inconnu.

– (1.14) est la famille de copule de Gumbel.

– (1.15) est la famille de copule de Farlie-Gumbel-Morgenstern (FGM).

– (1.16) est la famille de copule de Frank.

– (1.17) est la famille de copule de Ali-Mikhail-Haq (AMH).

– (1.18) est la famille de copule de Joe.

– (1.19) est la famille de copule de Gauss (copule normale) q(x), q(y) sont des fonctions

Cumulative distribution network (CDN) est un mod` ele statistique propos´ e dans la th` ese

de Huang [ 7 ] Dans ce mod` ele, la fonction de r´ epartition s’´ ecrit comme un produit

de fonction de r´ epartition bivari´ ees On lui associe un graphe pour repr´ esenter les d´ ependances.

D´ efinition 1.4.1 Un graphe biparti G = (V, S, E) est construit ` a partir de trois sembles : deux ensembles de sommets V et S, un ensemble d’arˆ etes E Les arrˆ etes du graphe ont une extr´ emit´ e dans V et l’autre dans S.

en-D´ efinition 1.4.2 Un Cumulative distribution network (CDN) est un mod` ele statistique sous forme d’un graphe biparti G = (V, S, E), o` u V est un ensemble de noeuds de variable et S indique un ensemble de noeuds de fonction, E se compose des arˆ etes entre des noeuds de variable et de fonctions Chaque fonction est repr´ esent´ ee par φ s (x s ) :

R |N (s)| → [0, 1] o` u s ∈ S, N (s) = {s 1 , , s d } est l’ensemble de voisins de la fonction s

et x s = x N (s) = (x s1 , , x sd ) o` u d = |N (s)| est le nombre de voisins de s Toutes les fonctions φ s doivent satisfaire les propri´ et´ es caract´ eristiques des fonctions de r´ epartition.

La fonction de r´ epartition sur toutes les variables dans le CDN s’´ ecrit :

F (x) = Y

s∈S

Trang 16

Dans notre cas, nous consid´ erons un CDN avec les contraintes suivantes :

1 Le graphe ne contient aucun cycle Autrement dit, c’est un arbre de n variables et

n - 1 fonctions.

2 Les feuilles sont des noeuds de variables.

3 Chaque noeud de fonction n’est reli´ e qu’` a deux noeuds de variable En effet, les fonctions de r´ epartition φ s sont bivari´ ees Cela veut dire que φ s (x s ) = φ s (x α , x β ) o` u α, β sont les variables voisines de la fonction s : N (s) = {α, β}.

Exemple 1.4.1 Sur la figure 1.1, c’est un exemple d’un CDN ` a trois variables Les cercles montrent des noeuds de variable et les diamants indiquent les noeuds de fonction Alors, la fonction de r´ epartition sur trois variables X 1 , X 2 et X 3 dans le CDN est donn´ ee par :

F (x 1 , x 2 , x 3 ) = φ 1 (x 1 , x 2 )φ 2 (x 2 , x 3 ) (1.26)

Exemple 1.4.2 Sur la figure 1.2, c’est un exemple d’un CDN ` a sept variables La fonction de r´ epartition sur sept variables X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 dans le CDN

Trang 17

Consid´ erons φ s comme une fonction param´ etrique, on a : φ s = φ s (x α , x β ; θ s ) o` u θ s est

un param` etre inconnu, α, β sont les voisins de s Nous prenons la fonction φ s en fonction d’une copule :

Pour la simulation des donn´ ees de la fonction de r´ epartition C(x 1 , , x d |θ), on utilise

le lemme de Liebscher [ 11 ] :

Trang 18

Chapitre 1 Introduction 9

– Pour toutes les fonctions s ∈ S, il faut g´ en´ erer (U α (s) , U β (s) ) ∼ C s o` u α, β sont des variables de voisin de s.

– Il est n´ ecessaire de calculer U α = max s∈N (α) n (U α (s) ) n α o , α = 1, , d.

La fonction de r´ epartition du vecteur (U 1 , U 2 , , U d ) est C(x 1 , , x d |θ).

R [ 5 ] est un langage de programmation pour le d´ eveloppement des appilcations dans

le traitement des donn´ ees et l’analyse statistique Il est d´ evelopp´ e par GNU R est

de plus en plus important et connu grˆ ace ` a ses avantages Premi` erement, R est open source C’est libre ` a utiliser et ` a d´ evelopper Deuxi` emement, il permet de faire de la programmation de haut niveau orient´ e Troisi` emement, la programmation sous R est disponible sur plusieurs syst` emes d’op´ eration populaires comme Unix, Windows et Ma- cOS Quatri` emement, R est associ´ e ` a plusieurs langages de programmation tels que C/C++, Fortan En effet, il permet d’appeler directement le code dans C/C++, For- tan Derni` erement, R s’´ etend facilement via des paquets ´ ecrits par les d´ eveloppeurs En outre, il existe le d´ epˆ ot CRAN pourque les d´ eveloppeurs puissent d´ eposer leurs paquets.

Normalement, un paquet R se compose des parties suivantes [ 12 ] : – Un fichier Description qui d´ ecrit le paquet, l’auteur et la licence.

– Le r´ epertoire man/ contient les fichiers de la documentation.

– Le r´ epertoire R/ est le lieu pour d´ eposer le code source en R.

– Le r´ epertoire data/ fourni les donn´ ees disponibles dans le paquet.

– Le r´ epertoire src/ contient le code source en C/C++, Fortan.

– Le r´ epertoire tests/ se compose des fichiers R qui sert ` a v´ erifier les fonctions fournies par le paquet.

– Le r´ epertoire exec/ comprend les fichiers ex´ ecutables (en Java ou Perl).

– Le r´ epertoire demo/ montre quelques programmes d’exemples.

– Le r´ epertoire vignettes/ donne quelques exemples et renseignements pour l’utilisation

du paquet.

Trang 19

et la modification des objets de R en C++ Il peut aussi faciliter l’´ echange des donn´ ees entre R et C++ et la gestion des erreurs En outre, avec Rcpp, le code peut devenir plus propre et avec moins de bugs C’est la raison pour laquelle Rcpp est utilis´ e pour construire notre paquet.

Trang 20

Chapitre 2

Algorithme de gradient-derivative-product

Comme mentionn´ e dans la section 1.1.4, il faut calculer la densit´ e de probabilit´ e (1.23)

f (x) = ∂ x [F (x)] avec F (x) = Q

s∈S φ s (x s ) pour faire l’inf´ erence dans un CDN Toutefois, c’est difficile si le nombre de variables est tr` es grand L’algorithme de gradient-derivative- product (GDP) [ 4 ] qui a pour but de calculer la vraisemblance en tirant profit de la structure d’arbre d’un CDN nous permet de le faire L’id´ ee de cet algorithme est de s´ eparer la d´ erivation multiple en une chaˆıne des d´ eriv´ ees locales sous forme de messages.

En effet, on constate qu’une variable n’apparait que dans ses fonctions de voisin Au lieu

de d´ eriver la fonction de repartition par rapport ` a toutes les variables, il est n´ ecessaire de calculer les d´ eriv´ ees locales et les mettre sous forme des messages Grˆ ace ` a un processus

de propagation des messages, la fonction de vraisemblance est finalement obtenue :

f (x|θ) = ∂ x α

h Q

s∈N (α) µ s→α (x|θ) i o` u µ sont des fonctions de messages qu’on va d´ efinir dans la section apr` es, α est un noeud de variable arbitraire qu’on appelle la racine Le probl` eme est comment choisir la racine α et calculer les messages.

Cet algorithme GDP se compose des trois ´ etapes principales suivantes :

1 Initialisation de l’algorithme,

2 Propagation des messages, et ,

3 Calcul de la fonction de vraisemblance et son gradient.

2.1 Initialisation de l’algorithme

Les messages entre des noeuds de variable et de fonction sont repr´ esent´ es par les fonctions

µ s→α , µ α→s , λ s→α , λ α→s o` u s est un noeud de fonction et α est un noeud de variable s

Trang 21

et α sont deux noeuds adjacents : α ∈ N (s), s ∈ N (α) µ s→α et λ s→α sont les messages

`

a partir des noeuds de fonction s aux noeuds de variable α µ α→s et λ α→s sont les messages ` a partir des noeuds de variable α aux noeuds de fonction s D’abord, toutes les fonctions de message et leur gradient sont initialis´ es ` a z´ ero sauf µ α→s o` u α est une feuille du graphe :

La propagation des messages comprend deux processus de transmission : l’un ` a partir des variables aux fonctions et l’autre ` a partir des fonctions aux variables.

• Les messages ` a partir des noeuds int´ erieurs de variable α aux noeuds de fonction de voisin s ∈ N (α) Les fonctions de message sont mises ` a jour comme suit :

Trang 22

Chapitre 2 Algorithme de gradient-derivative-product 13

• Messages ` a partir des noeuds de fonction s aux noeuds de variable de voisin α ∈ N (s) Les fonctions de message sont mises ` a jour comme suit :

La valeur de ces fonctions est fix´ ee et ne change pas dans les it´ erations suivantes Dans

la deuxi` eme it´ eration, les messages entrant et sortant aux variables ` a la hauteur de 2 sont mis ` a jour et fix´ es Semblablement, ` a la k -i` eme it´ eration, les messages entrant et sortant aux variables ` a la hauteur de k sont calcul´ es Quand les fonctions de message entrant la racine sont calcul´ ees et fix´ ees, l’algorithme s’arrˆ ete alors.

2.3 Calcul de la fonction de vraisemblance et son gradient

Enfin, il faut calculer la d´ eriv´ ee f (x|θ) = ∂ x α h Q

s∈N (α) µ s→α (x|θ) i et son gradient

∇ θ f (x|θ) par rapport ` a θ via des messages entrant ` a la racine choisie La tion des messages permet de calculer de mani` ere r´ ecursive les messages ` a partir des feuilles ` a la racine f (x|θ) et ∇ θ f (x|θ) sont calcul´ es via tous les messages entrant ` a la racine Leurs formules sont donn´ ees ci-apr` es :

Pour trouver la racine α, on va tout d’abord d´ efinir quelques notions et des propri´ et´ es

de l’arbre qui sont d´ etaill´ ees dans [ 14 , 15 ] Soit G un arbre :

Trang 23

• Si G a n arˆ etes, le nombre de sommets de G est alors n + 1.

• La distance entre deux noeuds de G est le nombre des arˆ etes dans le plus court chemin entre eux.

• L’excentricit´ e d’un sommet est sa distance maximale ` a tous les autres sommets de G.

• Le centre de G est un sommet dont l’excentricit´ e est minimale En outre, le centre du graphe n’est pas unique En effet, il existe un ensemble des centres.

• Les centres du graphe se trouvent au milieu du plus long chemin de G L’excentricit´ e

de centre est donc ´ egale ` a la moiti´ e de la longueur du plus long chemin.

On remarque que la d´ eriv´ ee f (x|θ) = ∂ x [F (x|θ)] et son gradient ∇ θ f (x|θ) ne d´ ependent pas de la racine choisie Les r´ esultats ne changent pas si on choisit autre racine Cepen- dant, le choix de la racine permet de d´ eterminer le nombre d’it´ erations de l’algorithme.

En effet, en observant la propagation des messages, on trouve qu’il s’agit de n it´ erations pour obtenir tous les messages entrant ` a la racine o` u n est l’excentricit´ e de la racine.

C’est la raison pour laquelle on choisit un centre du graphe de variables comme la racine puisque l’excentricit´ e du centre est minimale Le nombre d’it´ erations de l’algorithme est alors d´ efini comme l’excentricit´ e du centre Il faut donc trouver un plus long chemin du graphe des variables Le noeud au milieu de ce chemin est choisi comme la racine du graphe CDN.

Exemple 2.3.1 Sur la figure 2.1, c’est un arbre de cinq variables et le graphe CDN correspondant.

• La distance entre le sommet X1 et X4 est 3 puisque le plus court chemin entre ces deux sommets est X1 - X2 - X3 - X4.

• Les distances entre le sommet X3 et les autres {X1, X2, X4, X5} sont {2, 1, 1, 1} L’excentricit´ e de X3 est alors 2.

• Les excentricit´ es des sommets {X1, X2, X3, X4, X5} sont {3, 2, 2, 3, 3} Le centre du graphe de variables est donc {X2, X3}.

• Dans le graphe de variable, il y a deux plus longs chemins : X1 - X2 - X3 - X4 et X1

- X2 - X3 - X5 Deux centres {X2, X3} se trouvent au milieu des plus longs chemins.

• La racine du graphe CDN est un des deux centres {X2, X3}.

Exemple 2.3.2 La figure 2.2 affiche la propagation des messages dans le CDN Le graphe CDN se compose de 6 variables (X1,X2,X3,X4,X5,X6) et 5 fonctions (Φ1, Φ2, Φ3, Φ4, Φ5).

Le plus long chemin est (X1 - X2 - X3 - X5 - X6) La racine du graphe de variables est alors le sommet X 3 Le nombre d’it´ eration est 2 L’algorithme de message-passing est d´ etaill´ e comme suit :

• ` A l’´ etape d’initialisation, les messages sortant des feuilles sont initialis´ es Ce sont des messages variables-fonctions X1 − Φ1, X4 − Φ3, X6 − Φ5

Trang 24

Chapitre 2 Algorithme de gradient-derivative-product 15

Figure 2.1: Exemple d’un arbre de 5 variablese.

• Dans la premi` ere it´ eration, les messages entrant et sortant pour X2, X3 et X5 sont calcul´ es Pour la variable X2, c’est Φ1 − X2, puis X2 − Φ2 Pour la variable X3, c’est Φ3 − X3 Pour la variable X5, c’est Φ5 − X5, puis X5 − Φ4.

• ` A la deuxi` eme it´ eration, les messages entrant ` a la variable X3 sont calcul´ es Ce sont des messages fonctions-variables Φ4 − X3 et Φ2 − X3 On note que la figure 2.2 montre seulement les messages n´ ecessaires pour le calcul f (x|θ) et ∇ θ f (x|θ) Ce sont des messages tendant vers la racine X3 Pour les autres, on n’affiche pas Par exemple, dans la deuxi` eme it´ eration, les messages X3 − Φ2, X3 − Φ3, X3 − Φ4 sont aussi calcul´ es Toutefois, ils ne servent pas ` a calculer f (x|θ) et ∇ θ f (x|θ).

• Enfin, f (x|θ) et ∇ θ f (x|θ) sont calcul´ es ` a partir des messages entrant ` a la racine X3 Par exemple,

Trang 25

Figure 2.2: Propagation des messages dans le CDN.

Trang 26

Chapitre 3

Apr` es avoir fait le point sur les connaissances importantes concernant le CDN (1.22), on

va se concentrer sur ce que j’ai fait dans mes travaux C’est d’impl´ ementer l’inf´ erence de

la copule associ´ ee ` a un CDN pr´ esent´ ee dans l’´ equation (1.29) et de le rendre disponible sous forme d’un paquet R En d´ etail, je vais montrer ce qui est install´ e dans ce paquet

et comment ¸ ca fonctionne En outre, quelques astuces servant ` a acc´ el´ erer la vitesse des fonctions du paquet sont pr´ esent´ ees.

Dans cette section, je vais montrer des composants principaux du paquet CDN qui sont affich´ es sur la figure 3.1 Le code source et la documentation sont deux parties indispensables dans chaque paquet R Les tests et le tutoriel ne sont pas n´ ecessaires mais appr´ eci´ es.

Figure 3.1: Composants principaux du paquet CDN.

Trang 27

3.1.1 Code source

Dans le paquet CDN, le code source se s´ epare en deux types : code R et code C++ (Figure 3.2) D’une part, le code C++ est mis dans le r´ epertoire /src Il fournit quelques fonctions importantes pour impl´ ementer l’algorithme de message-passing (CDN.cpp, Compute.cpp, Derivatives.cpp, Gradient.cpp, miwa.cpp) et l’inf´ erence dans le CDN (Op- tim.cpp, lbfgsb.cpp) Les fichiers de R se trouvent dans le r´ epertoire /R Ils ont pour objectif de cr´ eer l’objet CDN qui est pr´ ecis´ e dans la section 3.2.1 (CDN.R, cdnMo- dels.R), d’appeler des fonctions C++ (cdnOptim.R, mpAlgo.R), de g´ en´ erer des donn´ ees al´ eatoires (rCdn.R) Le d´ etail des fonctions du paquet est montr´ e dans la section 3.2.

Figure 3.2: Code source du paquet CDN.

La documentation du paquet (Figure 3.3) est mise dans deux r´ epertoire : /man et gnettes Les fichiers dans /man d´ ecrivent le paquet (CDN-package.Rd ) et les donn´ ees disponibles (JapanSeaLevel.Rd ) Ils expliquent aussi comment cr´ eer l’objet CDN (CDN- class.Rd, cdnModels.Rd ), utiliser l’algorithme de message-passing (mpAlgo.Rd ), faire l’inf´ erence (cdnOptim.Rd ), g´ en´ erer des donn´ ees al´ eatoires (CDN.Rd ) En outre, les vi- gnettes donnent quelques renseignements et exemples pour construire un mod` ele CDN

/vi-et l’utiliser pour r´ esoudre des probl` emes statistiques Les fichiers de test et de tutoriel sont montr´ es sur la figure 3.4.

Trang 28

Chapitre 3 Impl´ ementation 19

Figure 3.3: Documentation du paquet.

Le r´ epertoire /tests contient des fichiers qui testent quelques sc´ enarios diff´ erents afin d’assurer que toutes les fonctions du paquet marchent bien et donnent des r´ esultats corrects En effet, on va v´ erifier la justesse d’impl´ ementation de l’algorithme message- passing (precision.R, testingFunctions.R), la simulation des donn´ ees al´ eatoires (simula- tion.R) et l’inf´ erence dans le CDN (optim.R) De plus, il reste un fichier de description qui pr´ esente g´ en´ eralement le paquet CDN et les paquets de d´ ependance tels que Rcpp (l’interface R/C++), igraph et methodes (pour cr´ eer l’objet CDN), copula (pour simuler des donn´ ees), numDeriv (pour les tests).

Dans cette section, je vais montrer les fonctions fournies par le paquet CDN La figure 3.5 d´ ecrit le fonctionnement g´ en´ eral des fonctions importantes du paquet et les lieux o` u elles sont install´ ees Le paquet se compose alors des trois ´ etapes principales suivantes :

• Premi`erement, c’est l’entr´ee des donn´ees utilis´ees pour les fonctions du paquet Le graphe cr´ e´ e par le paquet igraph montre la relation entre les variables Les donn´ ees

se composent des vecteurs d’observation et d’un vecteur de param` etres La copule C s

dans (1.28) est choisie par l’utilisateur Tout est r´ ealis´ e dans le code R.

Trang 29

• Deuxi`emement, c’est l’appel des fonctions fournies par le paquet CDN qui sont impl´ ement´ ees dans le code R ou C++.

– cdn sert ` a cr´ eer un objet CDN et a besoin d’un graphe et d’un mod` ele param´ etrique – cdnPlot permet de visualiser l’objet CDN en repr´ esentant le graphe.

– rCdn (Annexe C.1) g´ en` ere al´ eatoirement des observations et pCdn (Annexe C.2) calcule la fonction de r´ epartition.

– mpAlgo (Annexe A) impl´ emente l’algorithme de message-passing product Son entr´ ee est un objet CDN et un vecteur de variables Sa sortie est la densit´ e de cette observation et la gradient par rapport au vecteur des param` etres – cdnOptim (Annexe B) utilise mpAlgo afin de construire la fonction de vraisemblance

gradient-derivative-et son gradient Ensuite, une m´ ethode d’optimisation est choisie pour trouver la valeur du param` etre qui maximise la fonction de vraisemblance.

– dCdn (Annexe C.3) a pour objectif de calculer la densit´ e de plusieurs observations d’entr´ ee via mpAlgo.

• Derni` erement, les r´ esultats sont affich´ es dans R La transmission des donn´ ees et des fonctions entre C++ et R est r´ ealis´ ee par l’interface Rcpp [ 13 ].

Dans les parties suivantes, je vais d´ etailler l’impl´ ementation des fonctions du paquet.

Figure 3.5: Diagramme des fonctions du paquet.

Pour cr´ eer un objet CDN, il s’agit de choisir un graphe des variables et d’une famille de copules C s (1.28) Ces donn´ ees d’entr´ ees sont trait´ ees avant d’assigner les valeurs aux composants de l’objet (Figure 3.6).

Trang 30

Chapitre 3 Impl´ ementation 21

Pour le mod` ele, on peut choisir une des six familles existantes dans le paquet Ce sont des copules populaires qui sont mentionn´ ees dans la section 1.1.3 : Gumbel (”gumbel”), Farlie-Gumbel-Morgenstern (”fgm”), Frank (”frank”), Gauss (”normal”), Ali-Mikhail- Haq (”amh”), Joe (”joe”) Un exemple pour cr´ eer un objet CDN ` a partir d’un graphe des variables et d’un mod` ele choisi est montr´ e ci-apr` es.

Pour obtenir la matrice binaire ` a partir du graphe dans ce cas, il s’agit de cr´ eer une matrice avec six colonnes et sept lignes Chaque colonne correspond ` a une fonction et chaque ligne correspond ` a une variable Si une variable i et une fonction s sont adjacentes,

la valeur de l’´ el´ ement (i,s) est mise ` a 1 ; sinon ` a z´ ero Sur le tableau 3.1, nous affichons

la matrice binaire extraite ` a partir du graphe CDN de la figure 3.7.

Concernant la cr´ eation d’un graphe avec le paquet igraph, la fa¸ con la plus simple et tique pour l’utilisateur est d’utiliser la commande graph.formula Cependant, il apparait

pra-un probl` eme ` a r´ esoudre C’est que cette commande fait par d´ efaut simplifier le graphe d’entr´ ee Par exemple, on cr´ ee un graphe avec la commande :

1 g < - g r a p h f o r m u l a ( X3 - X4 , X1 - X2 , X2 - X3 )

Ngày đăng: 01/01/2024, 18:28

🧩 Sản phẩm bạn có thể quan tâm