Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR CONFIGURING THE NEURAL NETWORKS OF A SET OF NODES OF A COMMUNICATION NETWORK
Document Type and Number:
WIPO Patent Application WO/2023/031544
Kind Code:
A1
Abstract:
Said method makes it possible to configure the weights of neural network models of nodes from a set of nodes of a communication network, the neural networks all having a model with the same structure. It comprises: - partitioning the set of nodes into at least one cluster of nodes; - sending, to a node belonging to the at least one cluster, an item of information according to which the node should act as an aggregation node in the cluster and identifiers of the nodes of the cluster, the node subsequently being referred to as the aggregation node of the cluster; - sending, to the aggregation node of the at least one cluster, a request for learning the weights of the node models of the cluster with the weights of a global model for the set of nodes; - a step of receiving, from the aggregation node of the at least one cluster, the weights of an aggregated model of the cluster resulting from the training; and - updating the weights of the global model by aggregating the weights received from the aggregated model of the at least one cluster.

Inventors:
MIRALLES HUGO (FR)
TOSIC TAMARA (FR)
Application Number:
PCT/FR2022/051617
Publication Date:
March 09, 2023
Filing Date:
August 29, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
G06N3/08; G06N5/00
Other References:
ABAD M S H ET AL: "Hierarchical Federated Learning ACROSS Heterogeneous Cellular Networks", ICASSP 2020 - 2020 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING (ICASSP), IEEE, 4 May 2020 (2020-05-04), pages 8866 - 8870, XP033794287, DOI: 10.1109/ICASSP40776.2020.9054634
BRIGGS CHRISTOPHER ET AL: "Federated learning with hierarchical clustering of local updates to improve training on non-IID data", 2020 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), IEEE, 19 July 2020 (2020-07-19), pages 1 - 9, XP033831791, DOI: 10.1109/IJCNN48605.2020.9207469
MIRALLES HUGO ET AL: "Communication-efficient Federated Learning through Clustering optimization", 17 December 2021 (2021-12-17), XP055913393, Retrieved from the Internet
H. BRENDAN MCMAHANE. MOORED. RAMAGES. HAMPSONB. AGÜERAARCAS: "Communication-efficient learning of deep networks from decentralized data", PROCEEDINGS OF THE 20TH INTERNATIONAL CONFÉRENCE ON ARTIFICIAL INTELLIGENCE AND STATISTICS, vol. 54, 2017
V. SMITHC. K. CHIANGM. SANJABIA. TALWALKAR: "Federated multi-task learning", ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEMS, vol. 2017, no. Nips, 2017, pages 4425 - 4435
D. YINY. CHENK. RAMCHANDRANP. BARTLETT: "Byzantine-robust distributed learning: Towards optimal statistical rates", 35TH INTERNATIONAL CONFÉRENCE ON MACHINE LEARNING, vol. 13, 2018, pages 8947 - 8956
T. HASTIER. TIBSHIRANIJ. FRIEDMA: "The Elements of Statistical Learning", 2008, SPRINGER
Y. LECUNC. CORTES, MNIST HANDWRITTEN DIGIT DATABASE, 2010
Download PDF:
Claims:
REVENDICATIONS

[Revendication 1] Procédé de configuration de poids (0,) de modèles de réseaux de neurones (RN) de même structure, de nœuds (Ni) d'un ensemble de nœuds d'un réseau de communication, ledit procédé comportant un apprentissage fédéré desdits poids dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, le procédé comportant:

- au moins une partition (E10, E75) de l'ensemble des nœuds (Ni) en au moins un cluster (Cj) de nœuds ;

- une désignation d'au moins un premier nœud (Aj) dudit cluster (Cj) pour un rôle de nœud d'agrégation gérant un modèle agrégé dudit au moins un cluster (Cj) de nœuds pour ledit apprentissage fédéré, ladite désignation comprenant :

• un envoi (E15, F15) aux nœuds (Ni) dudit cluster (Cj), d'une information désignant ledit premier nœud (Aj) comme nœud d'agrégation ;

• un envoi (E15, F15) au premier nœud (Aj) des identifiants des nœuds (Ni) dudit cluster (Cj) . [Revendication 2] Procédé de configuration selon la revendication 1 dans lequel ladite désignation est temporaire, le procédé comprenant une autre désignation pour au moins une autre partition dudit ensemble de nœuds .

[Revendication 3] Procédé de configuration de poids (0,) de modèles de réseaux de neurones (RN) selon la revendication 1 ou 2 où le procédé comprend lors dudit apprentissage fédéré

- un envoi (E20, F20), au nœud d'agrégation (Aj) dudit au moins un cluster (Cj), d'une demande d'apprentissage des poids (0,) des modèles des nœuds (Ni) dudit cluster (Cj) avec les poids (0°, 0‘) d'un modèle global à l'ensemble des nœuds;

- une réception (E50, F50), en provenance du nœud d'agrégation (Aj) dudit au moins un cluster (Cj), des poids (0| ) dudit modèle agrégé dudit cluster (Cj) résultant dudit apprentissage; et

- une mise à jour (E55, F75) des poids (0‘) du modèle global par agrégation des poids reçus (0®) du modèle agrégé dudit au moins un cluster (Cj).

[Revendication 4] Procédé de configuration selon l'une au moins des revendications 1 à 3 caractérisé en ce qu'il comporte une partition (E10) de l'ensemble des nœuds (N,) en au moins un cluster (Cj) en tenant compte d'un coût de communication entre les nœuds (Ni, Nk) au sein dudit au moins un cluster.

[Revendication 5] Procédé de configuration selon l'une au moins des revendications 1 à 4, caractérisé en ce qu'il comporte une partition (E75) de l'ensemble des nœuds (N,) pour réorganiser lesdits clusters (Q) en au moins un cluster, lesdits clusters réorganisés (Cj) étant constitués selon une fonction (o( *) prenant en compte un coût de communication entre les nœuds (N,, Nk) au sein d'un cluster réorganisé (Q) et une similarité (ai,k) d'une évolution des poids des modèles (A0®, A0®) des nœuds (N,, Nk) au sein d'un cluster réorganisé (Q).

[Revendication 6] Procédé de configuration selon la revendication 5 caractérisé en ce que ladite similarité (ai,k) est déterminée en :

- demandant auxdits nœuds (N,, Nk) de remplacer (E65) les poids de leur modèle par les poids (0‘) du modèle global mis à jour ;

- demandant auxdits nœuds (N,, Nk) de mettre à jour leur modèle en l'entraînant avec leur jeu de données locales (dSi, dSk) ; et en

- déterminant une similarité des évolutions (AS®, AS®) des poids des modèles des différents nœuds.

[Revendication 7] Procédé de configuration selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comporte :

- une réception (F60), en provenance du nœud d'agrégation (Aj) d'un premier cluster (Q), d'un identifiant d'un nœud isolé (NI,) dudit premier cluster (Q) ; et

- une réaffectation (F95) dudit nœud isolé (NI,) à un autre cluster (Ck), en tenant compte d'une proximité entre :

- une direction de l'évolution des poids dudit nœud isolé (NI,) lorsque celui-ci est entraîné par des données locales au nœud isolé (NI,) ; et

-une direction de l'évolution des poids du modèle agrégé dudit autre cluster (Ck), par rapport à un même modèle de référence (ê71).

[Revendication 8] Procédé d’apprentissage mis en œuvre par un nœud d’un ensemble de nœuds comportant des réseaux de neurones ayant un modèle de même structure, d’un réseau de communication, ledit procédé comportant , avant un apprentissage fédéré des poids desdits modèles des réseaux de neurones des nœuds dudit ensemble, dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dit d'agrégation dudit réseau: :

- une réception (E15, F15), en provenance d’une entité dudit réseau de communication, d'une information désignant un premier nœud (Aj) dudit ensemble comme nœud d’agrégation gérant un modèle agrégé pour ledit apprentissage fédéré et , lorsque ledit nœud est ledit premier nœud (Aj), des identifiants des nœuds (Ni) d'un cluster (Cj) dont ledit nœud d'agrégation gère ledit modèle abrégé.

[Revendication 9] Procédé d’apprentissage selon la revendication 8 où le procédé comprend, lorsque ledit nœud est ledit nœud d’agrégation (Ai);

- une réception (E15, F15), en provenance de ladite entité dudit réseau de communication des poids (0°, B1) d’un modèle ayant ladite structure;

- sur réception d’une demande d’apprentissage des poids d’un modèle agrégé dudit cluster à partir desdits poids (0°, B1) reçus:

• une initialisation (E20, F20) (E25, E30) des poids (0,) du modèle agrégé dudit cluster (Cj) et des poids (0;) des modèles des nœuds (Ni) dudit cluster (Cj) avec lesdits poids (0°, B1) reçus;

• au moins une mise à jour (E45) des poids (0^) du modèle agrégé dudit cluster (Cj), par agrégation des poids des modèles des nœuds (Ni) dudit cluster (Cj) entraînés (E35) avec des jeux de données (dsi) locales à ces nœuds (Ni), les poids (0®) des modèles des nœuds (Ni) dudit cluster étant remplacés (E30) par les poids mis à jour (0^) du modèle agrégé dudit cluster (Cj) après chaque mise à jour ;

- un envoi (E50, F50) à ladite entité dudit réseau des poids (0^) du modèle agrégé dudit cluster (Cj) mis à jour.

[Revendication 10] Procédé d'apprentissage selon la revendication 9, caractérisé en ce que le procédé comprend, lorsque ledit nœud est ledit nœud d’agrégation (Ai); déterminer (F45) si ledit cluster (Q) doit être restructuré en prenant en compte une évolution des poids (AS®) dudit cluster et/ou une évolution (AS®) des poids des nœuds (N,) dudit cluster. [Revendication 11] Procédé d'apprentissage selon l'une quelconque des revendications 8 à 10, caractérisé en ce qu'il comporte, lorsque ledit nœud est ledit nœud d’agrégation (Ai); s'il est déterminé (F45) que ledit cluster (Q) doit être restructuré, une restructuration (F60) dudit cluster (Q) en regroupant au moins une partie des nœuds (N,) dudit cluster (Q) en au moins un sous-cluster (SQ), lesdits sous-clusters (SQ) étant constitués selon une fonction d,r k) prenant en compte un coût de communication entre les nœuds (N,, Nk) au sein d'un dit sous-cluster (SQ) et une similarité (ai,k) d'une évolution des poids des modèles (A0;(t), A0fc(t)) des nœuds (N,, Nk) au sein d'un dit sous-cluster (Q).

[Revendication 12] Procédé d'apprentissage selon la revendication 11, caractérisé en ce que ladite restructuration (F60) dudit cluster (Q) comporte l'envoi (F60), à ladite entité dudit réseau de communication, de l'identifiant d'un nœud isolé (NI,) dudit cluster (Q).

[Revendication 13] Procédé d'apprentissage selon l'une quelconque des revendications _8 à 12 comportant, lorsque ledit nœud n'est pas ledit nœud d'agrégation (Ai):

- une réception (E30, F30), en provenance dudit nœud d'agrégation (A), des poids (0°, 0t) d'un modèle ayant ladite structure pour initialiser les poids (0;) du modèle du nœud;

- une transmission (E35) audit nœud d'agrégation(A) des poids du modèle du nœud entraîné (E35) avec un jeu de données (ds,) locales audit nœud.

[Revendication 14] Procédé d'apprentissage selon l'une quelconque des revendications 8 à 13, ledit procédé étant mis en œuvre par un nœud appartenant à un premier cluster, caractérisé en ce que ladite entité dudit réseau de communication est :

- une entité de coordination du réseau ;

- un nœud dudit ensemble de nœuds jouant un rôle de nœud d'agrégation gérant un modèle agrégé d'un deuxième cluster de niveau inférieur au niveau dudit premier cluster.

[Revendication 15] Entité de coordination (Ao) apte à configurer des poids (0,) de modèles de réseaux de neurones (RN), de même structure, de nœuds (N,) d'un ensemble de nœuds d'un réseau de communication, par un apprentissage fédéré desdits poids dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, ladite entité de coordination (Ao) comprenant au moins un processeur apte à :

- au moins une partition (E10, E75) de l'ensemble des nœuds (N,) en au moins un cluster (Q) de nœuds ;

- une désignation d'au moins un premier nœud (Ai) dudit cluster (Cj) pour un rôle de nœud d'agrégation gérant un modèle agrégé dudit au moins un cluster (Cj) de nœuds pour ledit apprentissage fédéré, ladite désignation comprenant :

• un envoi (E15, F15) aux nœuds (Ni) dudit cluster (Cj), d'une information désignant ledit premier nœud (Aj)comme nœud d'agrégation ;

• un envoi (E15, F15) au premier nœud (Aj) des identifiants des nœuds (Ni) dudit cluster (Cj) . [Revendication 16] Entité de coordination (Ao) selon la revendication 15 comprenant :

- un module (COM) d'envoi (E20, F20), audit nœud d'agrégation (Aj) dudit au moins un cluster (Q), d'une demande d'apprentissage des poids (0;) des modèles des nœuds (N,) dudit cluster (Q) avec les poids (0°, et) d'un modèle global à l'ensemble des nœuds;

