Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Una experiencia sobre el apoyo a la enseñanza por computadora en el campo de la Inteligencia Artificial Jose B. García Perez-Schofield1 , Emilio García Roselló2 1 Departamento de Lenguajes y Sistemas Informáticos, E.U. de Informática - Universidad de Vigo, Campus As Lagoas - Orense - España e-mail: jbgarcia@uvigo.es 2Departamento de Lenguajes y Sistemas Informáticos, Facultad de Ciencias - Universidad de Vigo, Lagoas- Marcosende s/n , 36200 Vigo - España La Inteligencia Artificial (IA) además de estar incluida en la docencia de las carreras universitarias de informática, es utilizada, en herramientas de apoyo a la docencia (i.e. educativas), en la forma de simulaciones. Por ello, se hace necesaria a veces la enseñanza de ciertos conceptos tanto a universitarios no informáticos como a informáticos, lo cuál puede abordarse mediante el apoyo de herramientas educativas. En este artículo se expondrán dos programas representantes de las dos ramas principales de la IA: un modelo de simulación de Redes de Neuronas, y un Sistema Experto basado en lógica proposicional, los dos enfocados hacia la enseñanza. Se explorarán por tanto las capacidades de estos dos programas creados por los autores, ExpertLab y NeuroLab, para la ayuda o asistencia en la docencia universitaria. Se revisarán también ciertas técnicas de construcción de los programas que pensamos que no sólo asisten en la creación de los mismos sino también en su posterior integración, y, finalmente, evaluaremos la utilidad de estos programas en un caso real. Introducción Muchas veces, un docente se apoya en una herramienta informática para impartir la docencia en su asignatura. Este es el caso que se presenta en el artículo, una experiencia de los autores, en el campo de la inteligencia artificial, utilizando software educativo. El desarrollo propio fue necesario, ya que encontramos un cierto vacío en el campo de la enseñanza en la informática en general, y en la Inteligencia Artificial en particular; así es común encontrar aplicaciones informáticas que asisten a la enseñanza en ámbitos como por ejemplo de simulación de ecosistemas (pues es un campo en el que se precisa un cálculo relativamente complejo o laborioso que se presta al uso de herramientas de este tipo), (véase por ejemplo, si bien pueden encontrarse múltiples ejemplos en la bibliografía, Spitz F. et al, 1998) y sin embargo es difícil encontrar aplicaciones de apoyo a la docencia en los propios dominios de conocimiento de la informática. Las razones que apuntan a este hecho pueden derivarse, como se indica en (Kölling, Michael 1999), de que las herramientas en informática (en concreto Kölling se refiere a la enseñanza dentro del paradigma de Orientación a Objetos) son realizadas para que tengan la funcionalidad que precisa un profesional, mientras que a la hora de la enseñanza, de conceptos puros, el alumno precisa más bien de otro tipo de herramientas, con ciertas características pedagógicas. Los autores pensamos que las conclusiones de Kölling sobre la enseñanza de la orientación a objetos bien pudieran aplicarse al campo que nos atañe: la docencia en Inteligencia Artificial. Si bien existen múltiples herramientas constructoras de Sistemas Expertos (p.ej. Level 51)y varios programas bien conocidos de cálculo matemático (p.ej. MatLab2) que permiten simular redes de neuronas, ninguno de estos sistemas es adecuado como apoyo para la docencia. En este artículo, se describirán primeramente las herramientas desarrolladas, y su utilidad en la docencia, pasando en la siguiente sección a describir las técnicas de desarrollo de las herramientas; y por último se adjuntan ciertas respuestas sobre encuestas presentadas a los alumnos acerca de los programas. 1Copyright © 1990 IBBI. 2Copyright © 1984 - 1996 The MathWorks, Inc Características de las herramientas Según la clasificación indicada por De Jong, (De Jong, T. y van Jooligen, 1998), encontramos en NeuroLab como un sistema de simulación, es decir, un sistema donde se potencia el aprendizaje constructivista, el aprendizaje del descubrimiento (discovery learning). NeuroLab permite, básicamente, la construcción de una red de neuronas de tipo backpropagation, y entonces, siempre interactivamente, entrenarla. Una vez entrenada, a la red pueden suministrársele valores de entrada y obtener valores de salida tanto de forma tabulada, como de forma gráfica. ExpertLab es, básicamente, un motor de inferencia, orientado al aprendizaje. Al igual que NeuroLab, es un sistema de simulación, que permite definir las reglas en las que se basará el Sistema Experto, y observar el comportamiento del sistema. Las reglas, por tanto, funcionan como entradas, y son las que convierten al motor de inferencia en Sistema Experto, caracterizado por las mismas. No sólo podemos obtener, como decíamos, como salida el comportamiento del sistema, sino que además podemos modificar el comportamiento del motor de inferencia. Por tanto, ExpertLab es también un sistema de simulación constructivista o de aprendizaje por descubrimiento. Ambas herramientas se caracterizan por el uso de un interface amigable, y una extensa interacción con el usuario, es decir, son sistemas que explican su funcionamiento y permiten modificar el comportamiento de ciertos aspectos, observando las diferencias al momento. Estas características son muy deseables en una herramienta pedagógica. Finalmente, las herramientas han sido implementadas para Windows 98, sistema disponible en una plataforma tan popular como el PC, lo que supone una ventaja a la hora de ser utilizado en un centro. ExpertLab ExpertLab es un Motor de Inferencia orientado a la enseñanza, que permite observar el comportamiento del mismo según la base de conocimiento (reglas y hechos) que le sean introducidas, permitiendo también ciertas modificaciones sobre la operación del Motor. Por otra parte, el sistema está integrado, sin perder su autonomía, en un sistema mayor, ModelLab donde aporta su capacidad de inferencia basándose en lógica. Aparecen escasas referencias en la bibliografía acerca de sistemas expertos utilizados en la educación: en todos ellos, se trata de sistemas expertos en un dominio de conocimiento, que asisten al profesor en la docencia de ese dominio o de otro mayor, del que el primero forma parte. Por ejemplo, en (Saatchi, M.R. et al, 1998), encontramos un sistema experto que ayuda a los alumnos a aprender conceptos acerca de electrónica digital, o en (Megnevitsky, M. 1998), encontramos un sistema experto en el análisis de fallos en sistemas de energía, para la docencia de ingenieros industriales. Sin embargo, los autores no hemos encontrado un sistema experto con o sin base de conocimiento3 que ayude a entender como trabajan este tipo de programas, sin que el hecho de tener características pedagógicas afecte necesariamente a su funcionalidad. De hecho, ExpertLab se encuentra perfectamente integrado en el entorno de modelado ModelLab (Roselló et al, 1997), como estudiaremos más adelante. ExpertLab acepta como entrada una serie de hechos y reglas, bien mediante las opciones de introducción de su interface de hechos y reglas, o bien vía un archivo de texto, editable por tanto desde cualquier editor sencillo y entendible directamente por el usuario, utilizando, además, una notación intuitiva, como por ejemplo la regla z :- a, b, c. El hecho de no cambiar la notación utilizada habitualmente o cuando menos conocida por otra propia facilita el aprendizaje del uso de la herramienta. Esta notación es entendida por el programa y traducido a sus esquemas de datos internos. Una vez que hemos introducido la base de conocimiento, que el programa muestra separando hechos de reglas, para facilitar la asimilación por parte del alumno. Podemos elegir entredos tipos de encadenamiento: hacia delante y hacia atrás (sobre algoritmos de inferencia, o técnicas de IA en general, véase Rich, E., 199!!!!!!!!!!!!). Además podemos modificar el como el programa va efectuar el encadenamiento, proveyendo dos estrategias de activación de reglas (FIFO y Económica (i.e., la de menor coste4)) y un modo de trabajo especialmente recomendado por su característica pedagógica: el modo de explicación. En este modo, cada uno de los pasos que ejecuta el programa al realizar el encadenamiento hacia atrás (el más complejo de entender), son explicados por el programa, que ofrece respuestas a ¿ por qué ? y a ¿cómo?, es decir, de qué regla se obtiene el resultado actual y cuál es el camino seguido a través de la base de conocimiento para llegar hasta ella, respectivamente. Obviamente, 3 Simplemente, los autores intentamos distinguir aquí entre los propios sistemas expertos y aquellos motores de inferencia genéricos que permiten la creación de sistemas expertos. 4 Entendemos por la más económica, en el contexto de la herramienta desarrollada, a la regla que tiene menos antecedentes a demostrar antes de poder concluir la hipótesis. ésta no es una opción muy útil si la base de conocimiento es muy grande, pero recordemos una vez más que cuando utilicemos esta opción no será el caso ya que estaremos interesados en la docencia, y no en otros factores. En cuanto a la implementación, el programa se apoya intensivamente en la tecnología OOP, y, más concretamente, en el uso de listas, y de algoritmos recursivos para el caso del encadenamiento hacia atrás. En cuanto a la interacción con el interface, sólo es necesario, para actualizar la vista de la base de conocimiento con la vista que obtiene el usuario, interrogar a cada objeto perteneciente a la base, obteniendo de cada uno su autodescripción, (sin necesidad de saber si es hecho o regla), y representando entonces adecuadamente cada uno de ellos. NeuroLab NeuroLab es un sistema de aprendizaje que permite la construcción de redes de neuronas backpropagation; el sistema cuenta con autonomía propia, si bien se encuentra enmarcado en un proyecto mayor de modelado ecológico, ModelLab (Roselló et al, 1998). Podemos encontrar varios entornos de modelado en las bibliografía actual, (por ejemplo, Odum, H. et al 1998) si bien ModelLab, destaca precisamente por la utilización de componentes integrados, respetando sin embargo la capacidad individual de los mismos, entre los cuáles también se cuenta ExpertLab, como ya se ha dicho. No es la primera vez, sin embargo, que se utilizan redes de neuronas en la simulación, o en el modelado ecológico, como puede verse, por ejemplo, en (Lek, S. et al, 1996; Boudjena, G., 1996; Tan, S.S. y Smeins, F.E. 1996), mostrando mejores resultados que los métodos de regresión habituales (Brey, T. et al, 1996;Paruelo, J.M. y Tomasel, F., 1997). Tanto NeuroLab como ExpertLab fueron utilizados como herramientas de aprendizaje para alumnos universitarios5, en una asignatura, por supuesto, altamente relacionada con la Inteligencia Artificial. Los resultados fueron enteramente satisfactorios, ya que ellos mismos, construían, entrenaban y probaban las redes neuronales propuestas como ejercicio, lo cuál supuso un salto cualitativo en la asimilación de los conceptos teóricos que envuelve la utilización de redes de neuronas. NeuroLab, no sólo permite la construcción de redes de neuronas, sino también su entrenamiento, y su posterior prueba y evaluación de salidas, de una forma altamente 5 Ver apéndice intuitiva, guiada por un interface sencillo; esto refuerza tanto la seguridad como el aprendizaje del alumno (Beishuizen, J.J., 1998). En todo momento, el alumno ve la red que está construyendo en la pantalla, pudiendo modificar tanto sus conexiones como el número de neuronas, o incluso, acceder a las propiedades de cada neurona, consultando los pesos de sus conexiones, cambiando la función de transferencia … etc. Esto es posible debido principalmente a una asociación “objeto visual” – “objeto contenedor de la lógica del sistema”, unívoca, que permite integrar la interface enteramente con el modelo de red a construir, tanto como separar totalmente la lógica de ese interface de la lógica de la simulación. Esta diferenciación interface – lógica del programa es muy parecida a lo que es necesaria conseguir en las aplicaciones basadas en tecnología web (Schawbe, D. y Rossi, G., 1998). Una vez definida la red de neuronas (en cuanto a su número de capas, neuronas, y función de transferencia según capas), mediante un proceso guiado, es posible la eliminación y adición de conexiones con un simple drag del ratón. Así, se introducen los patrones en una tabla siguiendo el formato: entrada1, entrada2, …., entradaN,salida1,salida2,…,salidaN. Esto permite entrar en la siguiente etapa del proceso: el entrenamiento interactivo. El entrenamiento de la red se realiza en una ventana donde se puede elegir entrenamiento batch o interactivo: en cualquier caso, el alumno puede ver en todo momento cuál es el progreso de entrenamiento de la red, incluso accediendo directamente a las gráficas de salida o según los diferentes índices de referencia (como por ejemplo, la correlación, que puede apreciarse como tiende a 1 con cada iteración del algoritmo de entrenamiento (según los patrones elegidos). Una vez que se considera suficiente el entrenamiento, puede accederse a la página de resultados, pudiendo ver estos en forma tabular o como gráfica, siempre con referencias visibles al resultado esperado marcado por los patrones. Entonces, es posible definir nuevas páginas de patrones nuevos para comprobar si la red se ajusta con otras entradas diferentes a las utilizadas para entrenarla. Técnicas de Construcción Como se ha adelantado anteriormente, las dos herramientas, pese a mantener su entidad individual, forman parte de un entorno de modelado mayor. Esto se ha conseguido manteniendo separado, si bien perfectamente integrado, el núcleo de los programas de su interface con el usuario; gracias, entre otras técnicas, al paradigma de orientación a objetos. Podemos encontrar ejemplos de integración de software en la bibliografía, aunque no de forma excesivamente abundante. Por ejemplo, en (Williamson, M. 1997), encontramos un trabajo de integración realizado partiendo de componentes ya existentes, que mantienen su funcionalidad, pero son capaces de cooperar una vez juntos. Por otra parte, en (Harding, R.D. 1996) se ofrece una experiencia más próxima a la nuestra, debido a que los componentes a integrar en su caso son de desarrollo propio, no comerciales. Para finalizar, es de resaltar que la integración de componentes ya realizados supone un gran reuso del propio trabajo, más allá de la simple reutilización de código, o, incluso, de la reutilización de clases. La Programación Orientada a Objetos (POO), facilita el reuso en el desarrollo del software, tanto a gran escala (estamos hablando de la integración), como a nivel de clase (Praehofer, H., 1994); si bien, es una técnica que empieza a ser conocida, apreciada y explotada por beneficiosa (Armstrong, T.C. y Loane, R.F., 1994). Puede ser encontrada en varias experiencias de software educativo , como por ejemplo en (Borges, I.L. Jr., 1997). Como ya se ha comentado anteriormente, una de las características básicas en la programación de estos sistemas ha sido la separación de las clases encargadas de la interface y aquellas contenedoras de la lógica del componente de la simulación al que representan, para permitir una manipulación más libre (por ejemplo, su posterior integración con otras herramientas). Así, la parte del interface de usuario se presta a ser realizada y refinada posteriormentecomo prototipos, procediendo, una vez llegado a un estado satisfactorio, al “enganche” con las llamadas apropiadas al “kernel” del programa, desde el interface prototipado (Wong, S.C.H., 1994). Casos de estudio Los programas fueron utilizados con considerable éxito en las clases de 3º de carrera de la Ingeniería Técnica de Informática de Gestión, de la asignatura Sistemas Expertos de Gestión. Fueron las dos primeras prácticas realizadas por los alumnos, para, en el caso de NeuroLab, conocer otras posibilidades de la Inteligencia Artificial, ya que, como los autores hemos comentado anteriormente, sus aplicaciones actualmente son diversas. En cuanto a ExpertLab, éste estaba en relación directa con la asignatura, y constituyó un admirable apoyo para la asimilación de la teoría, pues fueron capaces de realizar sus propios mini-sistemas expertos, y de observar cómo funcionaban. En el apéndice, se incluyen extractos de las encuestas realizadas a los alumnos, donde se aprecia su favorable opinión hacia este tipo de prácticas y un cualitativo incremento en la seguridad de los conocimientos sobre los temas. Conclusiones En este artículo se han presentado dos herramientas de apoyo a la docencia en el campo de la inteligencia artificial. Estas herramientas, como ya se ha indicado, se pretenden sean útiles para la enseñanza, y no para un uso técnico de las mismas, al contrario de cómo pensamos se sitúa el mercado de las herramientas de informática actualmente. Las herramientas presentadas creemos que son muy útiles sobre todo desde un punto de vista educacional, punto de vista que en el caso de la docencia en informática no se tiene en cuenta como quizás debiera, pues no encontramos desarrollos suficientes en este campo. Hemos presentado (Kölling, Michael, 1999) como ejemplo de un estudio sobre búsqueda de herramientas y lenguajes adecuados para la enseñanza de la orientación a objetos, cuyas conclusiones, acerca de que la excesiva profesionalidad se las herramientas y lenguajes disponibles eliminan sus posibilidades educativas, podría aplicarse perfectamente al tema que nos atañe, el de las herramientas educativas en informática en general e IA en particular. Existe, por tanto, un vacío, que es necesario, por beneficioso para la docencia, rellenar con herramientas centradas exclusivamente en determinadas propiedades pedagógicas que resalten las características de la asignatura que el profesor determine. Finalmente, la POO como tecnología vehículo del desarrollo de software educacional, nos parece muy apropiada, tal y como ya ha demostrado con el resto del software, haciendo hincapié en, gracias a la encapsulación, las posibilidades que ofrece para integración de herramientas educativas como componentes en un sistema mayor. Bibliografía Armstrong, T.C. y Loane, Russel, F. (1994). Educational Software: a developer’s perspective. Techtrends, c39 n1, p 20 – 22. Beshuizen, J.J., (1998). Studying a complex knowledge domain by exploration or explanation. Journal of Computer Assisted Learnign, v8 n2, p 104 – 17. Borges, I.R.Jr., Bermúdez, L.A., de Carvalho, Paulo. (1997). Educational Software for small signal microwave amplifier design. Proceedings of the 1997 SBMO/IEEE MIT- S International Microwave and Optoelectronics conference. Part1, v1, p 65 – 70. Boudjema, G. (1996). Using some recent techniques from chaos theory to analyze time- series in ecology. Journal of Biological Systems, v3 n2, p 291-302. Brey, T., Jarre-Teichmann, A., Borlich, O. (1996). Artifical Neural Network versus multiple linear regression: predicting P/B ratios from empirical data. Marine Ecology Progress Series, v140 n1-3, p 251-256. De Jong, T., van Joolingen, Wouter R., (1998) Discovery Learning with Computer Simulations of Conceptual Domains, kk, v n , p. Harding, R.D., y aa. vv. (1996), A consortium approach to Courseware Design in Mathematics. Computers & Education, v26 n1-3, p171-178. Kölling, Michael, (1999). The problem of teaching object oriented programming Part II. Journal of Object Oriented Programming, February 1999, p 6-12. Lek, S., Belaud, A., Baran, P., Dimopoulos, I., Delacoste, M. (1996). Role of some environmental variables in trout abundance models using neural networks. Aquatic Living Resources, v9 n1, p 23-29. Negnevitsky, M. (1998). Knowledge based tutoring system for teaching fault analysis. IEEE Transactions on Power Systems, v13 n1, p 40-45 Odum H.T., Peterson N. (1996). Simulation and evaluation with energy systems blocks. Ecological Modelling, 93: 155-173. Paruelo, J.M., Tomasel, F. (1997). Prediction of functional characteristics of ecosystems: A comparison of artificial neural networks and regression models. Ecological Modelling v98 n2-3, p 173-186. Praehfofer, Herbert. (1998). Object Oriented, modular hierarchical simulation modelling: towards reuse. Simulation Practice and Theory, v4 n4, 4 p. Rich, Elaine. (1990). Artificial Intelligence. McGraw-Hill. Roselló E. G., Fernández R.B., Suárez E. F. (1998). Desarrollo de una herramienta software de modelado matemático. Paper presented at 3º Simposio de Investigación y Desarrollo de Software Educativo. Evora , Portugal, 3-5 Sep. Saatchi, M.R., Ayienga, E. M., Travis, J.R., Rippon, F. (1998). Expert system Developed to assist digital electronics teaching. Engineering Science and Education Journal, v7 n2, p 81 – 87. Schawbe, Daniel, Rossi, Gustavo (1998). An Object Oriented Approach to Web-based applications design. Theory and practice of Object Systems, v4 n4, p 207 – 225. Spitz, F., Lek S., Dimopoulos, I. (1998) Neural Network models to predict penetration of wild boar into cultivated fields.Journal of Biological Systems, v4 n3, p 433-444. Tan, S.S., Smeins, F.E. (1996). Predicting grassland community changes with an artificial neural network model. Ecological Modelling, v84 n1-3, p 91-97. Williamson, M. (1997). Integrating comercially-available educational software into a learning environment with the quiltspace builder tool. Paper presented at the Annual Meeting of the American Educational Research (Chicago, IL, March, 24-28, 1997), 8 p. Wong, S.C.H.(1994). Quick prototyping of educational software: an object oriented Apéndice. Encuestas A continuación, se incluyen extractos de las encuestas realizadas a los alumnos, después de probar la herramienta. Se incluye desde la 4ª a la 9ª pregunta, que pensamos que son las más reveladoras respecto a la opinión del software por parte de los alumnos. 4ª Pregunta Crees que posees conocimientos básicos sobre RN NeuroLab Ningunos Algunos Bastantes 0,0% 83,3% 16,7% 5ª Pregunta Crees que posees conocimientos básicos sobre para que sirven las RN Ningunos Algunos Bastantes 0,0% 83,3% 16,7% 6ª Pregunta Crees que las prácticas han sido útiles Sí No No sabe 100,0% 0,0% 0,0% 7ª Pregunta Crees que han permitido mejorar tu comprensión de RN Sí No No sabe 100,0% 0,0% 0,0% 8ª Pregunta Te ha parecido adecuado utilizar una aplicación para modelar RN Adecuado Inadecuado No sabe 90,3% 1,5% 8,2% 9ª Pregunta El manejo del software utilizado para las prácticas te ha parecido Sencillo Medio Complicado 92,4% 6,6% 1,0% 4ª Pregunta Crees que posees concimientos básicos sobre lo que son los SE ? ExpertLab Ningunos Algunos Bastantes 0,0% 100,0% 0,0% 5ª Pregunta Crees que posees conocimientos básicos sobre para que sirven los SE Ningunos Algunos Bastantes 0,0% 100,0% 0,0% 6ª Pregunta Un modelo de SE típicamente se compone de Hechos&Reglas Log Prop + Esq Declarat. No sabe 82,0% 18,0% 0,0% 7ª Pregunta Cree el alumno que han sido útiles en su formación las prácticas Sí No No sabe 100,0% 0,0% 0,0% 8ª Pregunta Cree el alumno que ha mejorado su comprensión de los SE Sí No No sabe 100,0% 0,0% 0,0% 9ª Pregunta El hecho de utilizaruna aplicación por ordenador para las prácticas le parece al alumno Inadecuado Adecuado Igual 94,8% 5,2% 10ª Pregunta El manejo del software utilizado te ha parecido Sencillo Medio Complicado 97,7% 2,3% 0,0%
Compartir