Rainfall Forecasting Using Backpropagation Neural Network

Utilization Rainfall already became vital observation object because it affects society life both in rural areas or urban areas. Because parameters to predict rainfall rates is very complex, using physics based model that need many parameters is not a good choice. Using alternative approach like time-series based model is a good alternative. One of the algorithm that widely used to predict future events is Neural Network Backpropagation. On this research we will use Nguyen-Widrow method to initialize weight of Neural Network to reduce training time. The lowest MSE achieved is {0,02815; 0,01686; 0,01934; 0,03196} by using 50 maximum epoch and 3 neurons on hidden layer.


Introduction
Rainfall is a hydrological phenomenon where water droplets fall into the earth on a specific area at a specific time (Oxford Dictionaries 2009). This phenomenon is one of the most difficult hydrological phenomenon to be predicted because of the complex parameters which determine the intensity of the rainfall. Those parameters are the air pressure, temperature, also wind speed and its direction (Sumi et al. 2012;Sedki et al. 2009;Nasseri et al. 2008). Observations of the rainfall rate became vital as rainfall affecting aspects of society life. In rural areas for example, the rainfall will affect crop harvest rate, while lack of rainfall could potentially lead to crop failure, heavy rainfall.
on the other sidecould potentially inflict flooding or landslides. Meanwhile in urban areas, the expert have recorded that rainfall may affect traffic density and drainage systems (Buono et al. 2012;Hung et al. 2008).
Although the rainfall has become a vital observation object and have clear observation parameters, predicting level of rainfall in the future never been an easy task. There have been suggestion to build forecasting model uses physics-based approach, but this proposed model soon faced some problems such as the complexity of parameters to be measured, the results which were not satisfactory, and the unavailability of complete weather data. After faced with this problem, some expert propose a second model that is based on pattern recognition approach. With this approach, the historical p-ISSN: 2540-9433; e-ISSN: 2540-9824 data that have been past will be used to determined future events (Luk et al. 2000;Sumi et al. 2012).
Historical data on rainfall data is a non-linear data that process is stochastic and the problems of non-linear like this one can be solved using several methods. One popular method for forecasting rainfall based on historical data is by implementing artificial intelligence. One of the many artificial intelligence methods are Artificial Neural Network. (Hashim et al. 2015).

Related Works
Rainfall forecasting based on time-series has been researched by Iriany et al.(2015) using 10 days rainfall period and forecast it with GSTAR_SUR Model but this model can only explained about 51.8% of rainfall distribution. Kannan et al.
(2010) mentioned a study by Sen a weather expert from India, that use physics-based approach to predict rainfall in India and managed to produce the forecasting error rate of 4%. But, to achieve this result, Sen uses a variety of complex parameters of which data are El Nino storms, snow thickness in the Eurasian region, the average temperature regions of Western Europe, and many other parameters. Kannan and his team themselves has taken a different approach by using historical data and processed it with Multiple Linear Regression Model. This approach resulted in rainfall levels lower accuracy than the calculation with intelligent algorithms (Kannan et al. 2010). The perfection of GSTAR-SUR by Iriany later is being done by Wahyuni et al. (2016) using Tsukamoto Fuzzy Inference System that proved give better performance than GSTAR-SUR based on RMSE. The identical research is also being done by Hashim et. al (2015) but it focused to apply Neuro-Fuzzy methodology to determine what the most influential parameter determines rainfall. This study successfully selects the many determinants of rainfall into several factors alone so as to simplify observation. One of the method to forecast rainfall timeseries is using Neural Network algorithm. Neural Network algorithm was being modeled based on neural networks of living beings. The algorithm consists of a number of artificial neurons or nerve cells that are connected to one another. This early form of this algorithm is called perceptron and introduced by Rosenblatt in 1957 and continues to be developed to become an algorithm known today. (Hung et al. 2008). This algorithm is a popular approach to solve forecasting problem because its performance to be applied on any kind of historical data. By consider that historical weather data in Indonesia such as average temperature, storm's emergence, and wind speed sometimes incomplete, this algorithm became ideal choice to do rainfall forecasting because only with rainfall rate historical data we can predict rainfall rate in the future (

