FR3118247A1 - Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé - Google Patents

Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé Download PDF

Info

Publication number
FR3118247A1
FR3118247A1 FR2014025A FR2014025A FR3118247A1 FR 3118247 A1 FR3118247 A1 FR 3118247A1 FR 2014025 A FR2014025 A FR 2014025A FR 2014025 A FR2014025 A FR 2014025A FR 3118247 A1 FR3118247 A1 FR 3118247A1
Authority
FR
France
Prior art keywords
digital
network
training
neural network
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2014025A
Other languages
English (en)
Other versions
FR3118247B1 (fr
Inventor
Wenbin Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR2014025A priority Critical patent/FR3118247B1/fr
Publication of FR3118247A1 publication Critical patent/FR3118247A1/fr
Application granted granted Critical
Publication of FR3118247B1 publication Critical patent/FR3118247B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Filters That Use Time-Delay Elements (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Procédé d ’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé L’invention concerne un procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique parmi un ensemble d’usages numériques, chaque usage numérique étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, ledit procédé comprenant les étapes suivantes : - obtention (S310) d’un premier ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible, - application (S330) du premier ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété, et - modification (S340) d’au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus. Figure pour l’abrégé : Fig. 3.

Description

Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé
La présente invention se rapporte au domaine général de l’identification automatique d’un usage numérique, l’usage numérique comprenant un comportement numérique et un environnement numérique. L’invention concerne plus précisément un procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique.
L’invention s’applique notamment à l’identification d’usages numériques au niveau de dispositifs dits intelligents.
Un dispositif intelligent génère et reçoit une grande quantité de traces réseau, chaque trace réseau comprenant une pluralité de paquets réseau.
Les traces réseau comprennent de nombreuses informations décrivant des comportements et des exigences de l’utilisateur du dispositif intelligent, et l’analyse de ces traces réseau est ainsi utile pour, par exemple, fournir des services adaptés aux utilisateurs.
Il existe des techniques d’analyses de contenus de paquets permettant d’inférer un comportement numérique au moyen de règles prédéfinies. Cependant, de telles techniques utilisent des données à caractère personnel (par exemple des adresses IP et MAC, ou encore des contenus de paquets non chiffrés), ainsi que des données à caractère non immuable (par exemple l’adresse IP d’un serveur d’une application utilisée peut varier en fonction de la géolocalisation de l’utilisateur et en fonction de mises à jour). Ces techniques ne protègent ainsi pas la vie privée des utilisateurs et manquent de fiabilité.
Il existe en outre des techniques d’apprentissage automatique permettant d’identifier une unique propriété numérique, telle qu’une application utilisée, ce qui ne permet pas de définir complétement un usage numérique.
Il existe donc un besoin pour une solution permettant d’identifier un usage numérique de manière fiable.
La présente invention concerne un procédé d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques,
chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes,
ledit procédé comprenant les étapes suivantes :
- obtention d’un premier ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible,
- application du premier ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
- modification d’au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
Le procédé permet d’entraîner un même réseau de neurones à identifier plusieurs propriétés décrivant l’usage numérique, ce qui améliore la fiabilité et la précision de l’identification de l’usage numérique.
Le procédé permet en outre la réduction du réseau de neurones entraîné, qui consomme ainsi moins de ressources de calcul.
Dans un mode de réalisation particulier, les propriétés définissant l’usage numérique comprennent au moins une propriété parmi les propriétés suivantes :
- une catégorie d’application utilisée,
- une application utilisée,
- une opération mise en œuvre au niveau de l’application,
- un état d’interaction de l’utilisateur,
- un dispositif utilisé,
- un système d’exploitation utilisé,
- un navigateur utilisé, et
- au moins un débit de connexion Internet.
Le procédé permet d’entraîner un même réseau de neurones à identifier des propriétés décrivant le comportement numérique et des propriétés décrivant l’environnement numérique, ce qui améliore la fiabilité ainsi que la précision de l’identification de l’usage numérique.
Dans un mode de réalisation particulier, l’ensemble de données d’entraînement comprend, pour chaque paquet de la pluralité de paquets réseau, au moins une donnée d’entraînement parmi les données d’entraînement suivantes :
- la taille du paquet,
- une durée entre la réception ou l’envoi du paquet et la réception ou l’envoi d’un paquet précédent d’une même session ou d’un même protocole que ledit paquet,
- un port source du paquet,
- un port destination du paquet,
- une direction du paquet, et
- un protocole de plus haut niveau dans le paquet.
Le procédé permet d’entraîner un même réseau de neurones à identifier un usage numérique à partir de données d’entraînement ne dépendant pas de la localisation ou du moment de l’usage, ce qui améliore la fiabilité de l’identification de l’usage numérique. En outre, le procédé n’utilise pas de données à caractère personnel, ce qui permet de protéger la vie privée des utilisateurs. En effet, les données d’entraînement listées de l’ensemble de données d’entraînement n’ont pas de caractère personnel, contrairement à d’autres données des paquets réseau, telles que l’adresse IP.
Dans un mode de réalisation particulier, les étapes d’obtention d’un ensemble de données d’entraînement, d’application de l’ensemble de données d’entraînement et de modification d’au moins un poids sont réitérées pour au moins un deuxième ensemble de données d’entraînement associé à un deuxième ensemble de valeurs cibles de propriétés décrivant un deuxième usage numérique.
Dans un mode de réalisation particulier, l’entraînement utilise un apprentissage multitâche.
Dans un mode de réalisation particulier, l’entraînement utilise une méthode de rétropropagation du gradient.
Dans un mode de réalisation particulier, l’obtention dudit premier ensemble de données d’entraînement comprend les étapes suivantes :
- obtention d’un sous ensemble de paquets réseau et, pour chaque paquet réseau dudit sous ensemble :
- obtention d’un ensemble de données du paquet réseau, et
- traitement dudit ensemble de données du paquet réseau,
de sorte à obtenir le premier ensemble de données d’entraînement,
l’étape de traitement comprenant :
- pour chaque donnée dudit ensemble de données du paquet réseau prenant la forme d’une variable catégorielle, conversion de la valeur en un vecteur de valeurs binaires, et
- pour chaque donnée dudit ensemble de données du paquet réseau ayant une valeur numérique définie dans un intervalle différent de l’intervalle compris entre 0 et 1, normalisation de la valeur de sorte qu’elle soit définie dans l’intervalle compris entre 0 et 1.
Dans un mode de réalisation particulier, le sous ensemble de paquets réseau comprend un maximum de cent paquets réseau, typiquement les cent premiers paquets réseau reçus et/ou envoyés.
Dans un mode de réalisation particulier, le procédé comprend en outre une étape de filtrage d’au moins un paquet réseau qui n’est pas associé à une opération mise en œuvre par un utilisateur au niveau d’une application.
L’invention concerne de plus un système d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques,
chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes,
ledit système comprenant :
- un module d’obtention configuré pour obtenir un premier ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible,
- un module d’application configuré pour appliquer le premier ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
- un module de modification configuré pour modifier au moins un poids du réseau de neurones artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
L’invention concerne en outre un réseau de neurones artificiels entraîné par le procédé d’entraînement tel que décrit ci-dessus.
Dans un mode particulier de réalisation, le dispositif est une passerelle réseau.
De plus, l’invention concerne un dispositif comprenant un réseau de neurones artificiels tel que décrit ci-dessus.
En outre, l’invention concerne un procédé d’utilisation du réseau de neurones artificiels tel que décrit ci-dessus, pour identifier un usage numérique parmi un ensemble d’usages numériques,
ledit procédé d’utilisation comprenant les étapes suivantes :
- obtention d’un ensemble de données d’utilisation à partir d’une pluralité de paquets réseau,
- application de l’ensemble de données d’utilisation à l’entrée du réseau de neurones artificiels, de sorte à identifier l’usage numérique associé à l’ensemble de données d’utilisation.
Dans un mode particulier de réalisation, le procédé d’utilisation est mis en œuvre par une passerelle domestique, ladite pluralité de paquets réseau transitant sur un réseau de communications auquel est connectée ladite passerelle domestique.
Dans un mode particulier de réalisation, le procédé d’utilisation comprend une étape d’utilisation de l’usage numérique identifié, comprenant au moins une utilisation parmi les utilisations suivantes :
- recommandation d’un service personnalisé à l’utilisateur d’un terminal en fonction de l’usage numérique identifié,
- contrôle d’un usage indésirable au niveau du terminal,
- optimisation de la répartition de charges dans le réseau de communications,
- reconnaissance d’un utilisateur du réseau de communications,
- allocation des ressources internes du dispositif mettant en œuvre ledit procédé d’utilisation.
Dans un mode particulier de réalisation, les différentes étapes du procédé d’entraînement selon l’invention sont déterminées par des instructions de programmes d’ordinateurs.
De plus, dans un mode particulier de réalisation, les différentes étapes du procédé d’utilisation selon l’invention sont déterminées par des instructions de programmes d’ordinateurs.
En conséquence, l’invention vise aussi un premier programme d’ordinateur, sur un premier support d’informations, ce premier programme comportant des instructions adaptées à la mise en œuvre des étapes d’un procédé d’entraînement selon l'invention.
L’invention vise en outre un deuxième programme d’ordinateur, sur un deuxième support d’informations, ce deuxième programme comportant des instructions adaptées à la mise en œuvre des étapes d’un procédé d’utilisation selon l'invention.
Chacun de ces premier et deuxième programmes peut 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 premier support d'informations lisible par un ordinateur, et comportant des instructions du premier programme d'ordinateur tel que mentionné ci-dessus.
L’invention vise de plus un deuxième support d'informations lisible par un ordinateur, et comportant des instructions du deuxième programme d'ordinateur tel que mentionné ci-dessus.
Les premier et deuxième supports d'informations peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, chacun de ces supports peut 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 un disque dur.
D'autre part, chacun de ces supports d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Chacun des programmes selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, chaque support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
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 un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :
La figure 1 représente, de manière schématique, un système d’entraînement selon un exemple de mode de réalisation de l’invention ;
La figure 2 représente, de manière schématique, un exemple d’architecture du système d’entraînement de la figure 1 ;
La figure 3 représente, sous forme d’organigramme, les principales étapes d’un procédé d’entraînement selon un exemple de mode de réalisation de l’invention ;
La figure 4A représente, de manière schématique, un exemple de trace réseau pouvant être obtenue lors de la mise en œuvre du procédé de la figure 3 ;
La figure 4B représente, de manière schématique, une autre vue de la trace réseau de la figure 4A ;
La figure 5 représente, de manière schématique, un exemple de structure de réseau de neurones pouvant être définie lors de la mise en œuvre du procédé de la figure 3 ;
La figure 6 représente, sous forme d’organigramme, les principales étapes d’un procédé d’utilisation selon un exemple de mode de réalisation de l’invention ;
La figure 7 représente, de manière schématique, un exemple de premier usage numérique cible pouvant être utilisé lors de la mise en œuvre du procédé de la figure 3.
La présente invention concerne notamment un procédé d’entraînement d’un réseau de neurones artificiels pour que ledit réseau de neurones artificiels identifie un usage numérique parmi un ensemble d’usages numériques.
Chaque usage numérique comprend un comportement numérique et un environnement numérique, et est associé à une pluralité de propriétés techniques dont les valeurs décrivent l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes.
Plus précisément, la valeur d’au moins une propriété de la pluralité de propriétés permet de décrire ou qualifier le comportement numérique de l’usage numérique, et la valeur d’au moins une autre propriété de la pluralité de propriétés permet de décrire ou qualifier l’environnement numérique de l’usage numérique.
La ou les propriétés décrivant le comportement numérique utilisées sont typiquement une catégorie d’application utilisée, une application utilisée, une opération mise en œuvre au niveau de l’application et/ou un état d’interaction de l’utilisateur.
Par « application », on entend un logiciel installé en local sur le dispositif utilisé, ou indépendant (de type « standalone application », en terminologie anglo-saxonne), ou encore une application web (ou site web) à laquelle on accède par un navigateur.
L’état d’interaction indique si l’utilisateur interagit avec l’application utilisée, i.e. s’il met en œuvre une opération au niveau de l’application. L’état d’interaction prend ainsi une première valeur (typiquement « 1 ») lorsque l’utilisateur met en œuvre une opération au niveau de l’application utilisée, ou prend une deuxième valeur (typiquement « 0 ») lorsque l’utilisateur ne met pas en œuvre d’opération (l’application étant ouverte dans que l’utilisateur soit actif), ou lorsqu’aucune application n’est utilisée.
En outre, la ou les propriétés décrivant l’environnement numérique utilisées sont typiquement un dispositif utilisé (par exemple un terminal fixe ou mobile tel qu’un ordinateur personnel, une tablette, une télévision ou un smartphone), un système d’exploitation utilisé (par exemple Windows 10, Ubuntu, Android, Mac ou iOS), un navigateur utilisé (par exemple Chrome, Firefox, Edge, Safari ou Opéra), et/ou au moins un débit de connexion Internet (par exemple un débit de connexion montant et/ou un débit de connexion descendant.
Les propriétés « débit de connexion montant » et « débit de connexion descendant » peuvent par exemple prendre chacune quatre valeurs en fonction du débit mesuré, typiquement une première valeur pour un débit mesuré supérieur à 1 Mbps (Mégabit par seconde), une deuxième valeur pour un débit compris entre 1 et 10 Mbps, une troisième valeur pour un débit compris entre 10 et 100 Mbps, et une quatrième valeur pour un débit supérieur à 1 Gbps (Gigabit par seconde).
Chaque usage numérique de l’ensemble d’usages numériques est ainsi typiquement associé à au moins deux propriétés parmi les propriétés suivantes (typiquement toutes les propriétés suivantes) : la catégorie d’application utilisée, l’application utilisée, l’opération mise en œuvre au niveau de l’application, l’état d’interaction de l’utilisateur, le dispositif utilisé, le système d’exploitation utilisé, le débit de connexion montant, le débit de connexion descendant et, lorsque l’application est une application web, le navigateur utilisé. Chaque usage numérique diffère d’un autre usage numérique par la valeur d’au moins une de ces propriétés.
Le tableau 1 ci-dessous énumère des exemples de valeurs que peut prendre la propriété « catégorie d’application utilisée », et pour chaque valeur de catégorie d’application, des exemples de valeurs que peuvent prendre les propriétés « applications utilisé » et « opération mise en œuvre au niveau de l’application ».
CATEGORIES D’APPLICATION APPLICATIONS OPERATIONS
VideoStreaming Youtube
Dailymotion
Twitch
Mixer
Caffeine
MonolovTV
Peloton
Orange VoD
Netflix
Hulu
Disney+
Amazon Prime Video
HBO GO
CBS All Access
AfreecaTV
NAVER
Connection
BrowseRandomClick
BrowseKeywordSearch
PlayContent
LikeCommentShare
SubscribeUnsubscribe
PublishContent
SearchEngine Google
Bing
DuckDuckGo
Baidu
Yahoo
Yandex
Ask
Connection
BrowseRandomClick
BrowseKeywordSearch
ClickSearchResult
MapSearch
MapBrowse
ImageSearch
ImageBrowse
InfoSites Yahoo
Orange
Reddit
Wikipedia
Sohu
360
Sina
Okezone
CSDN
StackOverFlow
Worldometers
WordPress
Connection
BrowseRandomClick
BrowseKeywordSearch
PlayContent
Gaming LeagueOfLegend
PlayerUnknown
WorldOfWarcraft
AddictingGames
Pogo
Miniclip
Steam
GOG
PlayerUnknown's Battlegrounds
Fortnite Battle Royale
Call of Duty
Roblox
WarThunder
Minecraft
Overwatch
Warframe
Connection
PlayGame
BrowseRandomClick
BrowseKeywordSearch
DownloadGame
Social Facebook
LinkedIn
Twitter
Pinterest
Instagram
Weibo
Snpachat
TikTok
VK
ODNOKLASSNIKI
Connection
BrowseRandomClick
Messaging
Networking
PublishContent
LikeCommentShare
Messaging Skype
Whatsapp
LINE
WeChat
QQ
Discord
Facebook Messenger
WEBRTC
Gmail
Hotmail
Thunderbird
Outlook
Zoom
Microsoft Teams
Connection
BrowseRandomClick
BrowseKeywordSearch
Messaging
VoiceCall
VideoCall
FileSharing DropBox
GoogleDrive
iCloud
Samsung
Samsung Cloud
SharePoint
FileZila(FTP)
WinSCP(FTP)
uTorrent(BT)
bitTorrent(BT)
AppStore
GooglePlay
Microsoft Store
Connection
BrowseRandomClick
BrowseKeywordSearch
DownloadContent
UploadContent
AudioStreaming Spotify
Deezer
Pandora
ShoutCast
BBCRadio
Podcasts
Connection
BrowseRandomClick
BrowseKeywordSearch
PlayAudio
LikeCommentShare
SubscribeUnsubscribe
MarketPlace Amazon
Ebay
Aliexpress
Tabao
Alibaba
JD
Connection
BrowseRandomClick
BrowseKeywordSearch
AddFavorite
Pour la propriété « catégorie d’application » :
- la valeur « VideoStreaming » indique l’application utilisée est une application de diffusion en continu de fichiers vidéos,
- la valeur « SearchEngine » indique l’application utilisée est un moteur de recherche ,
- la valeur « InfoSites » indique que l’application utilisée est un e application d’information,
- la valeur « Gaming » indique que l’application utilisée est un jeu,
- la valeur « Social » indique que l’application utilisée est un réseau social,
- la valeur « Messaging » indique que l’application utilisée est une application d’appels et/ou d’envoi de messages,
- la valeur « FileSharing » indique que l’application utilisée est une application de partage de fichiers,
- la valeur « AudioStreaming » indique que l’application utilisée est une application de diffusion en continu de fichiers audio, et
- la valeur « MarketPlace » indique que l’application utilisée est une application de commerce en ligne.
Pour la propriété « opération » :
- la valeur « Connection » indique que l’utilisateur se connecte à un site web ou une application,
- la valeur « BrowseRandomClick » indique que l’utilisateur clique sur un lien interne, c’est-à-dire un lien hypertexte situé sur une application (par exemple une page web) et renvoyant vers une autre page ou ressource, par exemple une image ou un document, sur le même site web,
- la valeur « BrowseKeywordSearch » indique que l’utilisateur cherche le résultat d’un mot dans une barre de recherche de l’application,
- la valeur « PlayContent » indique que l’utilisateur regarde une vidéo pendant 15 secondes,
- la valeur « PlayGame » indique que l’utilisateur joue à un jeu pendant 30 secondes,
- la valeur « PlayAudio » indique que l’utilisateur écoute un document audio pendant 15 secondes,
- la valeur « LikeCommentShare » indique que l’utilisateur aime, commente ou partage un élément vidéo, un élément sonore ou un message, sauf si le partage redirige vers une autre application,
- la valeur « SubscribeUnsubscribe » indique que l’utilisateur s’abonne ou se désabonne d’une chaîne,
- la valeur « PublishContent » indique que l’utilisateur télécharge une vidéo ou un fichier vers un serveur pendant 15 secondes,
- la valeur « DownloadContent » indique que l’utilisateur télécharge une vidéo ou un fichier pendant 15 secondes,
- la valeur « ClickSearchResult » indique que l’utilisateur clique sur un lien aléatoire donné par une page de résultats d’un moteur de recherche,
- la valeur « ImageSearch » indique que l’utilisateur cherche le résultat d’un mot donné fourni par un moteur de recherche d’images,
- la valeur « ImageBrowse » indique que l’utilisateur clique sur un lien aléatoire fourni par une page de résultats d’un moteur de recherche d’images,
- la valeur « MapSearch » indique que l’utilisateur cherche le résultat d’un mot sur la barre de recherche d’une cartographie en ligne d’un moteur de recherche,
- la valeur « MapBrowse » indique que l’utilisateur zoome, dézoome, clique sur un élément de la carte, ou modifie l’affichage sur une cartographie en ligne d’un moteur de recherche (« passe en streetView »),
- la valeur « Networking » indique que l’utilisateur demande à ajouter un ami ou rejoindre un groupe,
- la valeur « Messaging » indique que l’utilisateur envoie ou reçoit un message ou un mail,
- la valeur « AddFavorite » indique que l’utilisateur ajoute un objet à une liste de préférence (« wishlist », en terminologie anglosaxonne),
- la valeur « VoiceCall » indique que l’utilisateur passe un appel audio pendant 15 secondes, et
- la valeur « VideoCall » indique que l’utilisateur passe un appel vidéo pendant 15 secondes.
Le réseau de neurones artificiels identifie un usage numérique en associant à chaque valeur de chaque propriété associée aux usages numériques un score de prédiction.
Lafigure 1représente, de manière schématique, un système d’entraînement 100 selon un exemple de mode de réalisation de l’invention, ledit système d’entraînement 100 étant apte à mettre en œuvre un procédé d’entraînement d’un réseau de neurones artificiels selon un exemple de mode de réalisation de l’invention, typiquement le procédé décrit ci-après en référence à la figure 3.
Le système d’entraînement 100 comprend un premier module d’obtention 110, un premier module d’application 120, et un module de modification 130.
Le premier module d’obtention 110 est configuré pour obtenir un ensemble de données d’entraînement à partir d’une pluralité de paquets réseau, l’ensemble de données d’entraînement étant associé à un ensemble de valeurs cibles de propriétés décrivant un usage numérique cible.
En outre, le premier module d’application 120 est configuré pour appliquer l’ensemble de données d’entraînement à l’entrée du réseau de neurones artificiels, le réseau de neurones artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
De plus, le module de modification 130 est configuré pour modifier au moins un poids du réseau de neurones artificiels en fonction de l’ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus par le premier module d’application 120.
Comme le montre lafigur e 2, le système d’entraînement 100 comprend notamment un processeur 200, une mémoire morte 202 (de type « ROM »), une mémoire non volatile réinscriptible 204 (de type « EEPROM » ou « Flash NAND » par exemple), une mémoire volatile réinscriptible 206 (de type « RAM »), et une interface de communication 208.
La mémoire morte 202 constitue un support d’enregistrement conforme à un exemple de mode de réalisation de l’invention, lisible par le processeur 200 et sur lequel est enregistré un premier programme d’ordinateur P1 conforme à un exemple de mode de réalisation de l’invention. En variante, le premier programme d’ordinateur P1 est stocké dans la mémoire non volatile réinscriptible 204.
Le premier programme d’ordinateur P1 permet au système d’entraînement 100 de mettre en œuvre un procédé d’entraînement conforme à l’invention.
Ce premier programme d’ordinateur P1 peut ainsi définir des modules fonctionnels et logiciels du système d’entraînement 100, configurés pour mettre en œuvre les étapes d’un procédé d’entraînement conforme à un exemple de mode de réalisation de l’invention. Ces modules fonctionnels s’appuient sur ou commandent les éléments matériels 200, 202, 204, 206 et 208 du système d’entraînement 100 cités précédemment. Ils peuvent comprendre notamment ici le premier module d’obtention 110, le premier module d’application 120 et le module de modification 130 précités.
Le système d’entraînement 100 peut être un terminal 100 (tel qu’une passerelle réseau) comprenant les éléments matériels 200, 202, 204, 206 et 208, ainsi que les modules 110, 120 et 130 précités. En variante, le système d’entraînement peut comprendre plusieurs entités présentant chacune l’architecture conventionnelle d’un ordinateur, telles qu’un terminal et un ou plusieurs serveurs, les modules 110, 120 et 130 précités étant alors répartis entre ces différentes entités.
Lafigure 3représente un procédé d’entraînement conforme à un exemple de mode de réalisation de l’invention. Ce procédé est mis en œuvre par un système d’entraînement conforme à un exemple de mode de réalisation de l’invention, tel que par exemple le système d’entraînement 100 décrit en référence aux figures 1 et 2.
Dans une étape S310, le premier module d’obtention 110 obtient un premier ensemble de données d’entraînement EDE1 à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement EDE1 étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible UNC1.
Comme cela sera décrit par la suite, ce premier ensemble de données d’entraînement EDE1 permet d’entraîner le réseau de neurones RN artificiel à identifier le premier usage numérique cible UNC1.
Lafigure 7illustre un exemple de premier ensemble de valeurs cibles de propriétés décrivant le premier usage numérique cible UNC1, ce premier ensemble comprenant les valeurs suivantes :
- la valeur « Videostreaming » pour la propriété « catégorie d’application utilisée »,
- la valeur « Youtube » pour la propriété « application utilisée »,
- la valeur « Playcontent » pour la propriété « opération mise en œuvre au niveau de l’application utilisée »,
- la valeur « 1 » pour la propriété « état d’interaction »,
- la valeur « ordinateur personnel » pour la propriété « dispositif utilisé »,
- la valeur « Windows 10 » pour la propriété « système d’exploitation utilisé »,
- la valeur « Firefox » pour la propriété « navigateur utilisé »,
- la valeur « supérieur à 1 Mbps » pour la propriété « débit montant », et
- la valeur « entre 1 et 10 Mbps » pour la propriété « débit descendant ».
Plus précisément, l’étape S310 comprend une étape S312 d’obtention d’une trace réseau TR comprenant une pluralité de paquets réseau.
La trace réseau TR est typiquement obtenue en utilisant un outil logiciel de capture permettant de capturer les paquets réseaux échangés par le terminal sur lequel est exécuté cet outil logiciel, par exemple l’outil logiciel TShark ou tcpdump.
Chaque paquet réseau obtenu comprend une pluralité de données réseau, telles que par exemple un numéro de paquet, une donnée temporelle d’envoi ou de réception du paquet (absolue ou relative, par rapport à un paquet de référence tel que le premier paquet capturé), une adresse IP de source du paquet (pour « Internet Protocol », en terminologie anglo-saxonne), une adresse IP de destination du paquet, une taille du paquet, un nom de protocole dans le paquet, etc.
Afin de mettre en œuvre le premier usage numérique cible UNC1, l’application utilisée associée au premier usage numérique cible est ouverte sur le terminal de sorte à être exécutée sur le terminal, puis la capture des paquets réseaux est lancée avec l’outil logiciel. Le terminal est le dispositif utilisé associé au premier usage numérique cible, ce terminal exécutant le système d’exploitation utilisé et, lorsque l’application utilisée est une application web, le navigateur utilisé associés au premier usage numérique cible UNC1.
Ainsi, dans l’exemple de premier usage numérique cible UNC1 de la figure 7, Youtube est ouvert dans le navigateur Firefox d’un ordinateur personnel ayant pour système d’exploitation Windows 10.
Ensuite, lorsque le premier usage numérique cible est associé à un état d’interaction de l’utilisateur indiquant que l’utilisateur interagit avec l’application associée au premier usage numérique cible UNC1 (cet état d’interaction étant ainsi typiquement égal à 1), l’opération associée au premier usage numérique cible UNC1 est exécutée.
Aussi, dans l’exemple de premier usage numérique cible UNC1 de la figure 7, la lecture d’une vidéo sur Youtube est lancée.
La capture des paquets réseaux est typiquement arrêtée lorsque tous les paquets réseaux associés à l’opération sont envoyés par le terminal ou reçus par le terminal. La capture est donc par exemple arrêtée lorsque les résultats de l’opération sont affichés par le terminal.
Pour une durée typiquement comprise entre 5 et 10 secondes de capture, la trace réseau TR obtenue comprend typiquement entre 100 et 100 paquets réseaux pour une opération de recherche du résultat d’un mot dans une barre de recherche (« BrowseKeywordSearch »), et comprend typiquement entre 2000 et 3000 paquets réseaux pour une opération de visionnage d’une vidéo (« PlayContent »).
Les paquets réseaux obtenus, qui constituent la trace réseau TR obtenue, sont alors enregistrés en association avec les valeurs de propriétés associées au premier usage numérique cible UNC1, typiquement dans la mémoire non volatile réinscriptible 204.
Les paquets réseaux obtenus sont ainsi étiquetés (les valeurs de propriétés étant appelées « labels », en terminologie anglo-saxonne).
Afin d’obtenir la valeur de la propriété « débit de connexion montant » et/ou la valeur de la propriété « débit de connexion descendant » associées au premier usage numérique cible UNC1, un outil logiciel peut être utilisé, tel que l’outil « Solarwinds Real-Time Bandwidth Monitor » ou « Okala speedtest », pendant l’étape S312 d’obtention de la trace réseau TR, cet outil logiciel étant ainsi utilisé en parallèle de l’outil logiciel de capture.
Lesfigure s 4 A et 4Bmontrent un exemple de trace réseau TR pouvant être obtenue à l’étape S312 d’obtention. La trace réseau TR comprend une pluralité de paquets réseau PR1-PRm. Chaque paquet réseau PR1-PRm comprenant une pluralité de données No. (numéro de paquet), Time (donnée temporelle d’envoi ou de réception du paquet), Source (adresse IP de source du paquet), Destination (adresse IP de destination du paquet), Length (taille mémoire du paquet), Protocol (nom de protocole dans le paquet), et Info (autres données du paquet).
De plus, lorsque le premier usage numérique cible UNC1 est associé à un état d’interaction de l’utilisateur indiquant que l’utilisateur interagit avec l’application associée au premier usage numérique cible UNC1 (cet état d’interaction étant ainsi typiquement égal à 1), il est utile de filtrer les paquets réseau dits de bruit de fond PRB, qui ne sont pas associés à une opération mise en œuvre par un utilisateur au niveau d’une application. L’étape S310 comprend alors typiquement une étape S314 de filtrage d’au moins un paquet réseau de bruit de fond PRB.
Lorsque le système d’exploitation utilisé est Linux, l’étape de filtrage est typiquement mise en œuvre pendant l’étape S312 d’obtention d’une trace réseau TR. Un outil logiciel de filtrage est lancé avant le lancement de l’outil logiciel de capture, de sorte à être exécuté pendant la capture des paquets réseau. L’outil logiciel de filtrage utilisé est par exemple Linux Network Namespace.
Lorsque le système d’exploitation utilisé n’est pas Linux (comme dans l’exemple de la figure 7), l’étape de filtrage est mise en œuvre après l’étape S312 et comprend typiquement une étape d’obtention d’une nouvelle trace réseau associée à un usage numérique pour lequel la propriété d’état d’interaction indique que l’utilisateur n’interagit pas (cet état d’interaction étant ainsi typiquement égal à 0). Cet usage numérique n’est pas associé à des propriétés décrivant un comportement numérique, et est typiquement uniquement associé aux propriétés dispositif utilisé, système d’exploitation utilisé, le navigateur utilisé et l’état d’interaction, le dispositif utilisé étant le terminal sur lequel l’outil logiciel de capture est exécuté et le même terminal permettant l’obtention de la trace réseau TR associé au premier usage numérique cible UNC1 à l’étape S310, le système d’exploitation et/ou le navigateur étant les mêmes que le système d’exploitation et/ou le navigateur permettant l’obtention de la trace réseau TR associé au premier usage numérique cible UNC1 (différent de linux) et l’état d’interaction étant typiquement égal à 0.
La capture des paquets réseau est lancée avec l’outil logiciel de capture, pendant une durée prédéterminée, typiquement comprise entre 10 et 100 heures.
Un triplé de données réseau est ensuite extrait de chaque paquet obtenu, ledit triplé de données comprenant par exemple l’adresse IP source du paquet, l’adresse IP destination du paquet et le protocole de plus haut niveau dans le paquet. Un ensemble de triplés de données réseau est ainsi obtenu.
Chaque paquet de la trace réseau TR associé au premier usage numérique cible UNC1 obtenu à l’étape S312 comprenant un des triplés de données de l’ensemble de triplés de données obtenu est ensuite supprimé, ce paquet étant un paquet réseau de bruit de fond PRB.
L’étape S310 comprend, pour chaque paquet réseau d’un sous ensemble de paquets réseau de la trace réseau TR obtenue à l’étape S312, une étape S316 d’obtention d’un ensemble de données du paquet réseau DPR, ces données DPR étant ensuite utilisées pour fournir les entrées du réseau de neurones RN artificiels.
Le sous ensemble de paquets réseau comprend typiquement un nombre P de premiers paquets réseau reçus et/ou envoyés de la trace réseau TR, et éventuellement n’ayant pas été filtrés à l’étape S314, typiquement les cent premiers paquets réseau PR, cette valeur de cent paquets réseau permettant un bon compromis entre temps de calcul et précision de l’identification.
Les données DPR de l’ensemble de données du paquet réseau DPR sont typiquement sélectionnées de sorte à améliorer la fiabilité et la précision de l’identification de l’usage numérique (par exemple parce qu’elles ne dépendent pas de la localisation ou du moment de l’usage) et/ou protéger la vie privée des utilisateurs.
L’ensemble de données du paquet réseau DPR comprend plusieurs données DPR parmi les données suivantes, typiquement les toutes les données suivantes :
- la taille du paquet,
- une durée entre la réception ou l’envoi du paquet et la réception ou l’envoi d’un paquet précédent d’une même session ou d’un même protocole que ledit paquet,
- un port source du paquet,
- un port destination du paquet,
- une direction du paquet, i.e. si le paquet est reçu ou envoyé, et
- un protocole de plus haut niveau dans le paquet.
Le paquet comprend les données de taille, port source, port destination et de protocole de plus haut niveau, et ces données peuvent ainsi être directement extraites du paquet.
La donnée de direction du paquet est typiquement obtenue à partir de l’adresse MAC de source ou de destination. En effet, lorsque le paquet est reçu (paquet entrant), l’adresse MAC de destination est l’adresse MAC du dispositif utilisé, et lorsque le paquet est envoyé (paquet sortant), l’adresse MAC source du paquet est l’adresse MAC du dispositif utilisé.
La donnée de durée est typiquement calculée en fonction de la donnée temporelle d’envoi ou de réception du paquet. Lorsque le paquet appartient à une session (typiquement une session TCP ou UDP), le paquet précédent de la même session est identifié est la donnée de durée du paquet est soustraite à la donnée de durée du paquet précédent. Lorsque le paquet n’appartient pas à une session, le paquet précédent de même protocole et n’appartenant pas à une session est identifié, et la donnée de durée du paquet est soustraite à la donnée de durée de ce paquet précédent.
L’étape S310 comprend en outre une étape S318 de traitement des ensembles de données de paquets réseau DPR obtenus à l’étape S316, de sorte à obtenir le premier ensemble de données d’entraînement EDE1.
L’étape S318 comprend, pour chaque donnée DPR de chaque ensemble de données du paquet réseau DPR ayant pour valeur un nom (i.e. prenant la forme d’une variable catégorielle), une conversion de la valeur de ladite donnée DPR en un vecteur de valeurs binaires (variables binaires).
Une variable catégorielle prend typiquement la forme d’une chaîne de caractères comprenant des lettres et/ou des chiffres, dont la valeur est un nom. Par exemple, le numéro d’un port est une variable catégorielle, le numéro nommant (référençant) le port mais n’impliquant pas une relation de supériorité par rapport à un numéro de port plus petit.
Le vecteur comprend un nombre de valeurs binaire égal au nombre de valeurs que peut prendre ladite donnée DPR, chaque valeur binaire correspondant à une des valeurs de nom, et étant mise à 1 pour la valeur de nom effectivement prise par la donnée, et à 0 pour les autres (technique dite d’encodage « one-hot »). Cette conversion est typiquement mise en œuvre pour les données de port source, port destination et protocole de plus haut niveau.
En variante, une autre méthode de binarisation peut être utilisée, telle que par exemple une des méthodes appelées « simple coding », « deviation coding », « orthogonal polynomial coding », « Helmert coding », « reverse Helmert coding », forward difference coding » ,« backward difference coding » et « user-defined coding », en terminologie anglo-saxonne, par exemple décrites sur la page web https://stats.idre.ucla.edu/r/library/r-library-contrast-coding-systems-for-categorical-variables/.
En outre, l’étape S318 comprend, par exemple, pour chaque donnée DPR de chaque ensemble de données du paquet réseau DPR ayant une valeur numérique définie dans un intervalle différent de l’intervalle compris entre 0 et 1, normalisation de la valeur de sorte qu’elle soit définie dans l’intervalle compris entre 0 et 1. Toutes les données DPR sont alors à la même échelle, ce qui permet d’accélérer l’entraînement du réseau de neurones RN artificiels. La normalisation est typiquement mise en œuvre pour les données de taille et de durée.
La méthode appelée « min-max normalisation » est par exemple utilisée pour la normalisation, la formule utilisée étant alors :
où x représente la valeur à normaliser, x’ représente la valeur normalisée, max(x) représente la valeur maximale que peut prendre la valeur à normaliser et min(x) représente la valeur minimale que peut prendre la valeur à normaliser.
Dans une étape S320, la structure du réseau de neurones RN artificiel est définie.
La structure utilisée pour définir le réseau de neurones est par exemple la structure appelée « réseau de neurones à propagation avant ». Le réseau de neurones comprend une couche d’entrée, une couche de sortie et un ou plusieurs couches cachées, chaque couche comprenant une pluralité de nœuds, aussi appelés neurones.
En outre, chaque couche cachée, ainsi que la couche de sortie, sont chacune associées à une opération mathématique, aussi appelée fonction d’activation, réalisée au niveau de chaque nœud de ladite couche.
De plus, chaque nœud d’une couche cachée et de la couche de sortie est « relié » à chaque nœud de la couche précédente par un poids, chaque nœud prenant ainsi en entrée le résultat (ou la valeur, pour la couche d’entrée) de chaque nœud de la couche précédente multiplié par le poids associé, i.e. le poids liant ledit nœud audit nœud de la couche précédente.
Le nombre de couches est typiquement défini à l’étape S320, ainsi que les fonctions d’activation et le nombre de nœuds des couches cachées et de sortie.
Le réseau de neurones RN artificiels défini comprend typiquement 4 couches de neurones artificiels, une couche d’entrée CE, une couche de sortie CS, une première couche cachée CC1 et une deuxième couche cachée CC2, la première couche cachée CC1 étant positionnée entre la couche d’entrée CE et la deuxième couche cachée CC2, et la deuxième couche cachée CC2 étant positionnée entre la première couche cachée CC1 et la couche de sortie CS. Lafigure 5représente schématiquement un exemple d’un tel réseau de neurones RN artificiels.
Chaque couche CE, CC1, CC2 et CS comprend une pluralité de nœuds NE, NC1, NC2, NS (neurones). De plus, la première couche cachée CC1, la deuxième couche cachée CC2 et la couche de sortie CS sont chacune associées à une opération mathématique.
La première opération mathématique (ou première fonction d’activation) associée à la première couche intermédiaire CC1 est réalisée au niveau de chaque nœud NC1 de la première couche intermédiaire CC1, chaque opération mathématique au niveau d’un nœud NC1 étant réalisée en fonction de chaque valeur de chaque nœud d’entrée NE, chacune de ses valeurs étant pondérée par un poids P1, pouvant différer d’une valeur à l’autre. L’ensemble des poids P1 affectés aux valeurs des nœuds d’entrée NE est typiquement initialisé au hasard.
La première opération mathématique réalisée est typiquement l’application de la fonction tangente hyperbolique à la somme de chaque valeur pondérée de chaque nœud d’entrée NE, la fonction tangente hyperbolique étant notée tanh, et pouvant être définie par la formule mathématique suivante, pour le nœud NC1jde la première couche cachée CC1, j appartenant à l’intervalle [1, Q], où Q est le nombre de nœuds de la première couche cachée CC1, par exemple égal à 2500 :
où yjreprésente la somme des valeurs pondérées des nœuds d’entrée NE, avec :
où i appartient à l’intervalle [1, P], P étant le nombre de nœuds de la couche d’entrée CE, P1ijétant ainsi le poids P1 liant le nœud NEide la couche d’entrée au nœud NC1jde la première couche cachée CC1.
De plus, la deuxième opération mathématique (ou deuxième fonction d’activation) associée à la deuxième couche intermédiaire CC2 est réalisée au niveau de chaque nœud NC2 de la deuxième couche intermédiaire CC2, chaque opération mathématique au niveau d’un nœud NC2 étant réalisée en fonction du résultat de chaque première opération effectuée au niveau de chaque nœud NC1 de la première couche intermédiaire CC1, chacun de ses résultats étant pondéré par un poids P2, pouvant différer d’une valeur à l’autre. L’ensemble des poids P2 affectés aux résultats des nœuds NC1 de la première couche cachée CC1 est typiquement initialisé au hasard.
La deuxième opération mathématique réalisée est typiquement l’application de la fonction Unité Linéaire Rectifiée à la somme de chaque résultat pondéré de chaque nœud NC1de la première couche intermédiaire CC1, la fonction Unité Linéaire Rectifiée étant notée ReLu (pour Rectified Linear Unit, en terminologie anglo-saxonne), et pouvant être définie par la formule mathématique suivante, pour le nœud NC2kde la deuxième couche cachée CC2, k appartenant à l’intervalle [1, R], où R est le nombre de nœuds de la première couche cachée, par exemple égal à 750 :
où zkreprésente la somme des résultats pondérés des nœuds NC1 de la première couche intermédiaire CC1, avec :
où j appartient à l’intervalle [1, Q], Q étant le nombre de nœuds de la première couche cachée CC1, P2j kétant ainsi le poids P2 liant le nœud NC1jde la première couche cachée CC1 au nœud NC2kde la deuxième couche cachée CC2.
En outre, la troisième opération mathématique (ou troisième fonction d’activation) associée à la couche de sortie CS est réalisée au niveau de chaque nœud NS de la couche de sortie CS, chaque opération mathématique au niveau d’un nœud NS étant réalisée en fonction du résultat de chaque deuxième opération effectuée au niveau de chaque nœud NC2 de la deuxième couche intermédiaire CC2, chacun de ses résultats étant pondéré par un poids P3, pouvant différer d’une valeur à l’autre. L’ensemble des poids P3 affectés aux résultats des nœuds NC2 de la deuxième couche intermédiaire CC2 est typiquement initialisé au hasard.
Le résultat de chaque troisième opération mathématique effectuée au niveau d’un nœud NS de la couche de sortie CS correspond à un score de prédiction d’une valeur d’une propriété de la pluralité de propriétés décrivant chaque usage numérique de l’ensemble d’usages numériques. Un taux de probabilité est ainsi associé à chaque valeur de chaque propriété de la pluralité de propriété en sortie du réseau de neurones artificiels, et ainsi typiquement à chaque valeur de catégorie d’application utilisée, d’application utilisée, d’opération mise en œuvre au niveau de l’application, d’état d’interaction de l’utilisateur, de dispositif utilisé, de système d’exploitation utilisé et, lorsque l’application est une application web, de navigateur utilisé.
La troisième opération mathématique est typiquement l’application de la fonction softmax, appelée aussi fonction exponentielle normalisée, à la somme des résultats pondérés des nœuds NC2 de la deuxième couche intermédiaire CC2, la fonction softmax étant définie par la formule suivante, pour le nœud NSl,m, où l appartient à l’intervalle [1, S], où S est le nombre de propriétés de la pluralité de propriétés dont les valeurs décrivent les usages numériques, et m ∈ [1, Tl], où Tlest le nombre de valeurs que peut prendre la propriété l, le nœud NSl,métant ainsi le nœud associé à la valeur m de la propriété l :
où bl,mreprésente la somme des résultats pondérés des nœuds NC2 de la deuxième couche intermédiaire CC2, avec :
où k appartient à l’intervalle [1, R], R étant le nombre de nœuds NC2 de la deuxième couche cachée CC2, P3kl,métant ainsi le poids P3 liant le nœud NC2kde la deuxième couche cachée CC2 au nœud NSl,mde la couche de sortie CS.
Dans une étape S330, le premier ensemble de données d’entraînement EDE1 obtenu à l’étape S310 est appliqué, par le premier module d’application 120, à l’entrée CE du réseau de neurones RN artificiels.
Plus précisément, chaque donnée d’entraînement du premier ensemble de données d’entraînement EDE1 correspond à un ou plusieurs nœuds NE de la couche d’entrée CE. Lorsque la valeur de la donnée d’entraînement prend la forme d’un vecteur de valeurs binaires, le nombre de nœuds NE de la couche d’entrée CE correspondant à ladite donnée d’entraînement est égal au nombre de valeurs binaires du vecteur, et chaque nœud NE prend alors la valeur d’une des valeurs binaires du vecteur. Lorsque la donnée d’entraînement comprend une unique valeur, un unique nœud NE de la couche d’entrée CE correspond à la donnée d’entraînement, et prend ainsi la valeur de la donnée d’entraînement.
Le nombre de nœuds NE de la couche d’entrée CE est ainsi supérieur ou égal au nombre de données d’entraînement du premier ensemble de données d’entraînement EDE1.
Les première, deuxième et troisième opérations mathématiques sont alors appliquées en utilisant le premier ensemble de données d’entraînement EDE1, respectivement dans la première couche cachée CC1, la deuxième couche cachée CC2 et la couche de sortie CS.
Le réseau de neurones RN artificiels délivre alors en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
Dans une étape S340, au moins un poids P1, P2 ou P3 du réseau de neurones NR artificiels est modifié, par le module de modification 130, en fonction du premier ensemble de valeurs cibles de propriété et des scores de prédictions obtenus à l’étape S330.
Le ou les poids P1, P2, P3 sont typiquement modifiés selon une méthode de rétropropagation du gradient.
Plus précisément, comme indiqué précédemment, chaque valeur de chaque propriété de la pluralité de propriétés décrivant l’usage numérique est associée à un nœud NS différent de la couche de sortie CS, le nœud délivrant un score de prédiction pour cette valeur.
Le premier ensemble de valeurs cibles de propriétés décrivant le premier usage numérique cible UNC1 permet d’attribuer à chaque nœud NS de la couche de sortie CS un score attendu, le score étant élevé pour chaque nœud NS associé à une valeur cible du premier ensemble de valeurs cibles (par exemple 100%) et étant moins élevé pour chaque nœud NS associé à une autre valeur qu’une valeur cible (par exemple 0%).
Chaque score de prédiction délivré par un nœud NS de la couche de sortie CS est ainsi comparé à la valeur attendue associée audit nœud NS, la différence EP entre le score de prédiction et la valeur attendue (appelée erreur EP associée audit nœud NS) étant ensuite utilisée pour modifier chaque poids liant ledit nœud à un nœud NC2 de la deuxième couche cachée CC2. La formule suivante pour calculer la nouvelle valeur du poids P3kl,m+1 liant le nœud NC2kde la deuxième couche cachée CC2 au nœud NSl,mde la couche de sortie CS est typiquement utilisée :
où P3kl,mest la valeur courante du poids liant le nœud NC2kde la deuxième couche cachée CC2 au nœud NSl,mde la couche de sortie CS, LearningRate est une constante égale à 0.01, et EPl,mest la différence EP entre le score de prédiction et la valeur attendue du nœud NSl,mde la couche de sortie CS.
Afin de calculer les poids P2 liants les nœuds NC2 de la deuxième couche cachée CC2 aux nœuds NC1 de la première couche cachée CC1, la contribution totale de chaque nœud NC2 de la deuxième couche cachée CC2 aux erreurs associées aux nœuds NS de la couche de sortie CS est calculée.
La contribution totale CT2kdu nœud NC2kaux erreurs associées aux nœuds NS de la couche de sortie CS est typiquement calculée au moyen de la formule suivante :
où ct2kl,mest la contribution du nœud NC2kde la deuxième couche cachée CC2 à l’erreur associée au nœud NSl,mde la couche de sortie CS, typiquement calculé selon la formule suivante :
où P3kl,mest le poids P3 liant le nœud NC2kde la deuxième couche cachée CC2 au nœud NSl,mde la couche de sortie CS et EPl,mest la différence EP entre le score de prédiction et la valeur attendue du nœud NSl,mde la couche de sortie CS.
La formule suivante pour calculer la nouvelle valeur du poids P2jk+1 liant le nœud NC1jde la première couche cachée CC1 au nœud NC2kde la deuxième couche cachée CC2 peut alors être utilisée :
où P2jkest la valeur courante du liant le nœud NC1jde la première couche cachée CC1 au nœud NC2kde la deuxième couche cachée CC2, LearningRate est une constante égale à 0.01, et CT2kest la contribution totale du nœud NC2kaux erreurs associées aux nœuds NS de la couche de sortie.
Les poids P1 liants les nœuds NC1 de la première couche cachée CC1 aux nœuds NE de la couche d’entrée CE sont calculés de la même manière que les poids P2 liants les nœuds NC2 de la deuxième couche cachée CC2 aux nœuds NC1 de la première couche cachée CC1.
L’entraînement utilise ainsi typiquement un apprentissage multitâche avec un réseau de neurones RN délivrant un score de prédiction pour chaque valeur de chaque propriété et l’utilisation de la méthode de rétropropagation du gradient.
La mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 correspondent à une itération de l’entraînement du réseau de neurones NR artificiels. Ces étapes d’obtention S310, d’application S330 et de modification S340 sont typiquement réitérées une ou plusieurs fois, chaque itération de ces étapes S330 et S340 utilisant le réseau de neurones RN comprenant les poids modifiés à l’étape S340 de modification de l’itération précédente.
Le réseau de neurones NR est entraîné dans le but que pour chaque propriété, il associe un score de prédiction associé à la valeur cible de la propriété (du premier ensemble de valeurs cibles de propriétés) supérieur au score de prédiction des autres valeurs de la même propriété.
Les étapes d’obtention S310 d’un ensemble de données d’entraînement, d’application S330 de l’ensemble de données d’entraînement et de modification S340 d’au moins un poids peuvent être réitérées une ou plusieurs fois pour le premier usage numérique cible UNC1. Plusieurs traces réseau peuvent ainsi être obtenues pour le premier usage numérique cible UNC1 puis être utilisées pour entraîner le réseau de neurones NR artificiels.
De plus, les étapes d’obtention S310 d’un ensemble de données d’entraînement, d’application S330 de l’ensemble de données d’entraînement et de modification S340 d’au moins un poids peuvent être réitérées une ou plusieurs fois pour chaque usage numérique de l’ensemble d’usages numériques, le premier module d’obtention 110 obtenant alors un nième ensemble de données d’entraînement EDEn qui est appliqué par le premier module d’application 120 à l’entrée CE du réseau de neurones RN artificiels, et le module de modification 130 modifiant un ou plusieurs poids du réseau de neurones RN en fonction du nième ensemble de valeurs cibles de propriétés correspondant au nième usage numérique et des scores de prédictions obtenus à cette itération de l’étape S330.
Lorsqu’une ou plusieurs traces réseau associées à un usage numérique pour lequel la propriété d’état d’interaction indique que l’utilisateur n’interagit pas sont obtenues à une ou plusieurs itérations de l’étape S314, chaque trace réseau peut aussi être utilisée dans une nouvelle itération des étapes d’application S330 et de modification S340.
Après la mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 pour le premier usage numérique, ces étapes S310, S330 et S340 sont typiquement réitérées pour chaque autre usage numérique de l’ensemble d’usages numériques, les poids P1, P2, P3 du réseau de neurones RN étant modifiés à chaque itération et les poids ainsi modifiés étant utilisés à l’itération suivante.
La mise en œuvre des étapes d’obtention S310, d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques est appelée cycle d’apprentissage complet ou encore époque.
Toutes les itérations des étapes d’obtention S310 peuvent être mises en œuvre avant la mise en œuvre de l’étape S330 d’application pour le premier usage numérique.
L’étape d’obtention S310 peut en outre être mise en œuvre une ou plusieurs nouvelles fois pour chaque usage numérique de la pluralité d’usages numériques afin d’obtenir un ou plusieurs autres ensembles de données d’entraînement pour chaque usage numérique de la pluralité d’usages numériques, typiquement avant la mise en œuvre de l’étape S330 d’application pour le premier usage numérique. Les ensembles de données obtenus sont typiquement utilisés lors d’une validation ou d’un autre cycle d’apprentissage complet.
Suite à la mise en œuvre d’une époque, une validation peut être réalisée en mettant en œuvre les étapes d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques, à partir d’ensembles de données d’entraînement pour chaque usage numérique obtenus à des itérations de l’étape S310 et n’ayant pas encore été utilisés. Cette validation permet d’évaluer la précision de l’identification par le réseau de neurones NR.
Plus précisément, si, à la fin de la validation, la précision de l’identification (de la prédiction) n’augmente pas, l’entraînement est arrêté. Dans le cas contraire, un nouveau cycle d’apprentissage complet et une nouvelle validation sont réalisés, et ainsi de suite jusqu’à ce que la précision de l’identification n’augmente pas.
Un test final peut ensuite être réalisé en mettant en œuvre les étapes d’application S330 et de modification S340 pour chaque usage numérique de l’ensemble d’usages numériques, à partir d’ensembles de données d’entraînement pour chaque usage numérique obtenus à des itérations de l’étape S310 et n’ayant pas encore été utilisés.
Le réseau de neurones RN artificiels entraîné suite à la mise en œuvre du procédé de la figure 3 est typiquement stocké dans la mémoire d’un dispositif tel qu’une passerelle réseau (« gateway », en terminologie anglo-saxonne), un serveur ou un terminal fixe ou mobile comme par exemple un ordinateur personnel, une tablette, une télévision ou un smartphone.
Par exemple le réseau de neurones RN est stocké dans la mémoire d’un serveur d’une infrastructure de fournisseur de service Internet et permet d’analyser les usages numériques des utilisateurs de ce service Internet.
Le réseau de neurones RN peut en variante être stocké dans la mémoire d’une passerelle réseau dans un réseau LAN (acronyme de « Local Area Network », en terminologie anglo-saxonne) et permet d’analyser les usages numériques des utilisateurs de ce réseau LAN.
Lafigure 6représente un procédé d’utilisation du réseau de neurones artificiels entraîné par la mise en œuvre du procédé de la , pour identifier un usage numérique parmi l’ensemble d’usages numériques, le procédé d’utilisation étant conforme à un exemple de mode de réalisation de l’invention. Ce procédé est mis en œuvre par un dispositif conforme à un exemple de mode de réalisation de l’invention, comprenant le réseau de neurones RN entraîné.
Le dispositif comprend un deuxième module d’obtention et un deuxième module d’application (pouvant être le premier module d’obtention 110 et le premier module d’application 120 lorsque le dispositif est le terminal 100 ayant mis en œuvre le procédé d’entraînement), et présente typiquement l’architecture conventionnelle d’un ordinateur. Le dispositif comprend notamment un processeur, une mémoire morte (de type « ROM »), une mémoire non volatile réinscriptible (de type « EEPROM » ou « Flash NAND » par exemple), une mémoire volatile réinscriptible (de type « RAM »), et une interface de communication.
La mémoire morte ou la mémoire non volatile réinscriptible constitue un support d’enregistrement conforme à un exemple de mode de réalisation de l’invention, lisible par le processeur et sur lequel est enregistré un deuxième programme d’ordinateur conforme à un exemple de mode de réalisation de l’invention, permettant au dispositif de mettre en œuvre le procédé d’utilisation conforme à l’invention.
Ce deuxième programme d’ordinateur peut ainsi définir des modules fonctionnels et logiciels du dispositif, configurés pour mettre en œuvre les étapes d’un procédé d’utilisation conforme à un exemple de mode de réalisation de l’invention. Ces modules fonctionnels s’appuient sur ou commandent les éléments matériels du dispositif cités précédemment, et peuvent comprendre notamment ici le deuxième module d’obtention et le deuxième module d’application précités.
Dans une étape S610, un ensemble de données d’utilisation EDU est obtenu à partir d’une pluralité de paquets réseau par le deuxième module d’obtention.
Cette étape d’obtention S610 comprend une étape S612 d’obtention d’une trace réseau TR comprenant une pluralité de paquets réseau, typiquement au moyen d’un outil logiciel de capture. Les paquets réseaux obtenus, qui constituent la trace réseau TR obtenue, sont alors enregistrés dans le dispositif. Contrairement à l’étape S310 du procédé d’entraînement, la trace réseau TR obtenue n’est pas enregistrée en association avec des valeurs de propriétés associées.
L’étape d’obtention S610 comprend aussi typiquement une étape S614 de filtrage d’au moins un paquet réseau de bruit de fond PRB, cette étape de filtrage étant mise en œuvre de la même manière que l’étape de filtrage S314 du procédé d’entraînement de la figure 3, mais relativement à la trace réseau TR obtenue à l’étape S612.
De plus, l’étape S610 comprend, pour chaque paquet réseau d’un sous ensemble de paquets réseau de la trace réseau TR obtenue à l’étape S612, une étape S616 d’obtention d’un ensemble de données du paquet réseau DPR, cette étape étant mise en œuvre de la même manière que l’étape d’obtention S316 d’un ensemble de données du paquet réseau du procédé d’entraînement de la figure 3 mais relativement à la trace réseau TR obtenue à l’étape S612 et éventuellement filtrée à l’étape S614.
L’étape S310 comprend en outre une étape S618 de traitement des ensembles de données de paquets réseau obtenus à l’étape S616, de sorte à obtenir l’ensemble de données d’utilisation. Cette étape S618 de traitement est typiquement mise en œuvre de la même manière que l’étape S318 de traitement du procédé d’entraînement de la figure 3.
Dans une étape S620, l’ensemble de données d’utilisation est appliqué à l’entrée du réseau de neurones RN artificiels entraîné, de sorte à identifier l’usage numérique associé à l’ensemble de données d’utilisation.
Le réseau de neurones artificiels entraîné délivre alors en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique.
La valeur de chaque propriété de l’usage numérique est identifiée en déterminant la valeur de la propriété ayant le score de prédiction associé le plus grand et/ou supérieur au score de prédiction des autres valeurs de la même propriété
L’usage numérique est alors décrit par chaque valeur identifiée de propriété.
Le procédé d’utilisation peut en outre comprendre une étape S630 d’utilisation de l’usage numérique identifié UNI.
L’étape S630 utilise typiquement une pluralité d’usages numériques identifiés UNI, chaque usage numérique UNI étant identifié lors d’une mise en œuvre différente des étapes S610 et S620.
L’étape S630 comprend par exemple une recommandation d’un service personnalisé à l’utilisateur d’un terminal en fonction du ou des usages numériques identifiés au niveau de ce terminal. Par exemple, une application similaire à une application utilisée (typiquement de même catégorie) peut être recommandée, et/ou une application de catégorie liée à la catégorie de l’application utilisée, et/ou une application utilisée par les utilisateurs dans le même environnement numérique ou un environnement numérique similaire, et/ou une application ayant un fort taux d’utilisation.
Le dispositif mettant en œuvre le procédé d’utilisation est typiquement une passerelle réseau (ou passerelle domestique), la pluralité de paquets réseau de la trace réseau TR obtenue à l’étape S610 transitant sur un réseau de communications auquel est connectée ladite passerelle, typiquement un réseau de communications local, quel est aussi connecté au moins un terminal.
Le ou les usages numériques identifiés UNI peuvent alors typiquement avoir été réalisés au niveau du terminal et l’étape S630 peut comprendre une optimisation de la répartition de charges dans le réseau de communications en fonction du ou des usages numériques UNI détectés au niveau du terminal, par exemple un dimensionnement du réseau (i.e. de la bande passante) du terminal en fonction du ou des usages numériques UNI détectés au niveau du terminal.
En variante ou en complément, l’étape S630 d’utilisation peut comprendre une reconnaissance (ou une détection) d’un utilisateur de réseau de communications local, et éventuellement le chargement d’un profil de l’utilisateur en fonction du ou des usages numériques UNI détectés au niveau du terminal.
En variante ou en complément, l’étape S630 d’utilisation peut comprendre une allocation des ressources internes de la passerelle en fonction du ou des usages numériques UNI détectés au niveau du terminal.
En variante ou en complément, l’étape S630 d’utilisation peut comprendre un contrôle d’usage indésirable au niveau du terminal, en fonction du ou des usages numériques UNI détectés au niveau du terminal.

Claims (14)

  1. Procédé d’entraînement d’un réseau de neurones (RN) artificiels pour que ledit réseau de neurones (RN) artificiels identifie un usage numérique parmi un ensemble d’usages numériques,
    chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes,
    ledit procédé comprenant les étapes suivantes :
    - obtention (S310) d’un premier ensemble de données d’entraînement (EDE1) à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement (EDE1) étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible (UNC1),
    - application (S330) du premier ensemble de données d’entraînement (EDE1) à l’entrée du réseau de neurones (RN) artificiels, le réseau de neurones (RN) artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
    - modification (S340) d’au moins un poids du réseau de neurones (RN) artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
  2. Procédé d’entraînement selon la revendication 1, dans lequel les propriétés définissant l’usage numérique comprennent au moins une propriété parmi les propriétés suivantes :
    - une catégorie d’application utilisée,
    - une application utilisée,
    - une opération mise en œuvre au niveau de l’application,
    - un état d’interaction de l’utilisateur,
    - un dispositif utilisé,
    - un système d’exploitation utilisé,
    - un navigateur utilisé, et
    - au moins un débit de connexion Internet.
  3. Procédé d’entraînement selon la revendication 1 ou 2, dans lequel le premier ensemble de données d’entraînement (EDE1) comprend, pour chaque paquet de la pluralité de paquets réseau, au moins une donnée d’entraînement parmi les données d’entraînement suivantes :
    - la taille du paquet,
    - une durée entre la réception ou l’envoi du paquet et la réception ou l’envoi d’un paquet précédent d’une même session ou d’un même protocole que ledit paquet,
    - un port source du paquet,
    - un port destination du paquet,
    - une direction du paquet, et
    - un protocole de plus haut niveau dans le paquet.
  4. Procédé d’entraînement selon l’une quelconque des revendications 1 à 3, dans lequel les étapes d’obtention (S310) d’un ensemble de données d’entraînement, d’application (S330) de l’ensemble de données d’entraînement et de modification (S340) d’au moins un poids sont réitérées pour un au moins un deuxième ensemble de données d’entraînement associé à un deuxième ensemble de valeurs cibles de propriétés décrivant un deuxième usage numérique.
  5. Procédé d’entraînement selon l’une quelconque des revendications 1 à 4, dans lequel l’entraînement utilise un apprentissage multitâche.
  6. Procédé d’entraînement selon l’une quelconque des revendications 1 à 5, dans lequel l’obtention (S310) dudit premier ensemble de données d’entraînement (EDE1) comprend les étapes suivantes :
    - obtention d’un sous ensemble de paquets réseau et, pour chaque paquet réseau dudit sous ensemble :
    - obtention (S316) d’un ensemble de données du paquet réseau (DPR), et
    - traitement (S318) dudit ensemble de données du paquet réseau (DPR),
    de sorte à obtenir le premier ensemble de données d’entraînement (EDE1),
    l’étape (S318) de traitement comprenant :
    - pour chaque donnée (DPR) dudit ensemble de données du paquet réseau (DPR) prenant la forme d’une variable catégorielle, conversion de la valeur en un vecteur de valeurs binaires, et
    - pour chaque donnée (DPR) dudit ensemble de données du paquet réseau (DPR) ayant une valeur numérique définie dans un intervalle différent de l’intervalle compris entre 0 et 1, normalisation de la valeur de sorte qu’elle soit définie dans l’intervalle compris entre 0 et 1.
  7. Procédé d’entraînement selon la revendication 6, dans lequel le sous ensemble de paquets réseau comprend un maximum de cent paquets réseau.
  8. Procédé d’entraînement selon l’une quelconque des revendications 1 à 7, comprenant en outre une étape (S314) de filtrage d’au moins un paquet réseau qui n’est pas associé à une opération mise en œuvre par un utilisateur au niveau d’une application.
  9. Système d’entraînement (100) d’un réseau de neurones (RN) artificiels pour que ledit réseau de neurones artificiels (RN) identifie un usage numérique parmi un ensemble d’usages numériques,
    chaque usage numérique comprenant un comportement numérique et un environnement numérique, et étant associé à une pluralité de valeurs de propriétés décrivant l’usage numérique, chaque propriété pouvant prendre au moins deux valeurs différentes,
    ledit système comprenant :
    - un module d’obtention (110) configuré pour obtenir un premier ensemble de données d’entraînement (EDE1) à partir d’une pluralité de paquets réseau, ledit premier ensemble de données d’entraînement (EDE1) étant associé à un premier ensemble de valeurs cibles de propriétés décrivant un premier usage numérique cible (UNC1),
    - un module d’application (120) configuré pour appliquer le premier ensemble de données d’entraînement à l’entrée du réseau de neurones (RN) artificiels, le réseau de neurones (RN) artificiels délivrant en sortie un score de prédiction pour chaque valeur de chaque propriété de la pluralité de propriétés décrivant chaque usage numérique, et
    - un module de modification (130) configuré pour modifier au moins un poids du réseau de neurones (RN) artificiels en fonction du premier ensemble de valeurs cibles de propriétés et des scores de prédictions obtenus.
  10. Programme d’ordinateur (P1) comportant des instructions pour l’exécution des étapes du procédé d’entraînement selon l’une quelconque des revendications 1 à 8 lorsque ledit programme est exécuté par un ordinateur.
  11. Support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur (P1) comprenant des instructions pour l’exécution des étapes du procédé d’entraînement selon l’une quelconque des revendications 1 à 8.
  12. Réseau de neurones (RN) artificiels entraîné par le procédé d’entraînement selon l’une quelconque des revendications 1 à 8.
  13. Passerelle réseau comprenant un réseau de neurones (RN) artificiels selon la revendication 12.
  14. Procédé d’utilisation du réseau de neurones (RN) artificiels selon la revendication 12, pour identifier un usage numérique parmi un ensemble d’usages numériques,
    ledit procédé d’utilisation comprenant les étapes suivantes :
    - obtention (S612) d’un ensemble de données d’utilisation (EDU) à partir d’une pluralité de paquets réseau,
    - application (S620) de l’ensemble de données d’utilisation (EDU) à l’entrée du réseau de neurones (RN) artificiels.
FR2014025A 2020-12-23 2020-12-23 Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé Active FR3118247B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2014025A FR3118247B1 (fr) 2020-12-23 2020-12-23 Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2014025A FR3118247B1 (fr) 2020-12-23 2020-12-23 Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé
FR2014025 2020-12-23

Publications (2)

Publication Number Publication Date
FR3118247A1 true FR3118247A1 (fr) 2022-06-24
FR3118247B1 FR3118247B1 (fr) 2024-05-31

Family

ID=75108514

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2014025A Active FR3118247B1 (fr) 2020-12-23 2020-12-23 Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé

Country Status (1)

Country Link
FR (1) FR3118247B1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336483B1 (en) * 2015-04-03 2016-05-10 Pearson Education, Inc. Dynamically updated neural network structures for content distribution networks
US20200076842A1 (en) * 2018-09-05 2020-03-05 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336483B1 (en) * 2015-04-03 2016-05-10 Pearson Education, Inc. Dynamically updated neural network structures for content distribution networks
US20200076842A1 (en) * 2018-09-05 2020-03-05 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DIMITRIOS MIRAS: "On quality aware adaptation of internet video", 1 January 2004 (2004-01-01), XP055251307, ISBN: 978-1-339-31025-1, Retrieved from the Internet <URL:http://www0.cs.ucl.ac.uk/staff/d.miras/thesis/thesis.pdf> [retrieved on 20160218] *

Also Published As

Publication number Publication date
FR3118247B1 (fr) 2024-05-31

Similar Documents

Publication Publication Date Title
US20180191849A1 (en) Method and system for tracking residential internet activities
US20160170985A1 (en) Identifying a thumbnail image to represent a video
US9462313B1 (en) Prediction of media selection consumption using analysis of user behavior
US20200329005A1 (en) User engagement with co-users of a networking system
US20150046458A1 (en) Method for recommending users in social network and the system thereof
US9426049B1 (en) Domain name resolution
CN111708901A (zh) 多媒体资源推荐方法、装置、电子设备及存储介质
US10311362B1 (en) Identification of trending content using social network activity and user interests
US20130066875A1 (en) Method for Segmenting Users of Mobile Internet
US9692842B2 (en) Automatically generating web conference recording bookmarks based on user analytics
US9628559B2 (en) Optimizing resource downloads or streams using a collection of trusted network connected endpoints
US8818927B2 (en) Method for generating rules and parameters for assessing relevance of information derived from internet traffic
FR3025909A3 (fr) Audit de video sur le web
US10771355B2 (en) Method for measuring end-to-end internet application performance
US11470370B2 (en) Crowdsourcing platform for on-demand media content creation and sharing
US10452405B2 (en) Method and apparatus for accelerating loading of mobile application content
Madarasingha et al. VideoTrain++: GAN-based adaptive framework for synthetic video traffic generation
WO2022117976A1 (fr) Procédé d&#39;entraînement d&#39;un réseau de neurones artificiels pour identifier un usage numérique, et système associé
FR3118247A1 (fr) Procédé d’entraînement d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé
EP4187446A1 (fr) Procédés d&#39;entraînement et d&#39;utilisation d&#39;un réseau de neurones artificiels pour identifier une valeur de propriété, et système associé
FR3083659A1 (fr) Identification de protocole d&#39;un flux de donnees
García et al. WebRTC Testing: State of the Art.
US20170373967A1 (en) Initiating an action based on a determined navigation path data structure
CN113542203B (zh) 一种视频业务dpi识别方法及服务器
FR3129800A1 (fr) Procédés d’entraînement et d’utilisation d’un réseau de neurones artificiels pour identifier un usage numérique, et système associé

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220624

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4