Table of Contents
Back

Specification of a new FuNN architecture

Number of inputs:
Specifies the number of input features of the data set.
A node in the input layer will represent each of these inputs.

Number of members:
This specifies the number of nodes in the condition element layer for each input node.
The value must be greater than or equal to two.
Each member represents a fuzzy predicate of an input feature.

Number of rules:
Each rule node in the network represents either an existing rule, or a rule anticipated after training.

Number of outputs:
Specifies the number of output features expected from the system.
A node in the output layer will represent each of these outputs.

Number of actions:
This specifies the number of nodes in the action element layer for each input node.
The value must be greater than or equal to two.
Each member represents a fuzzy predicate of an output feature.



Back

Editing input and output membership functions

The Edit Input MFs and Edit Output MFs buttons allow you to edit the number of members that each of the inputs have.

For example, you could have 4 inputs with the number of members set as 2. This means each of the inputs have two membership functions (e.g. High, Low). However, it may be the case that input 3 should have three members (High, Medium, low). By pressing the Edit Input MFs button, you can change this value appropriately.



Back

Creating the network

Once you have specified your network architecture press the Create button, or select Create Network from the Network menu.

This creates a network with randomly initialised connection weights.

To retain the network for later usage you will need to save it to a file.



Back

Saving the network file

Although you do not need to save the network to train and recall it, it is better to do so. This allows you to compare the results of different training parameters, and prevents loss of work if something goes wrong.

To save the network, select Save As from the File menu.

Here you are able to choose what directory you want to save your network in, and specify the name of the file.

The convention for the file extension of network files is *.wgt.

The only restriction is that the path cannot contain a ).



Back

Viewing the network

You can press the View Network File button to view your network, or alternatively select View Network from the Network menu.

Below is an example of a network file.

[FormatVersion = 1.0] /* This is a standard version number. Any value larger than 1.0 will not work*/

[NeuralNetwork]
[NetworkType = FuNN]
/*This shows the type of network being used - MLP / FuNN / Kohonen*/

[NetworkInformation] /*This section of information sets out the layout of the network*/
[NumberOfLayers = 6] /*There are 5 layers in this type of FuNN + 1 bias layer */
[InputLayer = 1] /*The input layer is always layer 1*/
[OutputLayer = 5] /*The output layer is the last layer*/
[NumberOfInputs = 4]
[NumberOfOutputs = 3]
[~NetworkInformation]

/*Details for each of the neuron layers*/
[Layer = 0] /*Layer 0 is always the bias layer and is included even if it is not used*/
[LayerType = Simple] /*The type of the bias layer is always simple*/
[NumberOfNeurons = 0]
[All ActivationFunction=null ]
[~Layer]

[Layer = 1] /*Layer 1 is always the input layer*/
[LayerType = Input]
[NumberOfNeurons = 4]
[All ActivationFunction=linear ]
[~Layer]

[Layer = 2] /*Fuzzification Layer*/
[LayerType = FuzzyCondition]
[NumberOfNeurons = 12]
/*one node for each of the membership functions of each input node*/
[All ActivationFunction=FuNN-condition ]
[InputMF]
[Input=0 MF=3 ]
/*Input and the number of membership functions it has*/
[Input=1 MF=3 ]
[Input=2 MF=3 ]
[Input=3 MF=3 ]
[~InputMF]
[~Layer]

[Layer = 3]
[LayerType = Simple]
[NumberOfNeurons = 5]
[All ActivationFunction=sigmoid ]
[~Layer]

[Layer = 4]
[LayerType = Simple]
[NumberOfNeurons = 6]
[All ActivationFunction=sigmoid ]
[~Layer]

[Layer = 5] /*Defuzzification Layer*/
[LayerType = Defuzzify]
[NumberOfNeurons = 3]
[All ActivationFunction=cog ]
[OutputMF]
[Output=0 MF=2 ]
/*Output and the number of membership functions it has*/
[Output=1 MF=2 ]
[Output=2 MF=2 ]
[~OutputMF]
[~Layer]

[ConnectionLayer]
[LayerFrom = 1]
[LayerTo = 2]
[ConnectionType = ToConditionConnections]
/*this type of connection layer is used to connect input layers to fuzzy condition layers*/

[Attributes Pruneable Freezable ]
[WeightList]

/*Below are the connection weights for this connection layer*/
/*Because in FuNN the input layer is not fully connected to the FuzzyCondition layer, a matrix is not used to display the connection weights (there would be too many null values in the matrix).
Instead the weights are shown for the specific connection between two neurons.*/
[From=0 To=0 Weight=0.000000000000000 Trainable ]
[From=0 To=1 Weight=0.500000000000000 Trainable ]
[From=0 To=2 Weight=1.000000000000000 Trainable ]
[From=1 To=3 Weight=0.000000000000000 Trainable ]
[From=1 To=4 Weight=0.500000000000000 Trainable ]
[From=1 To=5 Weight=1.000000000000000 Trainable ]
[From=2 To=6 Weight=0.000000000000000 Trainable ]
[From=2 To=7 Weight=0.500000000000000 Trainable ]
[From=2 To=8 Weight=1.000000000000000 Trainable ]
[From=3 To=9 Weight=0.000000000000000 Trainable ]
[From=3 To=10 Weight=0.500000000000000 Trainable ]
[From=3 To=11 Weight=1.000000000000000 Trainable ]
[~WeightList]
[~ConnectionLayer]

[ConnectionLayer]
[LayerFrom = 2]
[LayerTo = 3]
[ConnectionType = Pruneable]
[Attributes Pruneable Freezable ]
[Matrix Weights TrainableInfo ]

/*Other layers in the FuNN network are fully connected and so the connection weights are shown in the matrix format.
The T’s in the matrix represent a trainable connection. There would be a - if the connection was not trainable.
Note: the weight values have been rounded to 6dp for formatting purposes*/
/*To->01 234From*/
-0.295266T0.215918T -0.659413T-0.489059T 0.812921T/*0*/
-0.946653T-0.403057T 0.075716T0.904660T 0.928281T/*1*/
0.491439T0.940061T 0.713309T-0.742362T -0.233069T/*2*/
-0.691213T0.178563T -0.766960T0.178136T -0.102267T/*3*/
0.749076T0.298257T -0.239051T-0.477156T -0.528794T/*4*/
-0.959959T0.146336T -0.622730T0.578051T -0.939390T/*5*/
-0.544480T0.322733T 0.862605T0.099459T -0.564378T/*6*/
0.715323T-0.378276T -0.020599T-0.058931T 0.385601T/*7*/
0.821893T0.174535T -0.190710T-0.710379T 0.328592T/*8*/
0.449568T-0.581835T -0.816522T0.260963T 0.112460T/*9*/
0.563890T0.981261T 0.293069T0.722098T 0.893856T/*10*/
0.741325T-0.870418T -0.301797T0.301370T 0.976928T/*11*/
[~Matrix]
[~ConnectionLayer]

[ConnectionLayer]
[LayerFrom = 3]
[LayerTo = 4]
[ConnectionType = Pruneable]
[Attributes Pruneable Freezable ]
[Matrix Weights TrainableInfo ]
/*Note: the weight values have been truncated to 6dp for formatting purposes*/
/*To->012 345 From*/
-0.631581T-0.883480T 0.654347T0.018281T 0.383709T0.676748T /*0*/
-0.954649T-0.340068T -0.344584T-0.416852T -0.792962T-0.209021T /*1*/
0.194739T0.771294T -0.200354T0.563341T 0.188269T0.020051T /*2*/
0.514695T0.912656T 0.182531T0.820124T -0.188818T0.810053T /*3*/
0.091281T-0.892575T 0.693411T0.743645T 0.587207T0.389630T /*4*/
[~Matrix]
[~ConnectionLayer]

[ConnectionLayer]
[LayerFrom = 4]
[LayerTo = 5]
[ConnectionType = ToOutputConnections]
/*this type of connection layer is used to connect fuzzy action layers to crisp output layers */

[Attributes Pruneable Freezable ]
[WeightList]

/*Below is the matrix of connection weights* for this connection layer/
/*The output layer is also not fully connected to the Defuzzification layer, and so again a matrix is not used to display the connection weights.*/
[From=0 To=0 Weight=0.000000000000000 Trainable ]
[From=1 To=0 Weight=1.000000000000000 Trainable ]
[From=2 To=1 Weight=0.000000000000000 Trainable ]
[From=3 To=1 Weight=1.000000000000000 Trainable ]
[From=4 To=2 Weight=0.000000000000000 Trainable ]
[From=5 To=2 Weight=1.000000000000000 Trainable ]
[~WeightList]
[~ConnectionLayer]

[~NeuralNetwork]



Back

Opening an existing network

It is possible to load an existing network by selecting Load Network File from the Network menu.

The file can have any extension, but the convention is for network files to have the extension *.wgt .

The only restriction is that the path cannot contain a ).


This page is maintained by Melanie Middlemiss mmiddlemiss@infoscience.otago.ac.nz
Last modified on: 15/2/99.