Methodology
We will use Artificial Neural Network Algorithm with one hidden layer and two bias node to forecast the rainfall. The architecture of this method can be seen on figure 2. The methodology of this research consist on two categories : training networks and forecasting and the process can be seen at Fig. 3.

Fig. 3. Rainfall Forecasting Process
From training dataset, we will get the weight V and weight W. "Weight V" is a weight from input layer to hidden layer while Weight "W" symbolize the weight from hidden layer to output layer. Both of the weight will be used as parameters on feedforward phase.
The data that we will use is 360 days historical rainfall datasets from four areas in Batu Regency, Indonesia : Junggo, Pujon, Ngujung, and Tinjomulyo, and those data will be normalized into range [0.1; 0.9] by equation (1) Where: x = data x' = normalized data minvalue = minimum value of the data max value maxvalue = maximum value of the data

Yohannes (et al. 2015)
The initial wight V from input layer to hidden layer is being initialized using Nguyen-Widrow Algorithm. The steps to implement Nguyen-Widrow Algorithm are : (3) • Update to weight using formula (4) • Make bias from input layer to hidden layer ranged between [-β, β] This research uses classical one-hidden-layer neural network architecture. The ideal number of neurons in hidden layer must fullfill equation (5). (Heaton 2005).
And since we use 4 neurons in input layer, based on equation (5) our hidden layer must consist neurons between 1, 2, or 3 neurons.

Feedforward Phase
There is three phases on Backpropagation Neural Network. The first one is feedforward, backpropgation and lastly update weight.(Brownlee 2011).
After weight initialization using Nguyen-Widrow algorithm that was being described on equation (4). We must calculate all output that become input on hidden layer by implement the following equation : Where : Zinj = activation element 1 = bias between input and hidden layer on index j xi = input value on index = weight between input and hidden layer After that we calculate the value of hidden layer based on equation (6) and Sigmoid activate function by using the following formula : The signal that come out from hidden layer (y ink)is being calculated by : Where : 2 = bias between hidden layer and output layer on index k Xi = input value on index i = weight between hidden layer and output layer And finally we get output value by follow the equation (9) below : After the output we will get error by : where : t = the desired output yk = the calculated output on current iteration By the error on equation (10) we may calculate MSE Where n is number of neurons on input layer.

Backpropagation Phase
While the number of iteration didn't exceed the iteration limit and the MSE didn't touch the desired target error, the backpropagation will continue. On this process we will get value by : The δk value will be used to compute weight change (ΔW)

= × (12)
And also bias2 value change The output layer will send back signal to hidden layer that calculated as : For every unit in hidden layer we calculate a value named 1 to repair weight and bias.
And then we update weight V and bias1.

Update Weight Phase
For output layer we update the weight W and bias2 For input layer we update the weight V and bias1

Result and Discussion
By using dataset consists of 4 historical input data which the example can be seen on Table 1. We will conduct three test. First based on iteration, second based on num-ber of neurons in hidden layer and the last will be conducted based on learning rates. Firstly we will looking for optimum epoch or iteration number. By using iteration number from 10 until 100 with interval 10 in every test we will get result as Table 2 and its graphical interpretation on figure 4.   figure 3, we know that 3 neurons on hidden layer result-ed better MSE than 1 neuron or 2 neurons on hidden layer. Therefore on next test, the learning rate test, the maximum epoch 50 and 3 neurons hidden layer will be applied.
On the last test, we will conduct test of learning rate. We will test the learning rate with range between [0.1;0.9]. The result can be seen in Table 4 and Figure 4.  The learning rate MSE result is varied but the best learning rate is 0,8 because it has the lowest MSE set among all MSE set. We can conclude that with maximum epoch 50 iterations, hidden layer consist of 3 neurons and learning rate 0,6 we will get lowest MSE Set {0,02815; 0,01686; 0,01934; 0,03196}.

Conclusion
The Rainfall Forecast using Neural Network Backpropagation with Nguyen-Widrow Weight Initialization have best MSE Set 0,02815 for Junggo Area, 0,01686 for Pujon Area, 0,01934 for Ngujung Area and 0,03196 for Tinjomulyo Area on learning rate 0,6 and maximum epoch 50. Future research may implement additional method like Hybrid NN-GA to get more ideal weight and get lower MSE.