xfbpa

Section: User Commands (1)
Updated: 10 Sep 2001
Index
 

NAME

xfbpa - supervised learning for xfl-based fuzzy systems  

SYNOPSIS

xfbpa xflfile trnfile [ -o xflfile ] [ -s file ] [ -d file ] [ -n ] [ -t1 | -t2 | -t3 | -t4 | -t5 ] [ -p1 number ] [ -p2 number ] [ -p3 number ] [ -i number ] [ -e number ] [ -m number ] [ -M number ] [ -r number ] [ -E ] [ -W ] [ -X ] [ -w number... ]  

DESCRIPTION

xfbpa automatically tunes the parameters of a fuzzy system specified using xfl by means of steepest descent methods. Five different algorithms are supported and the user can select which specific parameters are to be tuned. It is also possible to adjust the error function, giving higher weights to those output variables that are supposed to be more significant in system deviation. Moreover, xfbpa can prune those rules made obsolete by the tuning process.

xfbpa requires an xfl file with the specification of the system, a training file with sample data, the selection of one algorithm (either -t1 , -t2 , -t3 , -t4 or -t5 must be selected), the values of the control variables of the selected algorithm (by means of -p1 , -p2 and -p3 options) and (at least) one end condition (by means of -i , -m , -M and -e options).

The goal of the learning methods supported by xfbpa is to minimize an error function which is assumed to express the deviation of the system from its ideal behavior. The error function used by xfbpa is defined by:

       E = Sum( w * ((y - Y)/range)**2 ) /r

where y is the actual value for the output variable, Y is the intended value for this variable, w is a weight defined for the variable and r is the number of training samples. The sum is applied over the set of output variables and the set of training samples.  

OPTIONS

-o xflfile
name for the xfl file used as output. The default value is built by changing the suffix in the source file name (usually ".xfl") to "_l.xfl".
-s file
file containing the selection of the parameters under tuning (see SPECIFIC LEARNING FILE FORMAT below).
-d file
file to save data of learning evolution.
-n
online learning. By default learning is performed off-line, i.e., system parameters are updated after the processing of the whole training file.
-t1
select Back Propagation with Momentum as learning algorithm.
-t2
select Adaptive Step Size as learning algorithm.
-t3
select Manhattan as learning algorithm.
-t4
select QuickProp as learning algorithm.
-t5
select RProp as learning algorithm.
-p1 number
value for the first control variable (see SUPPORTED LEARNING ALGORITHMS below).
-p2 number
value for the second control variable (see SUPPORTED LEARNING ALGORITHMS below).
-p3 number
value for the third control variable (see SUPPORTED LEARNING ALGORITHMS below).
-i number
maximum number of iterations.
-m number
minimum value for the mean deviation:
                                ( sqrt( E ) )
-M number
minimum value for the maximum deviation:
                                ( max ( (y-Y)/range ) )
-e number
minimum value for the relative error increment:
                                ( E(t-1) - E(t) )/ E(t-1)
-r number
threshold for rule pruning. The default value is 0, i. e., only completely inactive rules are pruned.
-E
do not show error messages.
-W
do not show warnings.
-X
this switch is reserved for the execution of xfbpa under xfuzzy. Do not use it when invoking xfbpa from the command line!
-w number ...
weights for the output variables in the error function. Weights are assigned to each variable in the same order they are defined in the module system of the xfl specification. By default, the weight for each variable is 1/N, where N is the number of output variables. Whenever it is used, this must be the last option in the command line.
 

SUPPORTED LEARNING ALGORITHMS

xfbpa supports five different learning algorithms, one of which must be selected by means of -t options. Each algorithm has its own control variables and the values of these variables must be provided by means of -p options.

For the Back Propagation with Momentum algorithm, the meaning of the -p options are:

-p1
learning rate.
-p2
momentum factor (by default, value 0 is assumed).
-p3
not used.

For the Adaptive Step Size algorithm, the meaning of the -p options are:

-p1
initial step size.
-p2
increase factor.
-p3
decrease factor.

For the Manhattan algorithm, the meaning of the -p options are:

-p1
initial update value.
-p2
not used.
-p3
not used.

For the QuickProp algorithm, the meaning of the -p options are:

-p1
learning rate.
-p2
maximum growth factor.
-p3
not used.

For the RProp algorithm, the meaning of the -p options are:

-p1
initial update value.
-p2
increase factor.
-p3
decrease factor.

 

SUPPORTED FUZZY OPERATIONS

Although xfl allows the definition and use of any fuzzy operation, xfbpa only supports a set of predefined operations:
T-norms
min, prod, bounded_prod, drastic_prod.
T-conorms
max, sum, bounded_sum, drastic_sum, disjoint_sum.
Negations
not.
Implications
min, prod, Diene, Dubois_Prade, Mizumoto, Goguen, Godel, Gaines, Lukiaciewicz, Early_Zadeh.
Defuzzifications
CenterOfArea, FuzzyMean, WeightedFuzzyMean, Quality, E2Quality, E05Quality, LevelGrading, CenterOfSums, Yager.
 

TRAINING FILE FORMAT

Training samples are sequentially read from the training file. Tabs, spaces and newlines are ignored. The values are associated with each variable in the same order they are defined in the module system of the xfl specification.  

SPECIFIC LEARNING FILE FORMAT

xfbpa allows the selection of which specific parameters are to be tuned (the default is tuning all of them). For this selection the -s switch defines a specific learning file. This file is composed of a set of lines, each of them defining the tuning state for a parameter or set of parameters. The settings defined in a line override any other settings in previous lines. The format for each of these lines is:
        type.mf.param: state
where
type=
typename | ANY
mf=
mfname | ANY | triangle | rectangle | trapezoid | bell | sigma | delta | points
param=
ANY | X_PARAMS | Y_PARAMS | #1 | #2 ...
state=
ON | OFF

X_PARAMS and Y_PARAMS are only applicable for pointwise defined functions (the points class in xfl).

For example:

       ANY.triangle.#2: OFF

inhibits tuning for the second parameter (the apex) of any triangular membership function in any type. And:

       type0.triangle.#2: ON

will allow tuning for the apex of those triangular functions in type "type0".

Some special constraints may apply in the distribution and overlapping of MFs on their universes of discourse for some specifications, specially when they are intended to a hardware implementation. In these cases, the learning procedure may break these constraints. To avoid this, an specific learning file can contain directives of the form:

        type: LINKED

where type can be either "ANY" or an xfl type identifier. The tuning process of a linked type enforces its distribution and overlapping constraints.

 

SEE ALSO

xfuzzy(1), xfc(1)

A guide to xfl, Xfuzzy user guide


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SUPPORTED LEARNING ALGORITHMS
SUPPORTED FUZZY OPERATIONS
TRAINING FILE FORMAT
SPECIFIC LEARNING FILE FORMAT
SEE ALSO