Lecture notes presented by Carl Looney as part of a training workshop on Arc-SDM and DataXplore, held at the Geological Survey of Canada, Ottawa, October 26-29, 1999.

Neural Network Method

Arc-SDM uses a separate module called DataXplore to perform neural network analysis. (DataXplore can also be run separately from ArcView using data from other sources. The file formats required by DataXplore are documented in readme.txt as well as this user guide.) This section describes terms and concepts in neural network analysis and DataXplore as they relate both to Arc-SDM and mineral exploration.

Dictionary of Terms
DataXplore Arc-SDM
Feature or attribute Evidential theme class
Feature Vector Unique condition
Training vector Unique condition at location of training point

DataXplore provides two types of neural network algorithms: a radial basis functional link algorithm (RBFLN) and a fuzzy clustering algorithm. The RBFLN neural network requires a set of training vectors on which the algorithm trains or learns. The training process results in a series of parameters that define a systematic relationship between the input (training) vectors and the target vector. The classification part of the algorithm then uses this relationship to classify data for which the target is unknown.

In the case of mineral exploration, the target vector consists of the presence or absence of a mineral occurrence. The training vectors contain data about the characteristics associated with occurrences, i.e., the evidence at the locations of, the presence or absence of mineral occurrences. The training vectors consist of the values from a set of evidential themes found at the location of two types of training points, those of known mineral occurrences and those locations where no mineralization occurs. They are determined by generating a unique conditions grid/table from the selected evidential themes, then reading the values from the unique conditions attribute table at the location of training points and writing the vectors to a text file for input to DataXplore.

The entire unique conditions table is also written to a separate text file. This is the data for which the target vector is unknown. In the context of neural network analysis, each unique condition is described as a feature vector. The RBFLN algorithm uses what it has learned from the training point data and uses it to find patterns and classify the entire unique conditions table. It provides as output a measure between 0 and 1 as to the similarity to the

The unique conditions grid and table generated as input to DataXplore is essentially the same as that generated for weights of evidence and logistic regression. Generally, however, the evidential themes used to create the unique conditions grid will be less generalized, in order to allow the neural network algorithms as much information as possible to classify the data. As the number of classes in the evidential themes is increased, the number of unique conditions can increase exponentially. While theortically there isn't a limit on the number of unique conditions, there may be a practical limit when processing. The training data is a subset of the unique conditions.

In Arc-SDM, the interface for creating the neural network input files is the same as that for other Arc-SDM functions that generate a unique conditions grids (i.e., Calculate Response Theme...; Check Conditional Independence...). The unique conditions data and training data are automatically written to files in the correct format for DataXplore.

The user, however, performs each step for Neural Network anlaysis separately:

  1. generate the input files
  2. run the neural network module, DataXplore
  3. read the results from DataXplore into ArcView

The following section describes the neural network methods used by DataXplore and their algorithms. This material was presented by Carl Looney as part of an Arc-SDM and DataXplore training workshop held in October, 1999.

  1. Fuzzy Clustering
  2. A Fuzzy Clustering Algorithm
  3. Radial Basis Functional Link Nets (Neural Networks)
  4. Our New Radial Basis Functional Link Algorithm
  5. The Format of the Input Data Files

DataXplore contains 2 major functions:

These operate on a table of data to partition the data into useful sets.

1. Fuzzy Clustering

A feature vector is a vector

x = (x1,...,xN)

where each component xn is the value of a feature, or attribute. (unique condition) There are N features for any object in a population of objects. Each represents a measurement of a certain attribute of the objects.

A feature determines a column (or layer) in a data set. For example: suppose there is a set of Q feature vectors

{x(1),..., x(q)}

to be tabularized as follows:

x1(1), x2(1),..., xN(1) (feature vector 1)
x1(2), x2(2),..., xN(2) (feature vector 2)
...........
...........
x1(Q), x2(Q),..., xN(Q) (feature vector Q)

Each vector represents an object (or entity) in a a population of objects. The goal is to partition the population into classes (or subpopulations) of objects by partitioning the set of feature vectors that represent the objects.

The objects are rather similar within classes and rather different between classes. A class represents objects with certain ranges of feature values (associates with certain class properties). The process of partitioning a set of feature vectors into classes is called clustering (also classification).

Consider the following set of vectors in the plane.

The feature values include errors and measurement noise but in an average sense they fall into 2 subpopulations (classes) here.

2. A Fuzzy Clustering Algorithm

The weighted fuzzy expected value (WFEV) of a set of values s1,... sp is obtained by

i) initializing with sample average µ = (1/P)(s1+ ... + sp)

ii) computing fuzzy weights

  (P = 1,..., P)
  (standardize weights)

iii) computing WFEV

  µ = (p=1,P)Wpsp (weighted average)

iv) if (stop_criterion) then stop

The WFEV weights more densely located points more than those farther away and weights outliers less. Our fuzzy clustering algorithm uses the WFEV. The goal is to cluster the set of feature vectors {x(1), ..., x(q)}.

i) input a number K of classes that is larger than the expected number (extra classes will be merged)

