You are on page 1of 12

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ

FACULTAD DE INGENIERÍA
ESPECIALIZACIÓN EN INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN
SISTEMAS INTELIGENTES
Septiembre de 2005
Prof. Nelson Obregón Neira

ENTRENAMIENTO DE UN MODELO DIFUSO TIPO MAMDANI MEDIANTE EL


MÉTODO DE FUERZA BRUTA DETERMINÍSTICA
Pervys Rengifo Rengifo1, Leonardo Jiménez2 y Sara Serrato3

El presente trabajo tiene como propósito la aplicación de un sistema de inferencia difusa (FIS)
para hallar la relación de dependencia entre el porcentaje de crecimiento del PIB, la Tasa
Cambiaria, y el Gasto Público Nacional, a partir de la información de estas variables en el
periodo comprendido entre 1952 y 2003 inclusive.

La información seleccionada para resolver este problema, consistió en las series cronológicas: Porcentaje
del crecimiento del PIB (como variable dependiente), el gasto público Nacional, y la tasa real cambiaria
(como variables independientes), información tomada desde 1952 hasta el año 2003, todas ellas
deflactadas a precios de 1975, como se observa en las siguientes páginas

Datos transformados
Datos Originales Utilizados como patrones de
entrenamiento
Tasa de %
Año % PIB Gastos totales Log GT Log TC
cambio real PIB
1952 0.063 457 44,96 2.66 1.65 0.063
1953 0.061 666 42 2.82 1.62 0.061
1954 0.069 713 38,73 2.85 1.59 0.069
1955 0.039 903 40,56 2.96 1.61 0.039
1956 0.041 1,055 46,13 3.02 1.66 0.041
1957 0.022 1,186 59,67 3.07 1.78 0.022
1958 0.025 1,289 76,33 3.11 1.88 0.025
1959 0.072 1,264 71,75 3.10 1.86 0.072
1960 0.043 1,582 72,54 3.20 1.86 0.043
1961 0.051 1,783 69,09 3.25 1.84 0.051
1962 0.054 2,160 70,12 3.33 1.85 0.054
1963 0.033 3,284 71,78 3.52 1.86 0.033
1964 0.062 3,232 62,36 3.51 1.79 0.062
1965 0.036 4,084 67,67 3.61 1.83 0.036
1966 0.052 4,362 77,36 3.64 1.89 0.052
1967 0.041 4,726 79,24 3.67 1.90 0.041
1968 0.059 6,100 87,85 3.79 1.94 0.059
1
Ingeniero, estudiante del Programa de Especialización en Informática y Ciencias de la Computación de la
Fundación Universitaria Konrad Lorenz( FUKL)
2
Matemático, estudiante del Programa de Especialización en Informática y Ciencias de la Computación de la
Fundación Universitaria Konrad Lorenz (FUKL).
3
Psicóloga, estudiante del Programa de Especialización en Informática y Ciencias de la Computación de la
Fundación Universitaria Konrad Lorenz (FUKL)
.
1969 0.061 7,069 89,08 3.85 1.95 0.061
1970 0.062 9,924 93,98 4.00 1.97 0.062
1971 0.060 13,473 97,60 4.13 1.99 0.060
1972 0.077 16,905 101,21 4.23 2.01 0.077
1973 0.067 20,808 99,72 4.32 2.00 0.067
1974 0.057 21,994 99,79 4.34 2.00 0.057
1975 0.023 27,183 100,00 4.43 2.00 0.023
1976 0.047 33,139 98,74 4.52 1.99 0.047
1977 0.042 46,863 85,34 4.67 1.93 0.042
1978 0.085 48,325 85,47 4.68 1.93 0.085
1979 0.054 67,773 84,62 4.83 1.93 0.054
1980 0.041 93,784 82,23 4.97 1.92 0.041
1981 0.023 141,022 76,00 5.15 1.88 0.023
1982 0.009 181,198 71,32 5.26 1.85 0.009
1983 0.016 247,977 72,95 5.39 1.86 0.016
1984 0.034 312,725 77,41 5.50 1.89 0.034
1985 0.031 374,394 102,41 5.57 2.01 0.031
1986 0.058 501,676 115,10 5.70 2.06 0.058
1987 0.054 627,133 115,92 5.80 2.06 0.054
1988 0.041 798,172 114,92 5.90 2.06 0.041
1989 0.034 1,038,570 121,80 6.02 2.09 0.034
1990 0.043 1,418,503 132,30 6.15 2.12 0.043
1991 0.020 1,938,646 115,90 6.29 2.06 0.020
1992 0.040 2,719,305 109,80 6.43 2.04 0.040
1993 0.054 3,835,823 111,40 6.58 2.05 0.054
1994 0.058 6,230,343 103,90 6.79 2.02 0.058
1995 0.057 6,690,176 105,50 6.83 2.02 0.057
1996 0.022 9,571,244 101,00 6.98 2.00 0.022
1997 0.031 11,917,001 93,70 7.08 1.97 0.031
1998 0.006 15,487,900 104,30 7.19 2.02 0.006
1999 -0.042 21,280,000 109,20 7.33 2.04 -0.042
2000 0.029 23,492,007 122,20 7.37 2.09 0.029
2001 0.014 28,537,000 115,50 7.46 2.06 0.014
2002 0.016 32,111,000 134,10 7.51 2.13 0.016
2003 (pr) 0.037 37,573,000 138,80 7.57 2.14 0.037

