Está en la página 1de 23

ANFIS Y EL GUI ANFIS EDITOR

DE MATLAB

Edilio J. Alvarez F.
Que es ANFIS ?
 Sistema adaptativo neurodifuso de inferencia, por sus
siglas en ingles ANFIS.
 Usa un conjunto de datos de entrada/salida dado, la
función toolbox anfis construye un sistema de inferencia
difusa (FIS) cuyos parámetros de la función de
transferencia son sintonizados usando o un algoritmo de
retro propagación, o una combinación con un tipo de
método de mínimos cuadrados.
 Este permite a los sistemas difusos aprender desde los
datos que están modelando.

2
ANFIS (Antecedentes)
 Algoritmo definido por J.-S. Roger Jang en 1992
 Crea un árbol de decisión borrosos para clasificar los datos
en uno de 2n (o pn) modelos de regresión lineal para
reducir al mínimo la suma de errores cuadrados (SSE):
SSE = ∑ ej2
j
 Donde:
 e es el error entre lo deseado y la salida actual.
j
 p es el número de particiones difusas de cada variable

 n es el número de variables de entrada

3
Modelo de Aprendizaje
 La idea básica detrás de estas técnicas de aprendizaje nauro
adaptativo es muy simple:
 Estas técnicas proveen un método para el procedimiento de modelado
difuso para aprender información sobre un conjunto de datos, con el
fin de calcular los parámetros de la función de membresía que mejor
admita el sistema de inferencia difusa asociado al rastro de la data de
entra/salida.
 Este método de aprendizaje trabaja similarmente a el de las redes
neuronales.
 La función del FUZZY LOGIG TOOLBOX que lleva a cabo este
ajuste de los parámetros de la función de membresía es
llamada anfis.
 anfis puede ser ejecutado o desde la línea de comandos o a través del
ANFIS Editor GUI.
4
ANFIS (Esquema)
 Como todos los toolbox de
MATLAB, el Fuzzy Logic Toolbox
puede ser personalizado. Tu
puedes inspeccionar los
algoritmos, modificar el código
fuente, y agregar tu propia
función de membresía o
técnicas de des-difusificacion.

5
Como Iniciar ANFIS
 Inicializa Matlab
 Para anfis sin GUI, solo escribes anfis sobre la línea de
comandos de Matlab.
 Para ANFIS Editor GUI, solo escribes anfisedit sobre la línea
de comandos de Matlab.

6
GUI ANFIS EDITOR

7
Acciones desde el GUI
 Cargar datos (entrenamiento, prueba y chequeo) desde el apartado de
Load data en el GUI. La data cargada es graficada en la región de
gráfica.
 Generar un modelo FIS inicial o cargar uno usando las opciones en el
apartado Generate FIS en el GUI.
 Ver la estructura del modelo FIS, una vez que a sido generado o cargado
el modelo FIS, pulsando el botón Structure.
 Seleccionar el método de optimización de parámetro del modelo FIS:
 Retro propagación una mezcla entre este y mínimos cuadrados. (método
hibrido)
 Elegir el numero de épocas de entrenamiento y la tolerancia del error de
entrenamiento.
 Entrenar el modelo FIS haciendo clic en el botón Train Now.
 Este entrenamiento ajusta los parámetros de la función de membresía y
grafica el error de entrenamiento en la región de gráfica.
 Ver la salida del modelo FIS versus la salida de los datos de
entrenamiento, prueba y chequeo, todo ello haciendo clic en el botón
Test Now.
8
Chequeo y Entrenamiento
 Iniciar el entrenamiento en ANFIS Editor GUI:
 Primero, necesitas tener un conjunto de datos de entrenamiento

que contenga los datos de entrada/salida deseados del sistema a


ser modelado.
 En ocasiones también se quiere tener un conjunto de datos de

prueba que pueda chequearla capacidad de generalización del


sistema de inferencia difusa resultante, y/o un conjunto de datos
de chequeo que ayuden con el sobre ajuste del modelo durante el
entrenamiento.
 Usualmente estos conjuntos de datos de entrenamiento y chequeo

son recolectados en base a observaciones de el sistema destino


(objetivo) y son entonces almacenados en archivos separados.

9
Ejemplo

10
Ejemplo (cont.)