ii) assign first K of the Q vectors as cluster centers (after MacQueen's K-means algorithm) z (1), ..., z(K)

iii) for q = 1 to Q do

assign x(q) to closest center z(k) by c[q]=k (after MacQueen's algorithm)

iv) find WFEV of each cluster to obtain new centers {z(k)}

v) if (any center changes more than ) goto Step iii) above

else, continue

vi) compute weighted fuzzy variance of each cluster and WFEV dWFEV of distances between centers

vii) for k = 1 to K-1 do

for kk = k+1 to K do

if distance(z(k), z(kk)) < dWFEV then merge(k, kk)

3. Radial Basis Functional Link Nets (Neural Networks)

The radial basis functional link network is one type of neural network. Two others are the multiple layered perceptron (MLP) and the radial basis function neural network (RBFN). A radial basis functional link net transforms each N-dimensional input feature vector into an output target vector

x = (x1,..., xN) NN t = (t1,...,tJ)

The target vector t is a codeword that represents a class. This is called supervised learning because the network must be told the class for each input feature vector x.

Neural networks have a relative large number of parameters that can be thought of as knobs (or dials). The parameters are also known as weights. During training a set of feature vectors are presented to the network and the knobs are adjusted until each feature vector is mapped to its known target vector. These feature vectors are called training vectors when used to train the network.

Any input feature vector is mapped into an actual output vector z by the network

feature vector network actual output vector target vector

x = (x1,...,xN) NN z = (z1,..., zJ) e t = (t1,..., tJ)

The error to be minimized over all Q input feature vectors is

A radial basis function (RBF) is a Gaussian function. It has a center vector v and processes any input vector x via

y = f(x;v) = exp[-(x - v)2/(22)] (0 < y 1)

Each middle-layer node in a RBFN or RBFLN contains an RBF whose output fans out to each node in the output layer.

For an input vector x, the outputs from the mth node in the middle-layer and jth node in the output-layer are

We adjust the weights umj, vmj and bj (the knobs) by steepest descent (with gain ) via to minimize the total sum-squared error

,
,

4. Our New Radial Basis Functional Link Algorithm

= (1/4)(1/M)1/N ; // set for the RBF width
draw_weights(); // draw random weights, -0.5 to 0.5
Eold = evalnet(); // evalnet() updates the NN, gets E
do  
for j = 1 to J do // adjust weights on input node lines

for n = 1 to N do vnj = vnj - ß1(E/vnj);

 

Enew = evalnet();

 

if (Enew < Eold) then ß1 = ß1 * 1.24;

 

else ß1 = ß1 * 0.96;

 

Eold = Enew;

 
for j = 1 to J do // adjust weights on hidden node lines

for m = 1 to M do umj = umj - ß2(E/umj)

 

Enew = evalnet();

 

if (Enew < Eold) then ß2 = ß2 * 1.24;

 

else ß2 = ß2 * 0.96

 

Eold = Enew;

 
Iterations = Iterations + 1;  
if (Iterations > I) then exit;  
} while (Enew > 0.02);  

The function draw_weights() draw initial weights and the function evalnet() updates the actual outputs {z(q)} and error E. The biases bj are adjusted similarly (not shown here).

5. The Format of the Input Data Files

The data that are to be either i) clustered/merged into classes; or ii) used to train the RBFLN or be processed by the trained RBFLN are of the same format for convenience.

NMJQ
x1(1), x2(1),..., xN(1), t1(1)
x1(2), x2(2),..., xN(2), t1(2)
. . . . . . . . .
. . . . . . . . .
x1(Q), x2(Q), ..., xN(Q), t1(Q)

(input/output pair 1)
(input/output pair 2)
.. .. ..
.. .. ..
(input/output pair Q)

where

N = number of features in each vector
M = number of nodes (RBFs) in middle layer
J = number of components in output codeword (for class no.)
Q = number of feature vector/output pairs

x1(1), x2(1), ..., xN(1) = first input feature vector
t1(1) = first target output value (vector, more generally)

Note: Fuzzy clustering does NOT use the outputs {t1(q)} not M.

Because the input data is geological/geographical data, the actual data files contain 3 extra values that are not used in both clustering and in training of the RBFLN. The input data files are:

N M J Q
g
1(1), g2(1), g3(1), x1(1), x2(1), ..., xN(1), t1(1)
g
1(2), g2(2), g3(2), x1(2), x2(2), ..., xN(2), t1(2)
................
................
g
1(Q), g2(Q), g3(Q), x1(Q), x2(Q), ..., XN(Q), t1(Q)

The first value g1(q) in each row is the ID number of specimen from which the features were obtained.

The outputs after the fuzzy clustering of the RBFLN opeartion have the following output results files have format:

g1(1), c(1), f1(1), ..., fK(1)
g
1(2), c(2), f1(2), ..., fK(2)
....
....
g
1(Q), c(Q), f1(Q), ..., fK(Q)

where

g1(q) is the same as in the input file above and c(q) is the class number (fuzzy clustering) or output code (RBFLN) that represents the class. The values f1(q), ..., fK(q) are the fuzzy membership values, respectively that input vector q belongs to class k = 1, ..., K.