Tabla No. 1 PORCENTAJE DE CRECIMIENTO DEL PIB, GASTOS DEL GOBIERNO NACIONAL Y TASA REAL DE CAMBIO,
ORIGINALES Y COMPACTADAS, DEDE 1952 A 2003 (BASE 1975)

MODELO CONCEPTUAL
Con base en la información anterior y haciendo sentido de estas variables, se propone construir
un modelo para hallar la relación ( que sospechamos que existe, esta nuestra hipótesis de trabajo),
entre la el porcentaje de crecimiento del PIB( variable dependiente), a la que se referirá como
PIB, y las variables Tasa cambiaria(TC) y Gasto Público(GP)( variables predictoras).
El modelo se puede ilustrar mediante el siguiente esquema:
Gráfica No. 1 Modelo Conceptual

Con el fin de tener una estructura inicial del sistema de inferencia difusa se establecieron las
reglas con base en el criterio no experto del Profesor Benigno Lozano, quien ofició de experto
para esta tarea. Con el editor del Toolbox de Lógica Difusa se eligió un sistema tipo Mamdani y
se procedió a fijar los parámetros básicos para cada variable de entrada y la variable de salida, al
igual que las reglas difusas, que como se mencionó antes, se establecieron de acuerdo con el buen
criterio del experto.

DISCRETIZACIÓN DIFUSA DE LAS VARIABLES


A partir del rango de variación de las variables se establecen subintervalos que corresponderán a
las categorías correspondientes. A continuación se muestran las etiquetas y los subintervalos
correspondientes a cada variable.

VARIABLE INTERVALOS ETIQUETA


GASTO PÚBLICO (Independiente) [0.0, 3,25] BAJO
[2.94,5.2] MEDIO
[4.0,6.5] ALTO
[5.5,8.0] MUY ALTO

TASA DE CAMBIO(Independiente) [0.0, 1.92] BAJA


[1.72, 2.13] MEDIA
[1.92, 3.0] ALTA

PORCENTAJE DE CRECIMIENTO DEL PIB [-0.0579, 0.015] CRITICO


(Dependiente de la serie original) [-0,05 , 0.053] MODERADO
[0.0359, 0.071] BUENO
[0.056,0.1] MUY BUENO
Tabla No. 2 Discretización difusa de de las variables para el sistema de inferencia difusa

Las siguientes son las funciones de membresía definidas para cada variables
Gráfica No.2 Funciones de membresía establecidas inicialmente para el sistema de inferencia difusa

