Luis Valencia Cabrera (coordinador) lvalencia@us.es (http://www.cs.us.es/~lvalencia) Manuel García-Quismondo mgarciaquismondo@us.es (http://www.cs.us.es/~mgarcia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Universidad de Sevilla Introducción a los Sistemas Basados en el Conocimiento (2011/2012) Índice Ingeniería del Conocimiento Sistemas Basados en el Conocimiento Sistemas Expertos Ejemplos Ilustrativos ¿Por qué SE? Ventajas de su uso Limitaciones Ingeniería del Conocimiento (I) A mitad de los 70 comienzan a tomar cuerpo dos ideas clave. Se trata del paradigma del sistema experto y del paradigma del conocimiento. La expresión Ingeniería del Conocimiento se acuñó en los años 70 para referirse al diseño y construcción de SBC: Se admite que el conocimiento que se puede extraer de los expertos puede ser incompleto, inconsistente, impreciso, incierto y no dogmático. Las respuestas del sistema puedan ser inseguras, matizadas por un grado de confianza o de creencia. Ingeniería del Conocimiento (II) Además, el conocimiento puede evolucionar tanto en la fase de desarrollo como en la de uso del sistema, por incorporación de nuevos conocimientos o porque los expertos reconsideran la forma en la que se ha expresado su conocimiento. Por tanto, la responsabilidad del desarrollo y del mantenimiento no recae sólo en los ingenieros, sino también en los expertos y en los usuarios finales, que intervienen a lo largo de todo el ciclo de vida. Como consecuencia, no es aplicable el ciclo de vida clásico, porque no pueden establecerse unas especificaciones definitivas desde el principio. Esto implica un proceso continuo de depuración de la base de conocimientos, que muchas veces se prolonga durante toda la vida del sistema. Sistemas Basados en el Conocimiento (SBC) Sistemas basados en el conocimiento: Terminología: Programas que resuelven problemas usando un determinado dominio de conocimiento Sistema basado en el conocimiento Sistema experto Sistema experto basado en el conocimiento Sistemas basados en el conocimiento vs sistemas expertos: SBC: conocimiento no necesariamente experto. SE: conocimiento experto + interacción. SE ⊆ SBC. Estructura básica de los SBC Desde el punto de vista funcional (conductista): Desde el punto de vista estructural (cognitivo): SBC: Conocimiento + Razonamiento Sistemas Expertos El término experto designa a aquél que tiene un amplio conocimiento para resolver problemas en un determinado dominio de conocimiento. El proceso de adquisición del conocimiento, cuyo objetivo es llegar a expresar de manera explícita en algún lenguaje de representación los conocimientos que el experto utiliza para resolver problemas, resulta a menudo el más difícil de todo el desarrollo de los sistemas basados en conocimiento. Sistemas Expertos (II) Definición: Un sistema experto puede definirse como un sistema informático (hardware y software) que simula a los expertos humanos en un área de especialización dada. Los sistemas expertos son máquinas que razonan como un experto lo haría en una cierta especialidad o campo. Ejemplo: Un sistema experto en diagnóstico médico requeriría como datos los síntomas del paciente, los resultados de análisis clínicos y otros hechos relevantes, y, utilizando éstos, buscaría la información necesaria para poder identificar la correspondiente enfermedad. Un Sistema Experto no sólo maneja grandes cantidades de datos, sino que también los manipula de forma que el resultado sea inteligible y tenga significado para responder a preguntas incluso no completamente especificadas. Definición de SBC vs Sistema Experto Ingeniería del Conocimiento para SBC La Ingeniería del Conocimiento es el proceso de diseñar y hacer operativos los Sistemas Basados en el Conocimiento (SBC). Se define como: Sub-campo de la Inteligencia Artificial concerniente a la adquisición, representación y aplicación de conocimientos, o . . . Disciplina de la Ingeniería por la cual el conocimiento se integra dentro de un sistema de computador para resolver problemas complejos que normalmente requieren un alto nivel de conocimiento. Ingeniería del Conocimiento para SE En el caso de los SSEE es el proceso de mejorar, hasta un nivel de experto humano, las prestaciones de sistemas software que poseen un amplio cuerpo de conocimiento sobre un área de aplicación específica. Programa que usa conocimiento y procedimientos de razonamiento para resolver problemas lo suficientemente difíciles como para necesitar de un experto para su solución (Feigenbaum, 1982). Se usan cuando el problema: No se requiere “sentido común” Se requiere razonamiento simbólico No se resuelve con métodos “tradicionales” Necesita de conocimiento experto El coste compensa su uso Ejemplos Ilustrativos (I) Ejemplo 1.1 Transacciones bancarias. No hace mucho, para hacer una transacción bancaria, tal como depositar o sacar dinero de una cuenta, uno tenía que visitar el banco en horas de oficina. Hoy en día, esas y otras muchas transacciones pueden realizarse en cualquier momento del día o de la noche usando los cajeros automáticos que son ejemplos sencillos de sistemas expertos. De hecho, se pueden realizar estas transacciones desde casa comunicándose con el sistema experto vía tfno. o Internet. Ejemplos Ilustrativos (II) Ejemplo 1.2 Control de tráfico. El control de tráfico es una de las aplicaciones más importantes de los sistemas expertos. No hace mucho tiempo, el flujo de tráfico en las calles de una ciudad se controlaba mediante guardias de tráfico que controlaban el mismo en las intersecciones. Hoy se utilizan sistemas expertos que operan automáticamente los semáforos y regulan el flujo del tráfico en las calles de una ciudad y en los ferrocarriles. Ejemplos Ilustrativos (III) Ejemplo 1.3 Problemas de planificación. Resolver problemas complicados de planificación optimizando ciertos objetivos. Ejemplo: la organización y asignación de aulas para exámenes finales en una gran universidad; condiciones: Eliminar las coincidencias de asignación simultánea de aulas: Sólo se puede realizar un examen en cada aula al mismo tiempo. Asientos suficientes: Un aula asignada para un examen debe tener al menos dos asientos por estudiante. Minimizar conflictos temporales: nº alumnos que tienen exámenes coincidentes. Eliminar sobrecarga de trabajo: Ningún alumno más de 2 exams. 24 h. Minimizar nº exámenes realizados durante las tardes. Otros ejemplos de problemas resueltos mediante sistemas expertos: Planificación de doctores y enfermeras en un gran hospital Planificación en una gran empresa o fábrica Planificación de autobuses para las horas de congestión o de días festivos. ¿Por qué SE? Ventajas (I) Mayor disponibilidad: Coste reducido Permanencia: La experiencia está disponible para cualquier hardware de cómputo adecuado La experiencia es permanente, a diferencia de lo que ocurre con los expertos humanos Experiencia múltiple: El conocimiento de varios especialistas puede estar disponible para trabajar simultánea y continuamente en un problema. El nivel de experiencia combinada de muchos sistemas expertos puede exceder el de un solo especialista humano. Ventajas (II) Respuestas no subjetivas: Explicación del razonamiento: El sistema experto puede explicar clara y detalladamente el razonamiento que conduce a una conclusión Respuesta rápida: El sistema experto ofrece respuestas sólidas, completas y sin emociones en todo momento. Algunas situaciones de emergencia pueden exigir respuestas más rápidas que las de un humano. Tutoría inteligente Base de datos inteligente Limitaciones (I) Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser que se especifique que esto no es posible ya que un hombre no puede procrear hijos. Lenguaje natural: Con un experto humano podemos mantener una conversación informal mientras que con un SE no podemos. Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y de errores ajenos, que un SE haga esto es muy complicado. Limitaciones (II) Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones relevantes de un problema y separarlas de cuestiones secundarias. Capacidad sensorial: Un SE carece de sentidos. Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolución de un problema. Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado.