1 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 I. INTRODUCTION E 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. II. EARTHQUAKE FORECASTING 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. III. ARTIFICIAL NEURAL NETWORKS 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 −t 1 e Equation 1 Sigmoid Function Fig. 3 Sigmoid Function Plot IV. APPLYING ARTIFICIAL NEURALS NETWORK TO FORECASTING EARTHQUAKES 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. neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor neighbor Fig. 2 Related Cell Processing X 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. V. RUNNING IN PARALLEL 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. VI. PROCESSING THE DATA 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 routines. 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 day1 day3 ⋮ day 365 0 2.5 0 ⋮ 0 [] Expected results for cell [1,1] 0 4.3 4.3 ⋮ 7.6 [] 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. VII. RESULTS 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. VIII. CONCLUSION 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. REFERENCES [1] [2] [3] [4] [5] [6] 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 www.nonlin-processes-geophys.net/13/585/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.........