Machine Learning for Geoscientists with Hands-on Coding

Course Description

Machine learning has been around for decades or, depending on your view, centuries. By applying machine learning to our workflows, e.g. petrophysics, rock physics, seismic processing and reservoir characterization, we can bring speed, efficiency and consistency over traditional methods of data analysis. In addition, we can implement a range of machine learning techniques together with optimization algorithms and statistics to identify new patterns and relationships in multi-dimensional datasets. This has the potential to enhance our quantification and strengthen our interpretation of the subsurface; ultimately leading to a more accurate predictive outcome.

In this course we attempt to layout the reality of artificial intelligence, machine learning, deep learning and big data. We cover the basic principles of machine learning and some of the most widely used algorithms. We continue by explaining a workflow for implementing a typical machine learning application in practice and to quality control and interpret the outcomes. Following this we shift focus to Geoscience and show various examples in which machine learning algorithms have been implemented for well- and/or seismic-based applications. Given the hands-on coding nature of this course, trainees will code up a classification and a regression algorithm for lithology/facies and well log prediction correspondingly. Throughout these exercises the trainees will become familiar with the flexibility of coding machine learning in Python (although we do not intend to teach Python in details in this course) as well as familiarization with publicly available Python libraries for machine learning and analytics.

The course is for entry level practitioners and involves hands-on coding, hence having some Python skills is an advantage but not essential.

Course Objectives

  1. Use Python;
  2. Understand various machine learning algorithms, concepts and terminologies;
  3. Learn how to analyse data in big scales;
  4. QC for machine learning applications;
  5. Extend their newly learned knowledge to their day to day practice and implement their own ideas.

Course Outline

  1. Introduction;
  2. Machine Learning Principles;
  3. Machine Learning in Practice;
  4. Exercise 1: ML for Classification;
  5. Exercise 2: ML for Regression;
  6. Exercise 3: Application of ML on Seismic Data.

Participants’ Profile

The course is designed for basically everyone, however, an introductory level of analytics expertise is useful.


There are no prerequisites, but basic Python knowledge can be useful.

About the Instructor

Ehsan Naeini is a Geoscience researcher and practitioner with more than 16 years’ industry experience, particularly in seismic inversion, processing, computational and data science. He has an MSc and PhD in Geophysics (Exploration Seismology) from the University of Tehran and a BSc in Physics from the University of Isfahan. Whilst studying for his PhD, Ehsan was a lecturer in Geophysics at the University of Isfahan. Ehsan has held Chief Product Officer, VP R&D and lead positions in software technology companies while working at the intersection of sales, marketing, client support and service project execution. He also has been invited as Visiting Scholar at Colorado School of Mines. He has taught ML courses to various groupings sponsored by EAGE, AAPG, SEG, Royal Geological Society and at Mines.