Amar Merabti · carnet EN
← Retour au carnet

Exp. 06 · 2023–2024 · ENAGEO, groupe Sonatrach · stage de licence puis CDD

Prédire les mesures d'un puits là où elles manquent

Peut-on reconstruire une mesure de puits là où elle manque, et la prédire dans un autre puits ?

0,52 → 0,82
de corrélation d'un puits à l'autre, du stage (MLP) au CDD (LSTM)
21,4 → 15,8
de MAE d'un puits à l'autre (RMSE 27,6 → 20,2) : 20 à 30 % d'erreur en moins
12,7
de MAE pour combler les trous d'une série dans un même puits (RMSE 15,2)
5
algorithmes accessibles aux géophysiciens, sans écrire de code
01 · Le contexte

Des mesures coûteuses, et souvent incomplètes

ENAGEO est l'entreprise nationale de géophysique algérienne, filiale du groupe Sonatrach. Pour connaître le sous-sol, on mesure des caractéristiques de la roche, comme l'élasticité ou la densité, le long d'un puits : l'appareil de mesure est placé à une profondeur, prend sa mesure, puis descend plus bas, à intervalles réguliers. D'autres caractéristiques sont obtenues par des méthodes sismiques. Chaque caractéristique forme ainsi une série indexée par la profondeur : une diagraphie.

Ces séries sont souvent incomplètes : appareil défaillant, données perdues pendant le transfert ou supprimées. Et surtout, ces mesures coûtent très cher. D'où deux questions : peut-on reconstruire une série là où elle manque ? Et peut-on la prédire dans un autre puits, à partir d'un puits déjà mesuré ?

02 · Le stage

Février – juin 2023 : une première généralisation d'un puits à l'autre

Pour mon mémoire de licence, j'ai travaillé sur les diagraphies de 3 puits, en évaluant les modèles sur un puits entier, jamais vu pendant l'entraînement :

ModèleCorrélation (r)
Régression linéaire0,15
SVM à noyau RBF0,29
MLP 100/50, ReLU0,52 (MAE 21,4, RMSE 27,6)

J'ai aussi livré une application de bureau pour que les géophysiciens puissent entraîner des modèles et compléter leurs mesures sans écrire de code :

Interface Java Swing
 ├─ connexion : comptes MySQL, rôles administrateur et utilisateur
 ├─ entraînement : import CSV → grille éditable → python train.py <algorithme>
 └─ prédiction   : import CSV avec trous → python predict.py <algorithme> → tableau complété → export

Cinq algorithmes sont proposés : régression linéaire, SVM, MLP, forêt aléatoire et gradient boosting. Java et Python échangent des fichiers CSV, et les calculs tournent en arrière-plan sans figer l'interface.

03 · Le CDD

Juillet 2023 – juillet 2024 : les diagraphies comme des séries temporelles

J'ai ensuite travaillé chez ENAGEO en CDD de développeur IA, à temps partiel, en parallèle de mon M1 SII. L'idée : traiter chaque série indexée par la profondeur comme une série temporelle, avec sa tendance, sa saisonnalité et ses cycles, et utiliser des modèles de deep learning, principalement des LSTM et des RNN. Deux axes :

1. Combler les trous d'une série dans un même puits. Le modèle apprend sur les parties mesurées d'une série et prédit ses valeurs manquantes. Avec les LSTM, j'obtiens une MAE de 12,7 et une RMSE de 15,2, avec une architecture proche de celle de mon projet d'imputation de séries temporelles.

2. Prédire une série d'un puits à l'autre. Dans la continuité du stage, un LSTM est entraîné sur la série d'un puits, puis prédit la même caractéristique dans un autre puits. Par rapport au stage, la corrélation passe de 0,52 à 0,82, la MAE de 21,4 à 15,8 et la RMSE de 27,6 à 20,2 : 20 à 30 % d'erreur en moins.

Les diagraphies de l'entreprise sont confidentielles, tout comme les courbes produites avec son logiciel interne. Le dépôt public contient l'application du stage et des diagraphies synthétiques au même format, pour la tester.