- un module (COM) de réception (E50, F50), en provenance du nœud d'agrégation (Aj) dudit au moins un cluster (Q), des poids (0/) d'un modèle agrégé dudit cluster (Q) résultant dudit apprentissage ; et - un module (MAJ) de mise à jour (E55, F75) des poids (0 É) du modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster (Q).

[Revendication 17] Nœud appartenant à un ensemble de nœuds comportant des réseaux de neurones ayant un modèle de même structure, d’un réseau de communication, ledit nœud (Ai) comportant au moins un processeur apte à:

- une réception (E15, F15), en provenance d’une entité dudit réseau de communication, avant un apprentissage fédéré des poids desdits modèles des réseaux de neurones des nœuds dudit ensemble, dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, d’une information désignant un premier nœud (Aj) dudit ensemble comme nœud d’agrégation gérant un modèle agrégé pour ledit apprentissage fédéré et , lorsque ledit nœud est ledit premier nœud (Aj), des identifiants des nœuds (Ni) dudit cluster (Cj) d'un cluster (Cj) dont ledit nœud d'agrégation gère ledit modèle agrégé.

[Revendication 18] Nœud selon la revendication 17 comprenant

- un module (COM2) de réception, en provenance de ladite entité dudit réseau de communication, des poids (0°, 0t) d'un modèle ayant ladite structure, lorsque ledit nœud est ledit nœud d'agrégation (Ai);

- un module (COM2) de réception d'une demande d'apprentissage des poids d'un modèle agrégé dudit cluster à partir desdits poids (0°, 0‘) reçus, lorsque ledit nœud est ledit nœud d'agrégation (Ai);

- un module d'initialisation (MIN) configuré, en cas de réception de ladite demande d'apprentissage, pour initialiser (E20, F20) (E25, E30) les poids (0,) du modèle agrégé dudit cluster (Q) et les poids (0;) des modèles des nœuds (N,) dudit cluster (Q) avec les poids (0°, et) reçus, lorsque ledit nœud est ledit nœud d'agrégation (Ai);

- un module (MAJ) de mise à jour (E45) des poids (0^) du modèle agrégé dudit cluster (Cj), par agrégation des poids des modèles des nœuds (N,) dudit cluster (Q) entraînés (E35) avec des jeux de données (ds,) locales à ces nœuds (N,), les poids (0;(t)) des modèles des nœuds (N,) dudit cluster étant remplacés (E30) par les poids mis à jour (0®) du modèle agrégé dudit cluster (Q) après chaque mise à jour , , lorsque ledit nœud est ledit nœud d'agrégation (Ai);et

- un module (COM2) d'envoi (E50, F50) à ladite entité du réseau des poids (0®) du modèle agrégé dudit cluster (Cj) mis à jour, , lorsque ledit nœud est ledit nœud d'agrégation (Ai).

Description:
Procédé et système de configuration de réseaux de neurones d'un ensemble de nœuds d'un réseau de communication

Domaine de l'invention

L'invention concerne les réseaux de télécommunication. Elle se rapporte à un apprentissage de réseaux de neurones mis en œuvre par des dispositifs connectés à un réseau de communication.

Technique antérieure

L'invention se situe plus précisément dans le contexte d'un apprentissage fédéré (en anglais federated learning) dans lequel des dispositifs entraînent localement des modèles de réseaux de neurones de même structure et partagent les apprentissages réalisés sur leurs dispositifs avec les autres dispositifs.

L'apprentissage fédéré s'oppose à l'apprentissage centralisé où l'apprentissage se fait de façon centralisée par exemple sur les serveurs d'un fournisseur de service.

Pour plus de renseignements sur l'apprentissage fédéré, l'homme du métier pourra se reporter au document « Brendan McMahan, E. Moore, D. Ramage, S. Hampson, and B. Agüera y Areas, "Communication- efficient learning of deep networks from decentralized data," Proceedings of the 20th International Conference on Artificial Intelligence and Statistics, AISTATS 2017, vol. 54, 2017 ».

L'apprentissage fédéré peut par exemple être privilégié par rapport à l'apprentissage centralisé lorsqu'il est difficile d'envisager un modèle centralisé global adapté à tous les dispositifs.

L'utilisation d'un apprentissage fédéré peut aussi être avantageuse lorsque les dispositifs sont susceptibles d'entraîner leurs modèles par des données dont la distribution est susceptible de dépendre, au moins dans une certaine mesure, de ces dispositifs.

Au cours des dernières années, l’approche de l'apprentissage fédéré a suscité beaucoup d'intérêt dans de nombreux domaines, tels que la santé, la banque, l'industrie 4.0 ou les villes intelligentes, car elle peut aider à construire de meilleurs modèles globaux, tout en préservant la confidentialité des dossiers locaux (médicaux, financiers, etc.). Elle peut apporter une solution naturelle aux besoins croissants de protection des données personnelles, tout en répondant aux défis technologiques actuels: diminution de la consommation d'énergie, minimisation de la latence, deux défis avec le déploiement de la technologie 5G. Comme exposé plus haut, l'apprentissage fédéré est ainsi une forme d'apprentissage distribué où plusieurs nœuds résolvent en collaboration une tâche d'apprentissage automatique.

