Lógica Difusa, Guía 6
1
Facultad: Ingeniería Escuela: Electrónica Asignatura: Lógica Difusa
Tema: Introducción al ANFIS parte I Contenidos Tutorial acerca del uso del Toolbox de Lógica Difusa para el entrenamiento de redes Neuronales
Objetivo Especifico Que el estudiante: 1. Aprenda a utilizar la herramienta ANFIS que proporciona el toolbox de lógica difusa de Matlab. 2. Implemente un sistema difuso en ANFIS.
Material y Equipo • Guía Número 6 • Computadora con sistema operativo Windows y programa MATLAB instalado
Introduccion Teorica ¿Qué es ANFIS? Proviene del nombre en ingles Adaptative Neuro Fuzzy Inference Systems, Básicamente lo que hace es generar, a partir de una entrada o salida específica, un sistema de inferencia donde los parámetros de membresía son ajustados usando el algoritmo de retropropagación (red neuronal artificial), esto provoca que el sistema difuso aprenda de los datos de entrada o salida proporcionados. Restricciones del editor Anfis: • • • •
Solo trabaja con sistemas difusos Sugeno. Tiene una única salida, pero sus funciones de membresía pueden ser todas del mismo tipo o diferentes. Solo puede existir una regla inferencia que haga referencia a cada una de las funciones de pertenencia de la salida. Se debe tener peso unitario para cada regla.
2
Lógica Difusa, Guía 6
Procedimiento 1. Ingrese a la versión profesional de Matlab. 2. Digite >>anfisedit lo cual hará que aparezca la figura 1. 3. Desde la línea de comandos, digite el siguiente código para cargar los datos iniciales . Load fuzex1trndata.dat Load fuzex2trndata.dat Load fuzex1chkdata.dat Load fuzex2chkdata.dat
Figura 1. Pantalla de Anfis para lógica difusa
4. Busque el campo Load data y seleccione las opciones Training y worksp. Luego presione el botón Load Data... lo cual provocará se pida la entrada de datos que se usarán en el entrenamiento. Ver figura 2.
Figura 2. Pantalla para cargar datos de entrenamiento de la red.
5. Digite el nombre fuzex1trndata y presione OK. Esto provocará que se carguen los datos y que se grafiquen como lo muestra la figura 3.
6. Busque el campo Load data y seleccione las opciones Cheking y worksp. Luego presione el botón Load
Lógica Difusa, Guía 6 Data... lo cual provocará se pida la entrada de datos que se usarán en el entrenamiento. Ver figura 2. 7. Digite el nombre fuzex1chkdata y presione OK. Esto provocará que se carguen los datos y que se grafiquen como lo muestra la figura 4.
Figura 3. Datos de entrenamiento de red.
Figura 4. Datos de entrenamiento y de verificación.
3
4
Lógica Difusa, Guía 6 Estos datos serán usados para ajustar las funciones de membresía. 8. Ahora se puede generar el sistema difuso o dejar que el toolbox cree uno. Para cargar un sistema ya hecho, basta con que se seleccione Generate FIS y cargar un sistema ya hecho ya sea desde disco o desde el espacio de trabajo. 9. En este caso nos interesa hacer que el sistema sea creado por lo que escogeremos Generate FIS y Grid partition y luego presionamos el botón Generate FIS..., lo cual hará que se muestre una pantalla de configuración del sistema difuso, ver figura 5.
Figura 5. Parámetros para sistema difuso.
Es de hacer notar que en la figura 5 solo podemos modificar el número de funciones de membresía, el tipo de función de membresía y el tipo de salida que se requiere, la cual solo puede ser constante o lineal debido a la limitante de solo poder usar un sistema del tipo Sugeno. 10. En la figura 5, ubique las siguientes opciones. Numero de MF’s
4
MF type (INPUT) Gbellmf MF type (OUPUT)
Linear
Tabla 1. Parámetros de sistema difuso.
11. Una vez generado el sistema difuso podemos ver la estructura, seleccionando el botón con el nombre structure, ver figura 6. 12. Ahora solo nos resta entrenar el sistema, para lo cual debemos hacer algunas configuraciones primero. Esto se hace seleccionando método de optimización de la red , el error, y el número de iteraciones (epochs) que se necesitan. Esto lo podemos configurar basándonos en la tabla 2.
Lógica Difusa, Guía 6
5
Figura 6. Estructura del sistema difuso creado con ANFIS. Optim Meted Hibrid Error Tolerance 0 Epochs 40 Tabla 2. Parámetros de entrenamiento de la red en ANFIS.
13. Una vez configurados los parámetros de entrenamiento, presione el botón Train now, lo que provocará que el sistema sea entrenado con los datos cargados, el sistema mostrará una gráfica con el error de los datos de entrenamiento (training) y el error de los datos de verificación (cheking) ver figura 7.
Figura 7. Gráfica de errores de entrenamiento y de verificación. La gráfica de la parte superior indica el error de entrenamiento y la inferior el error de verificación.
6
Lógica Difusa, Guía 6
14. Una vez hecho el paso anterior ya esta creado el sistema difuso a partir de datos de entrada , para guardarlo, solo es necesario ir a la opción File, export, to disk , lo cual desplegará la ventana para escribir el nombre del sistema y luego presionar el botón guardar. 15. Si queremos ver en la interfaz gráfica de usuario el sistema almacenado, basta con poner en la línea de comandos de Matlab >>fuzzy nombre lo cual desplegará el sistema creado. Esto nos permite editar las funciones de membresía para adaptarlas a un caso particular. 16. Si queremos verificar algunas gráficas como por ejemplo los datos de entrenamiento y de verificación, basta seleccionar dichas opciones en la figura 7, y luego presionar el botón Test now
Análisis de Resultados • •
Modifique el entrenamiento del sistema difuso incrementando y disminuyendo el número de iteraciones. Compare las gráficas de error. ¿Son iguales? ¿Porque? Repita toda la guía, pero hágalo con los datos fuzx2trndata y fuzx2chkdata.
Bibliografía The Mathworks Inc. Guía de usuario de toolbox de lógica difusa de Matlab ® Versión 5.3. The Mathworks Inc. Natick, MA. 2002.
Lógica Difusa, Guía 6 Hoja de cotejo: 6
Guía 6: Introducción al ANFIS parte I Alumno:
Maquina No:
Docente:
GL:
Fecha:
EVALUACION % CONOCIMIENTO 25%
APLICACIÓN DEL CONOCIMIENTO 60%
ACTITUD 15%
TOTAL
1-4
5-7
8-10
Del 20 al 30%
Conocimiento deficiente de los fundamentos teóricos
Conocimiento y explicación incompleta de los fundamentos teóricos
Conocimiento completo y explicación clara de los fundamentos teóricos
Del 40% al 60%
Realiza el análisis de resultados con mucha ayuda
Realiza el análisis de resultados con alguna ayuda
Realiza el correcto análisis del procedimiento solamente auxiliándose del material proporcionado
Del 15% al 30%
No tiene actitud proactiva.
Actitud propositiva y con propuestas no aplicables al contenido de la guía.
Tiene actitud proactiva y sus propuestas son concretas.
100%
Nota
7