La carga de conjuntos de datos desde el workspace se debe


realizar:
1.Escribir en el commandline los datos a cargar:
• Load fuzex1trnData.dat
• Load fuzex1chkData.dat
2. En la sección Load Data del GUI seleccionar el tipo de dato y
el origen (en nuestro caso worksp)

11
Ejemplo (cont.)

12
Ejemplo (cont.)

13
Ejemplo (cont.)
Inicializacion y Generacion FIS:
 Puedes o inicializar los parámetros FIS según tu preferencia, o si no
tiene ninguna preferencia por la forma en que desea las funciones de
pertenencia iniciales para parametrizar, puedes dejar que anfis haga
esto por ti.
Genereacion automatica de la estructura FIS con ANFIS:
 Para inicializar los FIS usando ANFIS Elige Grid partition, el método de
partición por defecto. Hay dos métodos de partición: Grid partition y
subtractive clustering.
 Haga clic en el botón Generate FIS. Esto muestra un menú desde el
que puede elegir el número de funciones de pertenencia, MFs, y el tipo
de entrada y salida de las funciones de membresia.
 Tenga en cuenta que sólo hay dos opciones para la función de
pertenencia de salida: constante y lineal. Esta limitación de las
opciones de salida de la función de pertenencia se debe a que ANFIS
sólo funciona en los sistemas de tipo Sugeno.
14
Ejemplo (cont.)

15
Ejemplo (cont.)
Especificando tu propia función de membresía por ANFIS:
 Selecciona el ítem Edit membership functions desde el
menú View.
 Agrega la función de membresía deseada.

 Selecciona el ítem Edit rules desde el menú View. Usa el


editor de reglas para generar las reglas.
 Selecciona el ítem Edit FIS Properties desde el menú
View. Nombra tu FIS, y guárdala o en disco duro o
exportarla al workspace.

16
Ejemplo (cont.)
Visualizar la estructura de tu FIS:
 Después de generara el FIS, se puede ver la estructura del modelo haciendo
clic en el botón Structure.

17
Ejemplo (cont.)
 Comenzar el entrenamiento
 Elije el método de optimización (hybrid o
BackPropagation)
 Selecciona el número de épocas de entrenamiento, (El
valor por defecto es 3).
 Selecciona la tolerancia del error.
 Haga clic en Train Now.

18
Example (cont)

19
Example (cont)

20
Anfis desde el command line
 Es posible usar el comand line o programas m-file para
ejecutar el anfis.
 Hay funciones que generar, entrenar y probar los sistemas de
inferencia difusa.
 Los comandos utilizados son los siguientes:
 anfis(trnData, fismat, trOpt,disOpt, chkData, method):
 trnData: datos de entrenamiento
 fismat: Estructura de la entrada FIS
 trnOpt: Opciones de entrenamiento.
 disOpt: Opciones de visualizacion.
 chkData: Datos de chequeo
 method: método de entrenamiento
 Genfis1(trnData): generar la estructura FIS (usando grid partition)
 Genfis2(trnData): generar la estructura FIS (usando sub.
clustering)

21
Algunos Tips sobre ANFIS
 Tip 1 Si alguna vez se carga datos en ANFIS después de borrar los datos
previamente cargados, usted debe asegurarse de que los conjuntos de datos
recién cargados tienen la misma cantidad de entradas como los que
anteriormente se cargaron. De lo contrario, tendrá que comenzar una nueva
sesión de anfisedit desde la línea de comandos.

 Tip 2 Si no desea utilizar la opción de comprobación de datos de ANFIS, no


cargue ningún dato de chequeo antes de entrenar la FIS. Si decide volver a
entrenar a sus FIS, sin datos de chequeo, puede descargar los datos de
chequeos en una de dos maneras. Un método consiste en hacer clic en el
botón de Checking y haga clic en Clear Data. El otro método que puede utilizar
es cerrar el GUI e ir a la línea de comandos y escribir anfisedit. En este caso,
tendrá que volver a cargar los datos de entrenamiento. Después de borrar los
datos, tendrá que generar sus FIS. Una vez que el FIS se genera, usted puede
utilizar los resultados del primer entrenamiento y decidir sobre el número de
las épocas que desea para la segunda ronda de entrenamiento.

22
Gracias
por su
atención…

También podría gustarte