Pour certaines applications, les données recueillies par les utilisateurs dans des contextes réels ont souvent des distributions non « indépendantes et identiquement distribuées » (IID) (à l'inverse des variables aléatoires suivant la même loi de probabilité), ce qui peut avoir un impact important sur la convergence des modèles, lors d'un apprentissage fédéré, notamment lorsqu'un seul modèle conjoint peut ne pas correspondre à l’objectif de chaque nœud.

Objet et résumé de l'invention

Selon un premier aspect, l'invention concerne un procédé de configuration de modèles de réseaux de neurones de nœuds d'un ensemble de nœuds d'un réseau de communication, les réseaux de neurones desdits nœuds ayant tous la même structure.

Notamment, l'invention concerne un procédé de configuration de poids de modèles de réseaux de neurones (RN) de même structure, de nœuds d'un ensemble de nœuds d'un réseau de communication, ledit procédé comportant un apprentissage fédéré desdits poids dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, le procédé comportant:

- au moins une partition de l'ensemble des nœuds en au moins un cluster de nœuds ;

- une désignation d'au moins un premier nœud dudit cluster pour un rôle de nœud d'agrégation gérant un modèle agrégé dudit au moins un cluster de nœuds pour ledit apprentissage fédéré, ladite désignation comprenant :

• un envoi aux nœuds dudit cluster d'une information désignant ledit premier nœud comme nœud d'agrégation ;

• un envoi au premier nœud des identifiants des nœuds dudit cluster.

Dans au moins un mode de réalisation, ladite désignation est temporaire, le procédé comprenant au moins une autre désignation pour au moins une autre partition dudit ensemble de nœuds .

Dans au moins un mode de réalisation, le procédé de configuration comprend, lors dudit apprentissage fédéré :

- un envoi, au nœud d'agrégation dudit au moins un cluster, d'une demande d'apprentissage des poids des modèles des nœuds dudit cluster avec les poids d'un modèle global à l'ensemble des nœuds;

- une réception, en provenance du nœud d'agrégation dudit au moins un cluster, des poids dudit modèle agrégé dudit cluster résultant dudit apprentissage; et

- une mise à jour des poids du modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster.

Dans au moins un mode de réalisation, le procédé de configuration comporte une partition de l'ensemble des nœuds en au moins un cluster en tenant compte d'un coût de communication entre les nœuds au sein dudit au moins un cluster.

Dans au moins un mode de réalisation, le procédé de configuration comporte une partition de l'ensemble des nœuds pour réorganiser lesdits clusters en au moins un cluster, lesdits clusters réorganisés étant constitués selon une fonction prenant en compte un coût de communication entre les nœuds au sein d'un cluster réorganisé et une similarité d'une évolution des poids des modèles des nœuds au sein d'un cluster réorganisé.

Dans au moins un mode de réalisation, ladite similarité est déterminée en :

- demandant auxdits nœuds de remplacer les poids de leur modèle par les poids du modèle global mis à jour ;

- demandant auxdits nœuds de mettre à jour leur modèle en l'entraînant avec leur jeu de données locales; et

- déterminant une similarité des évolutions des poids des modèles des différents nœuds.

Dans au moins un mode de réalisation, le procédé de configuration comporte

- une réception, en provenance du nœud d'agrégation d'un premier cluster, d'un identifiant d'un nœud isolé dudit premier cluster ; et

- une réaffectation dudit nœud isolé à un autre cluster, en tenant compte d'une proximité entre :

• une direction de l'évolution des poids dudit nœud isolé lorsque celui-ci est entraîné par des données locales au nœud isolé; et

• une direction de l'évolution des poids du modèle agrégé dudit autre cluster, par rapport à un même modèle de référence.

Dans au moins un mode de réalisation, le procédé de configuration comporte :

- au moins une partition de l'ensemble des nœuds en au moins un cluster (ou groupe) de nœuds ;

- un envoi, à un nœud appartenant audit au moins un cluster, d'une information selon laquelle ce nœud doit jouer un rôle d'un nœud d'agrégation dans ce cluster et des identifiants des nœuds de ce cluster, ledit nœud étant alors qualifié de nœud d'agrégation du cluster ;

- un envoi, au nœud d'agrégation dudit au moins cluster, d'une demande d'apprentissage des poids des modèles des nœuds dudit cluster avec les poids d'un modèle global à l'ensemble des nœuds;

- une réception, en provenance du nœud d'agrégation dudit au moins un cluster, des poids d'un modèle agrégé dudit cluster résultant de cet apprentissage; et

- une mise à jour des poids du modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster.

Corrélativement, l'invention concerne une entité de coordination apte à configurer des modèles de réseaux de neurones de nœuds d'un ensemble de nœuds d'un réseau de communication, les réseaux de neurones desdits nœuds ayant tous un modèle de même structure,

Notamment, l'invention concerne une entité de coordination apte à configurer des poids de modèles de réseaux de neurones, de même structure, de nœuds d'un ensemble de nœuds d'un réseau de communication, par un apprentissage fédéré desdits poids dans lequel lesdits nœuds entraînent localement leurs modèles de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, ladite entité de coordination comprenant au moins un processeur apte à :

- au moins une partition de l'ensemble des nœuds en au moins un cluster de nœuds ;

- une désignation d'au moins un premier nœud dudit cluster pour un rôle de nœud d'agrégation gérant un modèle agrégé dudit au moins un cluster de nœuds pour ledit apprentissage fédéré, ladite désignation comprenant :

• un envoi aux nœuds dudit cluster, d'une information désignant ledit premier nœud comme nœud d'agrégation ;

• un envoi au premier nœud des identifiants des nœuds dudit cluster .

Selon au moins un mode de réalisation, l'entité de coordination comprend :

- un module d'envoi, audit nœud d'agrégation dudit au moins un cluster, d'une demande d'apprentissage des poids des modèles des nœuds dudit cluster avec les poids d'un modèle global à l'ensemble des nœuds;

- un module de réception, en provenance du nœud d'agrégation dudit au moins un cluster, des poids d'un modèle agrégé dudit cluster résultant dudit apprentissage ; et

- un module de mise à des poids du modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster.

Selon au moins un mode de réalisation, ladite entité de coordination comporte :

- un module de partitionnement de l'ensemble des nœuds en au moins un cluster de nœuds ;

- un module d'envoi, à un nœud appartenant audit au moins un cluster, d'une information selon laquelle ce nœud doit jouer un rôle de nœud d'agrégation dans ledit cluster, et des identifiants des nœuds de ce cluster, ledit nœud étant alors qualifié de nœud d'agrégation du cluster ;

- un module d'envoi, au nœud d'agrégation dudit au moins un cluster, d'une demande d'apprentissage des poids des modèles des nœuds dudit cluster avec les poids d'un modèle global à l'ensemble des nœuds;

- un module de réception, en provenance du nœud d'agrégation dudit au moins un cluster, des poids d'un modèle agrégé de ce cluster résultant dudit apprentissage ; et

- un module de mise à jour des poids du modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster.

Selon un deuxième aspect, l'invention concerne un procédé d'apprentissage mis en œuvre par un nœud d'un ensemble de nœuds d'un réseau de communication. Notamment, l'invention concerne un procédé d’apprentissage mis en œuvre par un nœud d’un ensemble de nœuds comportant des réseaux de neurones ayant un modèle de même structure, d’un réseau de communication, ledit procédé comportant, avant un apprentissage fédéré des poids desdits modèles des réseaux de neurones des nœuds dudit ensemble, dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dit d'agrégation dudit réseau:

- une réception, en provenance d’une entité dudit réseau de communication, d'une information désignant un premier nœud dudit ensemble comme nœud d’agrégation gérant un modèle agrégé pour ledit apprentissage fédéré et, lorsque ledit nœud est ledit premier nœud, des identifiants des nœuds d'un cluster dont ledit nœud d'agrégation gère ledit modèle abrégé.

Selon au moins un mode de réalisation, le procédé d’apprentissage comprend, lorsque ledit nœud est ledit nœud d’agrégation;

- une réception, en provenance de ladite entité dudit réseau de communication des poids d’un modèle ayant ladite structure;

- sur réception d’une demande d’apprentissage des poids d’un modèle agrégé dudit cluster à partir desdits poids reçus ;

- une initialisation des poids du modèle agrégé dudit cluster et des poids des modèles des nœuds dudit cluster avec lesdits poids reçus;

- au moins une mise à jour des poids du modèle agrégé dudit cluster, par agrégation des poids des modèles des nœuds dudit cluster entraînés avec des jeux de données locales à ces nœuds, les poids des modèles des nœuds dudit cluster étant remplacés par les poids mis à jour du modèle agrégé dudit cluster après chaque mise à jour ;

- un envoi à ladite entité dudit réseau des poids du modèle agrégé dudit cluster mis à jour.

Selon au moins un mode de réalisation, le procédé d'apprentissage comprend, lorsque ledit nœud est ledit nœud d’agrégation: déterminer si ledit cluster doit être restructuré en prenant en compte une évolution des poids dudit cluster et/ou une évolution des poids des nœuds dudit cluster.

Selon au moins un mode de réalisation, le procédé d'apprentissage comporte, lorsque ledit nœud est ledit nœud d’agrégation; s'il est déterminé que ledit cluster doit être restructuré, une restructuration dudit cluster en regroupant au moins une partie des nœuds dudit cluster en au moins un sous-cluster, lesdits sous-clusters étant constitués selon une fonction prenant en compte un coût de communication entre les nœuds au sein d'un dit sous-cluster et une similarité d'une évolution des poids des modèles des nœuds au sein d'un dit sous- cluster.

Selon au moins un mode de réalisation, ladite restructuration dudit cluster comporte l'envoi, à ladite entité dudit réseau de communication, de l'identifiant d'un nœud isolé dudit cluster.

Selon au moins un mode de réalisation, le procédé d'apprentissage comprend, lorsque ledit nœud n'est pas ledit nœud d'agrégation:

- une réception, en provenance dudit nœud d'agrégation, des poids d'un modèle ayant ladite structure pour initialiser les poids du modèle du nœud;

- une transmission audit nœud d'agrégation des poids du modèle du nœud entraîné avec un jeu de données locales audit nœud. Selon au moins un mode de réalisation, ledit procédé est mis en œuvre par un nœud appartenant à un premier cluster, et ladite entité dudit réseau de communication est :

- une entité de coordination du réseau ;

- un nœud dudit ensemble de nœuds jouant un rôle de nœud d'agrégation gérant un modèle agrégé d'un deuxième cluster de niveau inférieur au niveau dudit premier cluster.

Selon au moins un mode de réalisation, l'invention concerne un procédé d'apprentissage mis en œuvre par un nœud d'un ensemble de nœuds d'un réseau de communication, ledit nœud étant apte à jouer un rôle de nœud d'agrégation dans un cluster de nœuds de l'ensemble de nœuds, les nœuds de cet ensemble comportant un réseau de neurones, les réseaux de neurones de ces nœuds ayant tous un modèle de même structure. Ce procédé comporte :

- une réception, en provenance d'une entité du réseau de communication :

• d'une information selon laquelle le nœud doit jouer ledit rôle de nœud d'agrégation dans un cluster de nœuds ; et

• des identifiants des nœuds de ce cluster ;

- une réception, en provenance de l'entité du réseau de communication, des poids d'un modèle ayant ladite structure;

- sur réception d'une demande d'apprentissage des poids d'un modèle agrégé du cluster à partir de ces poids reçus:

- une initialisation des poids du modèle agrégé du cluster et des poids des modèles des nœuds du cluster avec les poids reçus;

- au moins une mise à jour des poids du modèle agrégé du cluster, par agrégation des poids des modèles des nœuds dudit cluster entraînés avec des jeux de données locales à ces nœuds, les poids des modèles des nœuds dudit cluster étant remplacés par les poids mis à jour du modèle agrégé du cluster après chaque mise à jour ;

- un envoi à l'entité dudit réseau des poids du modèle agrégé dudit cluster mis à jour.

Corrélativement, l'invention concerne un nœud appartenant à un ensemble de nœuds d'un réseau de communication.

Notamment, l’invention concerne un nœud appartenant à un ensemble de nœuds comportant des réseaux de neurones ayant un modèle de même structure, d’un réseau de communication, ledit nœud comportant au moins un processeur apte à:

- une réception, en provenance d’une entité dudit réseau de communication, avant un apprentissage fédéré des poids desdits modèles des réseaux de neurones des nœuds dudit ensemble, dans lequel lesdits nœuds entraînent localement leur modèle de réseaux de neurones et partagent les poids de leur modèle avec d'autres nœuds dudit réseau, d’une information désignant un premier nœud dudit ensemble comme nœud d’agrégation gérant un modèle agrégé pour ledit apprentissage fédéré et , lorsque ledit nœud est ledit premier nœud, des identifiants des nœuds dudit d'un cluster dont ledit nœud d'agrégation gère ledit modèle agrégé.

Selon au moins un mode de réalisation, le nœud comprend :

- un module de réception, en provenance de ladite entité dudit réseau de communication, des poids d'un modèle ayant ladite structure, lorsque ledit nœud est ledit nœud d'agrégation;

- un module de réception d'une demande d'apprentissage des poids d'un modèle agrégé dudit cluster à partir desdits poids reçus, lorsque ledit nœud est ledit nœud d'agrégation;

- un module d'initialisation configuré, en cas de réception de ladite demande d'apprentissage, pour initialiser les poids du modèle agrégé dudit cluster et les poids des modèles des nœuds dudit cluster avec les poids reçus, lorsque ledit nœud est ledit nœud d'agrégation;

- un module de mise à jour des poids du modèle agrégé dudit cluster, par agrégation des poids des modèles des nœuds dudit cluster entraînés avec des jeux de données locales à ces nœuds, les poids des modèles des nœuds dudit cluster étant remplacés par les poids mis à jour du modèle agrégé dudit cluster après chaque mise à jour , lorsque ledit nœud est ledit nœud d'agrégation; et

- un module d'envoi à ladite entité du réseau des poids du modèle agrégé dudit cluster mis à jour, lorsque ledit nœud est ledit nœud d'agrégation.

Selon au moins un mode de réalisation, l'invention concerne un nœud appartenant à un ensemble de nœuds d'un réseau de communication, ledit nœud étant apte à jouer un rôle de nœud d'agrégation dans un cluster de nœuds dudit ensemble de nœuds, les nœuds de cet ensemble comportant un réseau de neurones, les réseaux de neurones desdits nœuds ayant tous un modèle de même structure. Ce nœud comporte :

- un module de réception, en provenance d'une entité dudit réseau de communication :

• d'une information selon laquelle ledit nœud doit jouer ledit rôle de nœud d'agrégation dans un cluster de nœuds ; et

• des identifiants des nœuds de ce cluster ;

- un module de réception, en provenance de ladite entité dudit réseau de communication, des poids d'un modèle ayant ladite structure;

- un module de réception d'une demande d'apprentissage des poids d'un modèle agrégé du cluster à partir des poids reçus ;

- un module d'initialisation configuré, en cas de réception de ladite demande d'apprentissage, pour initialiser les poids du modèle agrégé du cluster et les poids des modèles des nœuds dudit cluster avec les poids reçus;

- un module de mise à jour des poids du modèle agrégé du cluster, par agrégation des poids des modèles des nœuds dudit cluster entraînés avec des jeux de données locales à ces nœuds, les poids des modèles des nœuds dudit cluster étant remplacés par les poids mis à jour du modèle agrégé du cluster après chaque mise à jour ; et

- un module d'envoi à ladite entité du réseau des poids du modèle agrégé du cluster mis à jour.

Selon certains modes de réalisation, l'invention vise aussi un système comportant une entité de coordination et au moins un nœud tel que mentionnés ci-dessus.

L'invention propose un apprentissage fédéré dans lequel des nœuds du réseau peuvent communiquer ou recevoir des poids (ou paramètres) ou des évolutions des poids des modèles de leurs réseaux de neurones.

Ces nœuds peuvent être des dispositifs de communication de types quelconques. Il peut s'agir notamment de terminaux, d'objets connectés (en anglais loT, Internet of Things) par exemple de téléphones cellulaires, d'ordinateurs portables, d'équipements domestiques (par exemple de passerelles), d'équipements privés ou publics, en particulier d'un opérateur d'un réseau de télécommunications, par exemple des points d'accès, des équipements de cœur de réseau, de serveurs dédiés à l'invention ou des serveurs mettant en œuvre des fonctions de l'opérateur pour la mise en œuvre d'un service dans le réseau. Les nœuds Ni peuvent être fixes ou mobiles. Il peut s'agir de machines virtuelles.

Dans un mode de réalisation, les nœuds ont chacun accès à un jeu de données locales (en anglais local dataset). Ainsi, l'invention peut être mise en œuvre, mais ceci de façon non limitative, dans le cadre d'applications ou de services d'un réseau de communication, pour lesquels il n'est pas envisageable ou souhaitable que les dispositifs du réseau communiquent leurs données soit entre eux soit à une entité centralisée.

Localement, un nœud peut mettre à jour les poids de son modèle (ou plus simplement son modèle), par exemple en effectuant une descente de gradient sur la base de données de son jeu de données locales. Plus précisément, une descente de gradient peut comprendre, pour un nœud, un calcul du gradient d'une fonction de coût en utilisant un certain nombre E de fois le jeu de données locales divisé en sous-ensembles (en anglais batch). Des hyperpara mètres peuvent être considérés pour paramétrer une descente de gradient, notamment :

77 : le taux d'apprentissage

E : le nombre d'époques

B : la taille du sous-ensemble de données (batch), par exemple tirées aléatoirement.

L'invention peut être mise en œuvre avec tous types de jeux de données, par exemple lorsque les données des jeux de données locales ne sont pas des données « indépendantes et identiquement distribuées » (IID), mais des données non-IID.

Dans un mode particulier de réalisation, les nœuds sont regroupés (partitionnés) en clusters (ou groupes de nœuds), ceux-ci étant susceptibles de varier dynamiquement pour aider par exemple à la convergence des modèles partagés par les nœuds d'un même cluster.

Plus précisément, la partition des nœuds en clusters peut varier, la structure d'un cluster (à savoir en particulier l'ensemble des nœuds qui le composent) est susceptible de varier dans le temps.

Ainsi, dans certains modes particuliers de réalisation, une entité de coordination est configurée pour partitionner ou repartitionner l'ensemble des nœuds en clusters, et pour désigner un nœud d'agrégation dans au moins certains de ces clusters.

Dans certains modes particuliers de réalisation de l'invention, au moins certains nœuds de l'ensemble des nœuds sont aptes à jouer ce rôle de nœud d'agrégation.

Dans certains modes particuliers de réalisation de l'invention, lorsque l'entité de coordination a défini une nouvelle partition des nœuds en cluster et désigné les nœuds qui doivent jouer le rôle de nœud d'agrégation au sein de leurs clusters, l'entité de coordination envoie à ces nœuds une information pour qu'ils jouent ce rôle de nœud d'agrégation au sein de leur cluster. Elle leur indique également les identifiants des nœuds du cluster.

Dans un mode particulier de réalisation de l'invention, on considère non seulement que chaque nœud d'un cluster comporte son propre modèle, mais également que chaque cluster comporte son propre modèle.

Dans certains modes de réalisation, le nœud d'agrégation d'un cluster gère le modèle agrégé d'au moins ce cluster.

Dans un mode particulier de réalisation de l'invention, chaque cluster comporte un nœud d'agrégation qui gère le modèle agrégé de ce cluster.

Dans un mode particulier de réalisation de l'invention, le modèle agrégé d'un cluster est obtenu par agrégation des poids des modèles des nœuds du cluster entraînés avec des jeux de données locales à ces nœuds.

Les nœuds d'un cluster qui entraînent leurs modèles avec leurs jeux de données locales et qui contribuent à la construction du modèle agrégé du cluster peuvent être par exemple qualifiés de nœuds de travail.

Dans certains modes de réalisation de l'invention, un nœud peut être apte à jouer le rôle de nœud d'agrégation, à jouer le rôle de nœud de travail ou à jouer ces deux rôles. Dans un mode de réalisation de l'invention, le rôle d'un nœud peut varier au fil des partitions, par exemple être redéfini à chaque nouvelle partition.

Ainsi, dans un mode particulier de réalisation, le procédé d'apprentissage est mis en œuvre par un nœud qui, en plus de pouvoir jouer le rôle de nœud d'agrégation, est en outre apte à jouer un rôle de nœud de travail. Dans ce mode de réalisation, une entité du réseau de communication peut spécifiquement informer le nœud qu'il doit jouer le rôle de nœud de travail.

En variante, un nœud comprend implicitement qu'il doit jouer le rôle de nœud de travail lorsqu'il reçoit, en provenance d'une entité du réseau de communication, l'identifiant d'un nœud d'agrégation d'un cluster auquel il appartient.