Las siguientes fueron las reglas de inferencia difusa establecidas por el expertos

Gráfica No. 3 Reglas para el sistema de inferencia difusa, establecidas por el experto

El sistema se ingresa al Toolbox, utilizando el Editor correspondiente, la estructura del sistema de


inferencia difusa de ilustra en la gráfica No. 4.

Gráfica No. 4 Estructura general del sistema de inferencia difusa tipo Mamdani.

En la gráfica No. 5 se muestra un ejemplo de la operación del sistema de inferencia difusa tipo
Mamdani para el problema del PIB
Gráfica No. 5 Ejemplo de operación del sistema de inferencia difusa inicial

La superficie de interpolación del sistema de inferencia difusa inicial, junto con los datos
obervados( se muestra como punto azules), se muestra a continuación

Gráfica No. 6 Superficie de interpolación del modelo de inferencia difusa inicial. Como estrellas azules se muestran los puntos observados.

En la gráfica No. 6 se aprecia que el modelo inicial presenta un desempeño pobre

SALIDA OBSERVADA Y SIMULADA. SISTEMA DE INFERENCIA DIFUSA INICIAL

0.1 PIB SIMULADO


0.08 PIB OBSERVADO
0.06
0.04
PIB

0.02
0
-0.02 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51

-0.04
-0.06
AÑO
PIB OBSERVADO VS. PIB SIMULADO

0.1
y = 0.5909x + 0.028
R2 = 0.2207
0.08

0.06

PIB OBSERVADO
0.04

0.02

0
-0.02 0 0.02 0.04 0.06
-0.02

-0.04

-0.06
PIB SIMULADO

Gráfica No. 7 Comportamiento del modelo de inferencia difusa inicial

En la gráfica No. 7 se confirma lo que se observa en la figura No. 6, es decir el modelo inicial tiene un
desempeño muy deficiente.

A continuación se incluye un resumen del sistema difuso inicial para el PIB


[System]
Name='Modelo PIB'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=12
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'

[Input1]
Name='Gasto_Publico'
Range=[0 8]
NumMFs=4
MF1='Bajo':'trapmf',[0 0 2.66 3.25]
MF2='Medio':'trimf',[2.94 4.07 5.2]
MF3='Alto':'trimf',[4 5.25 6.5]
MF4='Muy_Alto':'trapmf',[5.55555555555556 7.67 8 8]

[Input2]
Name='Tasa_cambiaria'
Range=[0 3]
NumMFs=3
MF1='Baja':'trapmf',[0 0 1.59 1.92]
MF2='Media':'trimf',[1.72 1.91 2.13]
MF3='Akta':'trapmf',[1.92 2.14 3 3]

[Output1]
Name='PIB'
Range=[-0.05 0.1]
NumMFs=4
MF1='Crìtico':'trapmf',[-0.0579 -0.0579 -0.0499 0.0156746031746032]
MF2='Moderado':'trimf',[-0.005 0.024 0.053]
MF3='Bueno':'trimf',[0.0359 0.0545634920634921 0.071]
MF4='Muy_Bueno':'trapmf',[0.0565476190476191 0.085 0.1 0.1]

[Rules]
1 1, 2 (1) : 1
1 2, 2 (1) : 1
1 3, 4 (1) : 1
2 1, 2 (1) : 1
2 2, 3 (1) : 1
2 3, 3 (1) : 1
3 2, 2 (1) : 1
3 3, 2 (1) : 1
4 1, 1 (1) : 1
4 2, 1 (1) : 1
4 3, 2 (1) : 1
3 1, 1 (1) : 1

ESTRATEGIA DE ENTRENAMIENTO: METODO DE FUERZA BRUTA DETERMINÍSTICA

El método de fuerza bruta determinística consiste en dividir al intervalo de variación de


cada parámetro a calibrar y luego mediante un ciclo anidado explorar exhaustivamente
todas las combinaciones posibles de los valores discretos adoptados por los
parámetros.

