Etiqueta: Sistemas expertos

Inteligencia Artificial: perspectivas y realizaciones

Inteligencia Artificial: perspectivas y realizaciones

Durante mucho tiempo he conocido de cerca muchas personas que incrédulas contemplaban   como la inteligencia artificial comenzaba a crecer apoderándose de los principales titulares en seminarios, conferencias, encuentros profesionales y congresos sobre ciencias de la computación en muchos lugares del orbe.

La incredulidad, manifiesta en juicios de valor mezquinos, consideraba a esta rama multidisciplinaria como un hijo no deseado; el tiempo en su devenir ha mostrado la utilidad de la inteligencia artificial en la solución de problemas recurrentes con nuevos enfoques y paradigmas que hacen interesante su aplicación al interior de la fascinante ciencia de las computadoras.

La Inteligencia Artificial, o IA en términos cortos, es una combinación de la ciencia de las computadoras, la psicología y la filosofía. La IA cubre un espectro amplio, consistente en campos de estudio diferentes, estos van desde la visión por computadora hasta las redes neuronales y los sistemas expertos. El elemento que los campos de la IA tienen en común es la creación  o  simulación de maquinas que puedan “pensar”.

Para clasificar las maquinas como pensantes, es necesario definir inteligencia. El problema que aparenta ser simple es uno de los más complejos del área, en el entendido que la inteligencia  puede representar, por ejemplo, la solución adecuada de problemas complejos o a establecer generalizaciones y relaciones entre objetos. ¿Qué se podría decir acerca de la percepción y la comprensión? ¿Dónde podrá situarse las formas de adquisición del conocimiento? y, si el pensar es un acto natural concomitante con la naturaleza ¿Cuáles son las herramientas que se necesitan para simular un comportamiento natural del pensar humano?

Estos cuestionamientos son centrales en la concepción de este texto resumen de la inteligencia artificial. Una primera versión vio la luz en el anterior siglo, específicamente en el año 1998, cuando fue presentado como texto de lectura preliminar para la materia del mismo nombre en la Universidad Mayor de San Andrés. A inicios del siglo, y con el advenimiento acelerado de las tecnologías web, se publicó el texto en el sitio web de la UMSA. Aún es posible obtener una descarga gratuita del contenido en este sitio: www.umsanet.edu.bo\docentes \gchoque\M420texto.htm.

Cargador Cargando...
Logotipo de EAD ¿Tarda demasiado?

Recargar Recargar el documento
| Abrir Abrir en una nueva pestaña

Descargar [1.52 MB]

SISTEMA EXPERTO PARA EL DIAGNOSTICO AUTOMOTRIZ

SISTEMA EXPERTO PARA EL DIAGNOSTICO AUTOMOTRIZ

En las dos últimas  décadas  se ha producido  un notable  desarrollo  en el área de la Inteligencia Artificial  y, en particular,  en la de los sistemas expertos. La Ingenieria del Conocimiento es la parte de la Inteligencia Artificial  que tiene como objetivo transformar el proceso  de desarrollo de sistemas basados  en conocimiento  en una disciplina ingenieril,  estableciendo  metodologías que permitan abordar el desarrollo  de sistemas basados  en conocimiento  de una  forma más sistemática. Un sistema basado en conocimiento  se define como “un sistema software capaz de soportar la representación explícita del conocimiento de un dominio específico  y de explotarlo a través  de los mecanismos  apropiados  de razonamiento para proporcionar  un comportamiento de  alto  nivel  en la  resolución  de  problemas”.  Uno  de  los  sistemas  fundamentales   de  todo automóvil   es  el  que  le  confiere  la  capacidad   de  reducir  su  velocidad   incluso  llegando   a detenerlo si así lo decide el conductor,  dicho sistema es el de los frenos. Al ser la ciudad de La Paz  una  zona   ampliamente   montañosa,  ocasiona  que  el  uso  del  sistema   de  frenos   del automóvil  sea utilizado  con mayor frecuencia  a comparación  de otro tipo de zonas, por eso es importante  realizar un mantenimiento ya sea preventivo  o correctivo.  Por otra parte la toma de decisiones  que propone  el técnico  automotriz  es  limitada  debido  tanto  a factores  objetivos como  subjetivos  que producen  como  consecuencia  final los accidentes  de transito.   En este trabajo  se  desarrolla  un  prototipo  de  sistema experto basado  en reglas  para  el  diagnóstico automatizado del sistema de frenos hidráulicos  del automóvil,  ofreciendo  al usuario la toma de decisión  adecuada  en el mantenimiento, además  cuenta  con información técnica  que muestra el síntoma, las causas y el diagnostico previo a la reparación  del problema.

Cargador Cargando...
Logotipo de EAD ¿Tarda demasiado?

Recargar Recargar el documento
| Abrir Abrir en una nueva pestaña

Descargar [5.00 MB]

Sistemas expertos en medicina

Sistemas expertos en medicina

En el artículo sobre inteligencia artificial escrito por el investigador Hanovar el año 2008, los intentos por comprender la inteligencia, tanto natural como artificial, conducen de manera natural a la problemática de la construcción de modelos y teorías sobre procesos mentales y cerebrales. La aparición y consolidación de la computación, gracias a los trabajos pioneros de John Von Neumann, Alan Turing, Stephen Kleene y otros, facilitaron la aproximación al problema, a partir del análisis, diseño y evaluación de computadoras y programas que reproducían en cierto grado, conductas inteligentes como el reconocimiento y clasificación de patrones, el razonamiento desde las premisas hasta las conclusiones y el aprendizaje a partir de la experiencia.

La comprensión de la actividad de los médicos en su ámbito profesional se convierte en elemento de suma importancia para la inteligencia artificial médica. Las tareas capaces de ser resueltas por aquellos, se pueden agrupar en dos tipos: (1) Las tareas reproductivas que se ejecutan cuando las condiciones existentes, las vías y procedimientos de solución y los medios de los cuales se dispone son suficientes para dar cumplimiento a los objetivos, son recurrentes y se realizan de acuerdo con cierto esquema, patrón o pautas establecidas. (2) Las tareas creativas se caracterizan, porque al plantearse el cumplimiento de estas, las condiciones existentes, los medios y métodos de solución que tiene a su disposición o forman parte de su experiencia, son insuficientes para resolverlas, de manera que los eslabones faltantes en el camino hacia la solución se hallan en la interacción con el medio en el que desarrolla su actividad, a partir del despliegue de toda su experiencia pasada, de sus habilidades y del acervo de conocimientos acumulados. Cualquier tarea generada por situaciones problemáticas contiene elementos reproductivos y de creación del pensamiento. La división en uno u otro tipo de tarea depende, por consiguiente, de cuál de las dos predomina. Si se considera este punto de vista, el intelecto natural es “la capacidad de resolver las tareas que incluyen en sí elementos reproductivos y de creación” y cuyas propiedades notables residen en la capacidad para la comprensión y la adopción de decisiones; así como en la construcción de textos en lenguajes naturales y el conocimiento de las leyes del mundo exterior. En cambio el intelecto artificial se presenta en esta interpretación como la simulación por las máquinas de las tareas reproductivas y de creación, definiciones poco sustanciosas, porque sigue en pie en ellas la cuestión de los atributos.

Los sistemas expertos son una clase particular derivada de los sistemas basados en conocimiento y se han venido utilizando desde el año 1977, de hecho una generalización del estudio de los sistemas expertos es lo que ha dado lugar a los sistemas basados en conocimiento. Uno de los primeros sistemas expertos diseñados es MYCIN, reportado en el libro del año 1988 de Szolovitz relacionado con la “inteligencia artificial en la medicina”, que está orientado al diagnóstico y tratamiento de enfermedades infecciosas y cuya principal característica es la forma de representar y procesar la incertidumbre mediante los ahora conocidos “factores de confianza”, que son entendidos como medidas subjetivas del experto para calificar y procesar, de manera bastante elemental, la incertidumbre.

En la Conferencia Mundial de Inteligencia Artificial realizada el año 1977 en la ciudad de Tokio, Japón, el investigador Feigenbaum presentó la siguiente definición de sistema experto: “Es un programa inteligente que utiliza conocimiento y procedimientos de inferencia para resolver problemas difíciles que requieren por sí solos de la participación de expertos humanos para su resolución”. Según los investigadores Giarratano y Riley en el libro “sistemas expertos, principios y programación” publicado el año 2001, la propiedad más relevante de los sistemas expertos es que separan los conocimientos almacenados, en una base de conocimiento, del programa que los controla, que hace las veces de una máquina de inferencias. Los datos propios de un determinado problema se almacenan en una base de datos, conocida también como base de reglas. La base de conocimiento contiene el conocimiento altamente especializado extraído de los expertos en el dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja. El método más común para representar el conocimiento es mediante reglas de producción. El dominio de conocimiento representado se divide, pues, en pequeñas fracciones de conocimiento o reglas heurísticas. Cada regla consta de una parte denominada condición y de otra parte denominada conclusión o acción.

