Upload
phamcaothang
View
220
Download
0
Embed Size (px)
Citation preview
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
1/37
Case project report 2013
Title: Artificial Neural Network and Fuzzy Logic inforecasting short-term Temperature
Candidates: Chao Xi (120295)Erihe (120293)
Telemark University CollegeFaculty of Technology TFver.0.8
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
2/37
2
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
3/37
3
Contents
Preface .......................................................................................................................................................... 5
1 Introduction ............................................................................................................................................... 6
1.1Background .......................................................................................................................................... 6
1.2 weather station ................................................................................................................................... 6
1.3 Problem definition and Task overview ............................................................................................... 7
2 Artificial Neural Networks .......................................................................................................................... 7
2.1 Theory part: Artificial Neural Networks algorithm and model ........................................................... 7
2.1.1 BP neural networks ...................................................................................................................... 7
2.1.2 Building a temperature predicting neural network ..................................................................... 9
2.2 Practice part ...................................................................................................................................... 10
2.2.1 Data preprocessing .................................................................................................................... 10
2.2.2 Training the Neural Network ..................................................................................................... 10
3 Fuzzy logic ................................................................................................................................................ 21
3.1 Introduction ...................................................................................................................................... 21
3.2Fuzzy logic design ............................................................................................................................... 21
4 Conclusion ................................................................................................................................................ 33
Reference .................................................................................................................................................... 34
Appendix A .................................................................................................................................................. 35
Appendix B .................................................................................................................................................. 36
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
4/37
4
List of figures
Figure 1: structure of weather station. ......................................................................................................... 6
Figure 2: system model with four inputs (Wind flow, Relative Humidity, and Temperature) and oneoutput (temperature). ................................................................................................................................ 11
Figure 3: A two-layer neural network. ........................................................................................................ 12
Figure 4: A simulation result of changing error as different hidden neurons chosen for training network
(1-(10 5), 4-(10 10), 3-(10 20), 4-(20 20)). ................................................................................................... 13
Figure 5: Training performance as different hidden neurons chose for training network (1-(10 5), 4-(10
10), 3-(10 20), 4-(20 20)). ............................................................................................................................ 14
Figure 6: A simulation result of curve fitting as different hidden neurons chose for training network (1-
(10 5), 4-(10 10), 3-(10 20), 4-(20 20)). ....................................................................................................... 15
Figure 7: A simulation result of curve fitting as different days or hidden neurons chose for training
network. ...................................................................................................................................................... 17Figure 8: the regression plots in different options. .................................................................................... 18
Figure 9: changing curve of error in different options ................................................................................ 19
Figure 10: Training performance in different options ................................................................................ 20
Figure 11: Example of historical data from www.yr.no. ............................................................................. 22
Figure 12: Structure of Fuzzy system. ......................................................................................................... 24
Figure 13: Membership function of input variable Min.......................................................................... 25
Figure 14: Membership function of input variable Average. .................................................................. 25
Figure 15: Membership function of input variable Max.......................................................................... 26
Figure 16: Membership function of output variable Temperature......................................................... 26
Figure 17: Surface viewer............................................................................................................................ 29
Figure 18: Rule viewer. ............................................................................................................................... 30
Figure 19: temperature in 17th January and 18th January from www.yr.no. ............................................ 31
Figure 20: result of prediction. ................................................................................................................... 31
Figure 21: temperature in 20th January and 21th January from www.yr.no. ............................................ 32
Figure 22: result of prediction. ................................................................................................................... 32
http://e/weather%20forecasting/Artificial%20Neural%20Networks%20in%20Forecasting%20short-term%20Temperature.docx%23_Toc355092542http://e/weather%20forecasting/Artificial%20Neural%20Networks%20in%20Forecasting%20short-term%20Temperature.docx%23_Toc3550925428/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
5/37
5
Preface
This objective is to use neural network topologies to predict hour-by-hour
temperature in one or several days based on the historical weather data.
This paper presents research on weather forecast through the historical database
which implemented in the local weather station at Telemark University College.
Due to non-linearity in climatic physics, neural networks are suitable to predict
these meteorological processes. Back Propagation algorithm using gradient descent
method is the most important algorithm to train a neural network for weather
forecasting. The neural network training was done using MATLAB, and BP
method was also programmed by MATLAB. Also in chapter 3 will use fuzzy logic
for temperature forecasting.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
6/37
6
1 Introduction
1.1Background
Weather is a continuous, data-intensive, dynamic and chaotic process. Theparameters required to predict weather are enormously complex such that there is
uncertainty in prediction even for a short period. The property of artificial neural
networks that they not only analyze the data but also learn from it for future
predictions makes them suitable for weather forecasting.
Inspired by the brain, neural networks are an interconnected network of processing
elements called neurons. One of the most popular training algorithms in the
domain of neural networks used so far, for weather forecasting is the back
propagation algorithm. It is a gradient descent method. The algorithm suffers frommany problems.
1.2 weather station
Telemark University College
(TUC) has established aWeather System for
presenting the weather at
Telemark University College.
The system is showing the
weather data from the weatherstation located at TUC. The
system shall be used to
create weather models and forecasting. The weather system has a SDK/API that
makes it possible to retrieve data in different manners, including Web Services.APIs have also been created for the following languages: C#, LabVIEW,
MATLAB and Python. An OPC API is also available in these 4 languages. TheseAPIs make it possible to retrieve data from the system and create your ownweather models used in forecasting and weather prediction.
Figure 1: structure of weather station.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
7/37
7
1.3 Problem definition and Task overview
All the work is leading to one goal-predicting the temperature for the coming days.
We have historical data of one month, and we are going to make a forecasting for
one day behind the month.
The remainder of the article is organized as follows. Chapter 2 and chapter 3introduce the back propagation algorithm and fuzzy logic theory respectively. The
details of the integrated BP/Fuzzy Logic technique for weather forecasting model
are shown in chapter 4, followed by results in chapter. Finally, conclusions aresummarized in chapter 6.
2 Artificial Neural Networks
2.1 Theory part: Artificial Neural Networks algorithm and model
In this part we will firstly give a brief introduction to neural networks algorithm,
and then go into the specific task of how neural networks can be trained to perform
a predicting role.
2.1.1 BP neural networks
The Back propagation Algorithm was proposed by Rumelhart, McClelland in1985[1]. It has been one of the most studied and used algorithms for neural
networks learning ever since. The Back propagation method uses output error in
the output layer to estimate the error in the direct leading layer, and use the leading
layers error to estimate the previous layer and further to input layer. In the
learning process, each neuron changes its joint weights according to specific rules
and finally makes output closer to the expected output.
Standard BP algorithm:
In the standard BP algorithm, k is the number of iterations, correction of weight
value and the threshold value according to the following formula for each layer.
)()()1( kgkxkx (1)
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
8/37
8
Where: x (k) is the connection weights vector or threshold vector for the kth
iteration between the various levels.
)(
)()(
kx
kEkg
is the gradient vector of the neural network output error for each
weight value or threshold values of the kthiteration. A negative sign indicates the
opposite direction of the gradient descent direction, i.e. the speed gradient.
is the learning rate, a constant in the training process. In MATLAB neural
network toolbox, the default value is 0.01, can be set by changing the training
parameters.
Ekis the total error of the network output performance function of the kthiteration.
in MATLAB neural network toolbox, the default value of the BP network error
performance function is MSE (mean square error), a two-layers BP network, for
example, given only one input sample,
2
1
222
2
2 )]([1
)]([)(s
i
ii kat
skeEkE (2)
})]()))()((()([{
})]()()([{)(
2 1
2
1
2
1
1112
,
2
1
212
,
22
s
ji
s
jiiiji
s
j
iijii
kbkibpkifkf
kbkakfka
(3)
The specified procedure as below
Step 0 Arbitrary initializing values are given to the weights and biases in the
network.
Set each weights value between-11select error function; give desirederror and the maximum learning rate.
Step 1 randomly select the k input samples and the corresponding desired output
Step 2 calculate each of the hidden layer neurons in the input and output
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
9/37
9
Step 3 use desired output and the actual output, and calculate the partial derivative
of the error function for each neuron of the output layer.
Step 4 use the hidden layer to the output layer connection weights, the output layer
and the hidden layer output error function of the partial derivatives of the hiddenlayer neurons
,2
1
1
N
k
kE
NE : Accuracy (4)
Step 5 use the output layer neurons and the output of the hidden layer neurons to
fix the connection weights.
Step 6 the neurons in the hidden layer and the input layer neurons in the input
correction connection weights. Until:
0
ij
ijijw
Eww (5)
Step 7 calculate the global error
Steps 8 see if the network error meets the requirements or not. When the error
reaches the preset accuracy or learning the maximum number of times greater than
the set, the algorithm ends. Otherwise, select the next learning sample and the
corresponding desired output, return to the third step, learning to the next round.
2.1.2 Building a temperature predicting neural network
The MATLAB code for implementing this BP method can be seen as Appendix A.
A neural Network consists of 3 inputs, two hidden layers with a varying hidden
neurons and 1 output neuron.
Tangent sigmoid function, tansig, will be used in the hidden layers and the output
layer. Traingdx is a network training function that updates weight and bias values
according to gradient descent momentum and an adaptive learning rate.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
10/37
10
2.2 Practice part
2.2.1 Data preprocessing
(1)Weather parameters and raw data
The daily weather parameters collected from TUC weather station are shown
in Table I along with their units of measurement. The parameters chosen for
prediction in this setup are mean air temperature (C), relative humidity (%)
and wind speed (Km/h) by hour. There is no particular reason behind this
choice of weather parameters. The choice is made just to predict the
temperature variable in one or two days. Seven days data (month of January,
2013) have been used in this research. Different daysdata will be used for
training and different daysdata will be used for testing purposes.
TABLE I
No. MeteorologicalVariables
Unit
1 Temperature C
2 Relative Humidity %
3 Wind Speed Km/h
(2)Normalization of Data
After the collection of data and selection of the weather parameters, nextissue is normalization of data. Neural networks generally provide improved
performance with normalized data. The use of original data to train the
neural network may cause convergence problem. All the weather data sets
were, therefore, transformed into values between 0 and 1 through dividing
the difference of actual and minimum values by the difference of maximum
and minimum values.
2.2.2 Training the Neural Network
(1) Defining the inputs and outputs
Two layer neural network will be considered for this case. Further neural network
has three inputs and a output as shown in figure 1.1 , where hyperbolic tangent
sigmoid function( tansig) are used correspond to the two hidden layers.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
11/37
1
Figure 2: system model with four inputs (Wind flow, Relative Humidity, and Temperature) and one output (temperature).
One external variable to be used as input so that one input to network further 5
neurons are used for hidden layer. There must be one neuron in the output layer
because there is only one target value associated with each input. Proper
parameters (weight and biases) are selected by training the network and in this caseback-propagation technique was used. Using the MATLAB code in Appendix-1,
neural network was trained and results are shown below. To train the network
following steps were used.
Create the network.
Configure the network.
Initialize the weights and biases.
Train the network.
(2) Choosing the architecture of the neural network
Here we are going to only discuss number of hidden layers and number of nodes of
hidden layers. This is because these two characteristics determine the size of neural
network. And the size highly correlated to the performance of the network. Bigger
the size, more are the free parameters. And finally this comes to a problem of
overfit. For the learning rate we choose 0.01 in this case, as here we want to make
sure a stable training system.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
12/37
1
Figure 3: A two-layer neural network.
How many hidden layersand how many nodes in the hidden layers [2]?
As based on improving convergence: When begin the model building, error on the
side of more nodes in the hidden layer. Generally, the number of hidden neuronsprimarily depends on the number of training samples (more training samples
implies that more neurons can be used) and the complexity of the output function
(more complex output functions often require more neurons)[3]. The best way is
still to test the different topologies and find the one minimizing the error.
It is very difficult to choose the number of neurons in a hidden layer, and to choose
the number of hidden layers in your neural network. Usually, for most applications,
one hidden layer is enough. Also, the number of neurons in that hidden layer
should be between the number of inputs and the number of outputs. But the bestway to choose the number of neurons and hidden layers is experimentation. Train
several neural networks with different numbers of hidden layers and hidden
neurons, and measure the performance of those networks using cross-validation.
You can stick with the number that yields the best performing network.
We are going to explore the appropriate number of neurons in hidden layer in this
experiment. Based on 7 days (24*7 samples each variable as one mean value in
one hour) weather samples and to predict 1 day (hour by hour) behind. We choose
the data as the estimation will be more precise if we narrow the time period.
110neurons in first layer and 5 neurons in the second
210neurons in first layer and 10 neurons in the second
310neurons in first layer and 20 neurons in the second
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
13/37
13
4 20 neurons in first layer and 20 neurons in the second
Figure shows the change of error for the four options. the most
concurrencies of predicted error is about 0.5in 1, and 0.5, 0.3,
0.2We can find as the number of neurons increase, the error is decreased.4 is relatively better than others, no error bigger than 1and small
concurrencies of the bigger error.
Figure 4: A simulation result of changing error as different hidden neurons chosen for training network (1-(10 5), 4-(10 10), 3-
(10 20), 4-(20 20)).
1 2
3 4
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
14/37
14
Figure shows the training performance of the four options. its easy to find
the best MSE stays at 0.001 for all of them. 1 shows a little better
convergence and 2 reaches its best performance at epoch 78. While at least2000 epochs are needed to achieve the same performance for 3 and 4.
Apparently, more neurons used, longer time and of higher complexity the
training network can be. Yet its really shortage of information here.
Figure 5: Training performance as different hidden neurons chose for training network (1-(10 5), 4-(10 10), 3-(10 20), 4-(20
20)).
1 2
3 4
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
15/37
15
Figure 6 shows more neurons chose, better curve fitting.
Figure 6: A simulation result of curve fitting as different hidden neurons chose for training network (1-(10 5), 4-(10 10), 3-(10
20), 4-(20 20)).
1
43
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
16/37
16
By analyzing these figures, we can come to some conclusions like below.
* More neurons, less predicted error.
* More neurons used, longer time and of higher complexity the training
network can be.
*MSE shows a low correlation with number of hidden neurons. To somedegree, to step over a specified order of magnitude.
* More neurons, higher predictive ability.
From the experiments, we come to end that given small size of samples, less
neurons will be preferred to be put into use. Yet that also depends on such as
which algorithm used, the size of samples, inputs and outputs, etc.
(3) Training the network
In the last section, no matter how many neurons we try, the best MSE always stay
at about 10-2compared to the true order of magnitude 10-5. So in this section, we
are going to use less or more historical data to find the fittest mode in this
forecasting.
1. one day as training data and to predict 24 hours in one day (N1=5, N2=10)
2. three days as training data and to predict 24 hours in one day(N1=5, N2=10)
3. thirty days as training data and to predict 24 hours in one day(N1=40,
N2=20)
4. thirty days as training data and to predict 24 hours in one day(N1=40,
N2=20)
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
17/37
17
Figure 7: A simulation result of curve fitting as different days or hidden neurons chose for training network.
Figure 7 shows that 3 is quite better fit than others. Comparing 1, 2, and 3, we can
find that more samples used, more exact the forecasting. Comparing 3 and 4, we
can see its not possible to predict two days weather by using only data in one
month.
3 41 2
3 4
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
18/37
18
Figure 8: the regression plots in different options.
Figure 8 shows that regression R Values measure the correlation between outputs
and targets. All the plots have a high value better than 0.99. The outputs of the
training network are quite close to the targets. So the network model has a good
training performance.
3 4
1 2
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
19/37
19
Figure 9: changing curve of error in different options
Figure 9 shows the changing curve of error. This error is calculated between the
measured data and the predicted data when using the test set. Compare 1 , 2,
and 3, the largest error occurred is about 6 oC(4 times), 2.2oC(2 times), and 1.1
oC(2 times) respectively; the mean error is about 2oC, 0oC,0oC. So, the output
error is increased when increasing the number of days. This is as stated due to
the complexity of the weather system and the fact that the weather conditionson a given day is not independent of the weather conditions the day before.
Compare 3(one day was tested) and 4(two days were tested), apparently, error
is quite large in 4. For the test set, when the number of days is increased, the
error is increased.
34
12
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
20/37
20
Figure 10: Training performance in different options
Figure 10 shows when forecasting temperature in one day, the network can
come to the desired error at epoch 517, a fast convergence speed. And network
can be convergent with a range of initial weights. By Comparison of these
images, we can know that a faster speed of network training also accelerates the
convergence rate of the error. Hence the network here is working well in this
case.
By analyzing these figures, we can increase the performance (reduce error) bythese techniques.
Increase the number of neurons in hidden layer
Train it again
Get larger training data set
3 4
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
21/37
2
3 Fuzzy logic
3.1 Introduction
1. ObjectiveThe weather affects us all, from the simple act of raising an umbrella to auniversity changing its courses to avoid the snowstorm, especially in Norway.
Weather has always been elemental to the course of human history.
In this part, we are mainly concerning about the effect of temperature, which is the
most important parameter of all. The aim is to predict the temperature tomorrow byusing the data today, which is representative and effective.
Due to the weather is an environment of uncertainty and imprecision, this isdifferent from classical system, while the fuzzy logic system can aim at modeling
the imprecise models of reasoning and deal with approximate rather than precise
model. Therefore, the fuzzy logic is chosen as a suitable method for weatherforecasting. The prediction model is built by Matlab Fuzzy Logic Toolbox.2. Weather Station
The data used in Fuzzy Logic are from the weather station located in Skienmunicipality, 136m.a.s.I.It is the closest official weather station, 7.3km away from
Porsgrunn. The station was established in October 1962.The station measurestemperature and wind. There are no normal for precipitation.
3.2Fuzzy logic design
1. Design of Fuzzy Systems from Input-Output DataTo design this fuzzy system, we view the rules of temperature changing as a black
box and measure the inputs and outputs that is we can collect a set of input-output
data pairs. In this way, the rule can be transformed into a set of input-output pairs;hence, a problem of fundamental importance is to construct fuzzy systems from
input-output pairs.2. Input-Output
Inputs and outputs are defined following:
Input:
Min-minimum value of the current day Average-average value of the current day
Max-maximum value of the current dayOutput:
T:-Temperature measured at 13:00 tomorrow
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
22/37
2
Figure 11: Example of historical data from www.yr.no.All the data used in this model come from the website (www.yr.no).The temperature parameters, min, average, max on current day are used to predict
the temperature next day.
Table 2: collection of Temperature from 1stJanuary to 15thJanuary
Date Min Average Max T
01-01 -1.6 0.4 5.2 0.9
01-02 -4.5 -2.7 -0.8 -1.8
01-03 -2.8 1.3 4.5 -0.901-04 -0.8 2.3 5.9 2.3
01-05 -2.1 -1.1 1.2 0.3
01-06 -4.5 -3.4 1.2 -2.1
01-07 -5.4 -1.9 -0.7 -1.3
01-08 -3.1 -2.4 -0.5 -1.9
01-09 -4.9 -2.8 -1.9 -2.4
01-10 -3.0 -0.9 1.0 0.7
01-11 -6.4 -4.1 0.0 -3.8
01-12 -10.1 -8.7 -5.6 -6.901-13 -13.4 -11.7 -9.8 -11.3
01-14 -11.9 -10.5 -9.4 -10.7
01-15 -9.4 -6.9 -4.9 -5.4
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
23/37
23
Table 3: dataset of Fuzzy logic Input-Output pairs
Sample Input Output
Min Average Max Temperature
(1) -1.6 0.4 5.2 -1.8
(2) -4.5 -2.7 -0.8 -0.9
(3) -2.8 1.3 4.5 2.3
(4) -0.8 2.3 5.9 0.3
(5) -2.1 -1.1 1.2 -2.1(6) -4.5 -3.4 1.2 -1.3
(7) -5.4 -1.9 -0.7 -1.9
(8) -3.1 -2.4 -0.5 -2.4
(9) -4.9 -2.8 -1.9 0.7
(10) -3.0 -0.9 1.0 -3.8
(11) -6.4 -4.1 0.0 -6.9
(12) -10.1 -8.7 -5.6 -11.3
(13) -13.4 -11.7 -9.8 -10.7
(14) -11.9 -10.5 -9.4 -5.4
3. Fuzzy model
The fuzzy inference technique we used is Mamdani method which was proposedby Mamdani and Assilian. In Mamdanis model the fuzzy implication is modeled
by Mamdanis minimum operator, the conjunction operator is min, the t-norm fromcompositional rule is min and for the aggregation of the rules the max operator is
used.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
24/37
24
Figure 12: Structure of Fuzzy system.
Table 4: Configuration of fuzzy logic
Configuration
And method MinOr method Max
Implication Min
Aggregation Max
Defuzzification Centroid
5. Membership function
Define range, fuzzy set and membership function:
Min[-15,0]
Fuzzy set very cold cold Little cold
Params [-21 -15 -9] [-13.5 -7.5 -1.5] [-6 0 6]
Table2-4: Membership function of Min
Average[-15,5]
Fuzzy set Less normal normal beyond normal
Params [-23 -15 -7] [-13 -5 3] [-3 5 13]
Table2-5: Membership function of Average
Max[-10,10]
Fuzzy set Less hot hot Very hot
Params [-18 -10 -2] [-8 0 8] [2 10 18]Table2-6: Membership function of Max
Temperature[-12,3]
Fuzzy set freezing cozy warm
Params [-18 -12 -6] [-10.5 -4.5 1.5] [-3 3 9]
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
25/37
25
Table2-7: Membership function of Min6. Rule
Rules can be generated by calculating the membership value of input-output pair.
For example:Sample (1):
Figure 13: Membership function of input variable Min.
Figure 14: Membership function of input variable Average.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
26/37
26
Figure 15: Membership function of input variable Max
Figure 16: Membership function of output variable Temperature.
Finally, obtain a fuzzy IF-THEN rule as:
If Min is little cold and Average is beyond normal and Max is very hot then
Temperature is cozy.
According to this method, every input-output pair can generate one rule.
1. If (Min is little_cold) and (Average is beyond_normal) and (Max is
very_hot) then (Temperature is cozy) 2. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1)
3. If (Min is little_cold) and (Average is beyond_normal) and (Max is hot)
then (Temperature is warm) (1)
4. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is warm) (1)
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
27/37
27
5. If (Min is little_cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
6. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
7. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
8. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
9. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is warm) (1)
10. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
11. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
12. If (Min is cold) and (Average is normal) and (Max is less_hot) then(Temperature is freezing) (1)
13. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)
then (Temperature is freezing) (1)
14. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is cozy) (1)
Rules (2,6,7,8) are repeated.
2. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1) 6. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1)
7. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1)
8. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1)
10. If (Min is cold) and (Average is normal) and (Max is hot) then
(Temperature is cozy) (1)
11. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
28/37
28
Some rules are conflicting.
1. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is cozy)
4. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is warm) (1)
13. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)
then (Temperature is freezing) (1)
14. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is cozy) (1)
Since there are 14 input-output pairs and with each pair generating onerule,therefore,there are conflicting rules,that is,rules with the same IF parts but
different THEN parts.To resolve this conflict,we assign a degree to each
generated rule and keep only one rule from a conflicting group that has the
maximum degree.In this way not only is the conflict problem resolved,but alsothe number of rules is greatly reduced.
The degree of a rule is defined as follows:
()
D(1)=little cold(-1.6)beyond normal(0.4)very hot(5.2)cozy(-1.8)=0.18
D(4)= little cold(-0.8)beyond normal(2.3)very hot(5.9)freezing(0.3)=-0.29
D(1)>D(4)
D(13)=very cold(-13.4)less normal(-11.7) less hot(-9.8) freezing(-
10.7)=0.28
D(14)= very cold(-11.9)less normal(-10.5) less hot(-9.4) cozy(-5.4)=0.17
D(13)>D(14)
Hence we choose the Rule(1) and Rule(13).
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
29/37
29
Final fuzzy rule base
1. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is cozy) (1)
2. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
3. If (Min is little_cold) and (Average is beyond_normal) and (Max is hot)
then (Temperature is warm) (1)
4. If (Min is little_cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)
5. If (Min is cold) and (Average is normal) and (Max is less_hot) then(Temperature is freezing) (1)
6. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is freezing) (1)
Constructing the fuzzy system based on the fuzzy rule base
To use Matlab Fuzzy logic toolbox to construct the weather forcasting model.
Surface viewer:
Figure 17: Surface viewer.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
30/37
30
Rule viewer:
Figure 18: Rule viewer.
Validation:
We use the two group of datas from different days to validate this model.
Using data in 17thJanuary as testing sample to predict the temperature in 18thJanuary,the prediction of fuzzy logic model is -5.98,which is closed to the
real value,-7.1. Using data in 20thJanuary as testing sample to predict the temperature in 21th
January,t the prediction of fuzzy logic model is -4.5,which is also closed to
real value,-6.2.
As can be seen,the difference is not too large.The weather forcasting itselfdepends on many other parameters,such as humidity,wind
speed,etc.Moreover,there are a lot of uncertainy parameter which can influence
weather and temperatur,the error at measurement is less than 2,so theprediction seems acceptable.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
31/37
3
Figure 19: temperature in 17th January and 18th January from www.yr.no.
Figure 20: result of prediction.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
32/37
3
Figure 21: temperature in 20th January and 21th January from www.yr.no.
Figure 22: result of prediction.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
33/37
33
4 Conclusion
The simulation results show the training algorithm performs well in the process of
convergence characteristics, and improve the convergence rate, a satisfactory
approximation.
However, there are still many hard handle problems
(1) BP algorithm convergence in accordance with the direction of the mean
square error gradient descent, there are many local and global minimum
mean square error gradient, which makes neural network is easy to fall
into local minimum (local minima);
(2) BP learning algorithm convergence rate is very slow, and may waste a lot
of time;(3) The selection of the number of hidden nodes of the network is still a lack
of unified and complete theoretical guidance;
(4) Generalization ability of the learning network is poor.
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
34/37
34
Reference
[1] Hkon Viumdal. Developing membership functions for fuzzy-neural
applications. Tel-Tek, 2013.
[2]W.Tan, H.J.Marquez, T.Chen. IMC design for unstable processes with
time delays[J].J.Process control.2003,13,203-213.
[3]Acess:http://stackoverflow.com/questions/10565868/what-is-the-criteria-for-
choosing-number-of-hidden-layers-and-nodes-in-hidden-la
[4]Acess:http://aerostudents.com/files/knowledgeBasedControlSystems/artificialN
euralNetworks.pdf
[5] C.E.Garcia,M.Morari. Internal model control[M]. Ind.Eng.Chem.Proc.Des.
Dev.,1982.
[6] [2] Jerry M. Mendel. Fuzzy Logic Systems for Engineering: A tutorial.
Proceedings of The IEEE, Vol. 83. No 3, March 1995.
[7] Thomas Herpel et al. Multi Sensor Data Fusion in Automotive Applications.
Proceedings of 3rd International Conference on Sensing Technology (ICST 2008),
Tainan,Taiwan, Dec. 2008.
http://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-la8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
35/37
35
Appendix A
MATLAB code for the BP neural network method.
%======input data========
px=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for oneday.xlsx','sheet1');
p=px';
%===========target data===tx=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for one
day.xlsx','sheet2');t=tx';%===========test data=======
ptestx=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for one
day.xlsx','sheet3');ptest=ptestx';ptesty=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for oneday.xlsx','sheet4');
ptesy=ptesty';%===========plot samples=======
plot(p, t ,'r*');title('training data set');xlabel('ipnut vector p');ylabel('output vector t');%===========training neural networks=======
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %Normalization of Data(scale
%inputs and targets so that they fall in the range [-1,1]).NodeNum1 = 10; % number of nodes of the first layer in hidden layerNodeNum2 = 20; % number of nodes of the second layer in hidden layerTypeNum = 1; % output vector dimensions
TF1 = 'tansig'; %transfer function for the 1st layerTF2 = 'tansig'; %transfer function for the 2st layer
TF3 = 'tansig'; %transfer function for the 3st layernet=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},'traingdx');%Creat network 'traingdm'
net.trainParam.show=50;net.trainParam.epochs=5000; %Number of training times
net.trainParam.goal=1e-5; %accuracy of training
net.trainParam.lr=0.01; %learning ratenet=train(net,pn,tn);%==use the trained network to simulate the tset data=====
p2n=tramnmx(ptest,minp,maxp);%Normalization of test data
an=sim(net,p2n);[a]= postmnmx(an,mint,maxt); %Reverse normalization of Data, also the desired result.%==plot the comparison of measured and forecasting temperature=====figure;
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
36/37
36
plot(1:length(ptesty),ptesty,'bo',1:length(ptesty),a,'r*');title('Seven days used for training 1st - 7th of Jan. ');
xlabel('hours');ylabel('Temperature( ^{o}C) in 8th of Jan');
legend('measured temperature', 'predicted temperature');grid on;
%==plot the change of error=====m=length(a); %The length of vector a%t1=[ptesty];
error=ptesty'-a; %error vectorfigure;hist(error,length(error)-1)
legend('Foracasting errors temperature')xlabel('Error in (^{o}C)')ylabel('Number of occurances')title('Forecasting change of error')
grid on%======END========
Appendix B
Code of Fuzzy logic system:
[System]Name='CaseProject'Type='mamdani'
Version=2.0NumInputs=3
NumOutputs=1NumRules=6AndMethod='min'OrMethod='max'ImpMethod='min'
AggMethod='max'DefuzzMethod='centroid'
[Input1]Name='Min'
Range=[-15 0]NumMFs=3
MF1='very_cold':'trimf',[-21 -15 -9]MF2='cold':'trimf',[-13.5 -7.5 -1.5]MF3='little_cold':'trimf',[-6 0 6]
[Input2]
Name='Average'Range=[-15 5]
8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting
37/37
NumMFs=3MF1='less_normal':'trimf',[-23 -15 -7]
MF2='normal':'trimf',[-13 -5 3]MF3='beyond_normal':'trimf',[-3 5 13]
[Input3]
Name='Max'Range=[-10 10]
NumMFs=3
MF1='less_hot':'trimf',[-18 -10 -2]MF2='hot':'trimf',[-8 0 8]MF3='very_hot':'trimf',[2 10 18]
[Output1]Name='Temperature'Range=[-12 3]
NumMFs=3MF1='freezing':'trimf',[-18 -12 -6]
MF2='cozy':'trimf',[-10.5 -4.5 1.5]MF3='warm':'trimf',[-3 3 9]
[Rules]3 3 3, 2 (1) : 12 2 2, 2 (1) : 1
3 3 2, 3 (1) : 13 2 2, 2 (1) : 1
2 2 1, 1 (1) : 11 1 1, 1 (1) : 1