ESTABLECIMIENTO DE LOS INTERVALOS DE VARIACIÓN DE CADA PARÁMETROS


A partir del modelo *.fis exportado en el editor del Toolbox, se creo desde la
línea de comando el modelo para poder manipularlo mejor.
En el modelo anterior se definieron 22 parámetros que podían variar durante el
proceso de entrenamiento.
Esto de puede ilustrar en el siguiente código de matlab
a=newfis('pib');

a=addvar(a,'input','GastoPublico',[0 8]);
a=addmf(a,'input',1,'Bajo','trapmf',[0 0 par(1) par(2)]);
a=addmf(a,'input',1,'Medio','trimf',[par(3) 4 par(4)]);
a=addmf(a,'input',1,'Alto','trimf',[par(5) 5.25 par(6)]);
a=addmf(a,'input',1,'Muy_Alto','trapmf',[par(7) par(8) 8 8]);
a=addvar(a,'input','TasaCambiaria',[0 3]);
a=addmf(a,'input',2,'Baja','trapmf',[0 0 par(9) par(10)]);
a=addmf(a,'input',2,'Media','trimf',[par(11) 1.8 par(12)]);
a=addmf(a,'input',2,'Alta','trapmf',[par(13) par(14) 3 3]);
a=addvar(a,'output','PIB',[-0.05 0.1]);
a=addmf(a,'output',1,'Critico','trapmf',[-.0579 -.0579 par(15) par(16)]);
a=addmf(a,'output',1,'Moderado','trimf',[par(17) 0.025 par(18)]);
a=addmf(a,'output',1,'Bueno','trimf',[par(19) 0.06 par(20)]);
a=addmf(a,'output',1,'Muy_Bueno','trapmf',[par(21) par(22) 0.1 0.1]);

Lo que aparece con el nombre par(i), corresponde al parámetro i, a optimizar durante el proceso
de entrenamiento.
A continuación se determina el intervalo de variación de cada parámetro, que asegure problemas
de inconsistencia al interior de las funciones de membresía(los parámetros deben tener un orden,
con respecto a su magnitud). En la siguiente tabla se muestran los intervalos elegidos
parámetro Valor mínimo Valor máximo
1 0.01 2.65
2 2.66 4.0;
3 1 3
4 4.1 5.5
5 4 5.24
6 5.26 7.9
7 5 6.9
8 7 8
9 0 1.49
10 1.5 1.79
11 1 1.79
12 1.81 3
13 1.82 2.3
14 2.4 2.9
15 -0.049 -0.029
16 -0.024 0.025
17 -0.04 0.024
18 0.026 0.06
19 0.026 0.059
20 0.061 0.1
21 0.061 0.079
22 0.08 0.1
Tabla No. 3 Intervalos de variación de los parámetros del modelo de inferencia difusa

Luego se construye una función que reciba como argumento el conjunto de parámetros y los
datos, y retorne alguna medida de error, que para este caso, se escogió, la suma de la diferencia
absoluta entre las salidas retornadas por el sistema de inferencia y la salida deseada.

Después de esto, se hace el ciclo básico de iteración:


