Modelos, Control y Sistema de Visión

Central     Modelos     Control     Visión     Aplicaciones     Publicaciones     Mapa     Buzón     Sobre el autor      

Diseño de un sistema de conocimiento basado en reglas

 

Supóngase que se desea clasificar el rendimiento de un jugador de baloncesto. Por simplicidad se supone que ello depende del número de canastas de cada jugador en un período y la altura.

La reglas serán de la forma:
Si Canastas es alta y Altura es alta entonces Rendimiento es alto

Como existen dos variables de entrada y se definirán tres funciones de pertenencia por cada variable podrán crearse, en principio, 32=9 reglas.

 

Pasos para diseñar las reglas:
[1].- Se definen las variables lingüísticas, basado en:
{ X, T(X), U, G }

Variables de entrada:
Canastas: { Canastas, T(Canastas), UCanastas, GCanastas }
donde :
Canastas : Nombre de la variable lingüística que indica el número de canastas del jugador.
T(Canastas) : { Bajo, Moderado, Alto}.
UCanastas : Intervalo del número de canastas de los jugadores a evaluar [100, 1000].
GCanastas : {zmf, gaussmf, sigmf} ( %ver en Matlab >>mfdemo).

Altura: { Altura, T(Altura), UAltura, GAltura}
donde :
Altura : Nombre de la variable lingüística que indica la altura del jugador.
T(Altura) : { Baja, Media, Alta}.
UAltura : Intervalo de la altura que pueden alcanzar los jugadores, en cm [1.6, 2.1].
GCanastas : {trimf, trimf, trimf}.

Variable de salida:
Rendimiento: {Rendimiento, T(Rendimiento), U Rendimiento, G Rendimiento }
donde :
Rendimiento : Nombre de la variable lingüística que identifica el rendimiento del jugador.
T(Rendimiento ): { Bajo, Moderado, Alto}.
U Rendimiento : Intervalo indicador de rendimiento [bajo, alto] discretizado en el intervalo [0, 1].
G Rendimiento : {gaussmf, gaussmf, gaussmf}.

 

[2].- Definir las características generales del sistema borroso.
Se ejecuta la interfaz gráfica en Matlab:

>>anfisedit

 

Se crea un sistema de inferencia borroso:
File --> New FIS… --> Mamdani
En esta ventana se definen los elementos generales del conjunto de reglas, es necesario incorporar una variable de entrada y nombrar todas las variables involucradas.
Para agregar una nueva variable de entrada: Edit -->  Add Variable --> Input.


Se selecciona cada variable del conjunto de reglas y se nombran con los identificadores de las variables lingüísticas: {Canastas, Altura, Rendimiento}.
Los parámetros que definen al sistema borroso como tipo de desborrosificación, mecanismo de inferencia, etc.; se definen teniendo en consideración los fundamentos de los sistemas borrosos.

 

[3].- Definir las funciones de pertenencia para cada variable del sistema.

Se selecciona cada variable de entrada (Se abre un nuevo cuadro de diálogo: Membership Function Editor), definiendo el intervalo del universo de discurso, las funciones de pertenencia y los valores de los parámetros que las identifican.

Cuando sea necesario agregar nuevas funciones de pertenencia a una variable se ejecuta el comando:

Edit --> Add MFs…

 

La definición de los distintos componentes descritos hasta el presente se muestran a continuación

 

[4].- Definir el conjunto de reglas.

Para crear las reglas se utilizará como referencia la siguiente tabla

Canastas\Altura BajaMediaAlta
Bajo Bajo BajoModerado 
ModeradoBajo  ModeradoAlto 
AltoModerado  AltoAlto 

Se definen las reglas (desde el FIS Editor) activando Edit --> Rules, lo cual abre el cuadro de diálogo donde se editan las reglas (Rule Editor).

 

[5].- Probar y redefinir las reglas.
Una vez definidas las reglas, se retorna al cuadro FIS Editor y se activa View --> Surface. Se genera un gráfico que representa la respuesta generada por el conjunto de reglas en función de los valores que pueden tomar las variables de entradas, tal y como se muestra a continuación.


Se salva el conjunto de reglas desde el FIS Editor aplicando File --> Export --> To Workspace…. Lo anterior nombra al conjunto de reglas, que hasta el presente se identificaba por Untitled.

 

Para evaluar el rendimiento de un jugador con 650 canastas y 2 metros de altura se ejecutaría:
>> rendimiento=evalfis([650 2],JugadorBaloncesto)
rendimiento =
0.6382

Algunos criterios para ajustar un conjunto de reglas


Como en la evaluación del conocimiento humano, la efectividad de un conjunto de reglas depende, entre otros, de la experiencia de quien las define y la percepción y criterios del evaluador. No existen normas precisas de lo «bueno» que un sistema borroso pueda ser, dado que este representa el conocimiento heurístico de quien las crea.


A pesar de lo anterior, se exponen a continuación algunos criterios para su ajuste :
1.- La transición de la superficie de salida debe ser suave: Se fundamenta en la base de los sistemas borrosos, la decisión sobre un tema posee niveles intermedios. Nótese que en la transición continua de las variables que el experto representa está el fundamento del conocimiento que se pretende representar (la multiplicidad del conocimiento está en las diferentes tonalidades de grises, no en la discontinuidad entre el blanco y el negro).


2.- Definir las reglas obvias: Primero se deben definir las reglas evidentes, evaluar el sistema y definir el efecto que las reglas vagas puedan tener sobre el sistema general.


3.- Limitar la contribución de ciertas reglas: Es una herramienta que permite priorizar ciertas reglas a través de la adición de un término multiplicativo (normalmente en el intervalo [0, 1]), ajustando la contribución de la regla al modelo final. Cuando no existe término multiplicativo, se considera que este posee un valor implícito de uno. El término multiplicativo que se le incorpora a la regla se multiplica por el grado de activación de la regla antes de realizar el proceso de inferencia.


4.- La reevaluación del método de borrosificación: La utilización de normas–T con recortes extremos puede reducir el aporte de las variables de entrada al conocimiento presente en las reglas.


5.- La reevaluación del método de desborrosificación: La desborrosificación determina el valor escalar que representa al conjunto borroso de salida. Constituye un factor de vital importancia a la hora de ajustar la respuesta del sistema borroso. Los más utilizados son : Centro-de-Área ó Centroide, Centro-del-Máximo y Media-del-Máximo.


6.- Redistribuir las funciones de pertenencia: Se debe prestar particular atención a las siguientes áreas de las variables involucradas:
(a).- Regiones terminales del universo de discurso.
(b).- Valores extremos del soporte de las funciones de pertenencia.
(c).- Zona de solape entre funciones de pertenencia.
(d).- Valores en los antecedentes para los que se activa el mayor número de reglas.


7.- Aplicar modificadores lingüísticos: Es un forma para alterar la representación de las funciones de pertenencia en el universo de discurso, debido a que concentra y dilata los mismos. Puede utilizarse para aumentar el grado de pertenencia que devuelven algunas reglas y modificar el área resultante de la composición.


8.- Aumentar la sensibilidad a las variaciones en cierta región de las variables de entrada: Para lo anterior se debe incrementarse la densidad de las funciones de pertenencia en la región en la que se desee alta sensibilidad, tal y como se muestra a continuación.

 

Se puede crear las reglas a partir de la discretización del conocimiento, generándose de forma automática el sistema lógico borroso a partir de datos de entrada-salida.