Le fait de pouvoir changer le rôle des nœuds au fil des itérations, et en particulier que des nœuds de travail prennent au moins temporairement le rôle de nœud d'agrégation permet de constituer des clusters de façon beaucoup plus flexible que dans les méthodes de l'art antérieur dans lesquelles l'agrégation, lorsqu'elle existe, est effectuée par des serveurs.

Lorsqu'un nœud joue le rôle de nœud de travail, il reçoit, en provenance du nœud d'agrégation de son cluster, des poids d'un modèle ayant la structure des modèles de tous les nœuds de l'ensemble pour initialiser les poids de son propre modèle et il transmet à ce nœud d'agrégation les poids de son modèle entraîné avec un jeu de données locales à ce nœud.

Dans un mode de réalisation de l'invention, le nœud d'agrégation d'un cluster relaye la communication entre les nœuds au sein du cluster. Dans ce mode de réalisation, si on utilise le coût de communication entre deux nœuds comme critère (unique ou pas) pour déterminer les clusters d'une partition de nœuds, le coût de communication au sein d'un cluster peut être la somme des coûts de communication entre le nœud d'agrégation du cluster et chacun des nœuds du cluster.

Dans un mode de réalisation, pour limiter (par exemple minimiser) les coûts de communication, le nœud d'agrégation d'un cluster est choisi à proximité des nœuds du cluster.

Dans un mode de réalisation de l'invention, le nœud d'agrégation d'un cluster est un des nœuds de l'ensemble des nœuds précité. Auquel cas, il gère non seulement le modèle du cluster mais aussi son propre modèle comme décrit précédemment.

Dans un mode de réalisation de l'invention, le nœud d'agrégation d'un cluster relaye la communication entre l'entité de coordination et les nœuds de son cluster.

Dans certains modes particuliers de réalisation de l'invention, le nœud d'agrégation d'un cluster a la possibilité de réorganiser son cluster, en particulier de créer des sous-clusters au sein de son cluster ou d'exclure des nœuds de son cluster.

Dans un mode particulier de réalisation, on peut utiliser plusieurs niveaux de cluster, et le modèle d'un cluster de niveau n peut être obtenu par agrégation des modèles des clusters de niveau n+1. Dans ce mode de réalisation, le nœud d'agrégation d'un cluster de niveau n peut par exemple relayer les communications avec les nœuds d'agrégation des clusters de niveau n-1 et/ou de niveau n+1.

Dans un mode de réalisation de l'invention, on peut considérer que l'entité de coordination est un nœud d'agrégation de niveau le plus bas, par convention de niveau 0 par exemple.

Dans un mode de réalisation de l'invention, l'entité du réseau qui envoie, à un nœud d'un cluster de niveau n, l'information selon laquelle ce nœud doit jouer ledit rôle de nœud d'agrégation dans ce cluster, les identifiants des nœuds de ce cluster et les poids d'un modèle global à l'ensemble des nœuds est : - une entité de coordination telle que mentionnée ci-dessus; ou

- un nœud qui joue un rôle d'agrégation dans un cluster de niveau n-1.

De même, dans un mode de réalisation de l'invention, l'entité du réseau qui envoie à un nœud l'information selon laquelle il doit jouer le rôle de nœud de travail dans un cluster de niveau n et l'identifiant d'un nœud d'agrégation de ce cluster est :

- une entité de coordination telle que mentionnée ci-dessus; ou

- un nœud qui joue un rôle d'agrégation dans un cluster de niveau n-1.

Dans un mode particulier de réalisation, le modèle agrégé de chaque cluster est envoyé au cluster de niveau inférieur, par exemple de façon conditionnelle, comme après un nombre constant d'itérations. Les modèles agrégés peuvent ainsi remonter jusqu'à l'entité de coordination qui peut agréger ces modèles dans une version mise à jour du modèle global.

Ce modèle global peut être ensuite redescendu à tous les nœuds pour une nouvelle mise en œuvre du procédé soit directement soit via les nœuds d'agrégation.

Dans certains modes de de réalisation de l'invention, la partition des nœuds en clusters peut tenir compte d'un coût de communication entre les nœuds d'au moins un cluster ou pour tenir compte d'au moins un service mis en œuvre par au moins un des nœuds. Mais d'autres critères peuvent être utilisés.

Par exemple, dans un mode particulier de réalisation de l'invention, les clusters de la partition des nœuds (dans la partition initiale par exemple) sont déterminés pour minimiser un coût de communication entre les nœuds de ce cluster. Mais d'autres critères peuvent être utilisés. Les clusters de la partition (comme la partition initiale) peuvent par exemple être déterminés pour privilégier le regroupement des nœuds qui mettent en œuvre un même service dans le réseau de communication. Ils peuvent aussi être créés aléatoirement.

Le fait de prendre en compte le coût de communication entre les nœuds d'un cluster, soit pour l'initialisation, soit pour la réorganisation des clusters peut aider à une réduction potentielle du coût de communication. En effet, si les nœuds sont regroupés par zones géographiques et que les mises à jour des poids sont uniquement partagées entre les nœuds d'une même zone géographique, la latence de communication et la consommation d'énergie seront réduites puisqu'elles sont des fonctions croissantes de la distance entre les deux nœuds communiquant les poids.

De plus, dans certains cas, il peut y avoir une corrélation entre la distribution non-IID des données et la distribution géographique des dispositifs.

Dans un mode particulier de réalisation de l'invention, les poids du modèle d'un cluster peuvent être obtenus par agrégation des poids des modèles des nœuds qui composent ce cluster. Les nœuds communiquent les poids (ou en variante les gradients) de leurs modèles, résultant de calculs locaux à partir de leurs jeux de données locales. Ainsi, les données restent locales et ne sont pas partagées ou transférées, ce qui garantit la confidentialité des données, tout en atteignant l’objectif d'apprentissage.

L'invention est en ce sens très différente de la méthode d'optimisation fédérée multitâche décrite dans le document « V. Smith, C. K. Chiang, M. Sanjabi, and A. Talwalkar, "Federated multi-task learning, "Advances in Neural Information Processing Systems, vol.2017-Decem, no. Nips, pp. 4425^1435, 2017 » qui ne propose pas de regrouper les nœuds en clusters.

Différentes méthodes d'agrégation peuvent être utilisées pour mettre à jour le modèle agrégé d'un cluster de niveau n à partir des modèles agrégés des clusters de niveau supérieur n+1 ou à partir des modèles des nœuds qui composent ce cluster de niveau n. Dans un mode particulier de réalisation, la méthode d'agrégation utilisée pour mettre à jour :

- les poids des modèles agrégés des clusters ; ou

- les poids du modèle global ; ou

- les poids des modèles agrégés des clusters réorganisés utilise une moyenne pondérée ou une médiane.

On peut par exemple utiliser la méthode « Federated Average » (moyenne pondérée par la taille du jeu de données des nœuds) présentée dans le document "H. Brendan McMahan, E. Moore, D. Ramage, S. Hampson, and B. Agüera y Areas, "Communication-efficient learning of deep networks from decentralized data, «Proceedings of the 20th International Conference on Artificial Intelligence and Statistics, AISTATS 2017, vol. 54, 2017".

On peut par exemple aussi utiliser la méthode Coordinate-wise median présentée dans le document "D. Yin, Y. Chen, K. Ramchandran, and P. Bartlett, "Byzantine-robust distributed learning: Towards optimal statistical rates," 35th International Conference on Machine Learning, ICML 2018, vol. 13, pp. 8947-8956, 2018".

Dans un mode particulier de réalisation le procédé comporte une boucle mise en œuvre au sein de chaque cluster. A chaque itération, le modèle agrégé du cluster est communiqué à chacun des nœuds du cluster, chacun des nœuds du cluster met à jour son modèle en effectuant par exemple une descente de gradient avec ses données locales et renvoie soit son nouveau modèle soit l'évolution ou la mise à jour de son modèle (c'est- à-dire la différence des poids entre l'itération courante et l'itération précédente) pour que celui-ci soit agrégé au niveau du modèle agrégé du cluster et renvoyé aux nœuds du cluster à la prochaine itération. Cette boucle peut comporter un nombre d'itérations constant ou non. Elle peut par exemple s'arrêter lorsqu'une condition d'arrêt est vérifiée.

Dans un mode de réalisation de l'invention, l'entité de coordination détermine comment les poids du modèle global évoluent, par exemple dans quelle mesure ce modèle global continue à converger, et décide de l'opportunité de redéfinir les clusters.

Dans un mode de réalisation de l'invention, cette détermination peut comprendre une obtention d'une représentation du modèle global sous forme d'un vecteur dont les coordonnées sont constituées par les évolutions des poids de ce modèle et la décision de redéfinir ou non les clusters peut tenir compte de la norme de ce vecteur, par exemple via une comparaison de la norme de ce vecteur avec une valeur constante.

Dans un mode de réalisation particulier, la réorganisation des clusters est une réorganisation de l'ensemble des nœuds en une nouvelle partition de clusters de nœuds. Eventuellement, de nouveaux nœuds d'agrégation peuvent être définis pour au moins certains des clusters. Il peut s'agir par exemple de nœuds de ces clusters réorganisés.

En variante d'autres réorganisations pourraient être envisagées, par exemple uniquement pour les nœuds de certains clusters.

Dans un mode de réalisation, au cours de cette réorganisation, les clusters réorganisés sont constitués selon une fonction prenant en compte :

- un coût de communication entre les nœuds au sein d'un cluster réorganisé ; et

- une similarité d'une évolution des poids des modèles des nœuds au sein d'un cluster réorganisé.

Par exemple, il peut être cherché à limiter ou à minimiser au moins un des éléments ci-dessus ou une combinaison de ces éléments.

Le fait de prendre en compte la similarité de l'évolution des poids des modèles des nœuds pour constituer les clusters de nœuds peut aider à regrouper des nœuds qui a priori présentent des similarités dans leurs jeux de données locales, et ce sans partager d'information sur ces jeux de données locales. De tels modes de réalisation peuvent aider à résoudre ainsi un problème d'hétérogénéité statistique. En effet, en constituant des clusters qui regroupent des nœuds ayant des distributions de données similaires, l'hétérogénéité statistique est fortement réduite au sein des clusters.

Dans un mode particulier de mise en œuvre de l'invention, cette similarité est déterminée en :

- demandant auxdits nœuds de remplacer les poids de leurs modèles par les poids du modèle global mis à jour ;

- demandant auxdits nœuds de mettre à jour leur modèle en l'entraînant avec leur jeu de données locales ; et en

- déterminant une similarité des évolutions des poids des modèles des différents nœuds.

Ces demandes peuvent être faîtes aux nœuds directement par l'entité de coordination. En variante, elles peuvent être effectuées ou relayées par les nœuds d'agrégation.

Dans un mode particulier de réalisation, les évolutions des poids des modèles sont représentées sous forme de vecteurs et la similarité des évolutions des poids des modèles des différents nœuds est par exemple déterminée par une méthode dite de similarité cosinus.

Dans un mode particulier de mise en œuvre de l'invention, les poids du modèle global mis à jour sont renvoyés à chacun des nœuds, soit directement soit via les nœuds d'agrégation des clusters ainsi réorganisés. Les nœuds peuvent ainsi mettre à jour leur modèle avec le modèle global. Les modèles agrégés des clusters réorganisés peuvent également être mise à jour avec le modèle global.

Dans un mode particulier de réalisation, ces nouveaux clusters sont alors constitués de nœuds sélectionnés selon un critère de proximité (coût de communication par exemple) et dont les modèles sont susceptibles d'évoluer de la même façon.

On peut considérer que ces étapes terminent une phase générale d'initialisation et que débute alors une phase qui peut être qualifiée de « phase d'optimisation », au cours de laquelle au moins certains des clusters vont pouvoir se réorganiser, par exemple en créant des sous clusters ou en excluant certains de leurs nœuds.

Dans un mode particulier de réalisation de l'invention, cette phase peut comporter une boucle mise en œuvre au sein de chaque cluster réorganisé, identique ou similaire par exemple à celle de la phase d'initialisation. A chaque itération, le modèle agrégé du cluster réorganisé est communiqué à chacun des nœuds de ce cluster, chacun des nœuds met à jour son modèle en effectuant une descente de gradient avec son jeu de données locales et renvoie soit son nouveau modèle soit l'évolution de son modèle pour que celui-ci soit agrégé au niveau du modèle agrégé du cluster réorganisé et renvoyé aux nœuds de ce cluster à la prochaine itération. Cette boucle peut comporter un nombre d'itérations constant ou variable. Elle peut par exemple s'arrêter lorsqu'une condition d'arrêt est vérifiée.

Dans un mode particulier de réalisation, le procédé d'apprentissage comporte une étape pour déterminer si au moins un cluster réorganisé doit être restructuré.

Dans un mode particulier de réalisation, on détermine si un cluster réorganisé doit être restructuré en fonction d'un critère de convergence qui prend en compte une évolution des poids dudit cluster réorganisé et/ou une évolution des poids des nœuds du cluster réorganisé. Par exemple, il peut s'agir d'un critère de double convergence prenant en compte une évolution des poids dudit cluster réorganisé et une évolution des poids des nœuds du cluster réorganisé.