incremento=0% para ajustar diferente conjunto de parámetros
divisiones=20% numero de divisiones en que se divide el intervalo de variación de cada
parámetro
cont=zeros(22,1)% contador definido por facilidad de programación
%CICLO PRINCIPAL
for i1=1:divisiones,
cont(1)=i1;
for i2=1:divisiones,
cont(2+incremento)=i2;
% for i3=1:divisiones,
% cont(3+incremento)=i3;
% for i4=1:divisiones,
% cont(4+incremento)=i4;
% for i5=1:divisiones,
% cont(5+incremento)=i5;
% for i6=1:divisiones,
% cont(6+incremento)=i6;
% for i7=1:divisiones,
% cont(7+incremento)=i7;
% for i8=1:divisiones,
% cont(8+incremento)=i8;
% for i9=1:divisiones,
% cont(9+incremento)=i9;
% for i10=1:divisiones,
% cont(10)=i10;
% for i11=1:divisiones,
% cont(11)=i11;
% for i12=1:divisiones,
% cont(12)=i12;
% for i13=1:divisiones,
% cont(13)=i13;
% for i14=1:divisiones,
% cont(14)=i14;
for k=1+incremento:22+incremento,
par(k)=pmin(k)+(pmax(k)-pmin(k))/divisiones*cont(1);
[error y]=economia(par', datos);
if(error<errormax)
errormax=error
pmax1=par();
error
end
end
end
end
% end
% end
% end
% end
% end
% end
% end
% end
% end
% end
% end
% end
En este script se hace para 22 contadores (hasta i22), con el fin de poner a variar todos los
parámetros. La variable divisiones controla el número de divisiones a considerar en el intervalo
de variación de cada parámetro.
Tal y como está expresado aquí esto requeriría algo así como 22*divisiones^22, que resulta en un
tiempo intolerable, para las condiciones actuales de cómputo, y el tiempo que tenemos disponible
para concluir esta tarea, por lo tanto se variaron sólo algunos parámetros, con el fin de poder
hacer este ejercicio y mostrar resultados. En el futuro se espera dejar corriendo este script en
algún computador, con el fin de hacer una exploración mucho más exhaustiva del espacio de
parámetros.
La gráfica de los errores durante el entrenamiento se presenta a continuación:

Gráfica No. 8 Variación del error absoluto sobre todos los patrones, durante en entrenamiento

A continuación se incluye los resultados obtenidos en la mejor corrida

Gráfica No. 9 Funciones de membresía del modelo de inferencia entrenado


Gráfica No.10 Superficie de interpolación del sistema de inferencia difusa entrenado( Como puntos azules aparecen los datos observados)

En la gráfica No. 10 Se puede observar una leve mejoría en el desempeño de este modelo en
relación con el inicial

ENTRENAMIENTO: SALIDA SIMULADA VS.


SALIDA OBSERVADA
0.1

0.08

0.06
SALIDA OBSERVADA

0.04

0.02

0
-0.02 0 0.02 0.04 0.06 0.08 0.1
-0.02
y = 0.4415x + 0.0224
-0.04 R2 = 0.2644
-0.06
SALIDA SIMULADA

ENTRENAMIENTO MODELO PIB: SALIDA SIMULADA Y SALIDA OBSERVADA

0.1
SALIDA SIMULADA
0.08
SALIDA OBSERVADA
0.06
0.04
PIB

0.02
0
-0.02 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

-0.04
-0.06
AÑO

Gráfica No. 11 Desempeño del modelo de inferencia obtenido al final del proceso de entrenamiento.

Lo que se aprecia es que el comportamiento del modelo no mejoró mucho con respecto al
anterior, y también presenta un desempeño muy pobre. Esto indicaría que es necesario aplicar un
entrenamiento más intenso, luego del cual se podría tomar la decisión de replantear las reglas
establecidas, dado que se establecieron con base en el sentido común del experto( que en este
caso no es un experto en economía). También podrían cambiarse los tipos de las funciones de
membresía, y en últimas el modelo conceptual, lo cual implicará una profunda investigación de
las variables económica y su relación con el PIB.

CONCLUSIONES

Al igual que en otros procesos de modelación, la definición de un modelo conceptual adecuado,


con base en el conocimiento del dominio, es fundamental para obtener un modelo difuso que
describa adecuadamente un conjunto de observaciones de un sistema. Es decir que a pesar de
que un modelo sea conducido por datos, o sea un modelo de caja negra, la concepción de las
relaciones de dependencia deben proceder de un análisis cuidadoso que asegure capturar la
información relevante y suficiente de la variabilidad del sistema. Es decir, que en estos casos,
resulta conveniente combinar la aproximación basada en datos, con una concepción basada en el
conocimiento.