Re: number of membership functions?

Xiaozhong Li (xli@sckcen.be)
Thu, 21 May 1998 18:46:09 +0200 (MET DST)

At 03:46 98-05-18 +0200, you wrote:
>
>
>
>My first question:
>
>I remember reading a passage about the number of
>membership functions (MFs) that should be (or recommended)
>used in a fuzzy system, in Constantin von Altrock's book.
>The recommended number was about (if I'm not wrong) 7 for
>each variable. The reason for using such a low number was
>that humans can use only few linguistic terms simultaneously
>during their reasoning or decision making processes.
>
>Wouldn't using more MFs increase the precision of the fuzzy
>system? Suppose we are provided with sufficient amount of
>(training) data to generate a rule-base that could cover
>tens(or hundreds) of MFs. Then why limit ourselves with few MFs?

Using more MFs will increase the precision of the fuzzy system to
approximate a function. This has been proved by Bart Kosko. However, if you
have some practical experience of making fuzzy controller, you will know the
following fact. The degree of complexity (memory, computing time, etc.) of
your system will also be increased exponentially if the number of MFs are
increased. Will the precision be increased exponentially too? If yes, you
are right, and we don't need to limit ourselves with few MFs. Unfortunately,
when the number of MFs are big enough, the precision of the system will be
increased much slower and slower. Therefore, a dilemma lies between the
precision and the complexity. Normally, 7 MFs can provide good precision and
proper complexity which both are acceptable by us.

>
>Second question:
>
>Fuzzy logic is always referred as the technique which can deal
>with linguistic uncertainties. That's why the MFs are represented
>by linguistic terms. This makes it easy to incorporate linguistic
>rules obtained from a human expert.
>
>However, in cases where only numerical data is used to generate
>rules, is it still necessary to label each MF by a linguistic term?
>

If you want to use fuzzy logic, I think so. Otherwise, you can use neural
network which is good to process the numerical data.

>What if a large number (say 50) of MFs is used? Wouldn't it
>be inconvenient to use a separate linguistic term for each MF?
>Could "numbers" instead of linguistic terms be used? In that case
>a fuzzy rule would look like:
>(x1,x2)-->(y):
>If x1 is "13" and x2 is "35" then y is "46"

Actually, a practical fuzzy controller is equivalent to a classical mapping.
Therefore you can do the above crisp rules. The condition is that you must
know exactly which point is mapping to which value. But please remember,
fuzzy logic is supposed to be used in an environment with uncertainty in which
it is not possible or too difficult to get all input-output data.

Fuzzy logic, as well as other techniques of soft computing, provides us a
way to solve the problem with a lower cost but a good enough solution.
Purely pursuing high precision is not the purpose of fuzzy logic.

For further understanding, please refer to

"Discussion on soft computing at FLINS'96", by X. Li, D. Ruan, and A. J. van
der Wal, International Journal of Intelligent Systems, Vol. 13, 287-300 (1998).

Regards.

Xiaozhong
_____________________________________________________________________
* Xiaozhong Li. PhD, Currently Young Scientific Researcher *
* Belgian Nuclear Research Centre (SCK.CEN) *----------*
* Boeretang 200, B-2400 Mol, Belgium | _L_ *
* phone: (+32-14) 33 22 30(O); 32 25 52(H) | /\X/\ *
* fax: (+32-14) 32 15 29 | \/Z\/ *
* e-mail:xli@sckcen.be http://www.sckcen.be/people/xli | / \ @ *
*________________________________________________________*----------*