Para los investigadores Friedman y Gustafson, en el artículo del año 1997 titulado “computadoras en la clínica medica, la tecnología de la computación ha tenido una gran influencia en la medicina y ésta sigue aumentando cada vez más. Algunos de los usos de las computadoras en este campo son las pruebas para detectar e identificar alteraciones, como por ejemplo, la tomografía axial computarizada, los análisis de electrocardiogramas por computadora, los monitores de procesos fisiológicos, la automatización de las líneas en laboratorios clínicos, el control de los resultados entrega de medicamentos, y otros. Los profesionales de la salud utilizan también las computadoras para controlar y planificar sus servicios.

En el ámbito de los sistemas expertos para las ciencias médicas, se puede hablar de paquetes de diagnóstico médico. Se han desarrollado varios sistemas expertos para diagnosticar enfermedades y recomendar tratamientos. Uno de estos es el sistema experto llamado HELP que se emplea para diagnosticar los problemas de pacientes enfermos del corazón, desarrollo reportado el año 1983 por sus creadores Pryor, Gardner, Clayton y Warner. HELP acumula datos sobre pacientes proporcionados por médicos, enfermeras y otros profesionales de la salud y sugiere posibles diagnósticos y tratamientos. Otro sistema de tratamiento incluye a PUFF, escrito el año 1983 por los investigadores Aikins, Kuns y Shortliffe, que se encarga de medir funciones pulmonares. CADUCEUS fue un sistema experto médico programado para realizar diagnósticos en medicina interna. Fue terminado a mediados de la década de 1980, si bien el inicio de su desarrollo se remonta a la década de 1970 habiendo sido programado por Harry Pople, de la Universidad de Pittsburgh, partiendo para el sistema de las entrevistas de Pople al Dr. Jack Meyers. CADUCEUS es un paquete más generalizado, programado para evaluar más de cuatro mil síntomas y otros datos con el propósito de reconocer más de seiscientas enfermedades. Por medio de una terminal, un médico proporciona a CADUCEUS datos iníciales sobre un paciente. Después de analizar esos datos, el programa comienza a hacer preguntas sobre el paciente. Durante este interrogatorio, CADUCEUS dice al médico cuál es el diagnóstico que está considerando y le indica los datos que no está tomando en cuenta por el momento. Pueden bastar unos minutos para que el programa proporcione un diagnóstico. A fin de evitar análisis clínicos innecesarios, CADUCEUS está programado para considerar primero las enfermedades más probables. MYCIN es un sistema experto desarrollado a principios de los años 1970 por Edgar ShortLiffe, en la Universidad de Stanford. Fue escrito en Lisp, e inicialmente estaba inspirado en DENDRAL, otro sistema experto que tuvo cierto éxito a finales de los años 1960. Su principal función consistía en el diagnóstico de enfermedades infecciosas de la sangre; además, MYCIN era capaz de “razonar” el proceso seguido para llegar a estos diagnósticos, y de recetar medicaciones personalizadas a cada paciente.

Según los investigadores Bemmel, Hasman, Sollet y Veth, en el artículo del año 1983, titulado “entrenamiento en información médica”, los profesionales en ciencias médicas saben lo importante que es la relación médico-paciente y la responsabilidad que esto significa. Los adelantos tecnológicos han tenido mucha influencia en esta relación. Por desgracia, esta influencia no ha sido siempre beneficiosa para este tipo de relación, sino más bien, la ha deteriorado. La automatización de los procesos de diagnóstico y tratamiento ha deshumanizado la relación médico-paciente, al límite de casi hacerla desaparecer. Estos adelantos cuando refuerzan esta relación son convenientes, pero las técnicas o procedimientos que la deterioren son perjudiciales. La responsabilidad del médico y el personal profesional en salud se basa en los conocimientos y capacidad que éstos tengan en la práctica diaria. La computación debe dirigir sus esfuerzos para mejorar la prestación del servicio médico manteniendo los cánones de la ética y servicio de la medicina.

Finalmente para el investigador Sierra y sus colegas del año 1995, en el libro “sistemas expertos en contabilidad y administración de empresas”, los sistemas expertos se han venido aplicando a muchos campos del quehacer humano y en muy diversos escenarios tales como diagnóstico médico, contaduría, administración de empresas, planeación, monitoreo, capacitación y otros. Generalmente un sistema experto administrativo o médico hecho para un determinado país no puede ser útil en otro lugar si no se cuenta con idénticas condiciones. Por ejemplo, la cultura expresada en los hábitos cotidianos de las personas y la sociedad influyen directamente en la definición del conocimiento a ser utilizado.

Referencias Bibliográficas

  • Aikins J.S., Kuns J.S. and E.H. Shortliffe (1983) PUFF: An expert system for interpretation of pulmonary function data. Comput. Biomed. Res. 16:199.
  • Angulo J.M & Bueno A.M. Inteligencia Artificial. Madrid: Paraninfo, 1996; 103.
  • Bemmel J.H., Hasman A., SolIet P.C., and Veth A.F. (1983) Training in Medical information. Comput. Biomed. Res. 16:414-432.
  • Buchanan B.G. and E.H. Shortliffe (1984) Rule-based expert systems. The Mycin experiment of the Stanford heuristic programming project. Addison-Wesley, Reading. M.A.
  • Friedman R.B. and Gustafson D.H. (1997). Computers in clinical medicine. A critical review. Guest Editorial. Comput. Biomed. Res.; 10:199-204.
  • Giarratano J. y Riley G. (2001) Sistemas Expertos, principios y programación. 3ª. Ed. Internacional Thomson Editores. México.
  • Honavar V. (2008) Artificial Intelligence: An Overview. Disponible en: http://www.cs.iastate.edu/~cs572/handout1.pdf [Consultado: 17 de marzo de 2008].
  • Pryor T. A., Gardner R.M., Clayton P.D. and Warner H.R. (1983) The HELP System. J. Med. Syst. 7:87.
  • Sierra G.J. et al. (1995) Sistemas Expertos en Contabilidad y Administración de Empresas. Addison-Wesley Iberoamericana. Wilmington, Delaware, USA.
  • Szolovitz Meter (Ed.) (1988) Artificial Intelligence in Medicine. Westview Press, Inc. AAAS Boulder, Colorado U.S.A.
Guillermo Choque Aspiazu
http://www.eldiario.net/
Enero 30 de 2012
Sistemas expertos Bayesianos

Sistemas expertos Bayesianos

Es bastante común que los seres humanos tomen decisiones en condiciones de incertidumbre, es más la incertidumbre hace parte del diario vivir de las personas, un ejemplo tan cotidiano como el de ir tarde al trabajo y preguntarse si tomar bus o taxi, la persona decide con incertidumbre, porque no sabe si el bus se demore o no, o si estará lleno, por otro lado el taxi le costará más, pero debe tomar una decisión que lo lleve a su trabajo. Este tipo de decisiones se presenta a menudo tanto en la vida cotidiana, como en el ámbito científico o en el empresarial; aunque la incertidumbre esté presente en todos esos campos, el ser humano ha desarrollado técnicas y teorías, como la probabilidad y estadística, para enfrentar este tipo de decisiones, pero además de estos métodos, el rápido desarrollo de los sistemas ha permitido fusionar todo el conocimiento, en aplicaciones que permiten dar soluciones que aunque no son perfectas tienen un soporte teórico que le da mayor probabilidad de éxito, que a una decisión tomada al azar.

Un sistema experto puede ser definido como: el sistema informático que imita los procesos que realiza un experto en un área de especialidad, al resolver problemas y “debería ser capaz de procesar y memorizar información, aprender y razonar en situaciones deterministas e inciertas, comunicarse con los hombres y otros sistemas expertos, tomar decisiones apropiadas y explicar porque se han tomado tales decisiones”. Los sistemas expertos pueden ser clasificados, de acuerdo al tipo de problemas con el que tratan, en dos grandes grupos: deterministas y estocásticos. Los sistemas basados en reglas son aquellos que tratan con problemas deterministas y los resuelven utilizando una serie de reglas de producción. Los sistemas probabilísticos son aquellos donde se utiliza la probabilidad como medida intuitiva de la incertidumbre. Un sistema experto tiene básicamente dos partes: (1) La base de conocimiento y (2) La máquina de inferencia La base de conocimiento corresponde a las afirmaciones de validez general tales como reglas, distribuciones de probabilidad, manuales, entre otros. La máquina de inferencia son los algoritmos que manejan la base de conocimiento para obtener conclusiones y propagar el conocimiento.

