The theory behind this architecture can be foun in the article
DataSet
The dataset used for this network is mnist which has 55000 images (table 55000x784) as training set and 10000 images (table 10000x784) as test set. Each image has a size of 784 pixels. The data set is imported from tensorflow (tensorflow.examples.tutorials.mnist)
Architecture
-
The network can seperated in two different subnetworks. The first one has as input layer the input vector and output layer the rbf neurons. The second subnetwork has as input layer the rbf neurons and output layer the output layer of thehole network.
-
First subnetwork
To calculate the center and the radius(σ) of each rbf neuron we use the algorithm kmeans.
Input vector (image): [1,784]
Output vector : [1,k], where k is the number of rbf neurons
-
Second subnetwork
The second subnetwork is a multilayer percetron with no hidden layers. To train the network the tensorflow framework is used
Input vector: [1,k], the output of the first subnetwork
Output vector: [1,n], the number of different classes in our case n = 10
Execution
To run an experiment using this network the only thing you need to do is set the variable k at method experiment. The results are the accuracy of the network on training and test set.
Results
Number of rbf neurons: 410
Test accuracy: 87.48%
Train accuracy: 86.56%