ProbenBNet Class Reference

This special network is optimal for benchmark tests with the "proben 1" set. More...

#include <ProbenBNet.h>

Inheritance diagram for ProbenBNet:

LinOutMSEBFFNet MSEFFNet FFNet ErrorFunction Model

List of all members.

Public Member Functions

 ProbenBNet (const unsigned in=0, const unsigned out=0)
 Creates an empty proben bias network with "in" input neurons and "out" output neurons.
 ProbenBNet (const unsigned in, const unsigned out, const Array< int > &cmat)
 Creates a proben bias network with "in" input neurons and "out" output neurons. Additionally, the array "cmat" determines the topology (i.e., number of neurons and their connections).
 ProbenBNet (const unsigned in, const unsigned out, const Array< int > &cmat, const Array< double > &wmat)
 Creates a proben bias network with "in" input neurons and "out" output neurons. Additionally, the arrays "cmat" and "wmat" determine the topology (i.e., number of neurons and their connections) as well as the connection weights.
 ProbenBNet (const std::string &filename)
 Creates a proben bias network by reading the necessary information from a file named "filename".
double g (double a)
 Activation function $g_{hidden}(x)$ of the hidden neurons.
double dg (double ga)
 Computes the derivative of the activation function $g_{hidden}(x)$ for the hidden neurons.


Detailed Description

This special network is optimal for benchmark tests with the "proben 1" set.

The "proben 1" set is a set of benchmarks and benchmarking rules for neural networks, that is based on real data instead of artifical problems. This special predefined feed-forward network with an alternative activation function for the hidden units and linear output units is optimal for the problems offered in the proben set.
For more information about the proben set, please refer to the proben 1 website.
As with class ProbenNet, the neuron-bias connections must be explicitly set.

Author:
C. Igel, M. Hüsken
Date:
1999
Changes:
none
Status:
stable

Definition at line 79 of file ProbenBNet.h.


Constructor & Destructor Documentation

ProbenBNet::ProbenBNet ( const unsigned  in = 0,
const unsigned  out = 0 
) [inline]

Creates an empty proben bias network with "in" input neurons and "out" output neurons.

Constructor no. 1

Only the input and output dimensions are set, but the network will contain no neurons.

Parameters:
in Dimension of the input (no. of input neurons), the default value is zero.
out Dimension of the output (no. of output neurons), the default value is zero.
Returns:
None.
Author:
C. Igel, M. Hüsken
Date:
1999
Changes
none
Status
stable

Definition at line 110 of file ProbenBNet.h.

ProbenBNet::ProbenBNet ( const unsigned  in,
const unsigned  out,
const Array< int > &  cmat 
) [inline]

Creates a proben bias network with "in" input neurons and "out" output neurons. Additionally, the array "cmat" determines the topology (i.e., number of neurons and their connections).

Constructor no. 2

A network with the given connections will be created, memory for the weightMatrix reserved, but the weights for all connections will be set to zero.

Parameters:
in Dimension of the input (no. of input neurons).
out Dimension of the output (no. of output neurons).
cmat The connectionMatrix. Keep in mind, that because of the explicitly used neuron-bias connections, this must be a $M \times M + 1$ matrix, when the network includes $M$ neurons.
Returns:
None.
Author:
C. Igel, M. Hüsken
Date:
1999
Changes
none
Status
stable

Definition at line 145 of file ProbenBNet.h.

ProbenBNet::ProbenBNet ( const unsigned  in,
const unsigned  out,
const Array< int > &  cmat,
const Array< double > &  wmat 
) [inline]

Creates a proben bias network with "in" input neurons and "out" output neurons. Additionally, the arrays "cmat" and "wmat" determine the topology (i.e., number of neurons and their connections) as well as the connection weights.

Constructor no. 3

A network with the given connections and weights will be created.

Parameters:
in Dimension of the input (no. of input neurons).
out Dimension of the output (no. of output neurons).
cmat The connectionMatrix. Keep in mind, that because of the explicitly used neuron-bias connections, this must be a $M \times M + 1$ matrix, when the network includes $M$ neurons.
wmat The weightMatrix.
Returns:
None.
Author:
C. Igel, M. Hüsken
Date:
1999
Changes
none
Status
stable

Definition at line 181 of file ProbenBNet.h.

ProbenBNet::ProbenBNet ( const std::string &  filename  )  [inline]

Creates a proben bias network by reading the necessary information from a file named "filename".

Constructor no. 4

A file is used to create a new network. This file must have the following content: The first line of the file must contain two numbers that specify the number of input and the number of output neurons of the network, respectively.
This line is followed by the values for the connectionMatrix.
Keep in mind, that because of the explicitly used neuron-bias connections, the connection matrix must be a $M \times M + 1$ matrix, when the network includes $M$ neurons. The third and last part are the values for the weightMatrix.

Parameters:
filename Name of the file that contains the information for the creation of the network. If the file doesn't exist, the method will exit with failure.
Returns:
None.
Example

1 1

0 0 0 0
1 0 0 1
0 1 0 1

0 0 0 0
3 0 0 2
0 3 0 2

A file with the content shown above will create a network with 1 input and 1 output neuron.
A connection exists from the input neuron to the single hidden neuron of the network and from the hidden neuron to the output neuron. Each of the two connections has a weight of "3".
Each neuron (except the input neuron) also has a connection to the bias term with weight "2".

Author:
M. Hüsken, C. Igel
Date:
1999
Changes
none
Status
stable

Definition at line 246 of file ProbenBNet.h.


Member Function Documentation

double ProbenBNet::dg ( double  ga  )  [inline, virtual]

Computes the derivative of the activation function $g_{hidden}(x)$ for the hidden neurons.

The derivative function $g^*_{\mbox{hidden}}$ is defined as

$ g^*_{hidden}(g_{hidden}(x)) = \frac{\partial g_{hidden}(x)}{\partial x} $

Parameters:
ga The value of $g_{hidden}(x)$.
Returns:
The result of $g^*_{hidden}(g_{hidden}(x))$
Author:
M. Hüsken, C. Igel
Date:
1999
Changes
none
Status
stable
See also:
g

Reimplemented from FFNet.

Definition at line 330 of file ProbenBNet.h.

double ProbenBNet::g ( double  a  )  [inline, virtual]

Activation function $g_{hidden}(x)$ of the hidden neurons.

The activation function is used for the propagation of the input through the network. Given a network with $M$ neurons, including $c$ input neurons and $n$ output neurons, the sigmoid activation function for the hidden neuron with index $i \mbox{,\ } c \leq i < M - n$ is given as

$ z_i = g_{hidden}(x) = \frac{a}{1 + fabs(a)} $

where $a$ as the propagated result of the input for the previous neurons is calculated as

$ a = \left( \sum_{j=0}^{j<i} w_{ij} z_j + \Theta_i \right) $

and $ \Theta_i $ denotes the bias term.
This alternative activation function maps inputs to the values $-1, \dots, 1$ as the $tanh$ function does, but in contrast to $tanh$ the alternative function is more simple to calculate, more stable in a numerical way and saturates more slowly what has a positive effect when learning generalizations.

Parameters:
a Input for the activation function, see above.
Returns:
$ z_i $.
Author:
M. Hüsken, C. Igel
Date:
1999
Changes
none
Status
stable
See also:
gOutput

Reimplemented from FFNet.

Definition at line 297 of file ProbenBNet.h.


The documentation for this class was generated from the following file: