Tema 1 - Introduccion a la Ingeniería del Conocimiento PDF
Document Details
Uploaded by Deleted User
UCAM
Juan Morales García
Tags
Related
Summary
This document provides an introduction to knowledge engineering, including its objectives, tasks, and methodologies. It also discusses the role of a knowledge engineer, and the importance of data in AI projects. The topics covered include different types of AI systems and their applications.
Full Transcript
Tema 1 Introducción Ingeniería del Conocimiento Juan Morales García Grado en Ingeniería Informática Imagen 1 Título asignado a la imagen Objetivos Nota. Adaptado de...
Tema 1 Introducción Ingeniería del Conocimiento Juan Morales García Grado en Ingeniería Informática Imagen 1 Título asignado a la imagen Objetivos Nota. Adaptado de Título de la imagen, por Autor, Año, Web (con hipervínculo) Objetivos Conocer qué es la Ingeniería del Conocimiento. Conocer el rol de Ingeniero del Conocimiento. Conocer los básicos de los datos y conocimiento. Conocer los básicos de la Inteligencia Artificial. Conocer los básicos de los Sistemas Basados en Conocimiento. Descubrir posibles entornos de desarrollo. 3 ÍNDICE CONTENIDOS 1. Introducción 2. El Ingeniero del Conocimiento 3. Datos y Conocimiento 4. Inteligencia Artificial 5. Sistemas Basados en Conocimiento 6. Entorno de desarrollo 4 1. Introducción 1. Introducción Ingeniería del Conocimiento (IC) La Ingeniería del Conocimiento es una disciplina cuyo objetivo principal es integrar conocimiento en sistemas informáticos para resolver problemas complejos que normalmente requieren un alto nivel de conocimiento experto humano. Es la rama de la Inteligencia Artificial (IA) que se dedica a estudiar, diseñar y desarrollar Sistemas Expertos que emulan el juicio y el comportamiento de un experto humano en un determinado campo. Se trata de crear sistemas para actuar y tomar decisiones con respecto a los datos de la misma manera que lo haría un experto humano en ese campo específico. El principal objetivo de la ingeniería del conocimiento es reducir el esfuerzo y el tiempo necesarios para resolver problemas complejos y de gran escala que tardarían demasiado en resolverse manualmente. 6 1. Introducción Ingeniería del Conocimiento (IC) Metodología de la IC: Captación y modelado formal del conocimiento: Obtener el conocimiento. Estructurarlo. Formalizarlo. Diseño e implementación de un software que pueda llevar a cabo de forma adecuada tareas complejas de alto componente cognitivo: Sistema Basado en el Conocimiento (SBC). ¿Quién hace todas estas tareas? El Ingeniero del Conocimiento. 7 1. Introducción Objetivos de la IC Extraer conocimiento del experto humano. Transferir este conocimiento a la Base de Conocimiento (BC). El experto es preguntado sobre qué reglas aplicar, qué conceptos son relevantes, cómo se relacionan, etc. Traducir del lenguaje natural a representaciones formales. Los expertos, ingenieros y desarrolladores deben compartir: Punto de vista común del problema a resolver. Vocabulario común. 8 1. Introducción Tareas de la IC Identificación de problemas. Adquisición del conocimiento. Representación del conocimiento. Desarrollo de un entorno de trabajo. Implementación de las tareas de conocimiento (inferencia, análisis, diagnóstico, explicación, entrenamiento, etc.) en un Sistema Basado en Conocimiento (SBC). Prueba y validación del SBC. Integración y mantenimiento del SBC. Revisión y evaluación del SBC. 9 1. Introducción Pilares fundamentales de la IC Metodologías de Ingeniería del Software: análisis de aplicabilidad, análisis de requisitos, metodologías de desarrollo, implantación, mantenimiento, etc. Herramientas de Inteligencia Artificial: sistemas de producción, redes bayesianas, razonamiento basado en casos, redes neuronales, algoritmos genéticos y evolutivos, algoritmos de aprendizaje, etc. Aplicaciones de Conocimiento Experto: sistemas expertos, sistemas de diagnóstico, sistemas de análisis de requisitos, sistemas de predicción, etc. 10 1. Introducción Herramientas de la IC Minería de datos: es el proceso de extracción automática de información predictiva oculta en colecciones de datos. Se utilizan para caracterizar datos, discriminar datos, analizar asociaciones y clasificaciones, realizar predicciones, etc. Es una herramienta de extracción de información a partir de los datos. El análisis de esta información proporciona nuevas fuentes de conocimiento. 11 1. Introducción Herramientas de la IC Redes neuronales: son herramientas software diseñadas para estimar relaciones entre datos. Las relaciones estimadas son funciones que dependen de una representación numérica de los datos y sus características. Se utilizan en reconocimiento de patrones, filtrado, compresión de datos, control adaptativo, modelado de funciones complejas, etc. Es una herramienta de aprendizaje supervisado que no utilizan el conocimiento ni la información asociada a los datos, solo detectan relaciones funcionales numéricas entre los datos. 12 1. Introducción Herramientas de la IC Sistemas expertos: es un modelo computacional basado en la aplicación sucesiva de reglas de producción (u otros métodos como la IA) que hacen explícitas las relaciones entre conjuntos de datos. Se utilizan para la implementación de sistemas expertos en general. Permiten formalizar los datos y la información asociada en forma de hechos; y el conocimiento sobre cómo utilizar dicha información mediante reglas de producción o modelos de IA. 13 1. Introducción Retos de la IC Dificultad de capturar y representar la información compleja y el conocimiento. Distintas fuentes de conocimiento (expertos, libros de texto, representaciones gráficas, etc.) que pueden contradecirse. El conocimiento puede ser incompleto, inconsistente, impreciso, incierto, etc. Respuestas de expertos pueden ser inseguras, grado de confianza o de creencia. Gran variedad de representaciones. Redes semánticas, Ontologías, Sistemas Basados en Reglas, etc. El conocimiento puede evolucionar continuamente: Nuevos conocimientos a incorporar. Expertos reconsideran la forma en la que se ha expresado su conocimiento. 14 1. Introducción Fases de la IC 1. Adquisición del Fuentes de conocimiento conocimiento Ingeniería del 2. Representación del conocimiento conocimiento 3. Validación del Base de conocimiento conocimiento 5. Explicación y 4. Inferencia justificación 15 2. El Ingeniero del Conocimiento 2. El Ingeniero del Conocimiento Introducción ¿Quién es un Ingeniero del Conocimiento? Personas dedicadas a desarrollar sistemas expertos reuniendo el conocimiento de los expertos humanos en el área e integrarlo con codificación en un formato sistemático que puede procesar un sistema. Los ingenieros del conocimiento también son conocidos como ingenieros semánticos. Los ingenieros del conocimiento son especialistas que se ocupan de sistemas expertos que ayudan a lograr niveles más altos de productividad y precisión, al tiempo que son eficientes en función de los costos. Los sistemas que desarrollan podrían reemplazar a los seres humanos y ser al menos tan efectivos como los humanos. 17 2. El Ingeniero del Conocimiento Responsabilidades Las responsabilidades de un ingeniero del conocimiento se dividen en 4 pasos principales: la evaluación, la obtención del conocimiento, creación de la estructura y la validación. El primer paso, la evaluación, comienza con analizar el problema en cuestión. Aquí, el ingeniero del conocimiento decide qué conocimientos necesita y de dónde puede extraerlos. A esto le sigue el segundo paso, en el que se centra en cómo obtener ese conocimiento y para ello se emplean diferentes técnicas. Una vez que el conocimiento se ha obtenido, se estructura en un sistema experto, una base de datos, una base de conocimientos o un activo de conocimiento. Entonces se crea la estructura y el formato y se integran con el conocimiento obtenido. Por último, el ingeniero de conocimientos se encarga de la verificación del activo final creado y la valida el sistema de conocimiento… 18 2. El Ingeniero del Conocimiento Tareas Desarrollar, mantener y mejorar continuamente el contenido de la base de conocimientos, la taxonomía y la organización. Interpretar datos mediante la comparación de los valores objetivo y los reales. Trabajar en los procesos de gestión, creación y utilización de los conocimientos. Clasificar los acontecimientos y configurar sistemas expertos teniendo en cuenta las diferentes condiciones. Identificar las causas de los errores y reducirlos. Apoyar iniciativas y objetivos empresariales y trazar el mapa de los impactos del conocimiento. Predecir eventos basados en acontecimientos específicos. Trabajar con expertos en la materia y científicos de datos. 19 2. El Ingeniero del Conocimiento Responsabilidades y tareas 20 2. El Ingeniero del Conocimiento Habilidades El papel de un experto en conocimiento requiere de grandes dotes analíticas y un conocimiento de lenguajes de programación que ayuden en la codificación de los Sistemas Expertos. Algunos de los lenguajes más utilizados son: Python, Java, Clojure, React, etc. Continuado con los requerimientos técnicos, es importante un conocimiento básico de LAMP, de infraestructuras de hardware y la distribución de software del sistema. LAMP es un stack (pila de tecnologías) que está formada por el sistema operativo Linux, servidor web Apache, base de datos MySQL y lenguaje de programación PHP. También se pueden hacer uso de otros stacks como MERN (MongoDB, ExpressJS, ReactJS y NodeJS) y MEAN (MongoDB, ExpressJS, AngularJS, NodeJS), entre otros. 21 2. El Ingeniero del Conocimiento Habilidades Además, también es necesario un conocimiento práctico del marco ITIL y de la gestión del conocimiento. ITIL significan Information Technology Infrastructure Library (Biblioteca de Infraestructura de Tecnologías de Información, en español). ITIL es una guía de buenas prácticas para la gestión de servicios de tecnologías de la información (TI). Los ingenieros del conocimiento también necesitan una serie de habilidades sociales para hacer un gran trabajo. Son profesionales capaces de resolver problemas complejos y necesitan buenas dotes de comunicación y razonamiento lógico (imprescindible cuando se trabaja con grandes conjuntos de datos). 22 2. El Ingeniero del Conocimiento Destrezas Conocimientos de lenguajes de programación como Python, Java, etc. y experiencia programando con Clojure, ClojureScript u otro lenguaje LisP (LISt Processor). Experiencia con herramientas de desarrollo de bases de datos y conceptos de bases de datos relacionales (RDBMS) como PostgreSQL. Conocimientos básicos sobre la entrega de aplicaciones, incluida la gestión de la liberación. Experiencia con herramientas de ingeniería de conocimiento, como SQL, RDF, SPARQL, OWL, SHACL. Conocimientos de la estructura de la información y la inteligencia empresarial (BI, Business Intelligence). 23 2. El Ingeniero del Conocimiento Destrezas Comprensión de los estándares semánticos y experiencia en el desarrollo de modelos semánticos. Conocimiento del procesamiento del lenguaje natural (NLP, Natural Language Processing) y del ciclo de desarrollo del sistema. Conocimientos en algoritmización de tareas y modelización de procesos empresariales. Aptitud para comprender y explicar información técnica. Excelente atención al detalle y curiosidad natural sobre la tecnología. Capacidad de realizar múltiples tareas en plazos muy ajustados. 24 2. El Ingeniero del Conocimiento Habilidades y destrezas 25 2. El Ingeniero del Conocimiento Formación necesaria Título universitario en el sector TI: Ingeniería Informática. Ingeniería en Telecomunicaciones. Ciencia de datos. Experiencia laboral: Desarrollador Software. Administrador de Sistemas. Administrador de Bases de Datos (generalmente, relacionales). Desarrollador de Inteligencia Artificial. Lingüista computacional. 26 2. El Ingeniero del Conocimiento ¿Cuánto cobra un Ingeniero del Conocimiento? En la Unión Europea: 45.000 y los 77.000 euros anuales. En España: 25.000 y 46.000 euros. En Estados Unidos: Puesto ocupado Retribución anual Junior 60.000 $ Medio 83.000 $ Senior 140.000 $ Freelance. 105 dólares la hora de media. Pensando en un día de trabajo de 8 horas, la tarifa diaria se pondría en unos 840 dólares. 27 2. El Ingeniero del Conocimiento Resumen 28 3. Datos y Conocimiento 3. Datos y Conocimiento Datos vs Información vs Conocimiento Datos: hechos recogidos en la organización y que están todavía sin procesar. Información: se obtiene una vez que esos hechos (datos) se procesan, agregan y presentan de manera adecuada para que puedan ser útiles a alguien dentro de la organización. Conocimiento: es una mezcla de experiencia, valores, información y know-how que sirve como marco para la incorporación de nuevas experiencias e información, y es útil para la acción. Datos Información Conocimiento 30 3. Datos y Conocimiento Datos vs Información vs Conocimiento Figura 1 Tipos de contenidos y su evolución Datos Información Conocimiento Nota. Esta figura muestra la evolución de los datos a información y luego conocimiento. Fuente: elaboración propia. 31 3. Datos y Conocimiento Big Data Actualmente, nos encontramos en la era del Big Data. Conjuntos de datos tan grandes y complejos que precisan de aplicaciones informáticas de procesamiento de datos para tratarlos adecuadamente. Adquirir y procesar correctamente toda la información disponible es un reto. Existe demasiada información de cualquier temática. No todas las informaciones son verídicas. No todas las informaciones son completas (o completamente verídicas). Seleccionar la información útil se hace complejo. Etc. 32 3. Datos y Conocimiento La importancia de los datos en proyectos de IA Si los datos no son buenos, implica que la información tampoco lo será y, por tanto, el conocimiento que se obtenga será incorrecto. Los datos son la base de cualquier proyecto de Inteligencia Artificial. Se puede tener desarrolladas técnicas de IA muy potentes, pero si los datos de entrada no son lo suficientemente buenos, estas técnicas no generarán buenos resultados. 33 4. Inteligencia Artificial 4. Inteligencia Artificial ¿Qué es la Inteligencia Artificial? La Inteligencia Artificial (IA), al igual que la humana, es un concepto complejo de definir. Aún no existe una definición formal y universalmente aceptada. La IA es un campo de la informática que se enfoca en crear sistemas que puedan realizar tareas que normalmente requieren inteligencia humana, como el aprendizaje, el razonamiento y la percepción. 35 4. Inteligencia Artificial Inteligencia Artificial vs Machine Learning vs Deep Learning Inteligencia Artificial (IA): máquina que es capaz de imitar el razonamiento humano. Machine Learning (ML): subconjunto de IA donde las personas “entrenan” a las máquinas para reconocer patrones ocultos en los datos y hacer predicciones. Deep Learning (DL): subconjunto de ML en el que la máquina es capaz de razonar y sacar sus propias conclusiones, aprendiendo por sí misma. 36 4. Inteligencia Artificial La importancia de la IA en los SBC Es importante desarrollar técnicas de IA adecuadas al problema en cuestión. Los SBC están basados en herramientas de IA para obtener conocimiento a partir de unos datos. Al igual que ocurría con los datos y la IA, si las técnicas de IA desarrolladas no son los suficientemente buenas, los SBC no funcionarán correctamente. 37 5. Sistemas Basados en Conocimiento 5. Sistemas Basados en Conocimiento ¿Qué es un SBC? Herramientas de Inteligencia Artificial utilizadas en un dominio específico para proporcionar decisiones inteligentes con justificación. Sistema que resuelve problemas complejos utilizando una representación simbólica del conocimiento humano. Tienen cinco componentes diferenciados: Base de Conocimiento: conocimiento específico del problema. Motor de Inferencia: metodología usada para resolver el problema específico, utiliza el conocimiento y los datos del problema para llegar a resultados y/o conclusiones. Memoria de Trabajo: almacena los datos iniciales y resultados intermedios de un problema. Módulo de Explicación: almacena todas las decisiones tomadas hasta llegar a los resultados obtenidos. Interfaz gráfica: permite la interacción del usuario con el sistema (datos y resultados). 39 5. Sistemas Basados en Conocimiento Estructura de un SBC 40 5. Sistemas Basados en Conocimiento Tipos de SBCs Sistemas de pizarra (Blackboard systems): estos sistemas permiten que múltiples fuentes ingresen nueva información en un sistema para ayudar a crear soluciones a problemas potenciales. Los sistemas de pizarra dependen en gran medida de actualizaciones realizadas por expertos humanos. Sistemas basados en casos (Case-based systems): estos sistemas utilizan el razonamiento basado en casos para crear soluciones a un problema. El sistema trabaja revisando datos pasados de situaciones similares. Sistemas de clasificación (Classification systems): estos sistemas analizan diferentes datos para comprender su estado de clasificación. 41 5. Sistemas Basados en Conocimiento Tipos de SBCs Sistemas de análisis de elegibilidad (Eligibility analysis systems): estos sistemas se utilizan para determinar la elegibilidad de un usuario para un servicio específico. Un sistema hace preguntas guiadas al usuario hasta que recibe una respuesta descalificatoria. Sistemas expertos (Expert systems): este es un tipo común de SBC que simula la toma de decisiones de expertos humanos en un campo particular. Los sistemas expertos proporcionan soluciones a problemas, así como las explicaciones detrás de ellas. Por ejemplo, podrían ser utilizados para cálculos y predicciones. Sistemas de tutoría inteligente (Intelligent tutoring systems): estos sistemas están diseñados para apoyar el aprendizaje y la educación humana. Los sistemas de tutoría inteligente proporcionan instrucciones y ofrecen retroalimentación basada en el rendimiento o preguntas del usuario. 42 5. Sistemas Basados en Conocimiento Tipos de SBCs Sistemas de diagnóstico médico (Medical diagnosis systems): estos sistemas ayudan a diagnosticar pacientes ingresando datos o haciendo que el paciente responda una serie de preguntas. Basándose en las respuestas, el SBC identifica un diagnóstico y proporciona recomendaciones que los profesionales médicos pueden utilizar para determinar el tratamiento de un paciente. Sistemas basados en reglas (Rule-based systems): estos sistemas se apoyan en reglas especificadas por humanos para analizar o cambiar datos y alcanzar un resultado deseado. Por ejemplo, los sistemas basados en reglas podrían utilizar reglas de tipo "si-entonces". 43 5. Sistemas Basados en Conocimiento SBC vs SI convencional ¿Qué es un Sistema de Información? Conjunto de elementos interrelacionados cuyo cometido es capturar datos, almacenaros, Dimensión transformarlos para entregar la información Humana oportuna y precisa, con la presentación y el formato adecuados, a la persona que la SISTEMAS DE necesita dentro de la organización justo en el INFORMACIÓN momento en que esta persona necesita Dimensión Dimensión disponer de dicha información. Así dicha Tecnológica Organizativa persona podrá tomar una decisión o realizar alguna operación. 44 5. Sistemas Basados en Conocimiento SBC vs SI convencional: estructura Tabla 1 SBC vs SI Sistema Basado en Conocimiento Sistema de Información Separación del Conocimiento de las Separación de Datos y Algoritmos que usan Estructuras de Control los datos Incluyen elementos para la explicación de las No existen elementos de explicación conclusiones Se suelen construir a partir de herramientas Existen gestores de BBDD que nos permiten comerciales específicas para la centrarnos exclusivamente en los datos y no representación del conocimiento (Shells) en su almacenamiento Nota. Esta figura muestra una comparación entre la estructura de un sistema basado en conocimiento versus un sistema de información convencional. Fuente: elaboración propia. 45 5. Sistemas Basados en Conocimiento SBC vs SI convencional: tipos de problemas Tabla 2 SBC vs SI Sistema Basado en Conocimiento Sistema de Información Problemas mal definidos, que no pueden Problemas bien definidos, que puede ser ser especificados con precisión y que especificados sin ambigüedad y que son requieren de conocimiento heurístico resueltos por algoritmos específicos Normalmente dominios sin experiencia Normalmente dominios con experiencia previa computacional computacional Nota. Esta figura muestra una comparación entre los tipos de problemas de un sistema basado en conocimiento versus un sistema de información convencional. Fuente: elaboración propia. 46 5. Sistemas Basados en Conocimiento SBC vs SI convencional: estrategias de resolución Tabla 3 SBC vs SI Sistema Basado en Conocimiento Sistema de Información Métodos declarativos y no deterministas Métodos procedimentales y determinísticos Intentan seguir líneas de razonamiento Se centran en la solución y no en la forma en la similares a la de los expertos humanos que se obtiene Interpretan datos Manipulan datos Contemplan abstracción, incertidumbre, Resuelven problemas a través de la aprendizaje manipulación Son altamente interactivos No siempre requieren la interactividad Nota. Esta figura muestra una comparación entre las estrategias de resolución de un sistema basado en conocimiento versus un sistema de información convencional. Fuente: elaboración propia. 47 5. Sistemas Basados en Conocimiento SBC vs SI convencional: conocimiento e información Tabla 4 SBC vs SI Sistema Basado en Conocimiento Sistema de Información Naturaleza del Tácito, proveniente de la Conocimiento de naturaleza conocimiento experiencia humana (alta algorítmica (alta interacción empleado interacción con los expertos) con los usuarios) Información numérica y simbólica Información numérica Tipo de información utilizada Información con Incertidumbre Información sin incertidumbre Nota. Esta figura muestra una comparación los conocimientos e información de un sistema basado en conocimiento versus un sistema de información convencional. Fuente: elaboración propia. 48 5. Sistemas Basados en Conocimiento ¿Cómo identificar un SBC? Es un SBC: Naturaleza heurística. Se requiere razonamiento simbólico. No se resuelve con métodos “tradicionales”. Necesita de conocimiento experto. No es un SBC: Naturaleza algorítmica. No hay separación entre control y conocimiento. Recuperación de información desde bases de datos. 49 5. Sistemas Basados en Conocimiento Ventajas de los SBCs Mantenimiento y reutilización del conocimiento. Resolución de problemas complejos más rápidamente. Ajuste de objetivos. Tratamiento de la incertidumbre. Explicación del razonamiento (no subjetivo). Reducción de costes. Aumento de fiabilidad. Modularidad. Disponibilidad. Experiencia múltiple (varios expertos). 50 5. Sistemas Basados en Conocimiento Inconvenientes de los SBCs Dificultad en la adquisición de conocimiento. Imposible simular creatividad y sentido común. Dificultad para representación abstracta efectiva del conocimiento humano. Obstáculos para el aprendizaje y adaptación. 51 5. Sistemas Basados en Conocimiento SBC vs SE Los Sistemas Basados en el Conocimiento (SBC) son herramientas de Inteligencia Artificial utilizadas en un dominio de conocimiento determinado para proporcionar decisiones inteligentes con justificación. SISTEMAS DE LA INTELIGENCIA SBC: conocimiento no necesariamente ARTIFICIAL experto. Hacen explícito el conocimiento de SISTEMA BASADO EN EL CONOCIMIENTO un dominio y lo separan del resto del sistema SISTEMA Sistema Experto (SE): conocimiento EXPERTO experto + interacción. 52 5. Sistemas Basados en Conocimiento IA vs SE IA: SE: 53 6. Entorno de desarrollo 6. Entorno de desarrollo Herramientas Python >= 3.10 CUDA cuDNN Anaconda 55 6. Entorno de desarrollo Herramientas Google Colaboratory Kaggle 56 6. Entorno de desarrollo Herramientas Librerías Numpy TensorFlow Pandas Keras Scikit-Learn MatPlotLib 57 ¡¡¡ NO USAR [ CHATGPT / COPILOT ] PARA LA GENERACIÓN DE CÓDIGOS !!! 58 REFERENCIAS BIBLIOGRÁFICAS 59 Juan Morales García [email protected] UCAM Universidad Católica de Murcia © © UCAM UCAM Inteligencia artificial; Sistema basado en conocimiento; Entornos de desarrollo; Datos; Información; conocimiento; Sistemas informativos; Experto humano; Sistemas expertos; Inferencia; Base de conocimiento; Ingeniería Software; Redes neuronales; Algoritmo aprendizaje; Minería datos; Aprendizaje supervisado; Sistema basado reglas; Ingeniero conocimiento; Tecnología información; Information Technology Infrastructure Library; Lenguaje de programación; Big dato; Machine learning; Deep learning; Motor inferencia; Sistema información; Librerías; Phyton; CUDA; cuDNN; Anaconda; Google colaboratory; Kaggle; Numpy; TensorFlow; Pandas; Keras; Scikit-Leaarn; Matplotlib; Ingeniería conocimiento; Juan Morales García; Grado ingeniería informática; 61