Dans au moins un mode de réalisation de l'invention, on détermine qu'un cluster réorganisé doit être restructuré si les conditions suivantes sont remplies : (1) l'évolution des poids dudit cluster réorganisé est inférieure à un seuil ; et

(2) les poids du modèle d'au moins un nœud dudit cluster réorganisé évoluent fortement dans une direction différente de la direction dans laquelle évoluerait le modèle du cluster réorganisé si celui-ci était privé dudit nœud.

Dans un mode de réalisation de l'invention, pour vérifier le premier critère (1), on représente le modèle global sous forme d'un vecteur dont les coordonnées sont constituées par les évolutions des poids de ce modèle et on compare la norme de ce vecteur avec une valeur numérique, utilisée par exemple comme une valeur seuil. Cette valeur peut être une constante ou une valeur qui dépend par exemple du niveau du cluster ou du nombre d'itérations déjà effectuées.

Dans un mode de réalisation de l'invention, pour vérifier le deuxième critère (2), on détermine une similarité entre l'évolution de chacun des nœuds du cluster et l'évolution qu'aurait le cluster s'il était privé de ce nœud. Par exemple, pour un nœud donné :

- on représente l'évolution des poids du modèle de ce nœud par un premier vecteur ;

- on constitue temporairement un cluster identique au cluster considéré mais privé de ce nœud donné ;

- on représente l'évolution des poids du modèle de ce cluster temporaire par un deuxième vecteur ; et:

- on calcule la similarité entre ces deux vecteurs par exemple par la méthode de similarité cosinus.

Dans un mode particulier de réalisation, la restructuration d'un cluster comporte le regroupement d'au moins une partie des nœuds de ce cluster en au moins un sous-cluster, ces sous-clusters étant constitués selon une fonction prenant en compte un coût de communication entre les nœuds au sein d'un dit sous-cluster et une similarité d'une évolution des poids des modèles des nœuds au sein d'un dit sous-cluster (pour minimiser cette fonction par exemple).

Cette étape est similaire à l'étape de réorganisation décrite précédemment (phase d'initialisation) sauf qu'elle s'applique uniquement aux nœuds du cluster devant être restructuré et non pas à tous les nœuds.

Dans un mode particulier de réalisation, si au moins un nœud, dit « nœud isolé », d'un cluster devant être restructuré n'est pas affecté à un sous-cluster, ce nœud peut être affecté à un autre cluster.

A cet effet, dans un mode de réalisation, lorsque le nœud d'agrégation d'un cluster de niveau n détecte un nœud isolé, il envoie l'identifiant de ce nœud isolé à une entité du réseau de communication pour que ce nœud soit réaffecté dans un autre cluster.

Cette entité peut être par exemple une entité de coordination telle que mentionnée ci-dessous ou un nœud qui joue un rôle d'agrégation dans un cluster de niveau n-1.

Dans un mode particulier de réalisation de l'invention, la réaffectation d'un nœud isolé à un autre cluster est effectuée par l'entité de coordination mentionnée ci-dessus. Par conséquent, dans un mode de réalisation, le procédé de configuration comporte:

- une réception, en provenance du nœud d'agrégation d'un premier cluster, d'un identifiant d'une nœud isolé dudit premier cluster; et

- une réaffectation de ce nœud isolé à un autre cluster, en tenant compte d'une proximité entre :

(i) une direction de l'évolution des poids de ce nœud isolé lorsque celui-ci est entraîné par des données locales au nœud isolé ; et

(ii) une direction de l'évolution des poids du modèle agrégé de cet dudit autre cluster par rapport à un même modèle de référence.

Dans un mode particulier de réalisation, les procédés mentionnés ci-dessus sont mis en œuvre par un programme d'ordinateur. Par conséquent, l'invention vise également un programme d'ordinateur sur un support d'enregistrement, ce programme étant susceptible d'être mis en œuvre par une entité de coordination ou plus généralement dans un ordinateur. Ce programme comporte des instructions adaptées à la mise en œuvre d'un procédé de configuration ou d'un procédé d'apprentissage tels que décrits ci-dessus. Ces programmes peuvent utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

L'invention vise aussi un support d'information ou un support d'enregistrement lisibles par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.

Le support d'information ou d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker les programmes. Par exemple, les supports peuvent comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur, ou une mémoire flash.

D'autre part, le support d'information ou d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par lien radio, par lien optique sans fil ou par d'autres moyens.

Un programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.

Alternativement, le support d'informations ou d'enregistrement peut être un circuit intégré dans lequel un programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l'un des procédés conformes à l'invention.

Brève description des dessins :

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures :

[Fig. 1] La figure [Fig 1] représente, dans un réseau de communication, un ensemble de nœuds pouvant être utilisé dans au moins un mode de mise en œuvre de l'invention ;

[Fig. 2] La figure [Fig 2] représente schématiquement un nœud pouvant être utilisé dans au moins un mode de mise en œuvre de l'invention ;

[Fig. 3] La figure [Fig 3] représente des clusters de nœuds ;

[Fig. 4] La figure [Fig 4] représente des clusters de nœuds constitués sur des critères de coût de communication ;

[Fig. 5] La figure [Fig 5] représente des clusters de nœuds constitués pour regrouper des nœuds dont les données locales ont des distributions homogènes ;

[Fig. 6] La figure [Fig 6] représente une représentation vectorielle de l'évolution du modèle d'un nœud ;

[Fig. 7] La figure [Fig 7] représente un cluster de l'ensemble des nœuds de la figure [Fig. 1 ];

[Fig. 8] La figure [Fig 8] illustre l'utilisation de la représentation vectorielle de la figure [Fig. 6] sur le cluster de la figure [Fig 7 ;

[Fig. 9] La figure [Fig 9] représente une phase d'initialisation de clusters pouvant être mise en œuvre dans au moins un mode de réalisation de l'invention ;

[Fig. 10] La figure [Fig 10] représente une phase d'optimisation pouvant être mise en œuvre dans au moins un mode de réalisation de l'invention ; [Fig. 11] La figure [Fig 11] représente l'architecture matérielle d'une entité de coordination conforme à au moins un mode de réalisation ;

[Fig. 12] La figure [Fig 12] représente l'architecture fonctionnelle d'une entité de coordination conforme à au moins un mode de réalisation ;

[Fig. 13] La figure [Fig 13] représente l'architecture matérielle d'un nœud conforme à au moins un mode de réalisation ;

[Fig. 14] La figure [Fig 14] représente l'architecture fonctionnelle d'un nœud conforme à au moins un mode de réalisation ; et

[Fig. 15] La figure [Fig 15] illustre des performances de l'invention dans un exemple de mise en œuvre.

Description des modes de réalisation

La figure [Fig 1] représente un ensemble de nœuds N, dans un environnement géographique par exemple dans un pays, lesdits nœuds N, étant des dispositifs capables de communiquer sur un réseau de communication.

Dans au moins un mode de réalisation, les nœuds N, ont chacun accès à un jeu de données locales (en anglais local dataset) ds,.

Dans au moins un mode de réalisation, si on considère l'ensemble des nœuds N, les données des jeux de données locales ds, de ces nœuds sont des données non-IID.

Dans l'exemple de la figure [Fig. 1], on a considéré à titre d'exemple que les jeux de données locales ds, pouvaient suivre trois distributions. Plus précisément, on fait l'hypothèse dans cet exemple, que :

- les données des nœuds représentés sous forme de cercle sont issues d'une première distribution de données indépendantes et identiquement distribuées ;

- les données des nœuds représentés sous forme de carré sont issues d'une deuxième distribution de données indépendantes et identiquement distribuées ; et que

- les données des nœuds représentés sous forme de triangle sont issues d'une troisième distribution de données indépendantes et identiquement distribuées.

En pratique, on ne connaît pas la distribution des données locales ds, d'un nœud N,, celle-ci étant en outre susceptible de varier dans le temps au fur et à mesure que le nœud N, acquiert ou génère de nouvelles données et/ou que certaines données deviennent obsolètes.

Chaque nœud N, peut acquérir ou générer les données ds, de son jeu de données locales. Ces données ds, peuvent par exemple être des données de signalisation ou de contrôle du réseau de communication, par exemple des données de qualité de service, des statistiques sur le réseau de communication, des indicateurs de performance du réseau de communication. Il peut aussi s'agir de données représentatives de l'usage du nœud N,, par exemple des durées, des lieux ou des plages d'utilisation du nœud N,, des données sur les profils des utilisateurs du nœud N,, des données sur les services accédés ou offerts par le nœud N,. Il peut aussi s'agir de données acquises par le nœud N, ou par un capteur du nœud N,, par exemple des données météorologiques, des mesures de température, de consommation, d'usage, d'usure, ... Il peut aussi s'agir de données saisies ou acquises par un utilisateur du nœud N,, par exemple des données textuelles (contenus de messages, ...), des images, des vidéos, messages vocaux, enregistrements audio, ...

Dans au moins un mode de réalisation, les données locales ds, d'un nœud N, peuvent être des données sensibles au sens où ces données ne doivent pas être partagées ou communiquées aux autres nœuds. Par exemple il peut s'agir de données privées à un utilisateur du nœud, comme des données personnelles. Dans certains modes de réalisation, on peut connaître un coût de communication entre deux nœuds N,, Nj. Par exemple, les nœuds sont localisés, par exemple grâce à leurs coordonnées GPS, et le cout de communication entre deux nœuds est constitué par la distance géographique entre ces nœuds. Dans au moins un autre mode de réalisation, le coût de communication entre deux nœuds peut être une mesure de débit, de latence, de bande passante d'une communication entre ces nœuds.

La figure [Fig. 2] représente schématiquement un nœud N,. Dans au moins un des modes de réalisation décrits ici, un nœud N, comporte un réseau de neurones RN qui peut être entraîné par une méthode d'apprentissage à partir du jeu de données locales ds, de ce nœud.

Dans un mode de réalisation de l'invention, les structures (nombre et topologie des couches) des modèles des réseaux de neurones RN des différents nœuds N, sont identiques. Mais les poids (ou paramètres) des modèles de ces réseaux sont potentiellement différents, puisque ces réseaux sont entraînés à partir de jeux de données locales dsi différentes.

L'entraînement d'un réseau de neurones d'un nœud N, pour obtenir un modèle plus performant peut comprendre quelques itérations (ou tour, en anglais round) de descente de gradient. Plus précisément, une fois que les poids du réseau ont été initialisés, au cours d'une itération, un nœud N, peut effectuer une descente de gradient durant E époques (en anglais epoch) avec des données différentes (c'est-à-dire, qu'il calcule un gradient en utilisant par exemple chacune de ses données locales ds, E fois).

Dans la suite de la description on notera :

0: notation générale pour désigner les poids (ou paramètres) du modèle d'un nœud e t Poids courants du modèle du nœud N, e 1 Poids d'un modèle au tour t

A0 £ =e t - 0 t-1 : mise à jour d'un modèle au tour t

= 0f - 0 -1 = - 777f(0‘ _1 , ds t ~) mise à jour d'un modèle au tour t calculé localement avec le jeu de données da du nœud N,

7f : gradient de la fonction de coût f

T : taux d'apprentissage

E : nombre d'époques

B : taille du batch de données (tirées au hasard par exemple).

Dans au moins un mode de réalisation de l'invention, et comme représenté à la figure [Fig. 3], les nœuds N, sont organisés en groupes ou clusters Q.

Dans au moins un des modes de réalisation décrits ici, dans chaque cluster Q, un des nœuds N, représenté en noir est un nœud d'agrégation Aj du cluster Q. Dans au moins un des modes de réalisation décrits ici, les nœuds N, au sein d'un cluster Q ne communiquent que via le nœud d'agrégation Aj de sorte que le coût de communication entre deux nœuds au sein d'un cluster est la somme des coûts de communication entre chacun de ces nœuds et le nœud d'agrégation Aj de ce cluster.

Le nombre de niveaux de clusters peut être quelconque, chaque nœud d'agrégation d'un niveau n supérieur ou égal à 1, étant configuré pour communiquer avec un nœud d'agrégation de niveau inférieur n-1 avec la convention introduite ci-dessus.

