Artificial Neural Network Applied to Earthquake Forecasting with Parallel P ROCESSING

Artificial Neural Network Applied to Earthquake
Forecasting with Parallel PROCESSING
Charles E. Houchins
Walkersville, MD 21793 USA
Earthquakes are a fact of life in many parts of the world. The Earth is a dynamic body that is constantly moving and reshaping itself
over the eons. These earthquakes can and do cause loss of live and extensive property damage every year. To help minimize the loss of
life and property damage, we need to be able to provide some means of forecasting when and where these earthquakes are going to
occur. The forecasting of earthquakes is difficult and a time consuming activity requiring massive computer resources for accurate
results. With parallel programming techniques and artificial intelligence algorithms we can provide rudimentary forecasting abilities
by applying historical earthquake data.
Index Terms—Earthquake Forecasting, Neural Networks, Parallel Processing, GPU, Amateur Seismologist
arthquakes are most often caused by the movement of faults in the earths crust and volcanic activity. A majority of these
earthquakes occur along the earths tectonic plate boundaries. Each year earthquakes cause property damage and loss of
life. As we have recently seen with the earthquakes on Haiti and Chile the loss of life can be tremendous along with the
devastation to property. Earthquake prediction is a very difficult task. The complexities of the rock layers and the movement of
the fault lines and tectonic plates make predictions an almost impossible task today. So the best that we can hope for today is the
ability to forecast earthquakes with some accuracy.
There are many methods used to forecast earthquakes. Some apply complex plate tectonic models while others use statistical
models derived from historical data. Many models rely on the observation that a major earthquake is often preceded by many
small earthquakes[1]. This observation can be used in multiple ways to derive additional statistical methods of forecasting
earthquakes[2]. The method that we will examine is to use historical data to train multiple neural networks and then use those
networks to forecast possible future earthquakes.
Artificial Neural Networks (ANN) are often used to derive meaning from complicated data sets. They can often find patterns
or trend within data sets that are too difficult to noticed by either humans or other computer techniques[4]. A properly trained
neural network can provide useful insight into very complex problems
The ANN is analogous to the neurons in the human brain. An artificial neural network is made up of 3 or more layers, an input
layer, one or more hidden layers, and an output layer. As a network is given training data, it adjusts it's neuron functions to match
the correct output provided by the training data. As more training data is supplied to the network it's accuracy increases. Below
is a simple diagram of a neural network with 4 inputs and 1 output.
Fig. 1 Sample Neural Network
Often the output of the neurons are expressed as either 0 or 1, but for our purposes we need the output to be continuous over
the range of 0 to 1. So, we will use a sigmoid function neuron for our neural network.
P t=
1 e
Equation 1 Sigmoid Function
Fig. 3 Sigmoid Function Plot
Neural networks have seen limited use in earthquake forecasting. We found one paper that used neural networks for predicting
reservoir induced seismicity[3].
The United States Geological Survey(USGS) has detailed earthquake data back to 1973 that can be used to train our neural
network. (Earlier earthquake data seems to only include the major earthquakes and is missing the pre-shock and aftershock data
that we need to train the neural network.) Using this historical data for earthquakes, we will use it to train a neural network to
make a forecast of the possibility of earthquakes in the near future. We would first need to prepare this historical data by
splitting it into training data and validation data. The last 2 years of the data can be reserved for validation with the remainder
used for training. The training data set would need to be preprocesses to have an additional column added to the end of each row
to indicate the magnitude of the strongest earthquake that will occur within the next 30 days. Next, if we take the area of interest
(possibly the whole globe) and divide it up into squares or cells, we can apply the artificial neural network with historical
earthquake data to each of these cells and their neighbors at least two cells away as diagramed below. Each cell will have it's
own neural network since each cell has different geological properties. Often pre-shock earthquakes will occur several hundred
miles down the fault line away from the future epicenter of the major earthquake this is why we will need to include at least two
neighbor cells radius from the cell being processed, most likely the radius will be larger.
Fig. 2 Related Cell Processing
We would then repeat this for all the cells over the entire area of interest or the entire globe if it is feasible. Since the preshocks occur some time before the major earthquake we will look back at the data from time t0 to the current processing time of t
and apply all that historical data to the neural network for those cells. The size of t0 will be determined thru validation testing of
the networks. Initially t0 will be set to 365 days and then adjusted from there. The expected output of the neural network will be
the magnitude of the largest earthquake that that is forecasted to occur within the next 30 days of t.
If we use longitude and latitude of one degree for our cells that would give us 129,600 cells and the same number of neural
networks and each of those cells would need to have it's neural network calculated for each iteration of the training and
forecasting runs. Since thousands of cells and networks would need to be trained, the best approach would be to run the
earthquake forecasting software on multiple CPUs. But trying to use hundreds of CPUs would be cost prohibitive for many
researchers. In recent years the GPU has come to the forefront of computing as a viable means of achieving supercomputer
processing levels without breaking the bank. Using MPI or some similar message passing library, is also a possible solution since
we could run the software on multiple nodes to take advantage of more computer resources to give us reasonable run times for
training the neural networks.
For our project we will use the GPU method to achieve our performance goals. Todays GPU's have more cores than the CPU's
do. Where the CPU has 4 to 8 cores, the GPU has 16 to 448 cores. With the Compute Unified Device Architecture (CUDA)
toolkit, we have a means to access this computing power on NVIDIA's graphics cards that have a supported GPU.
We would have each core of the GPU run a proportion of the cells, dividing up the cell equally. As we get high in the latitudes
of the globe, the square area reduces so we would need to adjust the size of the cell at those higher latitudes to keep the area
similar to the area at the equator. This will decrease the number of cells, but it's still very large.
The data storage should not be a problem. The data from USGS for the detailed recent earthquake data is about 25 Megabytes
in size. The neuron function coefficients will also need to be stored and returned back for storage so that the results of the
training will be available for future forecasting.
For our project we will be using the Python scripting language with the Cudamat package. It is an easy language to write in
and the Cudamat package provides a simple interface into the CUDA API along with AI learning routines and matrix operation
At first will will need to take the data from USGS and extract all the earthquakes for a given longitude and latitude and place
the magnitude of the earthquake in an matrix where the first elements date is the epoch of January 1, 1973. (This is the start of
the detailed data from USGS.) Each element of this matrix will represent one day. There will be a corresponding target matrix
that will provide the solution for the neural network to learn. This target value will be the strongest earthquake that will occur
within the next 30 days. This will be repeated for the other 24 cells that surround the cell being processed. The first 365 entries
for each cell will then be fed into the neural network for learning.
Earthquake data for cell[1,1]
day 0
day 365
Expected results for cell [1,1]
The matrices for the 25 cell that will be used for processing will be concatenated together to form a 9125 x 1 matrix. This
matrix will then be applied to the neural network. These 25 cells will continue to be used, the first day will be dropped off and
the next day (366) will be added to the matrix. This new matrix will then be applied to the neural network. This cycle will be
repeated until all the data is processed for this cell.
None yet. There will be information about the errors in the training and validation data sets. Tables will be added here for this
error information. We will try to add a graphics map showing forecast results from the ANN.
Earthquakes are a problem that won't go away, so we need to adapt and plan for future earthquakes. To minimize the loss of
life and property damage, we have to provide some means of forecasting when earthquakes are going to occur. With modern
multi-core processor computers and gigabit networks, we can utilize these resources to provide reasonably accurate earthquake
forecasts for people living in areas that are at high risks for earthquakes.
Agne`s Helmstetter, Yan Y. Kagan, and David D. Jackson, “Comparison of Short-Term and Time-Independent Earthquake Forecast Models for Southern
California,” Bulletin of the Seismological Society of America, Vol. 96, No. 1, pp. 90–106, February 2006, doi: 10.1785/0120050067.
J. R. Holliday, J. B. Rundle K. F. Tiampo, and D. L. Turcotte, “Using earthquake intensities to forecast earthquake occurrence times”. Nonlin. Processes
Geophys., 13, 585–593, 2006
WANG Qiuliang,YAO Yunsheng, XIA Jinwu,ZHU Wenjing , WANG Dun, LI Jinggang,ZHANG Lifen , “Study On Methods Of Reservoir Induced
Seismicity Prediction Of The Three Gorges Reservoir” The 14th World Conference on Earthquake Engineering October 12-17, 2008, Beijing, China .
Tom M. Mitchell, Machine Learning, McGraw-Hill., Boston, MA, 1997.
Calvin Lin and Lawrence Snyder, Principles of Parallel Programming, Addison Wesley, Boston, MA 2009.
More references are needed.........