Organisation
The management structure of Gaz de France is centered around an Executive Committee and four operational branches Additionally, four key functions are directly linked to the Chief Executive Officer, including strategy, communication, audit and risk management, as well as delegation to the group's senior executives.
Gaz de France aims to deliver energy and services to its customers at competitive prices, establish itself as a leading infrastructure manager in Europe, actively participate in sustainable development, and create value for its shareholders.
Activités
Gaz de France ranks as the world's fourth-largest natural gas buyer and boasts the most diverse supply portfolio in Europe This extensive portfolio enables Gaz de France to provide its customers with competitively priced energy.
Gaz de France provides gas, electricity, and energy services to customers in France and across Europe The company ranks as the third-largest energy service operator in France and the second-largest in Italy.
Etre producteur est le fruit d’une politique volontariste de diversification du portefeuille d’approvisionnements du Groupe Depuis 2005, Gaz de France produit également de l’électricité
• Etre leader du GNL en Europe
Gaz de France is the second-largest player in the liquefied natural gas (LNG) sector, ranking as the second operator for LNG reception in Europe and the fifth-largest importer globally In 2005, LNG accounted for 26% of its operations.
% des approvisionnements de long terme de Gaz de France
Gaz de France investit significativement sur son réseau en France et renforce ses positions en Europe, pour s’imposer comme un gestionnaire d’infrastructures de référence.
Présentation de la Direction Exploration Production
Accueil des stagiaires
The Exploration and Production Division of Gaz de France regularly welcomes numerous interns, creating a warm and supportive environment that facilitates their integration into the team Interns enjoy several benefits within the company, including a standard 35-hour work week, access to an affordable on-site restaurant, and the opportunity to utilize the company’s library and video library.
2 CONTEXTE DU STAGE : PROJET MODEAU
Stockages de gaz en nappe aquifère
Aquifers, typically containing natural water, are utilized for gas storage within the pores of their rock formations These geological structures are often anticlines capped by impermeable rocks such as clays Gas is injected during the summer months for storage and extracted in winter for distribution to customers The production and storage process occurs throughout the year.
In the aquifer, gas is injected above the water level, leading to the extraction of both gas and water when the production well operates This simultaneous production of water disrupts site operations and incurs significant costs during treatment.
Figure 2-1: Stockages de gaz en nappe aquifère
Projet MODEAU
The water produced during the extraction of gas from aquifer storage significantly affects operational costs and the availability of facilities This impact is expected to increase with future operational contexts, including third-party access to storage and irregular production cycles The project's objectives focus on addressing these challenges.
• fournir des outils de prédiction de la production d’eau et de ses impacts en fonction des conditions d’exploitation et de l’état du stockage ;
• fournir des rốgles de conception de la chaợne de l’eau de production (technologie, configuration et dimensionnement)
The MODEAU project focuses on the modeling of groundwater and underground resources It aims to enhance understanding of subsurface environments and wells, contributing to better management and utilization of water resources.
One aspect of the project focuses on predicting water inflows in the form of plugs to wells leading to separators To achieve this, a technique utilizing neural networks has been proposed.
Essais à Cerville
Bouchons
Data analysis from the L.I.T indicates that blockages are primarily caused by the collection reliefs The process occurs when the gas velocity falls below a certain threshold, leading to water accumulation at low points, which results in significant and detectable pressure losses Once the gas velocity increases, even slightly, the accumulated water is suddenly transported to the separator, forming a blockage that is subsequently managed through high-frequency purges This situation poses a risk of triggering safety measures in the separator, potentially disrupting operations.
Figure 2-4 : niveau d’eau dans le séparateur et indication des purges Mise en évidence d’un bouchon d’eau
Données L.I.T et outil de gestion des bouchons d’eau
Following valuable insights from the data analysis provided by the L.I.T., the stochastic forecasting approach for water blockages at the separator has been strengthened A mechanical model of blockage flow, incorporating the buffering effects of low collection points using OLGA software, proves to be more complex In contrast, a methodology based on learning methods appears to be relevant A meeting with the concerned team from the DR confirmed the feasibility of such a project, and the development of a prototype is planned.
L’acquisition et l’analyse des données du L.I.T sont assez lourde Si l’intérêt de cet outil est confirmé, il sera nécessaire d’intégrer l’acquisition et le traitement automatique.
Objectifs du stage
The internship focuses on providing tools for predicting water production, specifically aiming to forecast the occurrence of water blockages in collection and storage networks The work conducted during the internship can be categorized into several key areas.
Analyzing and preprocessing the data provided by the L.I.T is essential for accurate results The data, recorded from multiple wells at the Cerville storage site during the 2006 and 2007 extraction campaigns, requires thorough examination Before utilization, it is crucial to identify and rectify any erroneous data and to fill in any missing information.
Testing various learning methods to forecast water quantities involves utilizing different neural network models to predict water flow blockages It is essential to analyze and evaluate the results of each model to ultimately select the most effective one for accurate predictions.
To establish an effective model for site operations, I will create a prototype based on the results obtained This approach ensures that the selected model is practical and applicable in a real-world setting.
Assessing the relevance of such a tool for operational support is crucial This evaluation focuses on determining its effectiveness in enhancing operational efficiency and decision-making processes By analyzing the tool's capabilities, organizations can better understand its potential impact on their operational activities.
Logiciel utilisé
MATLAB is a commercial software designed for interactive computing, enabling users to perform numerical simulations based on numerical analysis algorithms It is particularly effective for the approximate solution of differential equations, partial differential equations, and linear systems, among other applications.
During my internship, I utilized MATLAB, a powerful software that includes a dedicated toolbox for neural network learning and simulation, known as the Neural Network Toolbox, which I employed to conduct my tests.
Machine learning methods have proven their effectiveness across various fields, successfully addressing numerous industrial challenges This is why the MODEAU project has chosen to leverage this technology to tackle the issue of water blockages.
Parmi les techniques d’apprentissage, les réseaux de neurones ont déjà fait leur preuve et sont largement employés dans les systèmes de contrôle-commande.
Introduction
Neural networks consist of simple elements, or neurons, that operate in parallel and are inspired by the biological nervous system Similar to natural systems, the performance of a neural network is greatly influenced by the connections between these elements A neural network can be trained for specific tasks, such as character recognition, by adjusting the values of the connections, known as weights, between the neurons.
In general, neural network training involves associating a specific target with a given input presented to the network The adjustment of weights occurs through the comparison of the network's response (output) to the target until the output closely matches the target This type of learning, known as supervised learning, utilizes a substantial number of input/output pairs.
Figure 3-1 : principe de l’apprentissage des réseaux de neurones
Neural networks have been trained to perform complex functions across various fields, including pattern recognition, identification, classification, speech, vision, and control systems.
Modèle de neurone et Architectures de réseau
Modèle de neurone
3.2.1.1 Neurone simpleNeurone simpleNeurone simpleNeurone simple
Un neurone avec une entrộe scalaire simple et aucun biais apparaợt du cụtộ gauche ci- dessous :
The scalar input p is transmitted through a connection that amplifies its strength by the scalar weight w, resulting in the product wp In this context, the weighted input wp serves as the sole argument for the transfer function f, which generates the scalar output a Additionally, the neuron on the right side incorporates a scalar bias b.
The bias added to the wp product can be visualized as a shift of the function f to the left by a quantity b Unlike weights, the bias has a constant input of 1, serving as an essential component in the model.
La net entrée n est la somme de l’entrée poids wp et du biais b : b wp n = +
The sum serves as the argument for the transfer function f, typically represented by a step function or a sigmoid function, which takes the input n and produces the output a It is important to note that w and b are the two adjustable scalar parameters of the neuron The core idea behind neural networks is that these parameters can be fine-tuned to enable the network to exhibit the desired behavior Consequently, the network can be trained to perform specific tasks by adjusting the weights or biases, or the network itself may automatically modify these parameters to achieve a particular goal.
3.2.1.2 Fonctions de transfertFonctions de transfertFonctions de transfertFonctions de transfert
Il y a plusieurs types de fonctions de transferts, trois des fonctions les plus utilisées généralement sont montrées ci-dessous :
Fonction Hard-limit Fonction linéaire Fonction Log-Sigmọd
Figure 3-3 : Les fonctions de transfert
3.2.1.3 Neurone avec le vecteur d’entréeNeurone avec le vecteur d’entréeNeurone avec le vecteur d’entréeNeurone avec le vecteur d’entrée
Un neurone avec un vecteur d’entrée simple de R éléments est montré ci-dessous Ici les éléments entrés d’individup 1 , p 2 , , p R sont multipliés par des poids w 1 , 1 , w 1 , 2 , , w 1 , R
Leur somme est simplement WpWpWp, le produit scalaire de la matrice WWp WWW et du vecteur pppp
Où R = nombre d’éléments dans le vecteur d’entrée
Figure 3-4 : Neurone avec le vecteur d’entrée
Le neurone a un biais b, qui est additionné avec les entrées poids pour former ? net entrée n Cette somme, n, est l’argument de la fonction f b p w p w p w n= 1 , 1 1+ 1 , 2 2 + + 1 , R R + 3.2.2
Architectures de réseau
Deux ou plus des neurones montrés ci-dessus peuvent être combinés dans une couche, et un réseau particulier pourrait contenir une ou plusieurs couches
3.2.2.1 Une couche de neuronesUne couche de neuronesUne couche de neuronesUne couche de neurones
Un réseau d’une couche avec R éléments d’entrées et S neurones :
R= nombre d’éléments dans vecteur d’entrée
S= nombre de neurones dans la couche
Figure 3-5 : Une couche de neurones
Dans ce réseau, chaque élément du vecteur d’entrée est relié à chaque neurone entré par la matrice de poids W
The number of inputs to a layer can differ from the number of neurons, meaning that R does not have to equal S A layer is not required to have an equal number of inputs and neurons.
3.2.2.2 Neurone multicoucheNeurone multicoucheNeurone multicoucheNeurone multicouche
Un réseau peut avoir plusieurs couches Chaque couche a une matrice de poids W, un vecteur de biais b, et un vecteur de sortie a
The network illustrated above features input nodes R1, with S1 neurons in the first layer and S2 neurons in the second layer, among others It is typical for different layers to contain varying numbers of neurons Additionally, a constant input of 1 is incorporated as a bias for each neuron.
Each intermediate layer's outputs serve as inputs for the subsequent layer Therefore, layer 2 can be viewed as a single-layer network with inputs S1, neurons S2, and a weight matrix W2 S2xS1 The input to layer 2 is a1, and the output is a2 With all vectors and matrices of layer 2 identified, they can be treated as a single-layer network This methodology can be applied to any layer within the network.
Multilayer networks are highly effective, as demonstrated by a two-layer network where the first layer is sigmoid and the second is linear, capable of approximating any function with a finite number of discontinuities This two-layer network is extensively used in the Backpropagation method.
3.2.2.3 Structures de donnéesStructures de donnéesStructures de donnéesStructures de données
Le format des données d’entrée va affecter l’évolution des poids et des biais des réseaux de neurones lors de leur apprentissage
• Rộseaux statiques (Apprentissage par ôRộseaux statiques (Apprentissage par ô paquetRộseaux statiques (Apprentissage par ôRộseaux statiques (Apprentissage par ôpaquetpaquetpaquet ằ)ằ)ằ)ằ)
A static network is one that lacks feedback connections or delays, allowing input data to be presented in any order without affecting the weight adjustments during the learning phase It is therefore optimal to provide the entire dataset at once during training, a method known as batch training Feedforward networks, in particular, cannot simulate time-dependent processes.
• Rộseaux dynamiqueRộseaux dynamiques (Apprentissage ôRộseaux dynamiqueRộseaux dynamiques (Apprentissage ôs (Apprentissage ôs (Apprentissage ô sộquentielsộquentielsộquentiel ằ)sộquentielằ)ằ)ằ)
To simulate a time-dependent process, it is essential to use a neural network with backward connections The sequence in which the dataset is presented to the neural network becomes crucial, leading to what is known as sequential learning.
3.2.2.4 Modèles d’apprentissagesModèles d’apprentissagesModèles d’apprentissagesModèles d’apprentissages
Cette section décrit deux modèles différents d’apprentissages
L’apprentissage ô par paquet ằ (batch training) du rộseau consiste à ajuster les poids et biais en présentant les vecteurs d’entrée/sortie de tout le jeu de données
Incremental training, also known as stepwise or sequential learning, involves adjusting weights and biases by presenting input/output vector components one at a time This method is frequently referred to as online training or adaptive training.
Neural networks enable the execution of complex tasks across various applications such as classification, identification, character and voice recognition, vision, and control systems These networks often provide straightforward solutions to problems that remain too complex for current computers to solve efficiently due to insufficient computing power or a lack of knowledge.
The supervised learning method is commonly used, but there are also non-supervised learning techniques available for specific neural networks For instance, Hopfield networks can identify data clusters effectively.
Neural networks have a relatively young history, spanning approximately 50 years, with significant applications emerging only in the last two decades due to advancements in computing technology.
Exemple de réseaux de neurones
Exemple de réseaux de neurones
Exemple de réseaux de neurones
Exemple de réseaux de neurones a) Réseau entièrement bouclé (carte topologique) b) Réseaux avec connexions arrières (réseaux récurrents ou feedback) c) Rộseau ô ordonnộ ằ sans connexion arriốre (rộseau feedforward)
Figure 3-7 : Exemples des réseaux de neurones
Le perceptron
Introduction
Rosenblatt developed various versions of the perceptron, with one of the simplest being a single-layer network where weights and biases can be trained to produce a target vector that matches the input vector This learning technique is known as the perceptron learning rule The perceptron is particularly well-suited for simple classification problems, allowing for quick and reliable solutions Additionally, understanding how the perceptron operates lays a solid foundation for grasping more complex networks.
Modèle de neurone
Un neurone de perceptron emploie la fonction de transfert hardlim
R= nombre d’éléments dans le vecteur d’entrée
Figure 3-8 : Un neurone de perceptron
Each input is assigned a specific weight, denoted as w1j, and the total weighted inputs are fed into a hard-limit transfer function, which includes a bias of 1 This hard-limit transfer function outputs either 0 or 1, as illustrated below.
Le fonction de transfert de dur-limite
Figure 3-9 : La fonction de transfert de dur-limite
Le neurone de perceptron produit 1 si net d’entrée dans la fonction de transfert est égale ou supérieure à 0, autrement il produit 0
The hard-limit transfer function enables a perceptron to classify input vectors by partitioning the input space into two distinct regions Specifically, the output will be 0 if the net input is less than 0, and 1 if the net input is 0 or greater.
L’espace d’entrée d’un neurone dur-limite de deux entrées avec les poids
1 =− w w et le biais b=1 est montré ci-dessous :
The decision boundary line L, defined by the equation Wp + b = 0, separates two classification regions and is perpendicular to the weight matrix W, offset by the bias b Input vectors positioned above and to the left of line L yield a net input greater than 0, activating the hard-limit neuron 1, while those below and to the right produce neuron 0 By adjusting the weights and bias values, one can effectively orient and shift the dividing line to achieve the desired classification of the input space.
Bias neurons in a neural network enable the classification line to shift away from the origin, allowing for more effective problem-solving in scenarios where input vector sets are not positioned on opposite sides of the origin By incorporating a bias, the decision boundary can be adjusted, enhancing the model's ability to distinguish between complex data distributions.
Architecture de perceptron
The perceptron network consists of a single layer of S perceptron neurons connected to R inputs through a set of weights denoted as wi,j The indices i and j indicate that wi,j represents the connection from the j-th input to the i-th neuron.
Règles d’apprentissage
A learning rule is defined as a procedure for adjusting the weights and biases of a network, serving as an algorithm for training This rule is applied to train the network to perform specific tasks There are two main types of learning: supervised learning and unsupervised learning.
Dans l’apprentissage supervisé, la règle d’apprentissage est équipée d’ensemble d’exemples de comportements propres de réseaux
In a neural network, an input-output pair consists of an entry \( p_Q \) and its corresponding correct output \( t_Q \) When inputs are fed into the network, the outputs are compared to the target values The learning rule is then applied to adjust the network's weights and biases, aiming to align the outputs more closely with the targets The perceptron learning rule falls under the category of supervised learning.
In unsupervised learning, weights and biases are adjusted solely based on network inputs, without any available targets Most algorithms in this domain perform data clustering, categorizing inputs into a finite number of classes This approach is particularly beneficial for applications such as text classification, customer characterization, and profile discovery.
3.3.5 Règle d’apprentissage de Règle d’apprentissage de perceptron Règle d’apprentissage de Règle d’apprentissage de perceptron perceptron perceptron
Les perceptrons sont formés sur des exemples du comportement désiré Le comportement désiré peut être récapitulé par un ensemble de paires entrée/sorties
In this formula, p represents an input to the network, while t denotes the corresponding target product The goal is to minimize the error e, which is defined as the difference between the response of neuron a and the target vector t.
Il y a trois conditions qui peuvent se produire pour un neurone simple une fois qu’un vecteur d’entrée p est présenté et la réponse du réseau a est calculée :
• Cas 1 Si un vecteur d’entrée est présenté et le rendement du neurone est correct (a t et e = t – a = 0), alors le vecteur de poids w n’est pas changé
In Case 2, when the error rate is 0 and the target is 1 (with a = 0, t = 1, and e = t – a = 1), the input vector is added to the weight vector w This adjustment brings the weight vector closer to the input vector, thereby increasing the likelihood that the input vector will be classified as 1 in the future.
• Cas 3 Si le rendement de neurone est 1 et le cible est 0 (a = 1,t = 0, et e = t – a = -
The input vector p is subtracted from the weight vector w, indicating that the weight vector is farther from the input vector This increases the likelihood that the input vector will be classified as 0 in the future.
La règle d’apprentissage de perceptron peut être écrite plus succinctement en terme d’erreur e = t – a et le changement à faire au vecteur de poids ∆w:
Cas 1 Si e = 0, faire un changement ∆w égal à 0
Cas 2 Si e = 1, faire un changement ∆w égal à pppp T
Cas 3 Si e = -1, faire un changement ∆w égal à - p p p p T
Chacun des trois cas peut alors être écrit avec une expression simple :
Parce que les biais ont la valeur 1, on peut donc écrire e a t−
Règle d’apprentissage de perceptron
La règle d’apprentissage de perceptron peut être récapitulée comme suit :
Algorithme d’apprentissage de ô Backpropagation ằ
Introduction
The Backpropagation learning algorithm was developed by generalizing the Widrow-Hoff learning rule for multilayer neural networks with differentiable transfer functions It utilizes input vectors and corresponding target vectors to train the network effectively.
Neural networks, composed of biases and sigmoid transfer functions, along with an output layer featuring linear transfer functions, have the capability to approximate any function with a finite number of discontinuities.
La règle delta impose toujours
∆ α La difficulté réside toujours dans le calcul de W
The standard backpropagation algorithm is a gradient descent method, similar to the Widrow-Hoff learning rule, where the weights of the network are adjusted in the direction of the negative gradient of the cost function The term "backpropagation" refers to the calculation of the gradient for nonlinear multilayer networks Various techniques exist, each differing in speed, performance, and memory consumption Notably, the Levenberg-Marquardt technique is recognized as a very fast algorithm.
Architecture de neurone
L’architecture de réseau qui est le plus utilisé généralement avec l’algorithme de backpropagation est le réseau multicouche de feedforward
3.4.2.1 Modèle de neurone (logisg, tansig, purelin)Modèle de neurone (logisg, tansig, purelin)Modèle de neurone (logisg, tansig, purelin)Modèle de neurone (logisg, tansig, purelin)
An elementary neuron with R inputs is illustrated below Each input is assigned an appropriate weight, w The weighted sum of the inputs and biases constitutes the input to the transfer function f Neurons can employ various transfer functions to generate their outputs.
R = nombre d’éléments dans le vecteur d’entrée
Figure 3-12 : Modèle de neurone Backpropagation
A multilayer network can utilize transfer functions such as logsig, tansig, or purelin When the final layer of a multilayer network employs sigmoid neurons, the network's outputs are constrained to a limited range In contrast, if the network output is linear, it can take on any value.
Fonction de transfer Tag- Sigmọd
Figure 3-13 : Les fonctions de transfert
3.4.2.2 Réseau feedRéseau feedRéseau feedRéseau feed -forward-forwardforward forward
Un réseau seule couche avec S neurones de logsig, R entrées est montré ci-dessous :
R=nombre d’éléments dans le vecteur d’entrée S= nombre de neurones dans la couche
Figure 3-14 : Réseau feed-forward avec une couche
Feedforward networks typically consist of one or more hidden layers of sigmoid neurons, followed by a linear output layer The use of multilayer neurons with non-linear transfer functions enables the network to capture both non-linear and linear relationships between the input vector and the output vector The linear output layer allows the network to generate values beyond the range of (-1, 1).
De plus, si on veut contraindre les sorties d’un réseau (comme entre 0 et 1), alors la couche de sortie devrait employer une fonction de transfert (comme le logsig)
Un réseau avec deux couches tansig/purelin est présenté ci-dessous :
Figure 3-15 : Réseau feed-forward avec deux couches tansig/purelin
This network can serve as an approximate function in general It is capable of closely approximating any function with a finite number of discontinuities, provided there is a sufficient number of neurons in the hidden layer.
Algorithme de Backpropagation
There are many variations of the backpropagation algorithm, several of which are utilized in this report The simplest implementation involves using the negative gradient to adjust weights and biases in the direction that minimizes the execution function most rapidly An iteration of this algorithm can be expressed as \( k_{x}^{g} = k_{x} - \alpha \).
Où x k est un vecteur des poids et des biais courants, g k est le gradient courant et α k est le taux d’apprentissage (learning rate).
Filtres adaptatifs et formation adaptative
Introduction
ADALINE networks, or Adaptive Linear Neuron Networks, are similar to perceptrons; however, they utilize a linear transfer function instead of a hard-limiting function This distinction allows ADALINE outputs to achieve any value, whereas perceptron outputs are restricted.
0 ou à 1 L’ADALINE et le percpetron peuvent résoudre linéairement des problèmes Cependant, la règle de learning de LMS(least mean squares) est beaucoup plus puissante que la règle de perceptron
Modèle de neurone linéaire
Un neurone linéaire avec R entrés :
R = nombre d’éléments dans le vecteur d’entrée
Figure 3-16 : Modèle de neurone linéaire
Ce réseau a la même structure que le perceptron La seule différence est que le neurone linéaire utilise la fonction de transfert linéaire appelée purelin
Figure 3-17 : La fonction de transfert linéaire
La fonction de transfert linéaire calcule la sortie du neurone par simplement la valeur passée à elle
Architecture de réseau linéaire adaptatif
Le réseau d’ADALINE montré ci-dessous a une couche de S neurones reliés aux R entrés par une matrice avec des poids W
R = nombre d’éléments dans le vecteur d’entrée
S = nombre de neurones dans la couche
Figure 3-18 : L’architecture de réseau linéaire adaptatif
3.5.4 L’algorith L’algorithm L’algorith L’algorith m m me e e LMS (Least e LMS (Least LMS (Least Mean LMS (Least Mean Mean Squared Mean Squared Squared) Squared ) ) )
Comme la règle d’apprentissage de perceptron, LMS est un exemple d’apprentissage supervisé, dans lequel la règle d’apprentissage est équipée d’ensemble d’exemples du comportement désiré de réseau
In this context, the PPPPQ Q Q Q represents an input to the network, while the ttttQ Q Q Q signifies the corresponding target output Each network input is compared to its target output, and the error is determined as the difference between the target performance and the network performance The objective is to minimize the average sum of these errors.
L’algorithme de LMS ajuste les poids et les biais de l’ADALINE afin de réduire au minimum cette erreur moyenne carrée
3.5.5 Filtrage adaptatif (adapt) Filtrage adaptatif (adapt) Filtrage adaptatif (adapt) Filtrage adaptatif (adapt)
The ADALINE network, similar to the perceptron, is limited to solving linearly separable problems However, it has been and continues to be one of the most widely used neural networks One of its primary applications is in adaptive filtering.
3.5.5.1 Tapped Delay lineTapped Delay lineTapped Delay lineTapped Delay line
A new component, the Tapped Delay Line (TDL), is essential for fully utilizing the ADALINE network The TDL, illustrated below, receives the input signal from the left and processes it through N-1 delays The output of the TDL is an N-dimensional vector, generated from the current and previous input signals, among others.
Figure 3-19: Le tapped delay line
3.5.5.2 Filtrage adaptatifFiltrage adaptatifFiltrage adaptatifFiltrage adaptatif
On peut combiner le Tapped Delay line avec un réseau d’ADALINE pour créer le filtre adaptatif présenté ci-dessous
Figure 3-20 : Le modèle du filtrage adaptatif
La sortie du filtre est donnée par
Filtrage adaptatif (adapt)
The ADALINE network, similar to the perceptron, is limited to solving linearly separable problems However, it remains one of the most widely used neural networks today One of its primary applications is in adaptive filtering.
3.5.5.1 Tapped Delay lineTapped Delay lineTapped Delay lineTapped Delay line
A new component, the Tapped Delay Line (TDL), is essential for fully utilizing the ADALINE network The TDL processes the input signal, which enters from the left and passes through N-1 delay stages The output of the TDL is an N-dimensional vector, generated from the current and previous input signals.
Figure 3-19: Le tapped delay line
3.5.5.2 Filtrage adaptatifFiltrage adaptatifFiltrage adaptatifFiltrage adaptatif
On peut combiner le Tapped Delay line avec un réseau d’ADALINE pour créer le filtre adaptatif présenté ci-dessous
Figure 3-20 : Le modèle du filtrage adaptatif
La sortie du filtre est donnée par
Réseau dynamique
Focused Time-Delay Neural Network (newfftd)
Neural networks can be classified into two categories: dynamic and static Static networks, also known as feedforward networks, do not have any feedback elements or delays; they calculate output directly from input through forward propagation In contrast, dynamic networks rely not only on the current input but also on previous inputs, outputs, or states of the network.
Des réseaux dynamiques peuvent également être divisés en deux catégories : ceux qui ont seulement des raccordements en avant, et ceux qui contiennent aussi la rétroaction 3.6.2
3.6.2 Focused T Focused Time Focused T Focused T ime ime ime- - - -Delay Neural Network (newfftd) Delay Neural Network (newfftd) Delay Neural Network (newfftd) Delay Neural Network (newfftd)
The Focused Time-Delay Neural Network (FTDNN) represents the most straightforward dynamic network, characterized by a feedforward structure with a tapped delay line at the input It belongs to a broader category of dynamic networks known as focused networks, where the dynamics are present solely at the input layer of a static multi-layer feedforward network The following illustration depicts a two-layer FTDNN, which is particularly well-suited for time series forecasting.
Figure 3-21 : Le réseau neurone focused Time-Delay
Conclusion
We discussed neural network-based learning systems, which are utilized in various fields such as pattern recognition and control systems In the MODEAU project, we aim to leverage neural networks to predict water influx in the gas production system from aquifers Accurate predictions of water blockages in wells are crucial for effective management.
We will utilize three neural network models for prediction: Backpropagation, Adaptive, and Dynamic networks This article will explore the differences between these models and present the results obtained from each one.
Pré-traitment de données
Avant de commencer la modélisation et l’apprentissage, il a été nécessaire d’effectuer une préparation des données
Data collected during the 2006 and 2007 extraction campaigns at the Cerville storage site have been recorded in text files (txt) For each monitored well, the evolution of four parameters was tracked, including the water level in the separator.
Figure 4-1 : Le graphe de données de gaz, d’eau, de pression, de température
For effective learning, it is essential that the data includes sufficient signatures of the event in question Typically, a water blockage lasts about one minute, so to capture the entire process, I collect data every 7 seconds, resulting in a recording frequency of 7 seconds The data is observed over a six-month period from November 1, 2005, to April 15, 2006 The size of the data files is substantial, containing 1.5 million points and totaling 100 MB Consequently, we faced significant challenges related to memory and computation time.
Figure 4-2 : Graphe de données d’eau Le bouchon
Figure 4-3 : : Graphe de données d’eau Le bouchon - zoom
During the data preprocessing stage, two major issues emerged: missing data and erroneous data To effectively utilize this data for learning purposes, it is essential to identify and correct erroneous entries, as well as to fill in missing data wherever possible.
Figure 4-4 : Des données manquantes et des données erronées
In text files, there are many unnecessary indications, so it's essential to extract only the required data for analysis, specifically water, gas, temperature, and pressure To successfully import this data into MATLAB, the files must be well-structured with column separators such as semicolons.
Il n’est pas possible d’insérer les séparateurs dans les fichiers txt avec les éditeurs de texte ô classiques ằ, parce que la quantitộ des donnộes est trop importante – il y a environ
1500000 enregistrements dans chaque fichier Il m’a donc fallu utiliser un éditeur spécial – Editplus – pour insérer des séparateurs
After importing the data, I stored it in Matlab's internal format (.mat files), which made it easy to identify any missing data On one hand, the data can be visualized using graphs, where the missing values are clearly visible; on the other hand, a simple script can be written to locate the erroneous record or missing data point.
To address missing or erroneous data, I utilized the average of neighboring data points However, this method is ineffective for instances of consecutive missing data or for datasets with significant variations In such cases, I opted to either remove the data for the entire relevant period or to replicate data from another period with similar operating conditions.
Prédiction des événements
Filtre adaptatif
Si on veut utiliser un filtre adaptatif pour prévoir la prochaine valeur d’un processus aléatoire, p(t), on peut employer le réseau montré ci-dessous :
Figure 4-28 : La modèle de la prédiction d’événement du filtre adaptatif
The signal to be predicted, p(t), enters from the left into the tapped delay line The previous two values of p(t) are accessible as outputs from the tapped delay line The network employs adaptation to adjust the weights at each step to minimize the error e(t) When this error is zero, the network's output a(t) matches p(t) precisely, indicating that the network has made an accurate prediction.
Nous allons faire une prédiction de l’eau avec un tapped delay line = 9, et avec une réduction de données 1/10
Ordre Evénement Tapped delay line Erreur
Tableau 4-14 : Résultats de prédiction de 1 à 10 événements après par le filtre adaptatif avec TDL=9
On voit que l’erreur quand on prédit 10 événements après est de 0.4501 ; c’est beaucoup moins que le résultat avec Backpropagation (0.9406) On peut voir le détail sur les graphes ci- dessous :
Figure 4-29 : Prédiction 10 événements après par le filtre adaptatif avec les données réduites 1/10
Figure 4-30 : Prédiction 10 événements après par le filtre adaptatif avec les données réduites 1/10 – zoom1
Figure 4-31 : Prédiction 10 événements après par le filtre adaptatif avec les données réduites 1/10 – zoom2
On trouve que cette méthode peut prédire les petits bouchons mais elle est moins pertinente avec les gros bouchons (elle prédit leur moment d’occurrence mais pas leur intensité)
Le résultat du filtre adaptatif dépend beaucoup de la longueur du tapped delay line On teste différents tapped delay line:
Ordre Evénement Tapped delay line Erreur
Tableau 4-15 : Résultats de prédiction 10 événements après par le filtre adaptatif avec les TDLs différents
La limite pour la longueur du tapped delay line est de 65 Si la valeur excède 65, on ne peut pas faire la prédiction
Figure 4-32 : Prédiction 10 événements après par le filtre adaptatif TDL = 65
Figure 4-33 : Prédiction 10 événements après par le filtre adaptatif TDL = 65 - zoom
The prediction of traffic congestion is accurate with an error margin of e = 0.2949; however, there are some instances of false predictions This is of minor concern, as it encourages a more conservative approach to traffic management.
Avec l’erreur e = 0.2949 pour prédire 10 événements après, on peut prédire plus d’événements utilisant le filtre adaptatif :
Ordre Evénement Tapped delay line Erreur
Tableau 4-16 : Prédiction de 20 à 50 événements après par le filtre adaptatif TDL = 65
50 événements équivant à une heurs, avec l’erreur = 0.3477, cette erreur est acceptable pour prédire un événement dans une heures
Figure 4-34 : Prédiction de 50 événements après par le filtre adaptatif TDL = 65
Figure 4-35: Prédiction de 50 événements après par le filtre adaptatif TDL = 65 – zoom 1
Figure 4-36 : Prédiction de 50 événements après par le filtre adaptatif TDL = 65 – zoom 2
Prédire l’eau avec gaz imposé
Prédire l’eau avec gaz imposé
Prédire l’eau avec gaz imposé
Prédire l’eau avec gaz imposé
In the gas control system, the gas flow rate can be adjusted to regulate the water level To predict the water level based on the set gas flow, an adaptive filter model is employed This model forecasts events occurring one, two, and three hours in advance.
Ordre Evénement Tapped delay line Erreur
Tableau 4-17 : Prédiction de 50 à 150 événements après par le filtre adaptatif avec gaz imposé
Figure 4-37 : Prédiction de 150 événements après par le filtre adaptatif avec gaz imposé – zoom1
Figure 4-38 : Prédiction de 150 événements après par le filtre adaptatif avec gaz imposé – zoom2
I implemented two learning models: Backpropagation and Adaptive Filtering, to predict the occurrence of water blockages The results indicate that the Adaptive Filtering model is the most suitable for this task.
Avec Backpropagation, les résultats sont bons pour la prédiction des événements proches Les résultats ne sont pas bons quand on prédit plusieurs événements après
The Adaptive Filter allows for the prediction of one or more future events This method demonstrates that the error value does not increase significantly as the number of predicted events rises.
While there are various learning models available, my six-month internship limits my ability to test them all Currently, the adaptive filter model for predicting water blockages has proven to be a satisfactory tool, yielding promising results.
[1] Howard Demuth, Mark Beale, Martin Hagan – Neural Network Toolbox – 2007
[2] Magali Claudel – Projet MOEAU : Avancement à novembre 2006 Perspectives pour 2007
[3] Magali Claudel – Projet MOEAU : Sous – parite Données Réelles Sites (D.R.S) : Bilan des essais réalisés sur le puits VA27 à Cerville durant la cmpagne 2005/2006
[4] Christopher M Bishop – Neural Networks for Pattern Recognition – 2004
[5] Society of Retroleum Engineers SPE 87008 – From Real Time Data to Production Optimization – 2004
[6] Mark Last, Abraham Kandel, Horst Bunke - Data mining in time series databases - 2004
[7] Esa Alhoniemi - Pattern recognition – spring 2003
Scripts d’apprentissages avec Backpropagation
- données y4 : données gaz, eau, pression, température
%Description: prédire les différentes événements après avec
%chaque fois prédire les événement après, on essayer de prédire avec
% différences neurones, chaque cas on enregistre le
%résultat et les informations dans un struct cycle.
%cycle(i,j): c'est le cas avec prédire i événement après, avec j neurones
%y4: données gaz, eau, pression, température f;%nombre d'événements après s=4;%nombre de neurones n988; n1P000; n2=n1+1; n3=n-n1-1; for i:f t4.'; p=y4; for l=1:i t(l)=[]; p(:,n+1-l)=[]; end
[pn, ps]=mapminmax(p); tn1=tn(:,1:n1); tn2=tn(:,n2:n-l); t1=t(:,1:n1); t2=t(:,n2:n-l); pn1=pn(:,1:n1);%données d'apprentissages pn2=pn(:,n2:n-l);%données de teste for j=4:1:s cycle(i,j)=struct('net', newff([-1 1;-1 1;-1 1;-1 1], [j, 1], {'purelin','tansig'},'trainlm'),'tr',[],'an1',[],'a1',[],'t1',t1,'x1'
,[],'an2',[],'a2',[],'t2',t2,'x2',[]); cycle(i,j).net.trainParam.showP; cycle(i,j).net.trainParam.epochsP0; cycle(i,j).net.trainParam.lr=0.05; cycle(i,j).net.trainParam.goal-7;
[cycle(i,j).net,cycle(i,j).tr]=train(cycle(i,j).net, pn1,tn1);
%simulation avec données d'apprentissage cycle(i,j).an1=sim(cycle(i,j).net,pn1);
%an1=sim(cycle(i,j).net,pn1); cycle(i,j).a1=mapminmax('reverse',cycle(i,j).an1,ts); cycle(i,j).x1=(1:1:length(cycle(i,j).a1));
%cycle(i,j).graph=plot(cycle(i,j).x1, cycle(i,j).a1, cycle(i,j).x1, t1);
%simulation avec données de teste cycle(i,j).an2=sim(cycle(i,j).net,pn2); cycle(i,j).a2=mapminmax('reverse',cycle(i,j).an2, ts); cycle(i,j).x2=(1:1:length(cycle(i,j).a2));
%cycle(i,j).graph=plot(cycle(i,j).x2, cycle(i,j).a2, cycle(i,j).x2, t2); end end
Script d’apprentissage avec Filtre Adaptatif
- données y4 : données gaz, eau, pression, température
%ce script prédire avec les différences événements après et enregistre dans
%un struct str, i: nombres d'événement après n988; n1P000;%données d'apprentissage n2P001; % données test t= con2seq(eau4.');
[tn,ts]=mapminmax(t); p=con2seq(y4);
[pn,ps]=mapminmax(p); tn1=tn(1:n1); tn2=tn(n2:end); pn1=pn(1:n1); pn2=pn(n2:end);
%dl; lr = 0.01; for i:10:10 delays =(i:i+15);%longue de tapped delay line str=struct('net', newlin([-1 1;-1 1;-1
1],1,delays,lr),'a1',[],'t1',[],'x1',[],'a2',[],'t2',[],'x2',[],'e1',[],'e2 ',[]); pp = pn1(i+16:end); tt = tn1(i+16:end); for k=1:i+15,
Pi{1,k}=pn1{k}; end str.net.adaptParam.passes = 100;
[str.net,str.a1,e]apt(str.net,pp,tt,Pi); str.a1=mapminmax('reverse',str.a1,ts); str.t1=mapminmax('reverse',tt,ts); str.x1=(1:1:length(str.t1));
The code processes the neural network output by reversing the normalization of predicted values (`str.a2`) and target values (`str.t2`) using the `mapminmax` function It calculates the mean squared error for both sets of data, `str.e1` and `str.e2`, after converting them from cell format to matrices The results are then saved to a specified file with a dynamic filename based on the loop index `i`, and the variable `str` is cleared for further use.
%plot(str.x1,cat(2,str.a1{:}),str.x1,cat(2,str.t1{:}));
%plot(str.x2,cat(2,str.a2{:}),str.x2,cat(2,str.t2{:})); end
Script de prévoir niveau d’eau avec gaz proposé
testAdapt_gazConnais.m testAdapt_gazConnais.m testAdapt_gazConnais.m testAdapt_gazConnais.m
- données y4 : données gaz, eau, pression, température(mais on utilise seulement gaz et eau)
%Description: Prédire avec Filtre adaptatif avec gaz connais
PP=y4(1:2,:);%utilise gaz et eau
PP(3,:)=PP(2,:); p=con2seq(PP);
[pn,ps]=mapminmax(p); tn1=tn(1:n1); tn2=tn(n2:end); pn1=pn(1:n1); pn2=pn(n2:end);
%dl; lr = 0.01; for iP:50:150 for l=1:n1
PP(3,l)=PP(3,l+i);%propos gaz connais dans i événement après end delays =(i:i+60); str=struct('net', newlin([-1 1;-1 1;-1
1],1,delays,lr),'a1',[],'t1',[],'x1',[],'a2',[],'t2',[],'x2',[],'e1',[],'e2 ',[]); pp = pn1(i+61:end); tt = tn1(i+61:end); for k=1:i+60,
Pi{1,k}=pn1{k}; end str.net.adaptParam.passes = 100;
[str.net,str.a1,e]apt(str.net,pp,tt,Pi); str.a1=mapminmax('reverse',str.a1,ts); str.t1=mapminmax('reverse',tt,ts); str.x1=(1:1:length(str.t1));
The code snippet processes the input data by updating the variable `tn2` to exclude the first element and then computes the output `a2` using the neural network `str.net` with the input `pn2` and initial conditions `Pi` It reverses the normalization of `a2` and `tn2` using `mapminmax`, while creating an index vector `x2` based on the length of `t2` The mean squared error (MSE) is calculated for the differences between the predicted outputs `a1` and actual targets `t1`, as well as for the outputs `a2` and targets `t2`.