Sistemas expertos: Estructura y Desarrollo
Un sistema experto (SE) es un programa que está diseñado para resolver problemas dentro de un dominio especializado que normalmente requiere un experto humano. Al imitar el pensamiento de los expertos humanos, el sistema puede realizar el análisis, diseño o monitoreo, tomar decisiones y más.
De hecho, estos sistemas se construyeron hace mucho tiempo y fueron la primera implicación exitosa de la Inteligencia Artificial. Pero debido al pobre desarrollo de la IA, la PNL, los sistemas expertos no estuvieron a la altura de las expectativas del mundo empresarial y el término en sí se ha quedado fuera del léxico del mundo de las TI.
Pero ahora, con el rápido desarrollo y los avances destacados de la inteligencia artificial, el aprendizaje automático, el aprendizaje profundo y el procesamiento del lenguaje natural, estamos a viendo su regreso. Dicho esto, conozcamos la estructura que conforma a un sistema experto y cuáles son las aplicaciones que puede tener.
Estructura
Un sistema experto consta principalmente de tres componentes:
- Interfaz de usuario
- Máquina de inferencia
- Base de conocimientos
Interfaz de usuario
Con la ayuda de una interfaz de usuario, el sistema experto interactúa con el usuario, toma las consultas como una entrada en un formato legible y las pasa al motor de inferencia.
Después de obtener la respuesta del motor de inferencia, muestra la salida al usuario. En otras palabras, es una interfaz que ayuda a un usuario no experto a comunicarse con el sistema experto para encontrar una solución.
Motor de inferencia (reglas del motor)
El motor de inferencia se conoce como el cerebro del sistema experto, ya que es la principal unidad de procesamiento del sistema. Aplica reglas de inferencia a la base de conocimientos para derivar una conclusión o deducir nueva información.
Ayuda a obtener una solución sin errores de las consultas realizadas por el usuario. Con la ayuda de un motor de inferencia, el sistema extrae el conocimiento de la base de conocimientos.
Hay dos tipos de motor de inferencia:
Motor de inferencia determinista: se supone que las conclusiones extraídas de este tipo de motor de inferencia son verdaderas. Se basa en hechos y reglas.
Motor de inferencia probabilístico: este tipo de motor de inferencia contiene incertidumbre en las conclusiones y se basa en la probabilidad.
El motor de inferencia utiliza los siguientes modos para derivar las soluciones:
Encadenamiento hacia adelante: parte de los hechos y reglas conocidos, y aplica las reglas de inferencia para agregar su conclusión a los hechos conocidos.
Encadenamiento hacia atrás: es un método de razonamiento hacia atrás que comienza desde la meta y trabaja hacia atrás para probar los hechos conocidos.
Base de conocimientos
La base de conocimiento es un tipo de almacenamiento que almacena el conocimiento adquirido de los diferentes expertos del dominio en particular. Se considera como un gran almacenamiento de conocimiento.
Cuanto mayor sea la base de conocimientos, más preciso será el sistema experto. Es similar a una base de datos que contiene información y reglas de un dominio o tema en particular.
También se puede ver la base de conocimientos como colecciones de objetos y sus atributos. Por ejemplo, un león es un objeto y sus atributos son un mamífero, no un animal doméstico, etc.
Componentes de la base de conocimientos
Conocimiento fáctico: el conocimiento que se basa en hechos y es aceptado por los ingenieros del conocimiento se incluye en el conocimiento fáctico.
Conocimiento heurístico: este conocimiento se basa en la práctica, la capacidad de adivinar, evaluar y experimentar.
Representación del conocimiento: se utiliza para formalizar el conocimiento almacenado en la base de conocimiento utilizando las reglas If-else.
Adquisición de conocimiento: es el proceso de extraer, organizar y estructurar el conocimiento del dominio, especificando las reglas para adquirir el conocimiento de varios expertos y almacenar ese conocimiento en la base de conocimiento.
Aplicaciones
Solicitud |
Descripción |
Dominio de diseño |
Diseño de lentes de cámara, diseño de automóviles. |
Dominio médico |
Sistemas de diagnóstico para deducir la causa de la enfermedad a partir de datos observados, realización de operaciones médicas en humanos. |
Sistemas de monitoreo |
Comparar datos continuamente con el sistema observado o con el comportamiento prescrito, como el control de fugas en una tubería de petróleo larga. |
Sistemas de control de procesos |
Controlar un proceso físico basado en la monitorización. |
Dominio del conocimiento |
Descubrimiento de fallas en vehículos, computadoras. |
Finanzas / Comercio |
Detección de posibles fraudes, transacciones sospechosas, negociación bursátil, programación de aerolíneas, programación de carga. |
Beneficios de los sistemas expertos
- Disponibilidad: están fácilmente disponibles debido a la producción masiva de software.
- Menor costo de producción: el costo de producción es razonable. Esto los hace asequibles.
- Velocidad: ofrecen una gran velocidad. Reducen la cantidad de trabajo que realiza una persona.
- Menos tasa de errores: la tasa de errores es baja en comparación con los errores humanos.
- Reducción del riesgo: pueden trabajar en un entorno peligroso para los humanos.
- Respuesta constante: funcionan de manera constante sin moverse, tensarse o fatigarse.
Desarrollo de sistemas expertos: pasos generales
El proceso de desarrollo de SE es iterativo. Los pasos para desarrollar el EE incluyen:
Identificar el dominio del problema
- El problema debe ser adecuado para que un sistema experto lo resuelva.
- Encuentra a los expertos en el dominio de tareas para el proyecto SE.
- Establecer la rentabilidad del sistema.
Diseñar el sistema
- Identificar la tecnología SE
- Conocer y establecer el grado de integración con el resto de sistemas y bases de datos.
- Darse cuenta de cómo los conceptos pueden representar mejor el conocimiento del dominio.
Desarrollar el prototipo
De la base de conocimientos: el ingeniero del conocimiento trabaja para:
- Adquirir conocimientos de dominio del experto.
- Represéntelo en forma de reglas If-THEN-ELSE.
Prueba y perfeccionamiento del prototipo
- El ingeniero del conocimiento utiliza casos de muestra para probar el prototipo en busca de deficiencias en el rendimiento.
- Los usuarios finales prueban los prototipos del SE.
Desarrollar y completar el SE
- Probar y asegurar la interacción del SE con todos los elementos de su entorno, incluidos los usuarios finales, las bases de datos y otros sistemas de información.
- Documentar bien el proyecto de SE.
- Entrenar al usuario para usar SE.
Mantener el sistema
- Mantener la base de conocimientos actualizada mediante revisiones y actualizaciones periódicas.
- Abordar nuevas interfaces con otros sistemas de información a medida que esos sistemas evolucionen.