• Aucun résultat trouvé

Les réseaux auto-encodeurs sont généralement considérés comme faisant partie du Deep Learning de par leur structure incluant un grand nombre de couches et certaines particularités des méthodes utilisées pour leur entrainement. Ils sont particulièrement utiles pour la réduction de dimensionnalité. Pour autant, leur structure à propagation avant ne les distingue pas des perceptrons multicouches : leur description est donc présentée en section 5.3.

8.4 Applications en Génie des Procédés

8.4.1 Classification de données

Essiet et al. (2019) utilisent un réseau convolutif à 5 couches pour classifier des données issues de capteurs, transformées sous forme d’images.

8.4.2 Chimie et synthèse organique

Coley et al. (2017) développent une structure assez complexe de 5 réseaux de neurones afin de prédire les résultats de réactions de synthèse organique (Figure 8.6). Les 4 premiers réseaux parallèles s’occupent spécifiquement d’une caractéristique de la réaction : perte et gain d’hydrogène, perte et gain de liaisons. Leurs sorties sont envoyées en entrée du cinquième réseau qui calcule le score. Les 200 000 paramètres de l’ensemble sont entraînés grâce à 5 millions de données extraites de bases de données chimiques.

Figure 8.6 – Architecture des 5 réseaux de neurones entraînés pour prédire les performances de synthèses organique (Coley et al., 2017).

Nandy et al. (2018) utilisent un réseau de neurones à deux couches cachées pour découvrir de nouveaux complexes à métaux de transition.

8.4.3 Modélisation et optimisation de procédés

Himmelblau (2000) rapporte un cas de modélisation d’un réacteur de polymérisation avec un réseau récurrent interne à 4 neurones cachés.

Bollas et al. (2003) présentent deux structures de réseaux hybrides couplant un modèle phénoménologique et un réseau de neurones (pour corriger les écarts du modèle) pour la modélisation et le scale-up d’un procédéé FCC.

Loney et al. (2003) présentent plusieurs structures de réseaux de neurones très atypiques issus de méthodes évolutionnaires agissant sur les connexions et les fonctions d’activation pour différents cas d’applications.

Rosli et Aziz (2017) présentent une review des utilisations de réseaux de neurones pour modéliser le procédé de craquage : perceptrons multicouches, réseaux adaptatifs, réseaux récurrents, méthodes hybrides, etc.

Teng et al. (2019) entraînent un réseau auto-encodeur 15-25-10-2-2-13-15 (935 paramètres) grâce à 10000 données d’entrainement et 3000 données de validation, pour réduire le nombre de dimensions de 15 à 2 et faciliter l’optimisation du système. Ils utilisent une méthode évolutionnaire qui optimise le nombre de neurones par couche en plus des poids et des biais des neurones. Ils comparent leur erreur moyenne à d’autres méthodes

8.4. APPLICATIONS EN GÉNIE DES PROCÉDÉS 83 (ACP standard, ACP à noyaux divers, ICA, NMF) ainsi qu’au réseau auto-encodeur 15-11-7-2-7-11-15, proposé par les heuristiques classiques. Le réseau optimisé fait 20 % à 50 % d’erreurs en moins que les autres méthodes.

8.4.4 Design et synthèse de procédés

Nabil et al. (2019) présentent une nouvelle méthode de synthèse de procédés dédiée aux cycles thermody-namiques pour des installations solaires à concentration. La méthode se base sur un alphabet (chaque lettre représente une unité) permettant de construire des mots (chaque mot représente un cycle complet). L’utilisation d’un réseau de neurones récurrents permet tout d’abord d’entrainer le réseau à comprendre cette langue des cycles. Le réseau est ensuite exploité pour générer de nouveaux cycles innovants à partir de cet alphabet, qui sont simulés et validés ou rejetés. Puis le réseau est forcé à générer des cycles présentant des caractéristiques énergétiques améliorées. Cette méthode permet de retrouver les cycles optimisés de la littérature et des cycles encore inconnus présentant des performances optimales.

8.4.5 Rectification et réconciliation de données

Himmelblau (2000) montre un exemple de rectification de données d’une cuve agitée grâce à un réseau récurrent.

8.4.6 Détection et diagnostic de fautes et dérives

Venkatasubramanian et al. (1989) sont parmis les premiers à étudier les caractéristiques de réseaux de neurones multicouches pour la classification de données de procédés en vue de la détection d’anomalies de fonc-tionnement. Ils comparent plusieurs réseaux (perceptrons monocouches de 18-5-13 à 18-27-13 et multicouches jusqu’à 18-27-27-13) pour relier les 18 mesures issues d’un procédé aux 13 types de défauts observés. Leur comparaison montre que les perceptrons monocouches sont plus efficaces que les multicouches.

8.4.7 Contrôle, commande et régulation de procédés

Himmelblau (2000) rapporte un cas de contrôle de procédé par réseau récurrent.

Santos et al. (2013) entraînent un réseau récurrent d’Elman 3-3-1 à 25 paramètres pour construire un modèle en vue de la régulation d’un procédé batch de polymérisation de styrène.

Wong et al. (2018) utilisent un réseau de neurones récurrent pour construire le modèle d’un procédé continu de synthèse pharmaceutique afin de l’exploiter dans le cadre d’une commande prédictive basée sur le modèle.

Chapitre 9

Méthodes en flux

Dans beaucoup d’applications, les données à traiter pour l’analyse ou la construction de modèles ne sont pas disponibles hors-ligne mais sont générées en temps réel. Il peut alors être plus pertinent de les traiter "à la volée" dès qu’elles sont disponibles, plutôt que de les stocker pour les retraiter ensuite. Le problème du traitement temps-réel est très différent selon qu’il s’agit d’analyse de ces données ou de leur modélisation.

Dans le cas d’une analyse de données, l’analyse peut être effectuée en utilisant un modèle pré-entrainé : chaque nouvelle donnée est présentée au modèle, et le calcul de la réponse peut être très rapide. Par exemple, si l’analyse des données issues des capteurs d’un procédé vise à détecter d’éventuelles dérives, le jeu de mesures des capteurs à un instant t peut être soumis en entrée d’un réseau de neurones pré-entrainé, qui fournira quasi-instantanément une réponse permettant de savoir si une dérie est en cours ou non.

Si l’objectif du traitement de données vise, par contre, à affiner un modèle ou entrainer une méthode, alors cette étape peut être beaucoup plus longue en temps de calcul et donc ne pas être compatible avec la fréquence de génération des nouvelles données. Le ré-entrainement complet du modèle, sur la base des données historiques et de la nouvelle donnée, n’est pas possible dans un temps restreint. Des stratégies de stockage partiel et de traitement en batch existent mais ne seront pas détaillées ici. On se focalisera sur des variantes spécifiques de méthodes permettant d’actualiser un modèle pour intégrer la nouvelle informations reçue.

9.1 Construction et actualisation de modèles

9.1.1 Régression multilinéaire récursive

La régression multilinéaire classique peut facilement s’appliquer sur un lot de données historiques pour corréler les sorties expérimentales y(t) (où t désigne l’indice de pas de temps temporel plutôt que l’instant lui-même : 0 ≤ t ≤ n) en fonction des variables x(t)

j (1 ≤ j ≤ p) selon un modèle mathématique de forme :

ymod(t) = f (x(t); a) = m X k=1

akφk(x(t)) = Φ(x(t)).a (9.1)

où le régresseur Φ peut être écrit :

Φ =        φ1(x(0)) φ2(x(0)) · · · φm(x(0)) φ1(x(1)) φ2(x(1)) · · · φm(x(1)) φ1(x(2)) φ2(x(2)) · · · φm(x(2)) .. . ... ... φ1(x(n)) φ2(x(n)) · · · φm(x(n))        (9.2)

Le vecteur des m paramètres du modèle, a, i.e. les coefficients inconnus, peut alors être estimé tel que (voir section 2.2) :

ˆ

a = (ΦTΦ)−1ΦTy (9.3)

Si on souhaite appliquer cette même méthode à chaque fois qu’une nouvelle donnée (x(t+1), y(t+1)) est disponible, il semble nécessaire de rajouter une ligne à la matrice Φ et de recalculer ˆa. Comme chaque nouvelle donnée augmente la taile de Φ, chaque nouvelle donnée demandera plus de stockage et de temps de calcul, et finira par rendre cette logique inappropriée.

Il existe néanmoins une variante récursive de la régression multilinéaire qui permet de ne pas refaire tout le calcul, mais de simplement réactualiser les coefficients ˆa grâce à chaque nouvelle donnée (Walter et Pronzato, 1994).

Pour mettre en place cette méthode, on distingue les caractéristiques du modèle par leur instant t : — A chaque instant t, une donnée (x(t), y(t)) est disponible.

— Le régresseur partiel rT

t correspond à une ligne de la matrice Φt,

— La matrice Φt prend en compte tous les termes du modèle mathématique sur toutes les données entre l’instant 0 et l’instant t. Elle est nécessaire pour les premières données mais n’aura pas besoin d’être conservée à partir d’un nombre de données suffisant.

— On notera ˆatl’estimation des paramètres du modèle obtenue à l’instant t.

— On introduit également une nouvelle matrice Ptqui sera réactualisée avec chaque nouvelle donnée. Au début de l’application de la méthode, on ne dispose pas encore d’assez de données pour effectuer une régression multilinéaire. Il faut attendre d’avoir au moins m données pour démarrer, où m est le nombre de paramètres inconnus du modèle. Dès qu’on atteint un temps t qui a permis d’accumuler m données, on initialise la récurrence :

— On calcule alors Φt,

— On calcule la première estimation des coefficients du modèle ˆat= (ΦT

tΦt)−1ΦT

tytsur la base des données disponibles,

— On initialise la matrice Pt= (ΦT tΦt)−1.

A l’instant t + 1, une nouvelle donnée est disponible (x(t+1), y(t+1)). On peut alors réactualiser ces grandeurs pour faire évoluer le modèle :

— On calcule le régresseur rt+1à partir de x(t+1), — On calcule le gain de correction :

kt+1= Ptrt+1 1 + rT t+1Ptrt+1 (9.4) — On actualise la matrice P : Pt+1= Pt− kt+1rTt+1Pt (9.5)

— On peut alors actualiser les coefficients du modèle : ˆ

Chapitre 10

Outils logiciels

Depuis les années 2010 et l’explosion des succès d’application des méthodes d’intelligence artificielle, notam-ment grâce à l’apprentissage profond, le nombre de logiciels et d’environnenotam-ments de programmation dédiés à ces méthodes s’est également décuplé. Cet élan a été porté par le fait que les principaux développements ont été diffusés en accès libre, permettant leur incorporation rapide dans ces environnements de programmation par les développeurs eux-mêmes. La communauté s’est également structurée et organisée pour utiliser des standards avec l’impulsion forte de GAFAM tels que Google, Apple et Facebook, dont les départements d’intelligence artificielle sont très actifs.

On présentera ci-dessous rapidement les principaux environnements disponibles, puis on se focalisera sur l’environnement MATLAB, qui n’est pas le plus puissant de tous, mais permet une prise en main rapide et une utilisation conviviale.

Documents relatifs