Dans au moins un des modes de réalisation décrits ici, et par souci de simplification, on considérera uniquement deux niveaux d'agrégation (niveaux 0 et 1) et que le niveau le plus bas, le niveau 0, est constitué par un nœud d'agrégation Ao (entité de coordination au sens de l'invention). La figure [Fig. 3] représente les nœuds de la figure [Fig. 1] regroupés en deux clusters Q de niveau 1, les nœuds d'agrégation Aj de ces clusters étant configurés pour communiquer avec le nœud d'agrégation Ao de niveau 0. Les traits pointillés représentent les clusters et les lignes pleines représentent les communications entre les nœuds.

Dans au moins un des modes de réalisation décrits ici, le nœud d'agrégation Ao de niveau 0 est apte à communiquer directement avec chacun des nœuds N, mais pour ne pas surcharger la figure [Fig. 3,] ces communications directes ne sont pas représentées.

Dans au moins un des modes de réalisation décrits ici, chaque nœud d'agrégation Aj est configuré pour constituer un modèle agrégé pour le cluster Q à partir des modèles locaux des nœuds N, de ce cluster.

De la même façon, chaque nœud d'agrégation de niveau n, n supérieur ou égal à 0, est configuré pour constituer un modèle agrégé de niveau n à partir des modèles agrégés des clusters de niveau n+1.

On notera :

6j : Poids courants du modèle du cluster

6- : Modèle du cluster Q obtenu par agrégation des modèles de tous les nœuds N, du cluster Q à9j = ef - ef- 1 Mise à jour du modèle du cluster Q au tour t.

D'une façon générale, et comme décrit précisément par la suite, dans au moins un des modes de réalisation décrit ici:

- le nœud d'agrégation Ao de niveau 0 est configuré pour constituer, optimiser et réorganiser les clusters et pour désigner un nœud d'agrégation Aj au sein de chacun de ces clusters ;

- un nœud d'agrégation de niveau n est configuré pour pouvoir envoyer les poids d'un modèle à un nœud soit directement soit via une chaîne de nœuds d'agrégation de niveaux intermédiaires entre le niveau du nœud d'agrégation et le niveau de ce nœud;

- le nœud d'agrégation Aj d'un cluster Q est configuré pour demander aux nœuds N, de son cluster de mettre à jour leurs modèles (en effectuant par exemple une descente de gradient à partir de leurs jeux de données locales da ),

- les nœuds N, sont configurés pour envoyer au nœud d'agrégation Aj de leur cluster Q la mise à jour A0, de leur modèle ;

- un nœud d'agrégation de niveau n-1, n supérieur ou égal à 1, est configuré pour mettre à jour son modèle à partir des mises à jour des modèles des clusters de niveau n ;

- le nœud d'agrégation Aj d'un cluster Q est configuré pour restructurer son cluster Q, par exemple pour regrouper certains nœuds de ce cluster en sous-clusters ou pour exclure certains nœuds de son cluster Q, par exemple s'il détermine que l'évolution des modèles de certains nœuds de son cluster ne suit pas celle de son modèle agrégé ou celle d'autres nœuds de son cluster.

Dans au moins un mode de réalisation de l'invention, les clusters issus des partitions et des restructurations successives sont constitués en poursuivant un double objectif, à savoir : limiter (par exemple minimiser) les coûts de communication entre les nœuds, et ;

- constituer des clusters de nœuds possédant des jeux de données locales avec des distributions homogènes.

La figure [Fig. 4] représente un regroupement des nœuds N, de la figure [Fig. 1] en quatre clusters qui optimisent les coûts de communication, les nœuds N, étant regroupés sur un critère purement géographique (premier critère ci-dessus). La figure [Fig. 5] représente un regroupement des nœuds N, de la figure [Fig. 1] en trois clusters les nœuds d'un même cluster ayant des jeux de données locales avec des distributions homogènes, afin de tenir compte du second critère (pour optimiser par exemple le second critère).

Les clusters déterminés par l'invention peuvent résulter par exemple d'un compromis entre ces deux organisations.

Dans au moins un des modes de réalisation décrits ici, les nœuds N, ne communiquent leurs jeux de données locales ds, ni aux autres nœuds ni aux nœuds d'agrégation ni à l'entité de coordination. Dans un tel mode de réalisation, les jeux de données locales ds, ne peuvent donc pas être utilisés directement pour répartir les nœuds dans les clusters.

Par conséquent, on peut par exemple regrouper en clusters (ou en sous-clusters) les nœuds N, dont les mises à jour de leurs modèles AS® évoluent dans la même direction, en considérant les mises à jour des modèles comme représentatives des distributions des jeux de données sur la base desquels ces modèles ont été entraînés, et qu'agréger des modèles qui évoluent dans la même direction peut aider à obtenir un modèle agrégé qui évoluera dans cette même direction.

Dans un mode particulier de réalisation, et comme représenté à la figure [Fig. 6], on peut représenter l'évolution A0, du modèle d'un nœud N, sous la forme d'un vecteur dont :

- l'origine ê n représente les poids du modèle avant son évolution, autrement dit un modèle de référence ;

- la norme de ce vecteur est représentative de l'importance de l'évolution du modèle : plus la norme est importante, plus le modèle évolue; et

- la direction de ce vecteur représente la façon dont le modèle évolue : si le modèle converge vers un modèle optimal pour ce nœud, la direction de ce vecteur est dirigée vers ce modèle optimal. En considérant que les modèles de nœuds entraînés sur des jeux de données ayant des distributions voisines évoluent dans des directions voisines, il peut être considéré que la direction de ce vecteur représente indirectement, la distribution du jeu de données locale sur la base duquel le modèle a été entraîné.

Ceci va maintenant être illustré en référence aux figures [Fig. 7] et [Fig. 8].

En référence à la figure [Fig. 7], on considère un cluster Ci comportant deux nœuds Ni, N2, le nœud N2 étant le nœud d'agrégation Ai de ce cluster. Les nœuds Ni, N2 ont des jeux de données locales dsi, ds2 issues de distributions différentes.

La figure [Fig. 8] représente, à titre d'exemple, les poids e 0PT1 du modèle considéré comme optimal du jeu de données dsi et les poids e 0PT2 du modèle considéré comme optimal du jeu de données ds2. Ces poids sont inconnus. Par souci de simplification on considère sur cette figure que les poids e sont de dimension 2, dimO et diml.

On suppose que les modèles des nœuds Ni et N2 sont initialisés avec un même ensemble de poids 0°.

Les vecteurs en traits mixtes représentent, à chaque tour t, l'évolution du modèle du nœud Ni. On voit que les normes de ces vecteurs tendent (si le modèle converge) à diminuer à chaque tour t, et que ces vecteurs sont (normalement) dirigés vers le point représentant les poids e 0PT1 du modèle optimal du jeu de données dsi.

Les vecteurs en traits pointillés représentent, à chaque tour t, l'évolution du modèle du nœud N2. On voit que les normes de ces vecteurs tendent (si le modèle converge) à diminuer à chaque tour t, et que ces vecteurs sont (normalement) dirigés vers le point représentant les poids e 0PT2 du modèle optimal du jeu de données ds2. Les vecteurs en traits plein représentent l'évolution du modèle agrégé du cluster Ci, obtenu par agrégation des modèles des nœuds Ni et N 2 .

On remarque qu'au fil des tours (par exemple à chaque tour), si les modèles convergent:

(1) la norme des vecteurs en trait plein diminue car le modèle agrégé évolue de moins en moins ;

(2) que l'angle entre le vecteur représentant l'évolution du modèle du nœud Ni et le vecteur représentant révolution du modèle du nœud N 2 augmente, chacun de ces modèles s'éloignant progressivement du modèle 0° initial partagé ; et que

(3) l'angle entre le vecteur représentant l'évolution du modèle du nœud Ni (ou du N 2 ) et le vecteur en trait plein représentant l'évolution du modèle du cluster Ci augmente.

Ces constations peuvent aider à déterminer que le modèle agrégé n'évolue plus.

Sur cette figure [Fig. 8], on a considéré uniquement un nœud pour chacune des distributions. Mais l'homme du métier comprendra que si le cluster Ci avait compris Æ nœuds avec des jeux de données locales similaires à dsi (respectivement ds 2 ), chacun des vecteurs associés à ces Ænœuds aurait pu, au fil des tours évoluer de façon identique aux vecteurs en traits pointillés (respectivement en traits mixtes).

Dans un mode particulier de mise en œuvre de l'invention, et comme détaillé ultérieurement, une fois que le modèle agrégé n'évolue plus, les nœuds dont les évolutions des modèles sont représentées par des vecteurs de directions identiques ou voisines sont destinés à être regroupés dans un même cluster (en supposant que ce regroupement n'est pas remis en cause par le critère de limitation des coûts de communication).

Des modes de mise en œuvre d'un procédé de configuration et d'un procédé d'apprentissage conformes à l'invention vont maintenant être décrits. Ces procédés sont décrits dans le contexte d'un système conforme à l'invention et comportant une entité de coordination Ao et un ensemble de nœuds N, tous aptes à jouer le rôle de nœud d'agrégation au sein d'un cluster et un rôle de nœud de travail.

Dans l'exemple de réalisation décrit ici, l'entité de coordination Ao peut être considérée comme un nœud d'agrégation de niveau 0.

Dans cet exemple, on décrit une phase d'initialisation des clusters en référence à la figure [Fig. 9] et une phase d'optimisation en référence à la figure [Fig. 10].

En référence à la figure [Fig. 9], dans au moins un des modes de réalisation décrits ici,, la phase d'initialisation des clusters comporte des étapes E10 à E75.

Au cours d'une étape E10, le nœud d'agrégation Ao de niveau 0 (entité de coordination au sens de l'invention) effectue une première partition des nœuds N, pour initialiser les clusters Q et détermine, parmi les nœuds N,, le nœud d'agrégation Aj de chacun de ces clusters Q. Dans au moins un des modes de réalisation décrits ici,, le procédé comporte un paramètre kinit qui définit le nombre de clusters qui doivent être créés au cours de cette partition initiale.

Dans au moins un des modes de réalisation décrits ici, au cours de cette étape d'initialisation, les kinit clusters sont constitués en ne prenant en compte que les distances entre les nœuds N,, sur la base de leurs localisations géographiques.

Dans certains modes de réalisation, la constitution des clusters peut par exemple comprendre une création d'un cluster par nœud N, et des fusions récursives de paires de clusters les plus proches entre eux en un seul cluster.

Dans certains modes de réalisation, la constitution des clusters peut par exemple utiliser l'algorithme Hierarchical Agglomerative Clustering présenté dans le document « T. Hastie, R. Tibshirani, and J. Friedma,The Elements of Statistical Learning, second edi ed. Springer, 2008 ». Pour chacun des clusters Q (j=0, ... kinit- } ainsi créés, le nœud d'agrégation Aj peut être choisi par exemple comme le nœud N, de ce cluster qui minimise la somme des distances entre ce nœud Aj et chacun des autres nœuds de ce cluster.

Dans un mode de réalisation, au cours d'une étape E15, une fois les clusters créés, l'entité de coordination Ao envoie :

- à chaque nœud Aj destiné à devenir un nœud d'agrégation, une information selon laquelle ce nœud Aj doit jouer un rôle d'un nœud d'agrégation dans un cluster Q et les identifiants des nœuds N, de ce cluster Q ; et

- à chaque nœud N,, l'identifiant du nœud d'agrégation Aj du cluster Q auquel il appartient. de sorte que pour un cluster donné, les nœuds N, et le nœud d'agrégation Aj de ce cluster puissent se configurer pour communiquer entre eux.

Dans au moins un des modes de réalisation décrits ici, à la première occurrence d'une étape E20, l'entité de coordination Ao initialise une variable t représentant le numéro du tour courant à 0 et envoi à chaque nœud d'agrégation Aj, les poids 0° du d'un modèle initial global à l'ensemble des nœuds et une demande d'apprentissage des modèles des nœuds de ce cluster avec ces poids.

Dans au moins un des modes de réalisation décrits ici, la demande d'apprentissage peut être accompagnée d'un nombre 8 de mises à jour, autrement dit d'itérations à réaliser pour cet apprentissage.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E25, le nœud d'agrégation Aj de chacun des clusters Q initialise les poids de son modèle 0/ pour le tour t avec les poids du modèle global.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E30, le nœud d'agrégation Aj de chacun des Q envoie les poids 0/ de son modèle agrégé à chacun des nœuds N, de son cluster.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E35, chacun des nœuds N, initialise les poids de son modèle local 0 pour le tour t avec les poids 0/ du modèle de son cluster Q.

Dans au moins un des modes de réalisation décrits ici, au cours de l'étape E30 déjà décrite, lorsque le nœud d'agrégation Aj envoie les poids 0/ du modèle de son cluster à un nœud N,, il lui demande de mettre à jour son modèle 0 . Dans un mode de réalisation, le nœud d'agrégation Aj communique les hyperparamètres E, B, 77 aux nœuds N,.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E35, le nœud N, met à jour son modèle 0 . Il effectue par exemple pour cela une descente de gradient durant E époques sur un batch de taille B de ses données locales ds,.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E40, le nœud N, envoie la mise à jour A0 de son modèle pour le tour t au nœud d'agrégation de son cluster Q.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E45, un nœud d'agrégation Aj incrémente la variable t (numéro du tour courant) et met à jour les poids du modèle agrégé 0/ de son cluster Cj pour le tour t par agrégation des mises à jour A0 des poids des modèles des nœuds N, de ce cluster Q reçues à l'étape E40. On note ici que les variables t de 0/ et de A0 diffèrent d'une unité, puisque par exemple, les poids du modèle 0/ du cluster Q pour le tour 1 sont obtenus par agrégation des mises à jour A0° des modèles des nœuds N, au tour 0.

Différentes méthodes d'agrégation peuvent être utilisées, par exemple les méthodes telles que « Federated Average » (moyenne pondérée par la taille du jeu de données ds, du nœud N,) ou « Coord inate-wise median » connues de l'homme du métier. Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E50, un nœud d'agrégation Aj vérifie si les 3 tours (ou itérations) ont été effectués, autrement dit si t est divisible par 3. Si ce n'est pas le cas, le résultat du test E50 est négatif et le nœud d'agrégation envoie (au cours d'une nouvelle itération de l'étape E30), les poids 0/ du modèle de son cluster Q mis à jour à chacun des nœuds N, de son cluster. Ceux-ci mettent à jour leur modèle 6- (étape E35) et en envoient la mise à jour A0 au nœud d'agrégation Aj (étape E40) pour que celui-ci incrémente la valeur t et mette à jour le modèle agrégé 0/ de son cluster Q (étape E45).

Dans au moins un des modes de réalisation décrits ici, lorsque les 8 tours (ou itérations) ont été effectués, le résultat du test E50 est positif et le nœud d'agrégation Aj envoie le modèle agrégé 0f de son cluster Q à un nœud jouant une rôle de nœud d'agrégation dans un cluster de niveau inférieur, à savoir, dans cet exemple, à l'entité de coordination Ao.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E55, l'entité de coordination Ao met à jour les poids du modèle global e 1 par agrégation des modèles agrégés 0/ des clusters Ç. L'entité de coordination Ao peut utiliser des méthodes d'agrégation différentes selon les modes de réalisation, et par exemple les méthodes d'agrégation « Federated Average » ou « Coordinate-wise median » précitées.

Dans au moins un des modes de réalisation décrits ici, au cours d'un test E60, l'entité de coordination Ao détermine si le modèle global 0‘ est encore loin de la convergence ou pas. Elle compare pour cela la norme de l'évolution A0‘ de son modèle (A0‘ =e t - 0 t-1 ) avec un critère de convergence e 0 .

Dans au moins un des modes de réalisation décrits ici, lorsque la norme de l'évolution A0‘ de son modèle est supérieure au critère de convergence e 0 , l'entité de coordination Ao considère que son modèle continue à converger et le résultat du test E60 est positif. Elle envoie alors (nouvelle occurrence de l'étape E20), les poids 0‘ du nouveau modèle global aux nœuds d'agrégations Aj des clusters Q en leur demandant de recommencer le processus décrit ci-dessus pour remettre à jour S fois leurs modèles agrégés 0/.

Dans au moins un des modes de réalisation décrits ici, lorsque la norme de l'évolution A0‘ de son modèle est inférieure au critère de convergence e 0 , l'entité de coordination Ao considère que son modèle n'évolue plus et le résultat du test E60 est négatif.

Dans au moins un des modes de réalisation décrits ici, elle envoie alors, au cours d'une étape E65, les poids 0‘ du modèle global aux nœuds N, (soit directement soit via les nœuds d'agrégations Aj des clusters Q) et leur demande de mettre à jour ce modèle 0 .

Dans au moins un des modes de réalisation décrits ici, les nœuds N, mettent à jour leur modèle 0 au cours d'une étape E65 (par exemple en effectuant une descente de gradient à partir de leur jeu de données locales da) et envoient la mise à jour A0 de leurs modèles à l'entité de coordination Aoau cours d'une étape E70.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape E75, l'entité de coordination Ao effectue une nouvelle partition des nœuds pour réorganiser les clusters. On rappelle qu'à l'étape E10, les kinit clusters avaient été constitués, dans le mode de réalisation cité à titre d'exemple, en ne prenant en compte que les distances entre les nœuds N,, sur la base de leurs localisations géographiques.

Or, à ce stade, le modèle global créé sur la base de ces premiers clusters, sur un critère purement géographique, n'évolue plus ou quasiment plus.

Dans au moins un des modes de réalisation décrits ici, et comme mentionné précédemment, l'étape E75 réorganise les nœuds en clusters pour que ceux-ci répondent à un compromis, à savoir limiter (par exemple minimiser) les coûts de communication entre les nœuds au sein d'un cluster, et d'autre part constituer des clusters de nœuds dont les mises à jour de leurs modèles A0 ; (t) évoluent dans la même direction, ce deuxième critère représentant a priori le fait que ces nœuds possèdent des jeux de données locales issues de distributions homogènes.

Dans au moins un des modes de réalisation décrits ici, l'étape E75 réorganise les clusters pour optimiser globalement la dimension d, r k calculée pour chaque paire de nœuds N,, Nk : dans laquelle :

- cii,k est une distance entre les mises à jour et A0® des modèles des nœuds Ni et Nk ;

- (xi, y,) désigne les coordonnées géographiques du nœud Ni. On note que dans ce mode de réalisation de l'invention on considère que les communications entre deux nœuds Ni, Nk transitent par un nœud d'agrégation a

- p désigne l'importance relative du cout de communication dans la fonction à minimiser par rapport à la di-similarité des mises à jour) ; et

- a désigne l'exposant d'affaiblissement de parcours (en anglais pass-loss exponent).

Dans un mode de réalisation où <x, y> désigne le produit scalaire de % et y et | |x| | désigne la norme de x.

A l'issue de l'étape E75, les nouveaux clusters Q sont réorganisés et leurs nœuds d'agrégation Aj sont désignés.

Il peut être considéré, au moins dans certains modes de réalisation, que cette étape E75 termine une phase d'initialisation.

Il peut être considéré que cette phase d'initialisation est suivie par une phase d'optimisation qui va maintenant être décrite en référence à la figure [Fig. 10].

Dans au moins un des modes de réalisation décrits ici, cette phase d'optimisation comporte des étapes F10 à F95.

Au cours d'une étape F10, l'entité de coordination Ao enregistre le modèle global en tant que modèle de référence 0 n .

Dans au moins un mode de réalisation, au cours d'une étape F15, de manière similaire à l'étape E15 déjà décrite, l'entité de coordination Ao envoie :

- à chaque nœud Aj destiné à devenir un nœud d'agrégation dans cette nouvelle partition, une information selon laquelle ce nœud Aj doit jouer un rôle d'un nœud d'agrégation dans un cluster Q et les identifiants des nœuds N, de ce cluster Q ; et

- à chaque nœud N,, l'identifiant du nœud d'agrégation Aj du cluster Q auquel il appartient. de sorte que pour un cluster donné, les nœuds N, et le nœud d'agrégation Aj de ce cluster puissent se configurer pour communiquer entre eux.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F20, l'entité de coordination Ao envoie à chaque nœud d'agrégation Aj :

- les poids e 1 du modèle global ; et

- une demande d'apprentissage des poids 0, des modèles des nœuds N, de ce cluster Q avec les poids du modèle global. Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F25, le nœud d'agrégation Aj de chacun des clusters réorganisés Q initialise les poids de son modèle 0f pour le tour t avec les poids du modèle global.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F30, le nœud d'agrégation Aj de chacun des clusters réorganisés Q envoie les poids 0f de son modèle agrégé à chacun des nœuds N, de son cluster et leur demande de mettre à jour leur modèle 0- en effectuant une descente de gradient à partir de leur jeu de données locales ds,.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F35, chacun des nœuds N, initialise les poids de son modèle local 0- pour le tour t avec les poids 0f du modèle de son cluster Q et met ce modèle à jour en effectuant une descente de gradient durant E époques sur un batch de taille B de ses données locales ds,.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F40, le nœud N, envoie la mise à jour A0 de son modèle pour le tour t à le nœud d'agrégation de son cluster Q.

Dans au moins un des modes de réalisation décrits ici, au cours d'un test F45, le nœud d'agrégation Aj d'un cluster réorganisé Q détermine si le cluster Q doit être restructuré. Dans l'exemple décrit ici, et comme décrit précédemment en référence à la figure [Fig. 8], cette étape revient :

- à calculer pour chaque nœud N, du cluster Q un vecteur représentatif de l'évolution A0 du modèle de ce nœud pour le tour t. Ce vecteur a pour origine un point représentant 0- , et une direction sensiblement dirigée vers les poids du modèle optimal du jeu de données ds, de ce nœud N, ;

- calculer la norme de l'évolution du modèle agrégé A# du cluster Q obtenue à partir des mises à jour A0 du modèle des nœuds N, du cluster Q reçues à l'étape F40. Cette norme est par exemple dans l'exemple illustré en figure [Fig. 8] la norme du vecteur représenté en trait plein à la figure [Fig. 8];

- déterminer si cette norme est supérieure à un critère de convergence e n . Si c'est le cas, le nœud d'agrégation Aj du cluster Q détermine que le modèle du cluster Cj continue à converger et qu'il n'est pas encore nécessaire de modifier le cluster Q.

Toujours au cours de ce test F45, si la norme du modèle agrégé A# du cluster Q est inférieure au critère de convergence e n , ce qui est le cas si le modèle du cluster Q ne converge plus, le nœud d'agrégation Aj détermine s'il existe au moins un modèle d'un nœud N, de son cluster qui continue à évoluer et ce différemment des modèles des autres nœuds du cluster.

Dans au moins un des modes de réalisation décrits ici, pour déterminer si le modèle d'un nœud N, continue à évoluer, un nœud d'agrégation Aj compare la norme de A0 avec le critère de convergence e n .

Dans au moins un mode de réalisation, pour déterminer si le modèle d'un nœud N, qui continue à évoluer, évolue différemment que les modèles des autres nœuds du cluster Cj, le nœud d'agrégation Aj considère l'angle entre :

- le vecteur représentant la mise à jour A0 du modèle de ce nœud et

- un vecteur représentant l'évolution qu'aurait le modèle du cluster Cj sans ce nœud N,. (L'homme du métier comprendra que ce vecteur n'est pas exactement le vecteur représenté en trait plein à la figure [Fig. 8], car sur cette figure celui-ci représente l'évolution du cluster Q au complet).

Plus précisément, dans au moins un des modes de réalisation décrits ici, le nœud d'agrégation Aj considère que le modèle d'un nœud du cluster évolue différemment si a t > . où :

Si ce n'est pas le cas, autrement dit si le modèle du cluster Q continue à évoluer, sans qu'aucun modèle de nœud N, n'évolue dans une direction sensiblement différente à la celle dans laquelle le modèle du cluster évoluerait sans ce nœud, le résultat du test F45 est négatif.

Dans ce cas, dans au moins un des modes de réalisation décrits ici, le nœud d'agrégation Aj d'un cluster Q calcule au cours d'une étape F50, le modèle agrégé 0f du cluster Q obtenu à partir des mises à jour A0 du modèle des nœuds N, du cluster Q reçues à l'étape F40. Ce modèle mis à jour est envoyé à tous les nœuds Ni du cluster Q au cours d'une nouvelle itération de l'étape F30.

Dans au moins un des modes de réalisation décrits ici, la boucle des étapes F25 à F50 est effectuée tant que t est inférieur à une valeur T. D'autres critères d'arrêt peuvent être utilisés.

Dans au moins un des modes de réalisation décrits ici, le nœud d'agrégation Aj envoie (étape F58) le modèle agrégé 0f de son cluster Q à l'entité de coordination Ao (ou au nœud d'agrégation de niveau inférieur).

Lorsqu'un nœud d'agrégation Aj détermine soit que le modèle du cluster Q n'évolue plus soit qu'il existe au moins un nœud dont le modèle évolue dans une « mauvaise » direction, le résultat du test F45 est positif, et le nœud d'agrégation Aj entreprend, au cours d'une étape F60, une restructuration du cluster Q.

Cette étape est similaire à l'étape E75 déjà décrite sauf qu'elle s'applique uniquement aux nœuds du cluster Q et non pas à tous les nœuds. Elle produit donc un ensemble de sous-clusters du cluster SQ et de nœuds d'agrégations SAj de ces sous-clusters, ces sous-clusters SQ étant constitués pour limiter les coûts de communication entre leurs nœuds et pour regrouper des nœuds dont les mises à jour de leurs modèles évoluent sensiblement dans la même direction. Eventuellement des nœuds NI, ne sont attribués à aucun des sous-clusters et peuvent être considérés comme isolés.

Dans au moins un des modes de réalisation décrits ici, les sous-clusters SQ et les nœuds isolés NI, ne sont pas traités de la même façon.

Dans un mode de réalisation, au cours d'une étape F65, le nœud d'agrégation Aj envoie:

- à chaque nœud SAj destiné à devenir un nœud d'agrégation dans un sous-cluster SQ, une information selon laquelle ce nœud SAj doit jouer un rôle d'un nœud d'agrégation dans le cluster SQ et les identifiants des nœuds N, de ce sous-cluster SQ ; et

- à chaque nœud N, de ce sous-cluster SQ, l'identifiant du nœud d'agrégation SAj de ce sous-cluster SQ auquel il appartient de sorte que les nœuds N, et le nœud d'agrégation SAj de ce sous-cluster puissent se configurer pour communiquer entre eux.

Dans au moins un des modes de réalisation décrits ici, au cours de cette étape F65, le nœud d'agrégation Aj envoie à chaque nœud d'agrégation SAj :

- les poids 6- de son modèle agrégé ; et

- une demande d'apprentissage des poids 0, des modèles des nœuds N, de ce cluster Q avec les poids 0f de ce modèle agrégé.

Dans au moins un des modes de réalisation décrits ici, un nœud d'agrégation Aj créé, au cours d'une étape F70, pour chaque sous-cluster un modèle de référence sè nj par agrégation des modèles des nœuds de ce sous cluster et envoie ensuite les poids de ce modèle au nœud d'agrégation SAj de ce sous-cluster SQ. Ce nœud d'agrégation de sous-cluster peut alors mettre en œuvre, de façon récursive, les étapes décrites ci-avant pour personnaliser son sous-cluster. Dans au moins un des modes de réalisation décrits ici, lorsqu'un nœud NI, est isolé, le nœud d'agrégation de niveau inférieur, à savoir l'entité de coordination Ao dans cet exemple, met à jour, au cours d'une étape F75, le modèle de référence ê n par agrégation des modèles

Dans au moins un des modes de réalisation décrits ici, l'entité de coordination Ao, envoie les poids de ce modèle de référence au nœud NI, isolé au cours d'une étape F80.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F85, le nœud NI, isolé initialise les poids de son modèle local avec les poids de ce modèle de référence ê n et met ce modèle à jour en effectuant une descente de gradient. Le nœud isolé NI, envoie la mise à jour de son modèle à l'entité de coordination Ao au cours d'une étape F90.

Dans au moins un des modes de réalisation décrits ici, au cours d'une étape F95, le nœud NI, isolé est affecté au cluster Q dont l'évolution du modèle par rapport au modèle de référence ê n , soit (0® - ê n ~) , la plus proche de A0,

Dans l'exemple précédent, on a décrit un mode de mise en œuvre de l'invention pour un système ne comportant que deux niveaux d'agrégation mais l'invention peut être mise en œuvre avec un nombre supérieur de niveaux d'agrégation.

D'une façon générale, au cours de la phase d'initialisation, lorsqu'un nœud d'agrégation Aj a mis à jour le modèle agrégé 0- de son cluster Q (étape E45), il l'envoie au nœud d'agrégation de niveau inférieur pour que celui-ci puisse mettre à jour son propre modèle (étape E55) par agrégation des modèles qu'il reçoit. D'une façon générale un nœud d'agrégation de niveau n est configuré pour déterminer (étape E60) si son modèle agrégé est encore loin de la convergence en comparant la norme de l'évolution de son modèle avec un critère de convergence s n qui peut être propre à ce niveau d'agrégation.

A l'issue de la phase d'initialisation, un nœud d'agrégation de niveau n envoie un modèle de référence résultat de cette phase d'initialisation aux nœuds d'agrégation de niveau n+1 (étape F10). Chaque nœud d'agrégation est configuré pour déterminer si son cluster doit être reconfiguré (étape F45) et si c'est le cas, pour créer des sous-clusters (étape F60) ou demander au nœud d'agrégation de niveau inférieur d'attribuer un cluster (étape F95) aux nœuds qui seraient isolés.

En référence à la figure [Fig. 11], dans au moins un des modes de réalisation décrits ici, l'entité de coordination Ao a l'architecture matérielle d'un ordinateur. Elle comprend notamment un processeur 11, une mémoire morte 12, une mémoire vive 13, une mémoire non volatile 14 et des moyens de communication 15.

Ces moyens de communication 15 peuvent permettre notamment à l'entité de coordination Ao de communiquer avec des nœuds du réseau.

La mémoire morte 12 de l'entité de coordination Ao constitue un support d'enregistrement conforme à l'invention, lisible par le processeur et sur lequel est enregistré un programme d'ordinateur PGC conforme à l'invention, comportant des instructions pour l'exécution d'un procédé de configuration de poids selon l'invention.

Par exemple le processeur de ladite entité de coordination (Ao) peut être apte à :

- au moins une partition de l'ensemble des nœuds (N,) en au moins un cluster de nœuds ;

- une désignation d'au moins un nœud (Ai) dudit cluster pour un rôle de nœud d'agrégation gérant un modèle agrégé dudit au moins un cluster de nœuds pour ledit apprentissage fédéré, ladite désignation comprenant un envoi aux nœuds (Ni) dudit cluster, d'une information désignant ledit nœud (Aj) comme nœud d'agrégation et un envoi au nœud (Ai) des identifiants des nœuds (Ni) dudit cluster. Le programme PGC définit divers modules fonctionnels et logiciels de l'entité de coordination Ao, aptes à mettre en œuvre les étapes du procédé de configuration de poids. En référence à la figure [Fig. 12], dans un mode particulier de réalisation, ces modules comprennent notamment ici :

- un module MP de partitionnement configuré pour partitionner un ensemble de nœuds N, en au moins un cluster Q;

- un module COM de communication configuré pour envoyer à un nœud Aj appartenant à au moins un cluster Q, dit nœud d'agrégation Aj, une information selon laquelle ledit nœud Aj doit jouer un rôle d'un nœud d'agrégation Aj dans ce cluster Q de nœuds et des identifiants des nœuds N, de ce cluster Q ;

- le module COM étant configuré pour envoyer, à au moins un nœud d'agrégation Aj, une demande d'apprentissage des poids de modèles des nœuds N, de ce cluster Q avec les poids d'un modèle global à l'ensemble des nœuds;

- le module COM étant configuré pour recevoir, en provenance dudit au moins un nœud d'agrégation Aj, des poids du modèle agrégé du cluster Cj résultant de cet apprentissage ; et

- un module MAI de mise à jour des poids dudit modèle global par agrégation des poids reçus du modèle agrégé dudit au moins un cluster.

La figure [Fig. 13] représente, dans un mode de réalisation de l'invention, l'architecture matérielle d'un nœud Aj apte à jouer un rôle de nœud d'agrégation dans un cluster de nœuds d'un ensemble de nœuds, des réseaux de neurones des nœuds de cet ensemble ayant tous la même structure. Ce nœud Aj comprend notamment un processeur 21, une mémoire morte 22, une mémoire vive 23, une mémoire non volatile 24 et des moyens de communication 25. Ces moyens de communication 25 peuvent permettre notamment au nœud N, de communiquer avec une entité de coordination Ao ou avec d'autres nœuds du réseau, notamment au sein d'un même cluster.

La mémoire morte 22 du nœud Aj constitue un support d'enregistrement conforme à l'invention, lisible par le processeur et sur lequel est enregistré un programme d'apprentissage PGA conforme à l'invention, comportant des instructions pour l'exécution d'un procédé d'apprentissage selon l'invention.

Par exemple le processeur du nœud peut être apte à une réception, en provenance d’une entité dudit réseau de communication, avant un apprentissage fédéré des poids desdits modèles des réseaux de neurones des nœuds dudit ensemble, dans lequel lesdits nœuds entraînent localement leurs modèles de réseaux de neurones et partagent les poids de leurs modèles avec d'autres nœuds dudit réseau d’une information désignant un nœud (Aj) dudit ensemble comme nœud d’agrégation gérant un modèle agrégé pour ledit apprentissage fédéré et , lorsque ledit nœud est ledit nœud, des identifiants des nœuds dudit cluster d'un cluster dont ledit nœud d'agrégation gère ledit modèle abrégé.

Le programme PGA définit divers modules fonctionnels et logiciels du nœud Aj aptes à mettre en œuvre les étapes du procédé d'apprentissage. En référence à la figure [Fig. 14], dans un mode particulier de réalisation, ces modules comprennent notamment ici :

- un module de communication COM2 configuré pour recevoir, en provenance d'une entité du réseau de communication :

- une information selon laquelle le nœud Aj doit jouer un rôle d'un nœud d'agrégation dans un cluster Q de nœuds ; et

- des identifiants des nœuds N, du cluster Q ;

- le module de communication COM2 étant configuré pour recevoir, en provenance d'une entité du réseau, une demande d'apprentissage des poids du cluster à partir des poids d'un modèle ayant ladite structure ; - un module MIN d'initialisation configuré, en cas de réception de ladite demande d'apprentissage, pour initialiser des poids 0, d'un modèle agrégé Mj du cluster Q et des poids e t des modèles des nœuds N, du cluster Cj avec lesdits poids reçus;

- un module MAJ de mise à jour configuré pour mettre à jour des poids du modèle agrégé du cluster Q, par agrégation des poids des modèles des nœuds N, du cluster Q entraînés avec des jeux de données locales à ces nœuds, les poids des modèles des nœuds du cluster étant remplacés par les poids mis à jour du modèle agrégé du cluster Q après chaque mise à jour ;

- le module de communication COM2 étant configuré pour envoyer à l'entité du réseau des poids du modèle agrégé dudit cluster mis à jour.

Dans un mode de réalisation dans lequel ce nœud, alors noté N,, est en outre apte à jouer un rôle de nœud de travail, les moyens de communication COM2 sont configurés pour:

- recevoir, en provenance d'une entité dudit réseau de communication, un identifiant d'un nœud d'agrégation Aj d'un cluster Q auquel appartient le nœud N, ;

- recevoir, en provenance de ce nœud d'agrégation Aj, des poids d'un modèle ayant ladite structure pour initialiser les poids du modèle du nœud N,;

- transmettre audit nœud d'agrégation Aj des poids du modèle du nœud N, entraîné avec un jeu de données locales à ce nœud N,.

La figure [Fig. 15] illustre des performances de l'invention dans un exemple de mise en œuvre. Plus précisément :

La partie (a) de la figure [Fig. 15] présente pour 100 tours t (représentés en abscisse), le pourcentage (en ordonnées) de nœuds atteignant 99% de précision pour deux méthodes :

- triangles : apprentissage fédéré centralisé de l'état de la technique dans lequel la méthode d'agrégation utilise une moyenne fédérée ;

- ronds: apprentissage fédéré par clusters conformément à l'invention dans lequel la méthode d'agrégation utilise une moyenne fédérée.

La partie (b) de la figure [Fig. 15] présente pour 100 tours t (représentés en abscisse), le pourcentage (en ordonnées) de nœuds atteignant 99% de précision pour deux méthodes :

- triangles : apprentissage fédéré centralisé de l'état de la technique dans lequel la méthode d'agrégation utilise une médiane ;

- ronds: apprentissage fédéré par clusters conformément à l'invention dans lequel la méthode d'agrégation utilise une médiane.

On utilise dans ces exemples des images de test du jeu de données MNIST qui comporte des images représentant chacune un chiffre de 0 à 9, soit dix classes. Une précision de 99% signifie que pour 100 nouvelles images connues, 99% sont classées correctement.

Ce modèle est présenté dans le document « Y. LeCun and C. Cortes, "MNIST handwritten digit database," 2010 ».

Il apparaît sur ces parties (a) et (b) de la figure [Fig. 15], que pour les deux méthodes d’agrégation (moyenne fédérée et médiane), la mise en œuvre de l'invention (apprentissage fédéré par clusters) présente un pourcentage de nœuds atteignant une précision de 99 % beaucoup plus élevé que par rapport à un algorithme d’apprentissage fédéré centralisé. Les parties et (c) et (d) de la figure [Fig. 15] représentent respectivement la moyenne de précision pondérée par le nombre d'exemples dans le jeu de validation des nœuds pour les deux méthodes de la partie (a) et pour les deux méthodes de la partie (b) présentées ci-dessus.

Sur ces figures, si on considère un ensemble de nœuds qui ne comporterait que deux nœuds, le premier nœud ayant un jeu de XI données locales et une précision PI et le deuxième nœud ayant un jeu de X2 données locales et une précision P2, alors l'ordonnée d'un point aurait pour valeur :

(XI. Pl + X2.P2) / (P1+P2).

Les parties (e) et (f) de la figure [Fig. 15] illustrent respectivement l'intérêt de l'invention en termes de réduction de coût de communication dans le cas d'une méthode d'agrégation de type moyenne fédérée et dans le cas d"une méthode d'agrégation de type médiane.

Sur ces figures, on considère un coût de communication calculé dans le cas d'un réseau de 50 nœuds, à chacun des tours, le coût de communication étant dans cet exemple constitué par la somme des coûts de communication (i) du modèle vers les nœuds et (il) en retour de ces nœuds vers les nœuds d'agrégation ou vers l'entité de coordination, en prenant compte du nombre de bits nécessaires pour envoyer le modèle (autrement dit les poids), multiplié par la somme des distances entre deux nœuds, puissance a (exposant d'affaiblissement de parcours).

On suppose ici que dans le cas d'un apprentissage fédéré centralisé, le nœud d'agrégation unique est le barycentre de tous les nœuds.

On voit que l'apprentissage fédéré par cluster peut aider à réduire le coût de communication en évitant la communication entre chaque nœud du réseau et le nœud d'agrégation unique.

Ainsi, on peut observer, pour les deux méthodes d'agrégation :

- au premier tour, que le coût de communication pour le modèle fédéré centralisé de l'état de la technique est plus de 3,5 fois plus élevé que pour le modèle fédéré par clusters de l'invention ;

- que dans les premiers tours, le coût de communication pour le modèle fédéré par clusters varie, en raison de la réorganisation des clusters ;

- qu'après plus de 20 tours, le coût de communication pour le modèle fédéré par clusters ne varie presque plus, les clusters étant stabilisés et est bien inférieur à celui du modèle fédéré centralisé.

Ces résultats dépendent de la stabilité des clusters et donc des paramètres a, p et e n .