{"id":19558,"date":"2021-03-10T10:52:41","date_gmt":"2021-03-10T15:52:41","guid":{"rendered":"https:\/\/canarie.machinedev.ca\/?page_id=19558"},"modified":"2024-10-30T09:49:41","modified_gmt":"2024-10-30T13:49:41","slug":"solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique","status":"publish","type":"page","link":"https:\/\/www.canarie.ca\/fr\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/","title":{"rendered":"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique"},"content":{"rendered":"\n<section class=\"section section--banner simple-fade light-blue alignfull\">\n  <div class=\"grid-container text-center\">\n  \t\t  \t\t  \t  <div class=\"large\"><p><span class=\"TextRun SCXW20856404 BCX0\" lang=\"EN-CA\" xml:lang=\"EN-CA\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW20856404 BCX0\">Bien que le programme ATIR <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">n\u2019accepte<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> plus les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">demandes<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> pour les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">ressources<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">en<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">nuage<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\">, <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">vous<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">avez<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">toujours<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">acc\u00e8s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> aux <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">Propulseurs<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et \u00e0 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">leur<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> documentation, qui <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">seront<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">pr\u00e9serv\u00e9s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">b\u00e9n\u00e9ficieront<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> d\u2019un <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">soutien<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">jusqu\u2019au<\/span><strong><span class=\"NormalTextRun SCXW20856404 BCX0\"> 17 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">janvier<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> 2025.<\/span><\/strong><\/span><strong><span class=\"EOP SCXW20856404 BCX0\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/strong><\/p>\n<\/div>\n\t  \t  \t\t  <\/div>\n<\/section>\n\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Apr\u00e8s le 17 janvier 2025:\u00a0<\/h3>\n                    <ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les saisies d\u2019\u00e9cran devraient rester fid\u00e8les, mais au lieu de vous connecter \u00e0 votre compte ATIR dans AWS quand on vous le demande, vous devrez vous connecter \u00e0 un compte AWS personnel.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les scripts CloudFormation d\u2019AWS permettant le d\u00e9ploiement automatique de l\u2019application type devraient rester les m\u00eames et \u00eatre fonctionnels.<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les d\u00e9p\u00f4ts GitHub permettant de t\u00e9l\u00e9charger le code source du Propulseur resteront valables puisque c\u2019est le cr\u00e9ateur du Propulseur (celui qui a \u00e9labor\u00e9 les applications de source ouverte servant d\u2019exemple) qui en est le propri\u00e9taire et en assure le maintien.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n\n<section class=\"section section--text-with-image  alignfull full-width grey \">\n    <div class=\"grid-container simple-fade\">\n    <div class=\"grid-x grid-padding-x align-middle\">\n      <div class=\"cell large-6 medium-order-2\">\n\t\t  \t\t\t  <div class=\"full-width-img\" style=\"background-image: url(https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/02\/BAIR_BP_Builders_bluwave.png); background-size: cover; background-position: center center;\"><\/div>\n\t\t\t  <div class=\"image-mask\"><\/div>\n\t\t        <\/div>\n      <div class=\"cell large-6 medium-order-1 text-left text-cell light\">\n  \t\t                          <div class=\"fade-in-delay text-cell-text\"><h1><strong>Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique<\/strong><\/h1>\n<p>Si ce n\u2019est d\u00e9j\u00e0 fait, lisez le Plan de vol du Propulseur Bluwave-ai,\u00a0<a href=\"https:\/\/www.canarie.ca\/fr\/nuage\/propulseurs\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\">Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique<\/a>, avant de tester la solution type.<\/p>\n<\/div>\n                      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Introduction<\/h3>\n                    <p>La solution que propose ce Propulseur permettra \u00e0 l\u2019utilisateur d\u2019observer et d\u2019\u00e9tudier comment l\u2019<em>apprentissage automatique\u00a0<\/em>r\u00e9sout le probl\u00e8me consistant \u00e0 d\u00e9velopper un mod\u00e8le qui pr\u00e9voit des\u00a0<em>s\u00e9ries chronologiques<\/em>.<\/p>\n<p>Ce document d\u00e9crit la Solution type et les technologies sur lesquelles elle repose. Les participants de l\u2019<em>ATIR\u00a0<\/em>qui souhaitent apprendre comment appliquer l\u2019apprentissage automatique aux r\u00e9seaux neuronaux pourront s\u2019en servir pour d\u00e9terminer comment, quand et pourquoi adopter une telle approche lorsqu\u2019ils \u00e9laborent leur solution.<\/p>\n<p>La documentation s\u2019appuie sur les solutions cr\u00e9\u00e9es par\u00a0<a href=\"https:\/\/www.bluwave-ai.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">BluWave-ai<\/a>\u00a0pour acc\u00e9l\u00e9rer l\u2019adoption des sources d\u2019\u00e9nergie propre par l\u2019intelligence artificielle. Nos solutions de contr\u00f4le et d\u2019op\u00e9ration, optimis\u00e9es gr\u00e2ce aux pr\u00e9visions, accroissent la rentabilit\u00e9 du nombre grandissant de r\u00e9seaux intelligents et de micro-r\u00e9seaux d\u2019\u00e9lectricit\u00e9 recourant \u00e0 des sources d\u2019\u00e9nergie renouvelable, au stockage d\u2019\u00e9nergie et \u00e0 l\u2019alimentation des v\u00e9hicules \u00e9lectriques.<\/p>\n<p>On trouvera la d\u00e9finition des expressions en\u00a0<em>italique\u00a0<\/em>dans le\u00a0glossaire, \u00e0 la fin du document.<\/p>\n<h2>\u00c9nonc\u00e9 du probl\u00e8me<\/h2>\n<p>La pr\u00e9vision de s\u00e9ries chronologiques a pour objectif principal le d\u00e9veloppement de mod\u00e8les qui produiront des valeurs futures plausibles en fonction des observations r\u00e9alis\u00e9es dans le pass\u00e9 gr\u00e2ce \u00e0 la s\u00e9rie chronologique qui en r\u00e9sulte et d\u2019autres s\u00e9ries.<\/p>\n<p>Une s\u00e9rie chronologique est une suite de donn\u00e9es pr\u00e9lev\u00e9es \u00e0 intervalles r\u00e9guliers dans le temps. On y recourt souvent dans de nombreuses applications en statistique, finances, m\u00e9t\u00e9orologie, sciences naturelles et g\u00e9nie. Pr\u00e9voir une s\u00e9rie chronologique autorise la prise de certaines mesures par anticipation, pour ajuster le comportement d\u2019un syst\u00e8me d\u2019apr\u00e8s un \u00e9v\u00e9nement susceptible de se produire dans l\u2019avenir. Les applications possibles ne manquent pas comme l\u2019illustrent les exemples que voici.<\/p>\n<ul>\n<li>Optimisation de l\u2019\u00e9nergie\u00a0: optimisation des r\u00e9seaux intelligents par l\u2019intelligence artificielle, surtout en pr\u00e9sence de sources d\u2019\u00e9nergie renouvelable tr\u00e8s variables et r\u00e9parties comme l\u2019\u00e9nergie \u00e9olienne ou solaire.<\/li>\n<li>Villes intelligentes\u00a0: r\u00e9gulation intelligente de la circulation, d\u00e9tection de probl\u00e8mes de s\u00e9curit\u00e9 et envoi de patrouilles, optimisation des transports en temps r\u00e9el.<\/li>\n<li>S\u00e9curit\u00e9 des r\u00e9seaux et des syst\u00e8mes\u00a0: d\u00e9tection et contr\u00f4le des intrusions.<\/li>\n<li>Gestion des infrastructures\u00a0: d\u00e9tection des d\u00e9faillances au moyen de capteurs, calendriers d\u2019entretien pr\u00e9ventif, optimisation des amortissements et des r\u00e9parations.<\/li>\n<li>Logistique en temps r\u00e9el\u00a0: placement d\u2019articles, location, optimisation du chargement et des exp\u00e9ditions.<\/li>\n<li>M\u00e9decine\u00a0: pr\u00e9vision des futurs risques pour la sant\u00e9 ou du r\u00e9tablissement d\u2019apr\u00e8s des donn\u00e9es chronologiques sur l\u2019\u00e9tat de sant\u00e9.<\/li>\n<\/ul>\n<p>Parmi les techniques de pr\u00e9vision classiques \u00e0 base de s\u00e9ries chronologiques les plus connues, mentionnons l\u2019usage de variables explicatives lin\u00e9aires, l\u2019accentuation des probl\u00e8mes en l\u2019absence d\u2019un volume suffisant de donn\u00e9es pour entra\u00eener le mod\u00e8le et les efforts d\u00e9ploy\u00e9s pour \u00e9tablir les propri\u00e9t\u00e9s de distribution des valeurs r\u00e9siduelles en vue de l\u2019application de tests statistiques. Ces m\u00e9thodes ont toujours une grande utilit\u00e9.<\/p>\n<p>L\u2019affinement de la th\u00e9orie, la plus grande disponibilit\u00e9 des donn\u00e9es, un meilleur arsenal de logiciels et l\u2019exploitation de plus gros ordinateurs ont \u00e9largi le nombre de probl\u00e8mes d\u2019inf\u00e9rence pouvant \u00eatre trait\u00e9s. Il en d\u00e9coule des avantages tangibles.<\/p>\n<ul>\n<li>Traitement de donn\u00e9es plus volumineuses\u00a0: il existe des p\u00e9riodes d\u2019observation plus longues et on peut s\u2019en servir avec des s\u00e9ries \u00e0 chronologie parall\u00e8le pour pr\u00e9voir l\u2019exactitude des s\u00e9ries\u00a0<em>\u00e9tudi\u00e9es.<\/em><\/li>\n<li>Robuste traitement pr\u00e9alable des donn\u00e9es\u00a0: les techniques de pointe en apprentissage automatique peuvent traiter les donn\u00e9es quasi brutes, alors que les mod\u00e8le d\u2019inf\u00e9rence statistique classiques peuvent r\u00e9agir \u00e0 des donn\u00e9es historiques erron\u00e9es, comme les valeurs aberrantes ou absentes. On le doit \u00e0 l\u2019utilisation d\u2019\u00e9l\u00e9ments non lin\u00e9aires plut\u00f4t que lin\u00e9aires et, depuis peu, il est possible de valider des mod\u00e8les complets entre eux.<\/li>\n<li>Apprentissage s\u00e9quentiel\u00a0: les mod\u00e8les comme les r\u00e9seaux neuronaux r\u00e9currents (<em>RNR<\/em>) ont suscit\u00e9 \u00e9norm\u00e9ment d\u2019int\u00e9r\u00eat pour la pr\u00e9vision des s\u00e9ries chronologiques, car ils ont un comportement dynamique dans le temps.<\/li>\n<li>Automatisation\u00a0: les techniques d\u2019apprentissage automatique peuvent \u00eatre automatis\u00e9es tr\u00e8s efficacement, ce qui facilite un apprentissage continu et l\u2019auto-am\u00e9lioration.<\/li>\n<\/ul>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<h2 class=\"wp-block-heading\">Solution type<\/h2>\n\n\n\n<p>La Solution type illustre l\u2019application de l\u2019apprentissage automatique \u00e0 la production et \u00e0 la validation d\u2019un mod\u00e8le capable de pr\u00e9voir des valeurs chronologiques.<\/p>\n\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Aper\u00e7u<\/h3>\n                    <p>La solution pr\u00e9sente deux exemples illustrant la formation d\u2019une variable explicative pour les s\u00e9ries chronologiques\u00a0: le premier pr\u00e9voit la\u00a0<em>charge\u00a0<\/em>(mod\u00e8le\u00a0A) et le second, la vitesse du vent (mod\u00e8le\u00a0B). Nous avons recouru aux donn\u00e9es historiques et m\u00e9t\u00e9orologiques pertinentes dans chaque cas. On commence par t\u00e9l\u00e9charger les donn\u00e9es brutes de la source correspondante. Les donn\u00e9es sont ensuite \u00e9pur\u00e9es pour en accro\u00eetre l\u2019utilit\u00e9. Cela fait, on les affine en supprimant ou modifiant les propri\u00e9t\u00e9s existantes, s\u2019il y a lieu, et en leur en conf\u00e9rant de nouvelles, d\u2019apr\u00e8s leur nature chronologique ou la connaissance du domaine. \u00c0 ce point, si les propri\u00e9t\u00e9s sont toujours trop nombreuses pour qu\u2019on forme efficacement le mod\u00e8le, on proc\u00e8de \u00e0 un choix. Par la suite, les donn\u00e9es sont divis\u00e9es en deux jeux (formation, pr\u00e9vision). Le premier sert \u00e0 entra\u00eener le mod\u00e8le (r\u00e9seau neuronal). Un aspect important de l\u2019entra\u00eenement consiste \u00e0 optimiser les\u00a0<em>hyper-param\u00e8tres<\/em>\u00a0du mod\u00e8le, c\u2019est-\u00e0-dire les param\u00e8tres de l\u2019architecture et de la formation. Enfin, on recourt au mod\u00e8le form\u00e9 pour effectuer des pr\u00e9visions et en v\u00e9rifier l\u2019exactitude avec le deuxi\u00e8me jeu de donn\u00e9es. Bien construit, le mod\u00e8le qui s\u2019appuie sur l\u2019apprentissage automatique produira des valeurs futures plausibles pour la s\u00e9rie chronologique \u00e0 laquelle on s\u2019int\u00e9resse.<\/p>\n<h3>Diagramme<\/h3>\n<p>Le diagramme qui suit montre comment la Solution type est structur\u00e9e.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-19591 aligncenter\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/1-Structure_Blu_wave.jpg\" alt=\"\" width=\"561\" height=\"694\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/1-Structure_Blu_wave.jpg 561w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/1-Structure_Blu_wave-243x300.jpg 243w\" sizes=\"auto, (max-width: 561px) 100vw, 561px\" \/><\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Description des composants<\/h3>\n                    <p>Voici une description succincte des \u00e9l\u00e9ments constituant la solution:<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Composant<\/strong><\/td>\n<td><strong>R\u00e9sum\u00e9<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"50%\"><strong>Source des donn\u00e9es<\/strong><\/td>\n<td>Provenance des donn\u00e9es sur le Web<\/td>\n<\/tr>\n<tr>\n<td><strong>Donn\u00e9es brutes<\/strong><\/td>\n<td>S\u00e9rie chronologique de donn\u00e9es historiques ou m\u00e9t\u00e9orologiques se rapportant au probl\u00e8me, t\u00e9l\u00e9charg\u00e9e d\u2019une source publique<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9puration<\/strong><\/td>\n<td>Script Python employ\u00e9 pour le traitement pr\u00e9alable des donn\u00e9es. Parmi les \u00e9tapes requises, mentionnons l\u2019int\u00e9gration des jeux de donn\u00e9es, la suppression ou l\u2019estimation des donn\u00e9es manquantes et la mise \u00e0 l\u2019\u00e9chelle des valeurs.<\/td>\n<\/tr>\n<tr>\n<td><strong>Donn\u00e9es \u00e9pur\u00e9es<\/strong><\/td>\n<td>Donn\u00e9es r\u00e9sultant de l\u2019\u00e9puration des donn\u00e9es brutes lors de leur traitement pr\u00e9alable<\/td>\n<\/tr>\n<tr>\n<td><strong>Construction<\/strong><\/td>\n<td>Script Python servant \u00e0 b\u00e2tir de nouvelles fonctionnalit\u00e9s, surtout d\u2019apr\u00e8s la nature chronologique des donn\u00e9es<\/td>\n<\/tr>\n<tr>\n<td><strong>Propri\u00e9t\u00e9s<\/strong><\/td>\n<td>Nouvelles donn\u00e9es \u00e9ventuelles reposant sur les donn\u00e9es \u00e9pur\u00e9es, ajout\u00e9es au mod\u00e8le avec les donn\u00e9es et propri\u00e9t\u00e9s existantes<\/td>\n<\/tr>\n<tr>\n<td><strong>S\u00e9lection<\/strong><\/td>\n<td>Script Python ex\u00e9cutant les algorithmes qui s\u00e9lectionnent les propri\u00e9t\u00e9s et produisent un sous-ensemble de donn\u00e9es aux propri\u00e9t\u00e9s \u00e9tablies<\/td>\n<\/tr>\n<tr>\n<td><strong>Donn\u00e9es de formation<\/strong><\/td>\n<td>Donn\u00e9es et propri\u00e9t\u00e9s s\u00e9lectionn\u00e9es qui serviront \u00e0 entra\u00eener le mod\u00e8le et \u00e0 optimiser le r\u00e9seau neuronal<\/td>\n<\/tr>\n<tr>\n<td><strong>Donn\u00e9es pr\u00e9vues<\/strong><\/td>\n<td>Donn\u00e9es et propri\u00e9t\u00e9s s\u00e9lectionn\u00e9es qui serviront \u00e0 formuler les pr\u00e9visions<\/td>\n<\/tr>\n<tr>\n<td><strong>Formation<\/strong><\/td>\n<td>Script Python mettant en place le r\u00e9seau neuronal qui apprendra \u00e0 pr\u00e9dire la quantit\u00e9 \u00e9tudi\u00e9e en fonction des donn\u00e9es saisies. La d\u00e9monstration utilise les biblioth\u00e8ques TensorFlow et Keras.<\/td>\n<\/tr>\n<tr>\n<td><strong>Mod\u00e8le<\/strong><\/td>\n<td>R\u00e9seau neuronal artificiel sous\u00a0<em>formation surveill\u00e9e<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>Pr\u00e9vision<\/strong><\/td>\n<td>Script Python qui pr\u00e9voit la quantit\u00e9 \u00e0 l\u2019\u00e9tude \u00e0 partir des donn\u00e9es pr\u00e9vues, apr\u00e8s entra\u00eenement du r\u00e9seau neuronal<\/td>\n<\/tr>\n<tr>\n<td><strong>Pr\u00e9visions<\/strong><\/td>\n<td>Valeurs futures plausibles de la quantit\u00e9 \u00e0 l\u2019\u00e9tude<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>D\u00e9monstration de la technologie<\/h3>\n                    <p>Cette partie illustre comment g\u00e9n\u00e9rer un mod\u00e8le par apprentissage automatique et le valider avec les r\u00e9seaux de neurones artificiels (<em>RNA<\/em>). Recourir \u00e0 l\u2019apprentissage automatique est s\u00e9duisant, car les mod\u00e8les de ce genre ne cessent d\u2019apprendre \u00e0 partir d\u2019un volume important de donn\u00e9es s\u00e9quentielles et pr\u00e9sentent une grande robustesse \u00e0 la saisie.<\/p>\n<p>La d\u00e9monstration porte sur la formation de deux RNA et sur l\u2019efficacit\u00e9 avec laquelle ils pr\u00e9voient respectivement la charge \u00e9lectrique et la vitesse du vent<em>.<\/em><\/p>\n<h3>D\u00e9ploiement et configuration<\/h3>\n<p>Si vous \u00eates un participant de l\u2019ATIR et avez acc\u00e8s \u00e0 une unit\u00e9 de traitement graphique (GPU), suivez les instructions ci-dessous pour d\u00e9ployer la Solution type. Pour cela, vous devrez toutefois d\u2019abord avoir ouvert un compte dans le nuage OpenStack de l\u2019ATIR ou avoir formul\u00e9 une demande en ce sens, et avoir acc\u00e8s \u00e0 une GPU.<\/p>\n<ol>\n<li>Ouvrez une s\u00e9ance sur la plateforme en nuage OpenStack de l\u2019ATIR.<\/li>\n<li>Allez \u00e0 <strong>Projects &gt; Orchestration &gt; Stacks<\/strong> et cliquez le bouton + <strong>Launch Stack<\/strong><strong>.<\/strong><\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39863\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time01.png\" alt=\"\" width=\"936\" height=\"421\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time01.png 936w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time01-300x135.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time01-768x345.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p>3. Dans la bo\u00eete de dialogue <strong>Select Template<\/strong>, s\u00e9lectionnez URL comme source du mod\u00e8le et collez l\u2019URL:<\/p>\n<p><strong>https:\/\/gpu-boosterpack-heat-templates.s3.ca-central-1.amazonaws.com\/bluwave.yaml<\/strong><\/p>\n<p>dans le champ <strong>Template URL<\/strong>, puis cliquez <strong>Next<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39867\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time02.png\" alt=\"\" width=\"953\" height=\"560\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time02.png 953w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time02-300x176.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time02-768x451.png 768w\" sizes=\"auto, (max-width: 953px) 100vw, 953px\" \/><\/p>\n<p>Dans la bo\u00eete de dialogue <strong>Launch Stack<\/strong>, configurez l\u2019application de la fa\u00e7on indiqu\u00e9e sur l\u2019illustration ci-dessous, comme suit\u00a0:<\/p>\n<ol>\n<li>donnez un nom \u00e0 la pile (<strong>Stack Name<\/strong>);<\/li>\n<li>donnez un mot de passe (<strong>Password<\/strong>) \u00e0 l\u2019utilisateur (n\u2019importe quoi sauf des espaces);<\/li>\n<li>inscrivez \u00ab\u00a0v2.medium\u00a0\u00bb pour le type d\u2019instance (<strong>Flavor\/Instance Type<\/strong>);<\/li>\n<li>inscrivez \u00ab\u00a0Ubuntu 18.04 \u2013 510\u00a0\u00bb pour l\u2019image (<strong>Image<\/strong>).<\/li>\n<\/ol>\n<p>Ensuite, cliquez <strong>Launch.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39869\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time03.png\" alt=\"\" width=\"936\" height=\"693\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time03.png 936w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time03-300x222.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time03-768x569.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p>4. Le d\u00e9ploiement de l\u2019application dure cinq \u00e0 dix minutes. Les scripts post\u00e9rieurs au provisionnement s\u2019ex\u00e9cutent automatiquement et configurent la plateforme en fonction de la Solution type. Miniconda sera install\u00e9, le d\u00e9p\u00f4t contenant le code de la solution sera clon\u00e9 et il y a aura cr\u00e9ation des environnements conda.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-39871 size-full\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time04.png\" alt=\"\" width=\"936\" height=\"419\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time04.png 936w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time04-300x134.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time04-768x344.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p>5. Le d\u00e9ploiement termin\u00e9, vous devrez copier la cl\u00e9 priv\u00e9e pour pouvoir ouvrir une console (SSH) sur la nouvelle instance de la GPU qui vient d\u2019\u00eatre cr\u00e9\u00e9e. Pour obtenir la cl\u00e9 priv\u00e9e, cliquez le nom de la pile (<strong>Stack Name<\/strong>) et parcourez la liste jusqu\u2019au champ private.key. Copiez-en le contenu, dont vous vous servirez pour votre client SSH.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39848\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/movie05.png\" alt=\"\" width=\"878\" height=\"774\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/movie05.png 878w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/movie05-300x264.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/movie05-768x677.png 768w\" sizes=\"auto, (max-width: 878px) 100vw, 878px\" \/><\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Configuration et lancement de l\u2019application<\/h3>\n                    <p>1. Apr\u00e8s le d\u00e9ploiement de l\u2019application, amorcez une console pour l\u2019instance de la GPU avec SSH en utilisant l\u2019adresse IP externe que vous trouverez \u00e0 <strong>Project &gt; Compute &gt; Instances<\/strong>, tel qu\u2019indiqu\u00e9 ci-dessous.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39873\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time05.png\" alt=\"\" width=\"936\" height=\"496\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time05.png 936w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time05-300x159.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time05-768x407.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n<p>Ouvrez une s\u00e9ance SSH avec l\u2019adresse IP et l\u2019identifiant \u00ab ubuntu \u00bb, sans mot de passe.<\/p>\n<p>2. Ex\u00e9cutez les commandes qui suivent pour compl\u00e9ter l\u2019initialisation de Miniconda :<\/p>\n<p><code>\/home\/tsp\/miniconda\/bin\/conda init<br \/>\nexec bash<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39875\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time06.png\" alt=\"\" width=\"527\" height=\"295\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time06.png 527w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time06-300x168.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>La Solution type comporte deux exemples. Le mod\u00e8le A produit une variable explicative sur l\u2019\u00e9nergie dans Keras (avec TensorFlow en arri\u00e8re-plan); le mod\u00e8le B produit une variable explicative m\u00e9t\u00e9orologique avec TensorFlow. Il faut de quinze \u00e0 vingt minutes pour entra\u00eener chaque mod\u00e8le et le valider.<\/p>\n<p>Pour d\u00e9ployer le premier mod\u00e8le, lancez les commandes qui suivent, en attendant que l\u2019ex\u00e9cution soit termin\u00e9e avant de passer \u00e0 la commande suivante.<code>cd \/home\/tsp\/time-series-prediction\/energy-prediction\/<\/code><br \/>\n<code>make all<\/code><\/p>\n<p>La premi\u00e8re commande vous am\u00e8ne au bon r\u00e9pertoire. La deuxi\u00e8me active l\u2019environnement Miniconda de Python appropri\u00e9. La troisi\u00e8me (make all) ex\u00e9cute les scripts Python qui pr\u00e9parent les donn\u00e9es, forment le mod\u00e8le et formulent les pr\u00e9visions. (Dans ce cas, le terme \u00ab\u00a0make\u00a0\u00bb se rapporte \u00e0 l\u2019outil de construction automatique du logiciel.)<\/p>\n<p>Pour d\u00e9ployer le deuxi\u00e8me mod\u00e8le, ex\u00e9cutez les commandes que voici.<\/p>\n<p><code>cd \/home\/tsp\/time-series-prediction\/weather-prediction<\/code><code><br \/>\n<\/code><code>make all<\/code><\/p>\n<p>Vous devriez voir ce qui suit s\u2019afficher \u00e0 l\u2019\u00e9cran pour le mod\u00e8le A.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19574\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_output.png\" alt=\"\" width=\"1033\" height=\"435\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_output.png 1033w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_output-300x126.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_output-1024x431.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_output-768x323.png 768w\" sizes=\"auto, (max-width: 1033px) 100vw, 1033px\" \/><\/p>\n<p><strong>Remarque\u00a0<\/strong>: les valeurs de la fonction de perte varieront en raison des \u00e9l\u00e9ments stochastiques (al\u00e9atoires) du mod\u00e8le<\/p>\n<p>La qualit\u00e9 de l\u2019ajustement de la variable explicative appara\u00eet \u00e0 la fin. Cette valeur est compar\u00e9e \u00e0 la persistance (l\u2019hypoth\u00e8se na\u00efve), qui attribue simplement la valeur pr\u00e9sente \u00e0 la valeur suivante. Cette comparaison sert habituellement \u00e0 v\u00e9rifier la qualit\u00e9 de la s\u00e9rie chronologique. La pr\u00e9cision du mod\u00e8le apr\u00e8s formation se refl\u00e8te dans le faible \u00e9cart-type de la pr\u00e9vision (259,3146), comparativement \u00e0 celui obtenu pour l\u2019hypoth\u00e8se de la persistance (700,5231).<\/p>\n<p class=\"western\"><span lang=\"en-CA\">On trouvera aussi la repr\u00e9sentation visuelle de la qualit\u00e9 de l\u2019ajustement dans\u00a0<code>\/home\/tsp\/time-series-prediction\/energy-prediction\/reports\/figures<\/code>. Au d\u00e9but, toutes les pr\u00e9visions sont trac\u00e9es.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19576\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_macro.png\" alt=\"\" width=\"1500\" height=\"500\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_macro.png 1500w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_macro-300x100.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_macro-1024x341.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_macro-768x256.png 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<p>Pour autoriser un examen plus pr\u00e9cis, le mod\u00e8le trace un sous-ensemble de pr\u00e9visions.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19578\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_micro.png\" alt=\"\" width=\"1500\" height=\"500\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_micro.png 1500w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_micro-300x100.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_micro-1024x341.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_energy_micro-768x256.png 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<p class=\"western\"><span lang=\"en-CA\">Comme vous pouvez le constater, le mod\u00e8le a appris \u00e0 pr\u00e9voir la charge avec une grande pr\u00e9cision.<br \/>\n<\/span><\/p>\n<p>Le mod\u00e8le\u00a0B devrait afficher ce qui suit sur la console.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19580\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_weather_output.png\" alt=\"\" width=\"1033\" height=\"531\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_weather_output.png 1033w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_weather_output-300x154.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_weather_output-1024x526.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_weather_output-768x395.png 768w\" sizes=\"auto, (max-width: 1033px) 100vw, 1033px\" \/><\/p>\n<p>Le mod\u00e8le a appris \u00e0 pr\u00e9voir la vitesse du vent de fa\u00e7on assez pr\u00e9cise et r\u00e9ussi \u00e0 vaincre la persistance\u00a0: l\u2019\u00e9cart-type de la pr\u00e9vision est de 4, 6354, contre 4,9801 pour l\u2019hypoth\u00e8se de la persistance.<\/p>\n<p>On obtient les trac\u00e9s que voici, qu\u2019on retrouvera dans le r\u00e9pertoire\u00a0\u00a0<code>\/home\/tsp\/time-series-prediction\/weather-prediction\/reports\/figures<\/code>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19582\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_macro.png\" alt=\"\" width=\"1500\" height=\"500\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_macro.png 1500w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_macro-300x100.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_macro-1024x341.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_macro-768x256.png 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19584\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_micro.png\" alt=\"\" width=\"1500\" height=\"500\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_micro.png 1500w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_micro-300x100.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_micro-1024x341.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2021\/03\/tsp_wind_micro-768x256.png 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<h3>Cl\u00f4ture<\/h3>\n<p>Quand vous aurez fini d\u2019explorer la Solution type, fermez l\u2019application pour lib\u00e9rer les ressources de la GPU afin que les autres participants de l\u2019ATIR puissent s\u2019en servir.<\/p>\n<p>Allez \u00e0 <strong>Projects &gt; Orchestration &gt; Stacks<\/strong>, s\u00e9lectionnez la pile correspondante et cliquez <strong>Delete Stacks<\/strong>, en haut (voir la figure ci-dessou). De cette fa\u00e7on, vous supprimerez la pile et l\u2019instance de la GPU qui y est associ\u00e9e. Cela devrait vous prendre moins d\u2019une minute.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-39881\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time07.png\" alt=\"\" width=\"936\" height=\"496\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time07.png 936w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time07-300x159.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/time07-768x407.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Consid\u00e9rations d&rsquo;ordre technique<\/h3>\n                    <h3>D\u00e9ploiement<\/h3>\n<p>Pour am\u00e9liorer la performance de la variable explicative, on pourrait \u00e9largir l\u2019espace dans lequel l\u2019ordinateur cherche les hyper-param\u00e8tres. Pour cela, il suffit d\u2019enrichir le dictionnaire qui se trouve dans src\/models\/train_model.py avec d\u2019autres valeurs, comme nous l\u2019illustrons ci-dessous pour le mod\u00e8le A.<\/p>\n<p><code>105\u00a0 \u00a0all_params = {'num_hidden': [75, 35],<\/code><br \/>\n<code>106\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0'learn_rate': [0.001],<\/code><br \/>\n<code>107\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0'lambda': [0, 0.01],<\/code><br \/>\n<code>108\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0'dropout': [0, 0.2],<\/code><br \/>\n<code>109\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0'num_epochs': [10000],<\/code><br \/>\n<code>110\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0'activation': ['relu']}<\/code><\/p>\n<p>\u00c9videmment, \u00e9largir le champ de recherche se fait au d\u00e9triment du temps, puisque le nombre de mod\u00e8les \u00e0 former et \u00e0 \u00e9valuer augmente de fa\u00e7on exponentielle.<\/p>\n<p>Les scripts Python de la Solution type ne fonctionnent que sur les syst\u00e8mes Linux.<\/p>\n<h3>Solutions de rechange<\/h3>\n<p>Une des principales d\u00e9cisions techniques retenues pour la Solution type \u00e9tait d\u2019utiliser un RNA pour l\u2019apprentissage automatique. Pour cela, nous avons cr\u00e9\u00e9 un perceptron multicouche (MLP) par r\u00e9tropropagation. L\u2019id\u00e9e \u00e9tait de chercher la simplicit\u00e9, car le perceptron est la forme la plus rudimentaire du RNA. Le r\u00e9seau de neurones r\u00e9currents (RNR) demeure cependant une bonne solution de rechange, car son comportement dynamique dans le temps se pr\u00eate bien aux s\u00e9ries chronologiques. Les r\u00e9seaux long short-term memory (LSTM) sont de tr\u00e8s puissants RNR et on devrait en envisager l\u2019utilisation pour obtenir une meilleure performance avec les probl\u00e8mes d\u2019une plus grande complexit\u00e9.<\/p>\n<p>L\u2019usage d\u2019un r\u00e9seau de neurones artificiels n\u2019est pas obligatoire. Effectuer des pr\u00e9visions avec des donn\u00e9es chronologiques suppose presque toujours un probl\u00e8me de r\u00e9gression dans lequel la pr\u00e9vision a une valeur r\u00e9elle. D\u2019autres mod\u00e8les comme ceux recourant \u00e0 la r\u00e9gression lin\u00e9aire ou \u00e0 la r\u00e9gression polynomiale peuvent s\u2019av\u00e9rer d\u2019une grande efficacit\u00e9. Vous pourriez donc les envisager si le jeu de donn\u00e9es est relativement modeste ou repose lourdement sur la capacit\u00e9 d\u2019interpr\u00e9ter le mod\u00e8le, car les RNA sont moins efficaces sur ce plan.<\/p>\n<p>C\u00f4t\u00e9 logiciels, le d\u00e9veloppement du mod\u00e8le repose sur les biblioth\u00e8ques Python Keras et TensorFlow. La d\u00e9cision a \u00e9t\u00e9 prise en raison de la popularit\u00e9 de Python et de ces deux biblioth\u00e8ques, mais aussi parce que la combinaison Python + Keras est id\u00e9ale pour les d\u00e9butants. Il existe cependant d\u2019autres biblioth\u00e8ques d\u2019apprentissage automatique en Python (Theano, PyTorch, scikit-learn). En C++, on trouvera CNTK et Caffe, de Microsoft, ou Torch en langage C. Elles sont toutes g\u00e9n\u00e9ralement plus rapides que les applications Python.<\/p>\n<h3>Architecture des donn\u00e9es<\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3>S\u00e9curit\u00e9<\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3>R\u00e9seau<\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3>Mise \u00e0 l\u2019\u00e9chelle<\/h3>\n<p>Une des forces de l\u2019apprentissage profond r\u00e9side dans les nettes am\u00e9liorations observ\u00e9es au niveau de la performance d\u00e8s que le volume de donn\u00e9es utilis\u00e9 pour former le mod\u00e8le augmente. Outre le r\u00e9glage des hyper-param\u00e8tres, la solution de r\u00e9f\u00e9rence s\u2019adaptera au jeu de donn\u00e9es. Bien s\u00fbr, la meilleure performance a un co\u00fbt. Dans le cas pr\u00e9sent, le prix \u00e0 payer ne se r\u00e9sume pas \u00e0 la collecte d\u2019un plus grand nombre de donn\u00e9es, il faudra aussi plus de puissance de calcul et plus de temps.<\/p>\n<p>Pour g\u00e9rer les contraintes computationnelles, on pourrait songer \u00e0 utiliser plusieurs GPU. La solution de r\u00e9f\u00e9rence n\u2019en utilise qu\u2019un, mais Keras et TensorFlow peuvent en ma\u00eetriser plusieurs. \u00c0 mesure que le jeu de donn\u00e9es grandit, ou que le nombre de n\u0153uds du r\u00e9seau neuronal se multiplie, augmenter le nombre de GPU raccourcira la dur\u00e9e de la formation parce que les unit\u00e9s de traitement graphique sont d\u2019une grande efficacit\u00e9 avec les multiplications matricielles.<\/p>\n<h3>Disponibilit\u00e9<\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3><span lang=\"EN-CA\">Interface utilisateur<\/span><\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3>API<\/h3>\n<p>Ne s\u2019applique pas \u00e0 ce Propulseur<\/p>\n<h3>Co\u00fbt<\/h3>\n<p>Rassembler assez de puissance de calcul figure parmi les principaux co\u00fbts associ\u00e9s \u00e0 la formation d\u2019un r\u00e9seau neuronal. L\u2019entra\u00eenement du mod\u00e8le devient beaucoup plus on\u00e9reux \u00e0 mesure que le volume de donn\u00e9es augmente ou que le r\u00e9seau grandit. Vous devrez aussi d\u00e9terminer si les calculs se feront en nuage ou sur les lieux.<\/p>\n<p>Le co\u00fbt des donn\u00e9es requises pour former le RNA est un autre aspect \u00e0 prendre en consid\u00e9ration. De nos jours, la puissance des mod\u00e8les d\u2019apprentissage automatique vient essentiellement des donn\u00e9es avec lesquelles on les entra\u00eene, pas de la fa\u00e7on dont on met en place le mod\u00e8le. Souvent, c\u2019est le prix des donn\u00e9es qui emp\u00eache le d\u00e9veloppement de mod\u00e8les intelligents.<\/p>\n<h3>Licence d\u2019exploitation<\/h3>\n<p>Les codes BluWave-ai sont couverts par la licence MIT.<\/p>\n<p>Les donn\u00e9es du mod\u00e8le\u00a0A viennent d\u2019ISO New England et sont disponibles aux conditions d\u00e9crites sur le site\u00a0<a href=\"https:\/\/www.iso-ne.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.iso-ne.com<\/a>. Celles du mod\u00e8le\u00a0B viennent du gouvernement du Canada.<\/p>\n<h3>Code source<\/h3>\n<p>On trouvera le code source de la Solution type dans le<a href=\"https:\/\/github.com\/DAIR-ATIR-Code\/Bluwave-AI---Time-Series-Prediction\"> d\u00e9p\u00f4t BluWave-ai<\/a>.<\/p>\n<h3>Glossaire<\/h3>\n<p>Expressions et abr\u00e9viations employ\u00e9es dans ce document et le Propulseur<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Expression<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Apprentissage automatique<\/strong><\/td>\n<td>Cadre servant \u00e0 produire un mod\u00e8le sans programmation explicite<\/td>\n<\/tr>\n<tr>\n<td><strong>Apprentissage profond<\/strong><\/td>\n<td>Apprentissage automatique avec des r\u00e9seaux de neurones artificiels<\/td>\n<\/tr>\n<tr>\n<td><strong>Apprentissage supervis\u00e9<\/strong><\/td>\n<td>Apprentissage automatique avec donn\u00e9es de formation \u00e9tiquet\u00e9es<\/td>\n<\/tr>\n<tr>\n<td><strong>ATIR<\/strong><\/td>\n<td>Acc\u00e9l\u00e9rateur technologique pour l\u2019innovation et la recherche. Quand la version n\u2019est pas pr\u00e9cis\u00e9e, correspond \u00e0 la plateforme pilote pour les Propulseurs (nuage hybride combinant nuage public et nuage priv\u00e9, plut\u00f4t que le service priv\u00e9 d\u2019infonuagique habituel de l\u2019ATIR)<\/td>\n<\/tr>\n<tr>\n<td><strong>Charge<\/strong><\/td>\n<td>\u00c9lectricit\u00e9 consomm\u00e9e par un composant<\/td>\n<\/tr>\n<tr>\n<td><strong>Cible, quantit\u00e9 \u00e9tudi\u00e9e<\/strong><\/td>\n<td>Quantit\u00e9 qu\u2019on d\u00e9sire pr\u00e9voir<\/td>\n<\/tr>\n<tr>\n<td><strong>GPU<\/strong><\/td>\n<td>Unit\u00e9 de traitement graphique<\/td>\n<\/tr>\n<tr>\n<td><strong>Hyper-param\u00e8tre<\/strong><\/td>\n<td>Param\u00e8tre \u00e9tabli avant la formation du mod\u00e8le, plut\u00f4t que d\u00e9riv\u00e9 durant la formation<\/td>\n<\/tr>\n<tr>\n<td><strong>LSTM<\/strong><\/td>\n<td><em>Long Short-Term Memory<\/em>\u00a0(type de r\u00e9seau neuronal)<\/td>\n<\/tr>\n<tr>\n<td><strong>MLP<\/strong><\/td>\n<td>Perceptron multicouche<\/td>\n<\/tr>\n<tr>\n<td><strong>Mod\u00e8le de r\u00e9gression<\/strong><\/td>\n<td>Mod\u00e8le produisant une valeur num\u00e9rique<\/td>\n<\/tr>\n<tr>\n<td><strong>Perceptron<\/strong><\/td>\n<td>R\u00e9seau de neurones \u00e0 une couche<\/td>\n<\/tr>\n<tr>\n<td><strong>R\u00e9tropropagation<\/strong><\/td>\n<td>Technique utilis\u00e9e pour ajuster les facteurs de pond\u00e9ration d\u2019un r\u00e9seau neuronal<\/td>\n<\/tr>\n<tr>\n<td><strong>RNA<\/strong><\/td>\n<td>R\u00e9seau de neurones artificiels<\/td>\n<\/tr>\n<tr>\n<td><strong>RNR<\/strong><\/td>\n<td>R\u00e9seau de neurones r\u00e9currents<\/td>\n<\/tr>\n<tr>\n<td><strong>S\u00e9rie chronologique<\/strong><\/td>\n<td>Donn\u00e9es s\u00e9quentielles pr\u00e9lev\u00e9es \u00e0 intervalles r\u00e9guliers dans le temps<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n                    <div class=\"button-group\">\n              \t\t\t\t  \t<a class=\"button-border-blue\" href=\"https:\/\/www.canarie.ca\/fr\/nuage\/propulseurs\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\" target=\"_self\">Plan de vol <\/a>\n    \t\t\t    \t\t\t    \t\t\t<\/div>\n    \t\t\t        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Solution type La Solution type illustre l\u2019application de l\u2019apprentissage automatique \u00e0 la production et \u00e0 la validation d\u2019un mod\u00e8le capable [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":7676,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-19558","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE\" \/>\n<meta property=\"og:description\" content=\"Solution type La Solution type illustre l\u2019application de l\u2019apprentissage automatique \u00e0 la production et \u00e0 la validation d\u2019un mod\u00e8le capable [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/\" \/>\n<meta property=\"og:site_name\" content=\"CANARIE\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-30T13:49:41+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\\\/\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\\\/\",\"name\":\"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\"},\"datePublished\":\"2021-03-10T15:52:41+00:00\",\"dateModified\":\"2024-10-30T13:49:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le nuage de l&#8217;ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=44361\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Catalogue des Propulseurs de l\u2019ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=6557\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Plan de vol : pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/prevision-de-series-chronologiques-par-apprentissage-automatique\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/\",\"name\":\"CANARIE\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.canarie.ca\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/","og_locale":"fr_FR","og_type":"article","og_title":"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE","og_description":"Solution type La Solution type illustre l\u2019application de l\u2019apprentissage automatique \u00e0 la production et \u00e0 la validation d\u2019un mod\u00e8le capable [&hellip;]","og_url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/","og_site_name":"CANARIE","article_modified_time":"2024-10-30T13:49:41+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/","url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/","name":"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique - CANARIE","isPartOf":{"@id":"https:\/\/www.canarie.ca\/#website"},"datePublished":"2021-03-10T15:52:41+00:00","dateModified":"2024-10-30T13:49:41+00:00","breadcrumb":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/solution-type-prevision-de-series-chronologiques-par-apprentissage-automatique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.canarie.ca\/fr\/"},{"@type":"ListItem","position":2,"name":"Le nuage de l&#8217;ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=44361"},{"@type":"ListItem","position":3,"name":"Catalogue des Propulseurs de l\u2019ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=6557"},{"@type":"ListItem","position":4,"name":"Plan de vol : pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique","item":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/prevision-de-series-chronologiques-par-apprentissage-automatique\/"},{"@type":"ListItem","position":5,"name":"Solution type : Pr\u00e9vision de s\u00e9ries chronologiques par apprentissage automatique"}]},{"@type":"WebSite","@id":"https:\/\/www.canarie.ca\/#website","url":"https:\/\/www.canarie.ca\/","name":"CANARIE","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.canarie.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/19558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/comments?post=19558"}],"version-history":[{"count":3,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/19558\/revisions"}],"predecessor-version":[{"id":44505,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/19558\/revisions\/44505"}],"up":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/7676"}],"wp:attachment":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/media?parent=19558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}