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
-