Inteligencia Artificial Conferencia # 1: Introducción a los Sistemas Basados en el Conocimiento (SBC). Profesor: MSc. Yasiel Pérez Vera Email: [email protected] Objetivo Caracterizar los sistemas basados en el conocimiento. Sumario • Antecedentes históricos. • El conocimiento como eje central en la construcción de los SBC. • Rasgos que caracterizan a los SBC. • Arquitectura de un SBC. • Desarrollo de un SBC. Etapas en su desarrollo. • Mecanismos de aprendizaje de un SBC. Bibliografía [1] Curso de sistemas basados en el conocimiento. Dr. Daniel Gálvez Lío. 1998. Tema 1. [2] Inteligencia Artificial, 2da edición. Dra. Elaine Rich & Kevin Knight, 1994. Capítulos 4 y 5. [3] Sistemas basados en conocimiento: una base para su concepción y desarrollo. Dr. Alejandro Peña Ayala. 2006. Capítulos 1, 2 y 3. [4] Inteligencia Artificial. Sistemas basados en el conocimiento. Capítulo 4. [5] Inteligencia Artificial, 3ra edición, Patrick Henry Winston, 1994. Capítulo 7. (impreso) ¿Cómo normalmente se enfrentan a un problema al cual no saben como darle solución? ¿Ha representado alguna vez su conocimiento sobre algún tema? ¿Qué formas de representar el conocimiento conoce? ¿Dentro del curso de IA ha utilizado alguna variante de reglas de producción para representar el conocimiento? Introducción • década del 70, se notó que los métodos de solución de problemas generales eran insuficientes para resolver los problemas orientados a aplicaciones. • se determinó la necesidad de un conocimiento específico sobre el problema, limitado a los dominios de aplicación de interés, en lugar de conocimiento general aplicable a muchos dominios. Este reconocimiento condujo al desarrollo de los Sistemas Basados en el Conocimiento (SBC) que deben su nombre al hecho de que se hacen énfasis en el conocimiento en sí y no en los métodos usados. Antecedentes históricos… • DENDRAL: considerado el primer sistema experto. Fue utilizado por químicos, genetistas y científicos de la computación. • MYCIN: realización de diagnósticos, su función es la de aconsejar a los médicos en la investigación y determinación de diagnósticos en el campo de las enfermedades infecciosas de la sangre. • PROSPECTOR: para hallar yacimientos de minerales. • A partir de 1980, numerosas empresas de alta tecnología desarrollan sistemas expertos para su comercialización • Se llega a la conclusión de que el éxito de un sistema experto depende casi exclusivamente de la calidad de su base de conocimiento. El Conocimiento • Se obtiene a partir de: • los expertos en el dominio. • conocimiento general acumulado por la humanidad. • Constituido por relaciones Causa-Efecto originadas de las experiencias. El Conocimiento El conocimiento de un experto humano presenta dos aspectos: Conocimiento formal o público Conocimiento informal o privado Ej: conocimiento registrado en los libros Ej: la opinión o el criterio del experto • expertos: personas que resuelven tipos específicos de problemas. • vasta experiencia de un conocimiento detallado, especializado de los problemas que manejan. El éxito de un SBC experto depende casi de la calidad de su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar difícil, largo y laborioso. Rasgos que caracterizan a los SBC • La separación del conocimiento y la forma en que se usa (distinción entre conocimiento y estrategia de control). • El uso de conocimiento muy específico del dominio. • Naturaleza heurística, en lugar de algorítmica, del conocimiento empleado. • Generalmente los términos SBC y SE se usan indistintamente, aunque algunas autores limitan el uso del término SE a aplicaciones donde se requiere el conocimiento al nivel de experto. Justificación para desarrollar un SE • La solución de las tareas del dominio de aplicación da un resultado de mucho valor. • La mayoría de los problemas difíciles e interesantes no tienen soluciones algorítmicas tratables. • La experticia humana: 1. puede perderse 2. escasea 3. necesita en muchos lugares 4. necesita en ambientes hostiles Experticia humana vs artificial Experticia humana: • Puede perderse. • Impredecible, por razones emocionales. • Difícil de transferir, pues la educación es un proceso largo y costoso. Experticia artificial: • Es permanente. • Consistente, pues no está relacionada con el estado “físico o mental” del S.E. • Fácil de transferir. Bastaría con copiar un fichero. Sistemas expertos (Ventajas) 1. El conocimiento que poseen es fácil de modificar. 2. Son consistentes en sus respuestas. 3. Están siempre disponibles. 4. Preservan la experiencia humana. 5. Dan solución a problemas que incluyen datos incompletos. 6. Son capaces de explicar las soluciones y justificar por qué hacen una pregunta. 7. Permiten evaluar el efecto de nuevas estrategias añadiendo o modificando el conocimiento. Sistemas expertos (Desventajas) 1. Las respuestas no siempre son correctas. 2. Su conocimiento está limitado a un dominio específico. 3. Tienen absoluta ausencia de sentido común. 4. No reconocen el límite de su conocimiento. Componentes de un Sistema Experto • Base de Conocimientos: contiene el conocimiento de los hechos y de las experiencias de los expertos en un dominio determinado (F.R.C). – Frames. – Redes Semánticas. – Reglas de Producción. • Mecanismo de Inferencia: puede simular la estrategia de solución de un experto (M.S.P). – Forward chaining – Backward chaining Componentes de un Sistema Experto • Componente Explicativo: explica al usuario la estrategia de solución encontrada y el porqué de las decisiones tomadas. • Interfase de Usuario: sirve para que éste pueda realizar una consulta en un lenguaje lo más natural posible. – Los resultados deben presentarse en una forma clara para el usuario. – Las preguntas y explicaciones deben ser comprensibles. Arquitectura de un Sistema Experto Desarrollo de los Sistemas Expertos • Adquisición del Conocimiento: Es el proceso de extracción, codificación y verificación del conocimiento de un experto humano. “Cuello de Botella”. • Ingeniería del Conocimiento: Es la disciplina relacionada con la forma en que se organizan, construyen y verifican las BC de un SE. Desarrollo de los Sistemas Expertos • Ingeniero de Conocimiento (IC): Es la persona responsabilizada con desarrollar las tareas de la ingeniería del conocimiento. Debe ser capaz de conocer y comprender los SE, saber usar las herramientas para crear los mismos, ser un buen programador en un lenguaje de IA y un hábil entrevistador. Estructura de los SBC • tiene 3 puntos de vistas: – el del usuario final, – el del ingeniero del conocimiento – el del constructor de herramientas. Estructura de los SBC (Usuario) • Programa inteligente: caja negra para el usuario final, contiene la inteligencia del sistema • Interfaz de usuario: – Permitir plantear preguntas al usuario. – Ofrecer explicaciones sobre preguntas o conclusiones arribadas. – Mostrar los resultados derivados. – Ofrecer salida gráfica de los resultados derivados. – Permitir que el usuario pueda guardar los resultados. • Base de conocimientos: contiene todo el conocimiento acerca del dominio. Estructura de los SBC (Ingeniero) • Programa inteligente: – igual al del usuario pero no es una caja negra. – compuesto por una base de conocimientos (BC) que él construye y modifica. – máquina de inferencia (MI) que le ayuda a poner a punto el SE. – BC posee un formato para representar el conocimiento, Forma de Representación del Conocimiento (FRC). – La MI controla el proceso de razonamiento que seguirá el sistema experto. • encadenamiento progresivo • encadenamiento regresivo. Estructura de los SBC (Ingeniero) • Shell de desarrollo: asiste al ingeniero de conocimiento en estructurar, depurar , modificar y expandir el conocimiento extraído desde el experto. • Un shell de desarrollo típico tiene tres componentes: – i) Una herramienta de adquisición del conocimiento, – ii) Una base de casos de prueba y – iii) La interfaz del desarrollador. • Permite que el IC vea exactamente como el sistema operará. Estructura de los SBC (Constructor) • Tiene una visión muy similar al ingeniero de conocimiento, pero más profunda, pues el constructor es quién analiza, diseña y programa las posibilidades que ofrecerán el programa inteligente y el shell de desarrollo. Mecanismos de aprendizaje de SBC • Es el sistema que va a ser capaz de adquirir nuevos conocimientos por medio de un proceso que le permita evaluar su propio aprendizaje. • Integra diversas técnicas y algoritmos de aprendizaje que interactúan con el experto para obtener nuevos elementos de conocimiento, modificaciones al existente y sobre todo revisar y corregir la consistencia. • Este módulo debe observar una conducta inteligente capaz de advertir elementos relevantes de conocimiento y desechar aquellos “inútiles” o poco importantes, además de resolver los conflictos generados por las contradicciones. Mecanismos de aprendizaje de SBC Ciclo para la actualización del conocimiento Conclusiones • Los sistemas basados en el conocimiento constituyen una de las ramas de la IA que más se han difundido. • En estos sistemas el eje central es el conocimiento y no el proceso de deducción en sí. • El conocimiento se puede catalogar como público y privado, este último es el mas difícil de adquirir y los Ingenieros del Conocimiento debe emplear todas sus habilidades para extraerlos de su fuente o sea de los Expertos Humanos. Trabajo Independiente • Buscar ejemplo de algunas aplicaciones: Reconocimiento, pronóstico, diagnóstico, planificación, etc. • Realizar una búsqueda bibliográfica relacionada con las formas de representación del conocimiento. Traer dos características por cada uno. Preguntas Inteligencia Artificial Conferencia # 1: Introducción a los Sistemas Basados en el Conocimiento (SBC). Profesor: MSc. Yasiel Pérez Vera Email: [email protected]