Los sistemas expertos comunes, basados en reglas no tienen en cuenta la incertidumbre, ya que la forma de tratar los objetos y las reglas, es de tipo determinista, pero como se dijo anteriormente, es frecuente la toma de decisiones en condiciones de incertidumbre, ya sea en áreas de la ingeniería, en los negocios o inclusive en áreas tan sensibles como las sociales. El ejemplo que se presenta a continuación es el de un paciente que asiste al médico, con ciertos síntomas para que este determine con base en estos, que tipo de enfermedad de las posibles padece. Se dice que el sistema no es determinista, ya que la relación entre las enfermedades y los síntomas que tiene un paciente no son deterministas, porque los mismos síntomas pueden estar presentes en distintas enfermedades. Esto crea la necesidad, de herramientas que tengan la capacidad para funcionar, en estos ambientes, una buena opción son los sistemas de tipo probabilístico. Estos como los otros, cuentan con una base de conocimiento, pero esta se forma por el espacio probabilístico, que describe el problema. La máquina de inferencias está basada en probabilidades condicionales y se encarga de actualizar dichas probabilidades con base en los hechos que observa del ambiente en el que se desempeña. De manera principal existen tres tipos de sistemas expertos: (1) Basados en reglas previamente establecidas. (2) Basados en casos. (3) Basados en redes bayesianas. En cada uno de ellos, la solución a un problema planteado se obtiene: (1) Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación. (2) Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema. (3) Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

El teorema de Bayes, dentro de la teoría probabilística, proporciona la distribución de probabilidad condicional de un evento “A” dado otro evento “B”, probabilidad aposteriori, en función de la distribución de probabilidad condicional del evento “B” dado “A” y de la distribución de probabilidad marginal del evento “A”, probabilidad simple o apriori. El teorema de Bayes es válido en todas las aplicaciones de la teoría de la probabilidad. Sin embargo, hay una controversia sobre el tipo de probabilidades que emplea. En esencia, los seguidores de la estadística tradicional sólo admiten probabilidades basadas en experimentos repetibles y que tengan una confirmación empírica mientras que los llamados estadísticos bayesianos permiten probabilidades subjetivas. El teorema puede servir entonces para indicar cómo se debe modificar las probabilidades subjetivas cuando se recibe información adicional de un experimento. La estadística bayesiana está demostrando su utilidad en ciertas estimaciones basadas en conocimiento subjetivo apriori y el hecho de permitir revisar esas estimaciones en función de la evidencia empírica, es lo que está abriendo nuevas formas de hacer conocimiento. Una aplicación de esto son los clasificadores bayesianos que son frecuentemente usados en implementaciones de filtros de correo basura o spam.

Las redes bayesianas o probabilísticas se fundamentan en la teoría de la probabilidad y combinan la potencia del teorema de Bayes con la expresividad semántica de los grafos dirigidos; las mismas permiten representar un modelo causal por medio de una representación gráfica de las dependencias entre las variables que forman parte del dominio de aplicación. Una red bayesiana es un grafo acíclico dirigido, donde las uniones entre los nodos tienen definidas una dirección, y en la cual los nodos representan variables aleatorias y las flechas representan influencias causales; el que un nodo sea padre de otro implica que es causa directa del mismo. Se puede interpretar a una red bayesiana de dos formas: (1) Distribución de probabilidad. Representa la distribución de la probabilidad conjunta de las variables representadas en la red. (2) Base de reglas. Cada arco representa un conjunto de reglas que asocian a las variables involucradas. Dichas reglas están cuantificadas por las probabilidades respectivas.

Para un sistema experto de diagnóstico, por ejemplo, el modelado de una red bayesiana que la represente, podría ser una red binaria que encapsule la representatividad de la presencia o ausencia de un síntoma o enfermedad. La construcción de una red de éste tipo requiere de un estudio estadístico previo, para determinar las enfermedades y síntomas relacionados, que están presentes en el ambiente a implantarse, esto implica, lograr estimaciones de qué enfermedades están presentes en dicho entorno, y qué síntomas están asociados a cada una de ellas y en qué porcentaje. Obviamente los síntomas con alto grado de sensibilidad y especificidad con respecto a una enfermedad, serán considerados como síntomas verdaderos de dicha enfermedad. La sensibilidad es la probabilidad que indica una correlación entre la aparición de la enfermedad y la aparición del síntoma. Mientras que la especificidad es la probabilidad de no tener el síntoma, cuando no está la enfermedad presente. Los síntomas con baja especificidad y sensibilidad, cuando no son visibles, permiten establecer mucha más duda de que la enfermedad pueda aparecer, aún teniendo síntomas con altas sensibilidades visibles, por ello es recomendable usar siempre síntomas que traten de caracterizar en lo mejor posible a una enfermedad, teniendo altas sensibilidades y especificidades para tener mucha más precisión a la hora de responder una consulta.

Una red causal tiene como ventajas que al razonar sobre un hecho real, el sistema posee un conocimiento profundo de los procesos que intervienen, en vez de limitarse a una mera asociación de datos e hipótesis. Los programas resultantes son capaces de explicar la cadena causal de anomalías que va desde la enfermedad diagnosticada hasta los efectos observados. Se pueden realizar tres tipos de razonamiento: (1) Razonamiento abductivo, que consiste en buscar cuál es la causa que mejor explica los efectos observados. Se diría que se trata de un razonamiento “hacia arriba”. (2) Razonamiento deductivo, que es el recíproco del anterior, pues va desde las causas hasta los efectos, es decir “hacia abajo”. (3) Razonamiento intercausal, que es un razonamiento “en horizontal”. A partir de la seguridad de una causa se debilitan las otras posibilidades, se reduce la sospecha de otras. En la práctica los tres razonamientos se realizan simultáneamente, la distinción entre ellos permite que los modelos causales tengan presente la correlación que existe entre los hallazgos. Su inconveniente mayor es la limitación en su rango de aplicaciones.

Además de las ventajas comunes a otros métodos de razonamiento causal, las redes bayesianas poseen una sólida teoría de probabilidades que les permite dar una interpretación objetiva de los factores numéricos que intervienen y dicta de forma unívoca la manera de realizar la inferencia. Sus inconvenientes son la limitación en cuanto al rango de aplicaciones. Necesitan un gran número de probabilidades numéricas, y normalmente no se dispone de toda esta información por lo que es necesario recurrir a estimaciones de expertos humanos. La presencia de bucles complica extraordinariamente los cálculos ya que los métodos de simulación estocástica resultan más eficientes que los métodos exactos, aunque resulta costoso, en términos de tiempo de computación, lograr el grado de aproximación deseado. Por consiguiente, se hace necesario evitar una explosión combinatoria.

 

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 16 de 2010
Sistema experto de diagnóstico

Sistema experto de diagnóstico

Un diagnóstico es aquello perteneciente o relativo a la diagnosis. Este término, a su vez, hace referencia a la acción y efecto de diagnosticar, que viene a ser equivalente a recoger y analizar datos para evaluar problemas de diversa naturaleza. En medicina, el diagnóstico o propedéutica clínica es el procedimiento por el cual se identifica una enfermedad, entidad nosológica, síndrome, o cualquier condición de salud-enfermedad, el “estado de salud” también se diagnostica. En psicología clínica, el diagnóstico se enmarca dentro de la evaluación psicológica, y supone el reconocimiento de una enfermedad o un trastorno a partir de la observación de sus signos y síntomas. En enfermería, constituye la segunda etapa del proceso de enfermería, donde se analizan los datos acerca del paciente para identificar los problemas que constituirán la base del plan de cuidados. Un diagnóstico de enfermería es un problema de salud real o potencial, aquel que los profesionales de enfermería, en virtud de su formación y experiencia, tienen capacidad y derecho legal de tratar.

En términos de la práctica médica, el diagnóstico es un juicio clínico sobre el estado psicofísico de una persona; representa una manifestación en respuesta a una demanda para determinar tal estado. El diagnóstico clínico requiere tener en cuenta los dos aspectos de la lógica, es decir, el análisis y la síntesis, utilizando diversas herramientas como la anamnesis, la historia clínica, exploración física y exploraciones complementarias. El diagnóstico médico establece a partir de síntomas, signos y los hallazgos de exploraciones complementarias, qué enfermedad padece una persona. Generalmente una enfermedad no está relacionada de una forma biunívoca con un síntoma, es decir, un síntoma no es exclusivo de una enfermedad. Cada síntoma o hallazgo en una exploración presenta una probabilidad de aparición en cada enfermedad.

El sistema experto ayuda al diagnóstico de una enfermedad a partir de los síntomas y otros hallazgos que presenta el paciente si las enfermedades son mutuamente excluyentes, se conoce sus prevalencias y la frecuencia de aparición de cada síntoma en cada enfermedad. Según la prevalencia de cada enfermedad en cada población, un mismo conjunto de síntomas o síndrome puede producir un diagnóstico diferente en cada población, es decir, cada síndrome puede estar producido por una enfermedad diferente en cada población.

Las principales herramientas que se utilizan para el diagnóstico son las siguientes: (1) Síntomas. Constituyen las experiencias subjetivas negativas físicas que refiere el paciente, recogidas por el médico en la anamnesis durante la entrevista clínica, con un lenguaje médico, es decir comprensible para todos los médicos. Por ejemplo, los pacientes a la sensación de falta de aire o percepción incómoda y desagradable en la respiración, disnea, la denominan ahogo, angustia, fatiga, cansancio fácil. (2) Signos. Son los hallazgos objetivos que detecta el médico observando al paciente, por ejemplo la taquipnea a más de treinta respiraciones por minuto. (3) Exploración física o semiotécnica. Consiste en diversas maniobras que realiza el médico sobre el paciente, siendo las principales la inspección, palpación, percusión, oler y auscultación, con las que se obtienen signos clínicos más específicos. Todos los síntomas referidos en la anamnesis y los signos objetivados en la exploración física son anotados en la historia clínica del paciente. Generalmente, los signos y síntomas definen un síndrome que puede estar ocasionado por varias enfermedades. El médico debe formular una hipótesis sobre las enfermedades que pueden estar ocasionando el síndrome y para comprobar la certeza de la hipótesis solicita exploraciones complementarias.

A grandes rasgos, el problema del diagnóstico en inteligencia artificial consiste en determinar a partir del conocimiento de las leyes que rigen el comportamiento de un sistema y de un conjunto de medidas, observaciones o síntomas, cuáles son las causas, o los componentes del sistema responsables en última instancia de un posible comportamiento anómalo. Esto es válido para cualquier tipo de diagnóstico ya sea para la detección de una rotura en una pieza de un equipo o para el diagnóstico médico de enfermedades. Cuando un paciente acude al hospital con dolor o presentando ciertos síntomas, el médico debe aplicar sus conocimientos aceleradamente para prevenir un daño mayor o corregir la condición del paciente, y para esto debe recordar docenas de indicadores y buscar “rápidamente” en su memoria qué ha hecho antes, cuando un paciente en tal estado ha acudido buscando su ayuda, o qué registra la literatura médica ante un hecho similar determinando así la causa del malfuncionamiento de ser detectada alguna. Dos condiciones pueden presentarse en este ejemplo, el médico no conoce la información que precisa y no tiene en ese momento acceso a un experto que sí la tenga, segunda, el médico necesita esta información rápidamente para realizar su trabajo.

Un sistema experto es llamado así porque emula el comportamiento de un experto en un dominio concreto y en ocasiones es usado por éste. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la productividad del experto. Un sistema experto es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un conocimiento altamente especializado sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimiento, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole. También se dice que un sistema experto se basa en el conocimiento declarativo, referido como hechos sobre objetos o situaciones y el conocimiento de control, entendido este como información sobre el seguimiento de una acción.

Para que un sistema experto se constituya una herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo las siguientes dos capacidades: (1) Explicar su razonamiento o base de conocimiento. Los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, las que a la vez se encuentran fundamentadas en hechos. (2) Adquisición de nuevos conocimiento o integrador del sistema. Son mecanismos de razonamiento que sirven para modificar conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que desea ayudarlos a realizar con más rapidez y eficacia las tareas que realiza.

El año 1969 Buchanan desarrolla el sistema experto “Dendral”, que realizaba la tarea de resolver la estructura molecular de una sustancia a partir de la información que provenía de un espectrómetro de masa. Este programa funcionaba de manera aceptable para moléculas complejas, probando con esto que las técnicas de la inteligencia artificial pueden ser aplicadas a dominios reales y no solamente a casos de laboratorio. Este fue el primer programa utilizado que contenía información sobre el dominio y las reglas para resolverlas, además se lo puede ver como uno de los precursores de los sistemas expertos basados en conocimiento. Una de las primeras aplicaciones útiles fue “Mycin” de los autores Feigenbaum, Buchanan y Shortliffe, para el diagnostico de las infecciones sanguíneas. Constaba aproximadamente de cuatrocientas cincuenta reglas y se comportaba tan bien como un experto, y considerablemente mejor que un doctor recién recibido. Es una de las primeras aplicaciones que integra las incertezas dentro del dominio como una forma de emular la complejidad del dominio medico, ya que varias enfermedades pueden tener los mismos síntomas, o una enfermedad puede casi no presentar síntomas mesurables.

Los sistemas expertos son máquinas que piensan y razonan como un experto lo haría en una cierta especialidad o campo. Por 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 en una base de datos la información necesaria para identificar la correspondiente enfermedad. Un buen sistema experto no sólo realiza las funciones tradicionales de manejar grandes cantidades de datos, sino que también maneja esos datos de forma tal que el resultado sea inteligible y tenga significado para responder a preguntas incluso aquellas no completamente especificadas.

Los sistemas expertos de diagnóstico vienen de la clasificación particular que suele hacerse al interior de la función que realizan, en este entendido un sistema experto de diagnóstico es aquel que se encarga de inferir las fallas de un sistema con base en los síntomas previos que el mismo presenta. Utiliza las características de comportamiento, descripción de situaciones o conocimiento sobre el diseño del un componente para inferir las causas de una falla. Algunos ejemplos notables constituyen el diagnóstico de enfermedades con base en síntomas, la búsqueda de componentes defectuosos o fallas en los circuitos.

 

Guillermo Choque Aspiazu
http://www.eldiario.net/
Mayo 17 de 2010

Sistema experto basado en reglas

Sistema experto basado en reglas

Los sistemas expertos son sistemas computacionales que se derivan de la inteligencia artificial. La meta científica de la inteligencia artificial es construir sistemas computacionales que exhiban comportamiento inteligente. El término inteligencia cubre muchas habilidades cognoscitivas, incluyendo la capacidad de solucionar problemas, de aprender, y de entender un idioma; la inteligencia artificial trata acerca de los tópicos señalados. La mayoría del progreso hecho hasta la fecha en la inteligencia artificial radica en el área de solución de problemas, los conceptos y métodos para construir programas que razonan sobre problemas en vez de solamente calcular su solución. Los programas de inteligencia artificial que alcanzan capacidad un nivel de experto del área en la solución de problemas aplicando un cuerpo del conocimiento sobre tareas específicas se llaman sistemas basados en conocimiento o sistemas expertos.

Los sistemas expertos son llamados así porque emulan el comportamiento de un experto en un dominio concreto y en ocasiones son usados por éstos. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la productividad del experto. Un sistema experto se puede definir formalmente como: “un modelo y sus procedimientos asociados que exhiben, dentro de un dominio específico, un grado de maestría en solucionar problemas comparable al de un experto humano.” O de manera más breve: “un sistema experto es un sistema informático que emula la capacidad de toma de decisión de un experto humano.” Un experto humano puede ser definido como persona que toma decisiones adecuadas en ambientes que están cargados con incertidumbre y riesgo, y tiene la capacidad superior de hacerlo dados su entrenamiento, experiencia y práctica profesional. Se puede resumir las siguientes características principales de un experto al cual un sistema experto intenta emular: (1) Habilidad en llegar a soluciones rápidas, adecuadas a los problemas. (2) Capacidad para manejar excepciones. (3) Conocimiento de sus limitaciones. El área del conocimiento humano que es capturado en un sistema experto se denomina el dominio de la tarea. La tarea se refiere a alguna actividad orientada a una meta para resolver un problema. El dominio se refiere al área dentro de la cual se está realizando la tarea. Las tareas típicas son el diagnostico, el planeamiento, la programación, la configuración, el diseño y la interpretación.

Un sistema experto está conformado por: (1) Base de conocimiento. La cual contiene conocimiento modelado extraído del diálogo con un experto. (2) Base de hechos o memoria de trabajo. Contiene los hechos sobre un problema que se ha descubierto durante el análisis. (3) Máquina de inferencia. Modela el proceso de razonamiento humano. (4) Módulos de explicación. Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión. (5) Interfaz de usuario. Es la interacción entre el sistema experto y el usuario, propuesto a ser realizado mediante lenguaje natural. Principalmente existen tres tipos de sistemas expertos: en primera instancia se encuentran los sistemas expertos basados en reglas previamente establecidas, en segundo lugar están los sistemas expertos basados en casos y en tercer lugar se encuentran los sistemas expertos basados en redes bayesianas. En cada uno de estos tipos de sistemas expertos, la solución a un problema planteado se obtiene: en primer lugar aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación, en segundo lugar aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema y, en tercera instancia, aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

Los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados y aplicación de las nuevas reglas basadas en situaciones modificadas. También pueden trabajar por inferencia lógica dirigida, bien empezando con una evidencia inicial en una determinada situación y dirigiéndose hacia la obtención de una solución, o bien con hipótesis sobre las posibles soluciones y volviendo hacia atrás para encontrar una evidencia existente, o una deducción de una evidencia existente, que apoye una hipótesis en particular. En el manejo de sistemas expertos existen dos tipos de elementos, por una parte se encuentran los datos, hechos o evidencia y por otra parte, el conocimiento, referido como el conjunto de reglas almacenadas en la base de conocimiento. La máquina de inferencia utiliza ambos tipos de elementos para obtener nuevas conclusiones. Por ejemplo, si la premisa de una regla es cierta, entonces la conclusión de la regla debe ser también cierta. Los datos iniciales se incrementan incorporando las nuevas conclusiones. Por ello, tanto los hechos iniciales o datos de partida como las conclusiones derivadas de ellos forman parte de los hechos o datos de los cuales se dispone en un instante dado. Para obtener conclusiones, los expertos utilizan diferentes tipos de reglas y estrategias de inferencia.

El “modus ponens” es quizás la regla de inferencia más comúnmente utilizada. Se utiliza para obtener conclusiones simples. En ella, se examina la premisa de la regla, y si es cierta, la conclusión pasa a formar parte del conocimiento. Como ilustración, supóngase que se tiene la regla, “Si A es cierto, entonces B es cierto” y que se sabe además que “A es cierto”. La regla Modus Ponens concluye que “B es cierto.” Esta regla de inferencia, que parece trivial, debido a su familiaridad, es la base de un gran número de sistemas expertos. La regla de inferencia Modus Tollens se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión y si es falsa, se concluye que la premisa también es falsa. Por ejemplo, supóngase de nuevo que se tiene la regla, “Si A es cierto, entonces B es cierto” pero se sabe que “B es falso.” Entonces, utilizando la regla Modus Ponens no se puede obtener ninguna conclusión pero la regla Modus Tollens concluye que “A es falso”. El rendimiento del motor de inferencia depende del conjunto de reglas en su base de conocimiento. Hay situaciones en las que el motor de inferencia puede concluir utilizando un conjunto de reglas, pero no puede, utilizando otro, aunque éstos sean lógicamente equivalentes.

Una de las estrategias de inferencia más utilizadas para obtener conclusiones compuestas es el llamado encadenamiento de reglas. Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden con las conclusiones de otras. Cuando se encadenan las reglas, los hechos pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente hasta que no pueden obtenerse más conclusiones. El tiempo que consume este proceso hasta su terminación depende, por una parte, de los hechos conocidos, y, por otra, de las reglas que se activan. Este algoritmo puede ser implementado de muchas formas. Una de ellas comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos hechos se añaden al conjunto de hechos conocidos, y el proceso continúa hasta que no pueden obtenerse nuevos hechos.

La programación basada en las reglas es una de las técnicas comúnmente usadas para crear bases de conocimiento. En este paradigma de programación, las reglas se utilizan para representar conocimiento factual o heurístico, que especifican un sistema las acciones que se realizarán para una situación dada. Una regla se compone de una parte “si” y una parte “entonces”. La parte “si” de una regla es una serie de patrones que especifican los hechos, o los datos, que hacen que se aplique una regla. Junto con los datos, los hechos también están presentes en la base de conocimiento. Estos hechos representan declaraciones verdaderas que se utilizan para activar las reglas. Una de las ventajas de las reglas “si-entonces” es su modularidad, cada una define un pedazo relativamente pequeño y, por lo menos en principio, independiente de conocimiento. Nuevas reglas pueden ser agregadas y las viejas pueden ser suprimidas, generalmente de manera independiente de otras reglas.

El paradigma “Generar-Probar-Depurar” es un marco para que el razonamiento asociativo y causal que produce sistemas expertos, basados en reglas, que son eficientes y robustos. Generar-Probar-Depurar se basa en un ciclo donde primero una buena solución aproximada se genera, en la fase de generación. Esta solución se analiza en la búsqueda de los posibles errores, en la fase de pruebas. Si se encuentra un error, el sistema intentará solucionarlo, en la fase de depuración. La solución refinada se prueba otra vez para encontrar posibles errores. Este lazo continúa hasta que la fase de pruebas aprueba la solución. Este acercamiento asume que el problema es un conjunto formado por un conocimiento inicial y un objetivo final que se desea alcanzar. El conocimiento inicial es toda la información que está disponible al principio del proceso de solución, se podría llamar estado inicial, y el objetivo final representa el estado que el sistema tiene que alcanzar basado en una serie de deducciones, la cual se podría llamar el estado final. La hipótesis se puede considerar como un conjunto de suposiciones que el sistema establece con base en el conocimiento inicial y las reglas de producción. La solución es el conjunto de suposiciones que interpretan correctamente el objetivo final, basándose en el conocimiento inicial.

 

Guillermo Choque Aspiazu
http://www.eldiario.net/
Febrero 15 de 2010

Sistemas expertos conexionistas

Sistemas expertos conexionistas

En el ámbito de la inteligencia artificial, aun se dan confrontaciones entre dos tendencias, por una parte las tendencias simbólicas o simbolistas, entre las cuales se encuentran los sistemas expertos, y las tendencias no simbolistas o conexionistas, de las cuales forma parte las redes neuronales. Debido al carácter eminentemente tecnológico de la inteligencia artificial, donde el espíritu que predomina es el de resolver problemas, por sobre aquél de la búsqueda de verdades, es de esperar que en su quehacer emerjan soluciones eclécticas más fácilmente que en el dominio de las ciencias. En este dominio, por lo tanto, es de esperar que un proceso de selección, en búsqueda de los métodos más eficaces, dé lugar a soluciones híbridas, con aspectos simbólicos y no simbólicos. Tal el caso de la temática abordada, que se relaciona con un sistema experto que utiliza redes neuronales, mejor conocido como sistema experto conexionista.

El conexionismo se establece como un paradigma que permite modelar el funcionamiento del sistema nervioso a partir de formas simplificadas del funcionamiento de las neuronas que lo constituyen y de las conexiones que entre ellas se establecen. Por una parte, el funcionamiento de las neuronas de los diferentes modelos conexionistas actualmente en uso se basa en variaciones del modelo de la neurona formal establecida por McCulloch y Pitts en la década de los años 1940. En dicho formulismo se rescatan tanto las nociones de suma espacial y temporal de la fisiología celular, como la noción de activación de la neurona a partir de la resultante de potenciales post-sinápticos activadores como inhibitorios. Por otra parte, la forma en que se establecen las conexiones sinápticas de los modelos conexionistas replica la forma en que ellas se establecen en sus contrapartes biológicas. Estas conexiones pueden ser estáticas, en cuyo caso permanecen invariantes en el tiempo, o plásticas, de suerte que cambien en el curso del tiempo de acuerdo a instrucciones externas a la red, o de acuerdo a la relación de actividades entre neuronas pre y post-sinápticas.

Se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que ayuda a efectuar con mayor rapidez y eficacia todas las tareas que realiza. En términos genéricos un sistema experto es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimiento, posee información de uno o más expertos en un área específica. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole, en diferentes dominios de acción en los cuales predomina de algún modo la inteligencia artificial. También se dice que un sistema experto se basa en el conocimiento declarativo, es decir en conocimiento sobre hechos acerca de objetos, situaciones, etc. además del conocimiento de control referido como la información sobre el seguimiento de una acción. Para que un sistema experto sea una herramienta efectiva, los usuarios deben interactuar de una manera fácil, reuniendo dos capacidades para poder cumplir esta característica: (1) Explicar su razonamiento o base del conocimiento. Los sistemas expertos se deben construir siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, las mismas que a la vez se basan en hechos. (2) Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores.

La fusión de redes neuronales y sistemas expertos es uno de los campos abiertos más amplios de la investigación actual en inteligencia artificial. Su conjunción está soportada, de forma teórica, por la forma de procesar la información de los humanos, donde se aprecian, ante determinadas situaciones, una respuesta rápida, no consciente, gobernada por el simple reconocimiento de patrones y, complementándose con lo anterior se requiere otro proceso de la información que puede precisar de más datos y tiempo, pero que es consciente y proporciona una mayor “calidad” en la respuesta. Las redes neuronales pueden ser una buena interfaz entre un mundo real difuso y los sistemas expertos en cuanto a la adquisición de conocimientos o a la captación de datos e información se refiere. La aproximación inversa sería que: (1) El sistema experto toma los datos del exterior, haciendo preguntas a los usuarios, conectándose a una base de datos, introduciendo heurísticas, etc.; (2) La red neuronal, una vez entrenada, analiza los datos de forma completa, rápida y masiva y (3) los resultados de la evaluación de los datos, utilidad y consistencia de los resultados o conclusiones de la red neuronal, la realiza el sistema experto, analizando y validando las salidas de la red neuronal.

Otra posible utilización compuesta de los sistemas expertos conexionistas es que: la red neuronal genera proposiciones y restricciones para los sistemas expertos, deduciendo el conocimiento que no es capaz de explicitar el experto. Además pueden completar, gracias a la capacidad de las redes neuronales de restaurar patrones incompletos, los antecedentes o consecuentes incompletos de las reglas de producción de la base de conocimiento del sistema experto. Además, las redes neuronales pueden usarse para validar los sistemas expertos, para actualizar parámetros estadísticos en módulos de sistemas expertos, etc. Finalmente, la red neuronal puede realizar un refinamiento del sistema experto a través del siguiente procedimiento: (1) Insertar en la red neuronal el conocimiento del sistema experto; (2) Entrenar la red neuronal con ejemplos clasificatorios; y (3) Extraer el conocimiento de la red neuronal en forma de reglas de producción “si… entonces” y proceder a la adición de dichas reglas en la base de conocimiento del sistema experto.

Es posible desarrollar sistemas expertos conexionistas a partir de la combinación de los sistemas basados en reglas, propio de los sistemas expertos clásicos, con las redes neuronales artificiales. Esta combinación ofrece beneficios potenciales debido a que ambos modelos computacionales se complementan de manera mutua, a partir del siguiente razonamiento: (1) Los sistemas basados en reglas poseen buenas capacidades de explicación mientras que las redes neuronales no la tienen. (2) Los sistemas basados en reglas requieren de expertos que articulen su conocimiento y las redes neuronales solamente muchos ejemplos. (3) El tiempo promedio de desarrollo de un sistema basado en reglas es de doce a dieciocho meses mientras que el de una red neuronal son pocas semanas o meses.

Esta combinación, entre sistemas basados en reglas y redes neuronales, puede lograrse a través del siguiente procedimiento detallado: (1) División de los problemas. Se tiene una máquina de inferencia con dos partes bien delimitadas, una es un sistema de producción y la otra un procedimiento para el trabajo con una red neuronal. El conocimiento sobre el dominio de aplicación en el cual trabajará el sistema experto se divide, una parte se almacena en forma de reglas de producción y la otra se codifica en los pesos de la red neuronal. Cuando se presenta un problema este se divide en subproblemas los cuales son presentados al sistema de producción o a la red, y finalmente se integran los resultados para dar la respuesta al usuario. (2) Insertar la red neuronal en el sistema basado en reglas. Una manera es usar la red neuronal para implementar la parte de la máquina de inferencia que selecciona la regla a usar, esto puede mejorar sustancialmente el tiempo de ejecución debido al paralelismo inherente a la red neuronal. Otra forma es usar una red entrenada como una subrutina que se activa cuando se cumple alguna regla. (3) Expertos artificiales. Cuando se desea utilizar un sistema basado en reglas pero no se tiene un experto humano con todas las condiciones necesarias, se puede emplear una red neuronal como un medio para obtener las reglas de producción de la base de conocimiento del sistema experto. Se entrena la red usando los ejemplos existentes y luego se analiza esta para extraer las reglas. A pesar del doble trabajo esta variante resulta más económica tanto en tiempo como en costo pues el tiempo requerido para entrenar la red es de pocas semanas o meses, y este tiempo más el de extracción de las reglas nunca llegará al tiempo de doce a dieciocho meses requerido para la ingeniería de conocimiento tradicional. Además, este experto artificial resulta más barato que el empleo de uno humano.

El empleo de las redes neuronales en el desarrollo de sistemas expertos ofrece entre sus ventajas principales el hecho de no necesitar un experto humano al cual extraerle el conocimiento. Esta es una tarea lenta, que consume mucho tiempo, se necesita que exista disposición por parte del experto y concordancia entre él y el ingeniero de conocimiento, posibilidades de que el experto pueda explicar sus métodos de solución de problemas, etc. Las redes neuronales son una alternativa pues ellas adquieren su conocimiento a partir de ejemplos. No obstante tienen también desventajas, entre las que se encuentran el hecho de necesitar una gran cantidad de ejemplos y no poder explicar cómo se alcanzan los resultados.

 

Guillermo Choque Aspiazu
http://www.eldiario.net/
Diciembre 7 de 2009

Sistema experto probabilístico

Sistema experto probabilístico

En el desarrollo de la ciencia de la computación es fundamental el análisis de la información, la incertidumbre e imprecisión asociada con los fenómenos reales y con la percepción, interpretación y modelado de la realidad. El adecuado tratamiento y modelado de la incertidumbre conduce a sistemas confiables, económicos y seguros. No existe, prácticamente, ningún problema en donde se tenga la información total sobre todas las variables y en donde esta información no tenga ningún grado de incertidumbre o imprecisión. Un problema con todos los datos y completamente determinístico no es un problema real. La principal dificultad en el tratamiento y modelado de la incertidumbre es precisamente la consideración de sus características inciertas. Todo intento de determinar estas características es reducir el nivel de incertidumbre. En general, se manejan situaciones en las cuales se cuenta con diferentes tipos o niveles de incertidumbre. Tradicionalmente, la incertidumbre ha sido modelada a través de la teoría de la probabilidad, sin embargo, debido a que la incertidumbre no es igual en todos los casos, se han formulado otras formas de manejar la incertidumbre de las variables, tales como la teoría de las posibilidades, la lógica difusa y la teoría de Dempster-Shafer, entre otras.

En los problemas de la vida real se utiliza la información inmediata, es decir datos, experiencia, razonamientos a priori para hacer inferencias que conduzcan hacia algo más amplio que no se observa directamente. A través de la inferencia se utilizan observaciones del mundo para revelar otros hechos que no se han observado. El término inferencia se utiliza como sinónimo de ilación. En un sentido amplio la inferencia va desde la implicación hasta el proceso mental operativo mediante el cual, partiendo de determinada información, se llega por implicación o también por inducción a una conclusión.

Los sistemas expertos constituyen una de las áreas más importantes de la inteligencia artificial. Estos sistemas son llamados así porque emulan el comportamiento de un experto en un dominio concreto y en ocasiones son usados por estos. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la productividad del experto. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole, problemas que no necesariamente tienen que ser de inteligencia artificial. También se dice que un sistema experto se basa en el conocimiento declarativo, referido como hechos sobre objetos o situaciones y el conocimiento procedimental, que se refiere a la información sobre el seguimiento de una acción. Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo: (1) Explicar su razonamiento o base del conocimiento. Los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos. (2) Adquisición de nuevos conocimientos o integrador del sistema. Es un mecanismo de razonamiento que sirve para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que esta no intenta sustituir a los expertos humanos, sino que desea ayudarlos a realizar con más rapidez y eficacia las tareas que cumplen.

Los problemas con los que pueden tratar los sistemas expertos pueden clasificarse en dos tipos: problemas esencialmente deterministas y problemas esencialmente estocásticos. Los problemas de tipo determinista pueden ser formulados usando un conjunto de reglas que relacionen varios objetos bien definidos. Los sistemas expertos que tratan problemas deterministas son conocidos como sistemas basados en reglas. En situaciones inciertas, es necesario introducir algunos medios para tratar la incertidumbre. Durante las últimas décadas han sido propuestas algunas medidas de incertidumbre. Algunos ejemplos de estas medidas son los factores de certeza, la lógica difusa, etc. Otra medida intuitiva de incertidumbre es la probabilidad, en la que la distribución vinculada de un conjunto de variables se usa para describir las relaciones de dependencia entre ellas, y se sacan conclusiones usando fórmulas muy conocidas de la teoría de la probabilidad. Los sistemas expertos que utilizan la probabilidad como medida de incertidumbre se conocen como sistemas expertos probabilísticos y la estrategia de razonamiento que usan se conoce como razonamiento probabilístico, o inferencia probabilística.

Los sistemas expertos comunes, normalmente basados en reglas, no tienen en cuenta la incertidumbre, ya que la forma de tratar los objetos y las reglas, es de tipo determinista, pero como se comento anteriormente, es frecuente la toma de decisiones en condiciones de incertidumbre, ya sea en áreas de la ingeniería, los negocios o inclusive la salud. El ejemplo que se presenta a continuación es el de un paciente que asiste al médico, con ciertos síntomas para que este le determine con base en estos, que tipo de enfermedad de las posibles padece. Se dice que el sistema no es determinista, ya que la relación entre las enfermedades y los síntomas que tiene un paciente no son deterministas, porque los mismos síntomas pueden estar presentes en distintas enfermedades. Esto crea la necesidad, de herramientas que tengan la capacidad para funcionar, en estos ambientes, una buena opción son los sistemas de tipo probabilístico. Estos como los otros, cuentan con una base de conocimiento, pero esta se forma por el espacio probabilístico, que describe el problema. El motor de inferencias se encuentra basado en probabilidades condicionales y este se encarga de actualizar dichas probabilidades con base en los hechos que observa del ambiente en que se desempeña. Para modelar de manera acertada los sistemas de tipo probabilístico, se tiene que tomar en cuenta la teoría de las probabilidades condicionales. A la probabilidad de que un evento ocurra cuando se sabe que otro evento se ha presentado previamente se llama probabilidad condicional, este tipo de probabilidad generalmente se interpreta de la siguiente manera: “la probabilidad de que ocurra un evento dado que ocurrió un evento previo“.

En los primeros sistemas expertos, se eligió la probabilidad como medida para tratar la incertidumbre pero, desgraciadamente, muy pronto se encontraron algunos problemas, debidos al uso incorrecto de algunas hipótesis de independencia, utilizadas para reducir la complejidad de los cálculos. Como resultado, en las primeras etapas de los sistemas expertos, la probabilidad fue considerada como una medida de incertidumbre poco práctica. La mayoría de las críticas a los métodos probabilísticos se basaban en el altísimo número de parámetros necesarios, la imposibilidad de una asignación o estimación precisa de los mismos, o las hipótesis poco realistas de independencia. Consecuentemente, en la literatura de la época, surgieron medidas alternativas a la probabilidad, como los factores de certeza, las credibilidades, las plausibilidades, las necesidades o las posibilidades, para tratar la incertidumbre. Sin embargo, con la aparición de las redes probabilísticas, principalmente las redes Bayesianas y Markovianas, la probabilidad ha resurgido de forma espectacular, y es, hoy en día, la más intuitiva y la más aceptada de las medidas de incertidumbre.

El método más antiguo para el tratamiento de la incertidumbre es la probabilidad. Dentro del campo de la inteligencia artificial, surgieron críticas contra el uso de métodos probabilistas en sistemas expertos, especialmente porque las hipótesis necesarias para hacer tratable el método bayesiano clásico eran incorrectas en la mayor parte de los problemas del mundo real. Esto motivó el desarrollo de otros métodos, como los factores de certeza o la lógica difusa, en que se introducen implícitamente hipótesis y aproximaciones aún más exigentes. Afortunadamente, el desarrollo de las redes bayesianas en la década de los años 1980 permitió refutar las objeciones anteriores contra el uso de la probabilidad, construyendo un modelo de razonamiento causal con un sólido fundamento teórico. Por otro lado, los diagramas de influencia, que aparecen también en la década de los años 1980, pueden considerarse como una extensión de las redes bayesianas, que por tener nodos de decisión y nodos de utilidad, permiten resolver problemas de toma de decisiones. En la década de los años 1990 ha crecido exponencialmente el número de investigadores, universidades y empresas dedicadas a este tema; actualmente existen sistemas expertos bayesianos en las especialidades más diversas, tales como los sistemas expertos médicos, las aplicaciones en ingeniería, visión artificial, comercio electrónico, informática educativa, interfaces inteligentes, etc.

 

Guillermo Choque Aspiazu
www.eldiario.net
Junio 1 de 2009
Sistemas expertos difusos

Sistemas expertos difusos

La inteligencia artificial comenzó como resultado de la investigación en psicología cognitiva y lógica matemática. Se ha enfocado sobre la explicación del trabajo mental y la construcción de algoritmos de solución a problemas de propósito general. Punto de vista que favorece la abstracción y la generalidad. La inteligencia artificial es una combinación de la ciencia de las computadoras, la biología, la fisiología y la filosofía, tan general y amplio como eso, es que reúne varios campos, todos los cuales tienen en común la creación de máquinas que puedan “pensar”. La idea de construir una máquina que pueda ejecutar tareas percibidas como requerimientos de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto de vista incluyen juegos, traducción de idiomas, comprensión de idiomas, diagnóstico de fallas, robótica, y principalmente el suministro de asesoría experta en diversos temas. Es así como los sistemas de administración de base de datos cada vez más sofisticados, la estructura de datos y el desarrollo de algoritmos de inserción, borrado y localización de datos, así como el intento de crear máquinas capaces de realizar tareas que son pensadas como típicas del ámbito de la inteligencia humana, acuñaron el término inteligencia artificial el año 1956.

Durante años de actividad, la inteligencia artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, y otros. En los ya pasados años 1970 surgió un nuevo paradigma en la inteligencia artificial, los denominados “sistemas expertos”, cuya función consistía en desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada, la idea no radicaba en sustituir a los expertos, sino que estos sistemas sirvieran de apoyo a los especialistas en un “dominio” de aplicación específico y ampliamente especializado.

Los sistemas expertos constituyen de manera esencial sistemas de computación basados en conocimientos cuyos componentes representan un enfoque cualitativo de la programación. Muchas personas pueden creer que un sistema experto es un sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar a los programas, y que los sistemas expertos se miden por la cantidad de programas que contienen. Sin embargo la cantidad no es lo que prima en los sistemas expertos, si no la calidad del mismo, esta cualidad está dada por la separación de las reglas que describen el problema, del programa de control que es quien selecciona las reglas adecuadas. Se puede decir que un sistema experto está compuesto por una base de conocimiento, una base de hechos y una máquina de inferencias. Por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su base de conocimiento. La principal diferencia entre un sistema experto tradicional con un sistema experto difuso es que el primero se encuentra basado en reglas de producción con lógica clásica y el segundo en reglas de producción con lógica difusa, bajo el supuesto que la mayoría de los ingenieros del conocimiento utiliza un formalismo de representación de conocimiento conocido como reglas de producción.

Para el desarrollo de un sistema experto difuso primero es necesario abordar un área de interés, dentro de esta área se selecciona a los expertos, que son los especialistas capaces de resolver los problemas en dicha área. Por ejemplo el área de interés de la prospección petrolera son precisamente los proyectos de inversión petrolera y un especialista podría ser un ingeniero petrolero. Ahora bien, casi siempre estos especialistas, son expertos en un dominio específico y es sobre este dominio, donde poseen su mayor experiencia. Una vez seleccionado al experto o a los expertos y que estos estén de acuerdo en proporcionar sus conocimientos, comienza a jugar su papel el “ingeniero del conocimiento”, que es el encargado de extraer los conocimientos al experto y diseñar una representación adecuada, ya sea en forma de reglas u otro tipo de representación, conformando así la base de conocimientos del sistema experto.

Por su parte la lógica difusa es una innovación tecnológica que usa métodos como la codificación difusa, reglas difusas y la decodificación difusa para permitir que el comportamiento deseado de un sistema sea descrito usando el lenguaje natural cotidiano. Sus aplicaciones van desde bienes de electrónica de consumo y aplicaciones caseras hasta procesos de ingeniería y automatización industrial. Dichas aplicaciones no se logran con el uso del modelado matemático convencional, sino con lógica difusa y su lenguaje de cómputo coloquial. La lógica difusa es una lógica aproximada al razonamiento de los seres humanos. Una disciplina matemática teórica que reacciona a los constantes cambios de las variables, reta a la lógica tradicional en que no está restringida a los valores de cómputo binarios como el cero y el uno. En cambio, permite las verdades parciales y el manejo de múltiples valores. Esta disciplina se encuentra adelantada en problemas que no pueden ser fácilmente representados por que su modelo matemático no está disponible o se encuentra incompleto. El lenguaje natural usado en el control difuso permite a los ingenieros del software incorporar la naturaleza ambigua y aproximada de la lógica humana a la computadora. El uso del modelado lingüístico, en lugar del matemático, mejora grandemente la transparencia del sistema y el potencial de modificación. Permite ciclos de desarrollo rápidos, programación sencilla y control cuasi exacto.

La lógica se reconoce como la más precisa de todas las ciencias y disciplinas teóricas. Muchas de las ciencias modernas y matemáticas se basan en sus principios de precisión. Despistan las ventajas de su exactitud, la lógica booleana clásica tiene un serio problema: no puede reproducir los patrones del pensamiento humano. Esto es porque los patrones del pensamiento humano son principalmente intuitivos. En ambos, pensamiento y lingüística humanos, las referencias a conceptos definidos vagamente son frecuentes. Un ejemplo de esto es el conjunto de gente alta, un concepto que puede ser fácilmente entendido esconde el problema del establecimiento de qué altura puede ser una persona ser considerada alta. En la lógica tradicional, la idea de “persona alta” debe ser correlacionada con una altura exacta. Sin una frontera límite sería imposible establecer si una premisa es verdadera o falsa. Si, por ejemplo, 1.90m se establece como el límite, entonces sería irracional que una persona con una altura de 1.95m sea considerada como alta y otra persona de 1.85m no lo sea. En este caso la mente humana podría pensar acerca de la fuerza y la debilidad de la relación entre un dato ejemplo y el establecimiento del límite. En lógica difusa, esto se denomina grado de pertenencia.

El hombre ha estado tratando de duplicar el pensamiento humano desde la invención de la computadora. Los sistemas expertos, el más antiguo de los campos de la investigación de la inteligencia artificial, prometen conseguirlo. Aunque en ciertas aplicaciones los sistemas expertos pueden crear patrones similares, están lejos de haber dominado la tarea. Las reglas de producción son la base de la representación del conocimiento en los sistemas expertos convencionales. En estos sistemas regidos por reglas, el comportamiento del sistema esta típicamente definido usando tres clases de términos hablados. Estas palabras describen cantidades técnicas, conjunciones y causalidades. Las reglas de producción convencionales, sin embargo, están limitadas porque no reflejan el significado oculto de las palabras específicas. Esto se refiere al hecho de que en la lingüística humana, la misma palabra puede tener varias connotaciones. Para que las reglas de producción modelen adecuadamente los patrones del pensamiento humano, ellas deben incluir esta característica. Las reglas de producción convencionales tienen otra desventaja: una precondición de validez debe ser claramente definida. Esta definición tajante no existe habitualmente en el pensamiento humano.

Los sistemas de lógica difusa son también regidos por reglas, pero ellas usan diferentes conceptos para representar a los elementos lingüísticos. Las cantidades técnicas son representadas por variables lingüísticas, esto permite a las expresiones ser más o menos verdad en uno o incluso varios conjuntos. Las reglas lingüísticas son formadas usando operadores que representan conjunciones y disyunciones lingüísticas. Finalmente, los cómputos de las mismas reglas, representadas por una causalidad lingüística, son ejecutados. Este paso es llamado inferencia difusa y en los sistemas expertos difusos su proceso se encarga a la máquina de inferencia. Como un mecanismo de complemento, los métodos de codificación difusa y decodificación difusa encadenan el sistema experto completo al proceso.

 

Guillermo Choque Aspiazu
www.eldiario.net
Marzo 2 de 2009
Programación de Sistemas Expertos

Programación de Sistemas Expertos

En informática la programación es un proceso por el cual se escribe el denominado código fuente en un lenguaje de programación, el mismo se prueba, se depura y se mantiene. Al interior de la informática, los programas son los elementos que, derivados de un algoritmo, forman el código fuente, que es el conjunto de las instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. Para el desarrollo de programas de cierta envergadura o complejos, con ciertas garantías de calidad, es conveniente seguir alguno de los modelos de proceso del software, donde la programación es sólo una de las etapas para el desarrollo del software. Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa un algoritmo. Debe considerarse que la secuencia de instrucciones en sí es la que debe ser finita, no el número de pasos realizados como la ejecución de ellas. Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Según el investigador Niklaus Wirth, un programa está formado por algoritmos y estructura de datos.

Existe una tendencia a considerar como equivalentes el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de medianos y grandes proyectos. El proceso de creación del software es una tarea destinada a la ingeniería que cuenta con los siguientes pasos: (1) Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea. (2) Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita. (3) Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase. (4) Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable. (5) Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata. (6) Probar el programa. Consiste en realizar pruebas de funcionalidad al programa. (7) Instalar el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar. La ingeniería del software se encuentra centrada en los pasos de planificación y diseño de productos software o programas con calidad, mientras que la programación artesanal plantea que la realización de un programa consiste únicamente en escribir el código fuente.

Los sistemas expertos pueden ser considerados como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas computacionales diseñados para actuar como un especialista humano en un dominio particular o área de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizará para ello el conocimiento que tiene almacenado y algunos métodos de inferencia. A la vez, el usuario puede aprender observando el comportamiento del sistema. Es decir, los sistemas expertos se pueden considerar simultáneamente como un medio de ejecución y transmisión del conocimiento. Lo que se intenta, de esta manera, es representar los mecanismos heurísticos que intervienen en un proceso de descubrimiento. Estos mecanismos forman ese conocimiento difícil de expresar que permite que los expertos humanos sean eficaces calculando lo menos posible. Los sistemas expertos contienen ese “saber hacer”.

Los sistemas expertos constituyen quizás el área de la inteligencia artificial más conocida y ampliamente aplicada a problemas prácticos. La idea general sobre la cual se basan dichos sistemas, es que la experticia se puede descomponer en un conjunto de reglas o proposiciones, las cuales pueden verse como pedazos aislados de conocimiento que se encadenan o relacionan a partir de un procesamiento lógico. Este modelo es comparable con el modelo Euclidiano el cual parte de un conjunto de axiomas básicos y a partir de un mecanismo de razonamiento, aplicado sobre dicho conjunto, se pueden generar teoremas, propiedades, etc. En otro sentido, menos técnico, los sistemas expertos pueden definirse como sistemas capaces de emular la experticia de un experto humano en la resolución de un problema, brindando una solución similar a la que daría cualquier experto en la materia de trabajo.

Los sistemas expertos se componen de cuatro elementos fundamentales: (1) Base de conocimiento. Contiene las reglas sobre las cuales se construyen las soluciones a los problemas. Cada base de conocimiento es específica al dominio del conocimiento en el cual el sistema se especializa, por ejemplo: la medicina, la matemática, el diseño de circuitos, etc. (2) Base de hechos o axiomas. Contiene todas las afirmaciones o axiomas iniciales a partir de las cuales, y con ayuda de la reglas de la base de conocimiento, se puede encontrar la solución al problema planteado. (3) Motor de inferencia. También denominado intérprete de reglas, es el elemento central del sistema experto y se encarga de realizar el proceso de inferencia a partir de los elementos contenidos en la base de conocimiento y en la base de hechos. (4) Adicionalmente puede existir una base de datos con información puntual sobre problemas específicos anteriormente resueltos por el sistema, y que se usa como información adicional en el proceso de inferencia. La característica central de un sistema experto es que separa los conocimientos almacenados, en una base de conocimiento, del programa que los controla, el motor de inferencia. Los datos propios de un determinado problema se almacenan en una base de datos particular denominada base de hechos. Una característica adicional deseable, y a veces fundamental, es que el sistema sea capaz de justificar su propia línea de razonamiento de forma inteligible por el usuario.

Algunas diferencias entre un sistema experto y un programa convencional son: (1) la tarea que realiza un sistema experto fue anteriormente realizada por un especialista humano entendido en la temática. (2) Los sistemas basados en conocimiento son mantenidos por ingenieros del conocimiento y por expertos humanos. El mantenimiento de los programas convencionales lo llevan a cabo los programadores. (3) La base de conocimiento de un sistema experto es legible y fácil de modificar. (4) La estructura global de los programas convencionales descansa fundamentalmente en los algoritmos, mientras que la de los sistemas basados en conocimiento se basan sobre todo en heurísticas. Se puede observar otra diferencia importante entre la programación convencional y la programación simbólica describiendo como trabajan los ingenieros del conocimiento. La ingeniería del conocimiento se ocupa tanto del desarrollo del software para sistemas expertos como del análisis del modo en el que los expertos humanos resuelven problemas. Los ingenieros del conocimiento colaboran con los expertos humanos y les ayudan a describir su conocimiento y las estrategias de inferencia de modo tal que puedan codificarse. Así, un ingeniero del conocimiento combina grandes dosis de psicología cognitiva con técnicas de programación simbólica para el desarrollo de sistemas expertos.

A modo de conclusión se puede mencionar que las discrepancias principales entre la programación convencional y la simbólica son las siguientes: (1) La programación convencional trabaja con algoritmos mientras que la programación simbólica trabaja con heurísticas. (2) La programación convencional utiliza bases de datos con direccionamiento numérico mientras que la programación simbólica utiliza bases de conocimiento estructuradas simbólicamente en una memoria de trabajo global. (3) La programación convencional está orientada al procesamiento numérico mientras que la programación simbólica está orientada el procesamiento simbólico. (4) La programación convencional cuenta con un procesamiento secuencial y por lotes mientras que la programación simbólica cuenta con un procesamiento bastante interactivo. (5) La programación convencional no tiene un mecanismo de explicación de su procesamiento mientras que la programación simbólica cuenta con un mecanismo sencillo de explicación de su ejecución.

Guillermo Choque Aspiazu
Diciembre 1 de 2008
Translate »