Archivo | Sistemas Expertos RSS feed for this section

CONOCIMIENTO

24 Abr

EL CONOCIMIENTO


Para Muñoz Seca y Riverola (1997) el “conocimiento es la capacidad de resolver un determinado conjunto de problemas con una efectividad determinada”. Es un conjunto integrado por información, reglas, interpretaciones y conexiones puestas dentro de un contexto y de una experiencia, que ha sucedido dentro de una organización, bien de una forma general o personal.

Lo fundamental del conocimiento son básicamente tres características:

  • El conocimiento es personal,  se origina y reside en las personas, que lo asimilan como resultado de su propia experiencia
  • Su utilización, que puede repetirse sin que el conocimiento “se consuma”, permite “entender” los fenómenos que las personas perciben
  • Sirve de guía para la acción de las personas, en el sentido de decidir qué hacer en cada momento

El conocimiento es un fenómeno complejo que implica cuatro elementos de tal manera que si faltara uno de estos, aquel no existe.

1. Sujeto: El sujeto del conocimiento es el individuo conocedor. Su función consiste en aprehender el objeto, esta aprehensión se presenta como una salida del sujeto fuera de su propia esfera, una invasión en la esfera del objeto y una captura de las propiedades de éste.

2. Objeto: Es aquello a lo que se dirige la conciencia. Es lo que se percibe, imagina, concibe o piensa. Su función es ser aprehensible y aprehendido por el sujeto, pueden ser reales o irreales.

3. Operación: Procesos psico-fisiolócos, mediante los cuales el sujeto se pone en contacto con el objeto.

4. Representación interna o pensamiento: es el proceso Cognoscitivo, es la explicación según nuestro propio criterio.

Conocimiento y su relación con los datos


Un dato es un conjunto discreto de factores objetivos sobre un hecho real. Un  dato por sí mismo no dice nada, es necesario contextualizarlo para que aporte algún valor.

La  información es un paso más, es una agrupación de datos estructurados y asociados a un contexto, en definitiva un mensaje, normalmente bajo la forma de un documento o algún tipo de comunicación audible o visible. La información ya tiene un significado (relevancia y propósito).

El  conocimiento es todavía un paso más, es una mezcla de experiencia, valores, información y “saber hacer” interpretado adecuadamente en un  contexto determinado. Es decir es el conjunto organizado de datos e información destinados a resolver un determinado problema o tomar una decisión

Componentes del conocimiento


Experiencia.- proviene de un verbo griego que significa poner a prueba, se dice entonces que un experto es una persona que ha sido puesta a prueba y probado por la experiencia. El conocimiento se desarrolla a través del tiempo mediante la experiencia, que incluye tanto lo que absorbemos de cursos, libros y asesores como también del aprendizaje informal.

Verdad Practica.- con esta se pretende determinar lo que sucede y funciona en las situaciones reales, es decir analizar entre lo planificado y lo que realmente sucede mejorando el conocimiento del individuo.

Complejidad.- con el conocimiento se puede tratar problemas complejos no de una manera superficial, buscando la solución más completa, sin que sea necesariamente la más fácil y evitando obviar factores importantes.

Criterio.- a diferencia de los datos e información, el conocimiento implica criterio, no solo evalúa nuevas situaciones e información a la luz de lo que ya se conoce, sino evalúa y se refina como respuestas a nuevas situaciones o información. Cuando el conocimiento deja de evolucionar se convierte en opinión o dogma.

Reglas empíricas e intuición.- son las pautas o caminos que se siguen ante una situación para llegar a realizar o ejecutar una acción o decisión. Se denominan también reglas heurísticas que se convierten en un patrón que al ser identificado en una nueva situación, permite resolver  problemas de una manera más rápida.

Valores y creencias.- El conocimiento de un individuo, dependiendo del ambiente en el que se desenvuelve, también depende de sus valores y creencias. . Las creencias y valores marcan la diferencia en la apreciación de una realidad. De hecho la formación, educación y sociedad han determinado las características del conocimiento que ha llegado a poseer una persona

WEBGRAFÍA:

CARRIÓN Juan, Conocimiento [en linea, disponible en URL:  http://www.gestiondelconocimiento.com/conceptos_conocimiento.htm] Fecha: 2011-04-22

Definicion.de, Definición de conocimiento, [en línea, disponible en URL: http://definicion.de/conocimiento/] Fecha: 2011-04-22

Qué es conocimiento?, [en línea, disponible en URL: http://soydondenopienso.wordpress.com/2007/08/19/que-es-conocimiento/] Fecha: 2011-04-22

ANDRADE Juan, Solución tecnológica para el compartimiento de conocimiento en una comunidad de práctica de desarrollo de Software, [en línea, disponible en URL: http://bibdigital.epn.edu.ec/bitstream/15000/416/1/CD-0823.pdf] Fecha: 2011-04-22

MARTÍNEZ Esther, GUIA TECNOPYME. Fase II. Gestión del Conocimiento, [en línea, disponible en URL: http://www.bizkaia.net/Home2/Archivos/DPTO8/Temas/Pdf/ca_GTcapitulo2.pdf] Fecha: 2011-04-22

OBJETOS Y REGLAS (MACO)

3 Abr

SISTEMA EXPERTO: MACO

Asistente Virtual del mantenimiento correctivo de una PC  (HW), permitira detectar un problema y darle una solución.

OBJETOS

OBJETOS VALORES
desarmar cpu si , no
pitido largo si , no
pitido largo y 2 cortos si , no
pitido continuo si , no
pitido largo y 3 cortos si , no
disco duro no gira y se sobrecalienta si , no
huele a quemado si , no
ruido  metálico continuo si , no
pc se enciende si , no
pc enciende pero no tiene imagen si , no
pc se reinicia sola o se cuelga continuamente si , no
fecha y hora incorrectas si , no
mensaje error cmos: cmos checksum error si , no
mensaje error bios: bios checksum error si , no
mensaje: disk boot si , no
mensaje cpu  ha sido cambiada: ¡warning! the cpu has chance.. si , no
puntero se mueve si , no
teclado responde si , no
reconoce unidad óptica si , no
ventilador de la fuente poder genera mucho ruido si , no
sonido si , no
problemas de conexión si , no
problemas impresora si , no
problema de memoria si , no
error de vídeo si , no
tarjeta de video funciona si , no
error mainboard si , no
mainboard estropeada si , no
quitar tornillos si , no
quitar tapa si , no
suciedad si , no
limpiar si , no
cables invertidos si , no
disco duro funciona, dañado
pantalla negra si , no
falla cooler del microprocesador si , no
virus si , no
conflicto en el hardware o software si , no
setup desconfigurado si , no
falla pila si , no
falla alimentación energía si , no
cable datos dañado si , no
disco funciona, dañado
problema memoria si , no
falla cpu si , no
cables mal conectados si , no
falta controlador si , no
mouse funciona, dañado
teclado funciona, dañado
cable dañado si , no
falla alimentación energia si , no
setup desconfigurado si , no
unidad óptica funciona, dañado
varia voltaje si , no
parlantes funciona, dañado
problemas con la tarjeta de sonido si , no
problemas configuración de la conexión de red si , no
configuración de la impresora incorrecta
problemas impresora si, no
impresora funciona, dañado

REGLAS

SI desarmar cpu =si ENTONCES

quitar tornillos=si

quitar tapa=si

revisar=si

SI suciedad=si  ENTONCES

limpiar=si

.

SI pitido largo=si ENTONCES

problema de memoria=si

SI pitido largo y 2 cortos=si ENTONCES

error de vídeo=si

SI pitido continuo=si ENTONCES

error mainboard=si

mainboard estropeada = si

SI pitido largo y 3 cortos ENTONCES

error de vídeo=si

tarjeta de video funciona=no

.

SI disco duro no gira y se sobrecalienta ó huele a quemado=si ENTONCES

cables invertidos=si

.

SI ruido metálico continuo= si ENTONCES

disco duro=dañado

.

SI pc se enciende=no ENTONCES

pantalla negra =si

tarjeta de video =si

problema memorias=si

SI pc se reinicia sola,  apaga sola  o se cuelga continuamente=si ENTONCES

falla cooler del microprocesador=si

virus=si

conflicto en el hardware o software=si

.

SI fecha y hora incorrectas ó mensaje error cmos =si ó mensaje  error bios =si ó mensaje disk boot =si ENTONCES

SETUP desconfigurado=si

falla pila =si

SI mensaje  disk boot=si ENTONCES

falla alimentación energia=si

cable datos dañado =si

disco dañado=si

SI mensaje = ¡warning! the cpu has chance..ENTONCES

problema memoria=si

falla cpu=si

.

SI puntero se mueve=no ENTONCES

cables mal conectados =si

falta controlador=si

mouse=dañado

cable dañado=si

.

SI teclado  responde=no ENTONCES

cables mal conectados =si

falta controlador=si

teclado=dañado

cable dañado=si

.

SI reconoce unidad óptica =no ENTONCES

falla alimentación energia=si

SETUP desconfigurado=si

unidad óptica =dañada

.

SI ventilador de la fuente poder genera mucho ruido

=si ENTONCES

varia voltaje =si

.

SI sonido=no ENTONCES

cables mal conectados =si

falta controlador=si

parlantes =dañados

cable dañado=si

problemas con la tarjeta de sonido.=si

.

SI problema conexión=si ENTONCES

cables mal conectados =si

falta controlador=si

problemas configuración de la conexión de red.=si

.

SI problema impresora=si ENTONCES

cables mal conectados =si

falta controlador=si

configuración de la impresora = incorrecta

problemas impresora=si

impresora=dañada

.

Nota: SW en desarrollo

Motor y reglas de inferencia

2 Abr

El motor de inferencia usa tanto los datos (hechos o evidencia) como el conocimiento (el conjunto de reglas almacenado en la base de conocimiento), para obtener nuevas conclusiones o hechos. Por ejemplo, si la premisa de una regla es cierta, entonces la conclusión de la regla debe ser tambiéen cierta. Para obtener conclusiones, los expertos utilizan diferentes tipos de reglas y estrategias de inferencia y control. Dentro de la reglas de inferencia tenemos: Modus Ponens, Modus Tollens y Resolución.

Modus Ponens y Modus Tollens se usan para obtener conclusiones simples y la Resolución, para obtener conclusiones compuestas.
Sin embargo deben implementarse varias reglas y estrategias en el sistema experto para que el motor de inferencia sea capaz de obtener tantas conclusiones como sea posible.

El Modus Ponens es una de las 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.


En la regla  Modus Tollens se examina la conclusión y si es falsa, se concluye que la premisa también es falsa.

Aunque estas reglas deben ser vistas como complementarias, a continuacion se presenta sus diferencias:

Modus Ponens Modus Tollens
Se mueve hacia adelante, es decir, de la premisa a la conclusión de una regla Se mueve hacia atrás, es decir, de la conclusión a la premisa.
Necesita información de los objetos de la premisa para concluir. Necesita información sobre los objetos de la conclusión.

.

La  Resolucion posee las siguientes etapas:
1. Las Reglas son sustituidas por expresiones lógicas equivalentes.
2. Estas expresiones lógicas se combinan en otra expresión lógica.


3. Esta ultima expresión se utiliza para obtener la conclusión.

Estas etapas involucran conceptos tales como la combinación y simplificación de expresiones lógicas.

Cabe señalar que la Resolución no siempre conduce a conclusiones, pues no siempre se puede conocerla verdad o falsedad de ciertas expresiones.

Cuando esto sucede el motor de inferencia,debe decidir entre:

  • Abandonar la regla, dada la imposibilidad de obtener conclusiones, o
  • Preguntar al usuario, mediante el subsistema de demanda de información, sobre la verdad o falsedad de una o varias expresiones para poder continuar el proceso de inferencia hasta que se obtenga una conclusión.

ENLACES

Sistemas Basados en Reglas

Sistemas Expertos Basados en Reglas

Sistemas Expertos y Modelos de Redes Probabilísticas

Motor de Inferencia

Arquitectura de un Sistema Experto

22 Mar

La estructura de un Sistema experto está organizada alrededor de 3 elementos principales: Base de conocimiento, Motor de inferencia y Base de hechos.
Pero para asegurar el diálogo entre el hombre y la máquina se requiere los siguientes:

1. La Componente Humana
Un sistema experto es generalmente el resultado de la colaboracion de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento, con los usuarios en mente. Los expertos humanos suministran el conocimiento basico en el tema de interes, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender. Esta etapa requiere una enorme dedicacion y un gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las diferentes experiencias que tienen.
2. La Base de Conocimiento
Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.
Pero hay que diferenciar entre datos y conocimiento, el conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. y los datos se refieren a la informacion relacionada con una aplicacion particular. Por ejemplo, en diagnostico medico, los sıntomas, las enfermedades y las relaciones entre ellos, forman parte del conocimiento, mientras los sıntomas particulares de un paciente dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son efımeros, es decir, no forman parte de la componente permanente de un sistema y son destruıdos despues de usarlos. El conocimiento se almacena en la base de conocimiento y los datos se alma cenan en la memoria de trabajo. Todos los procedimientos de los diferentes sistemas y subsistemas que son de carácter transitorio se almacenan tambien en la memoria de trabajo.
3. Subsistema de Adquisicion de Conocimiento
El subsistema de adquisicion de conocimiento controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina que nuevo conocimiento se necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos a la misma.
4. Control de la Coherencia
El subsistema de control de la coherencia ha aparecido en los sistemas expertos muy recientemente, pero es una componente esencial de  un sistema experto. Este susbsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. Sin un subsistema de control de la coherencia, unidades de conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio del sistema. Es tambien bastante comun, especialmente en sistemas con mecanismos de propagacion de incertidumbre, que se llegue a conclusiones absurdas o en conflicto como, por ello, el subsistema de control de la coherencia comprueba e informa a los expertos de las inconsistencias. Por otra parte, cuando se solicita informacion de los expertos humanos, este subsistema informa sobre las restricciones que esta debe cumplir para ser coherente con la existente en la base de conocimiento. De esta forma, ayuda a los expertos humanos a dar informacion fiable.
5. El Motor de Inferencia
El motor de inferencia es el corazon de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnostico medico, los sıntomas de un paciente (datos) son analizados a la luz de los sıntomas y las enfermedades y de sus relaciones (conocimiento). Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilıstico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilısticas) puede ser considerablemente mas difıcil que el tratamiento de situaciones ciertas (deterministas).
En muchos casos, algunos hechos (datos) no se conocen con absoluta certeza. Por ejemplo, piensese en un paciente que no esta seguro de sus sıntomas. En los sistemas expertos basados en probabilidad, la propagacion de incertidumbre es la tarea principal del motor de inferencia, que permite sacar conclusiones bajo incertidumbre. Esta tarea es tan compleja que da lugar a que esta sea probablemente la componente mas debil de casi todos los sistemas expertos existentes.
6. El Subsistema de Adquisicion de Conocimiento
Si el conocimiento inicial es muy limitado y no se pueden sacar conclusiones, el motor de inferencia utiliza el subsistema de adquisicion de conocimiento para obtener el conocimiento necesario y continuar con el proceso de inferencia hasta que se hayan sacado conclusiones. En algunos casos, el usuario puede suministrar la informacion requerida para este y otros objetivos. De ello resulta la necesidad de una interfase de usuario y de una comprobación de la consistencia de la informacion suministrada por el usuario antes de introducirla en la memoria de trabajo.
7. Interfase de Usuario
La interfase de usuario es el enlace entre el sistema experto y el usuario. Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener informacion de forma facil y agradable. Un ejemplo de la informacion que tiene que ser mostrada tras el trabajo del motor de inferencia, es el de las conclusiones, las razones que expliquen tales conclusiones y una explicacion de las acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia no puede concluir debido, por ejemplo, a la ausencia de informacion, la interfase de usuario es un vehıculo para obtener la información necesaria del usuario. Consecuentemente, una implementacion inadecuada de la interfase de usuario que no facilite este proceso minarıa notablemente la calidad de un sistema experto. Otra razon de la importancia de la interfase de usuario es que los usuarios evaluan comunmente los sistemas expertos y otros sistemas por la calidad de dicha interfase mas que por la del sistema experto mismo, aunque no se deberıa juzgar la calidad de un libro por su portada.
8. El Subsistema de Ejecucion de  Ordenes
El subsistema de ejecucion de ordenes es la componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como ejemplos, un sistema experto diseñado para analizar el trafico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el trafico global, o un sistema para controlar una central nuclear puede abrir o cerrar ciertas valvulas, mover barras, etc., para evitar un accidente. La explicacion de las razones por las que se inician estas acciones pueden darse al usuario mediante el subsistema de explicacion.
9. El Subsistema de Explicacion
El usuario puede pedir una explicacion de las conclusiones sacadas o de las acciones iniciadas por el sistema experto. Por ello, es necesario un subsistema que explique el proceso seguido por el motor de inferencia o por el subsistema de ejecucion. Por ejemplo, si un cajero automatico decide rechazar la palabra clave (una accion), la maquina puede mostrar un mensaje (una explicacion) como la siguiente:
¡Lo siento!, su palabra clave es todavıa incorrecta tras tres intentos.
Retenemos su tarjeta de credito, para garantizar su seguridad.
Por favor, pongase en contacto con su banco en horas de oficina.
En muchos dominios de aplicaciones, es necesaria la explicacion de las conclusiones debido a los riesgos asociados con las acciones a ejecutar. Por ejemplo, en el campo del diagnostico medico, los doctores son responsables ultimos de los diagnosticos, independientemente de las herramientas tecnicas utilizadas para sacar conclusiones. En estas situaciones, sin un subsistema de explicacion, los doctores pueden no ser capaces de explicar a sus pacientes las razones de su diagnostico.
10. El Subsistema de Aprendizaje
Una de las principales caracterısticas de un sistema experto es su capacidad para aprender. Diferenciaremos entre aprendizaje estructural y aprendizaje parametrico. Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el descubrimiento de nuevos sıntomas relevantes para una enfermedad o la inclusion de una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural. Por aprendizaje parametrico nos referimos a estimar los parametros necesarios para construir la base de conocimiento. Por ello, la estimacion de frecuencias o probabilidades asociadas a sıntomas o enfermedades es un ejemplo de aprendizaje parametrico.
Otra caracterıstica de los sistemas expertos es su habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden ser obtenidos por expertos y no expertos y pueden utilizarse por el subsistema de adquisicion de conocimiento y por el subsistema de aprendizaje.

ENLACES

Sistemas Expertos y Modelos de Redes Probabilísticas

Teoría de Sistemas Expertos

1. La Componente Humana
Un sistema experto es generalmente el resultado de la colaboracion de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento, con los usuarios en mente. Los expertos humanos suministran el conocimiento basico en el tema de interes, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender. La colaboracion de los expertos humanos, los ingenieros del conocimiento y los usuarios es, quizas, el elemento mas importante en el desarrollo de un sistema experto. Esta etapa requiere una enorme dedicacion y un gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las diferentes experiencias que tienen.
2. La Base de Conocimiento
Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.
Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la informacion relacionada con una aplicacion particular. Por ejemplo, en diagnostico medico, los sıntomas, las enfermedades y las relaciones entre ellos, forman parte del conocimiento, mientras los sıntomas particulares de un paciente dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son efımeros, es decir, no forman parte de la componente permanente de un sistema y son destruıdos despues de usarlos. El conocimiento se almacena en la base de conocimiento y los datos se almacenan en la memoria de trabajo. Todos los procedimientos de los diferentes sistemas y subsistemas que son de carácter transitorio se almacenan tambien en la memoria de trabajo.
3. Subsistema de Adquisicion de Conocimiento
El subsistema de adquisicion de conocimiento controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina que nuevo conocimiento se necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos a la misma.
4. Control de la Coherencia
El subsistema de control de la coherencia ha aparecido en los sistemas expertos muy recientemente. Sin embargo, es una componente esencial de  un sistema experto. Este susbsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. En situaciones complejas incluso un experto humano puede formular afirmaciones inconsistentes. Por ello, sin un subsistema de control de la coherencia, unidades de conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio del sistema. Es tambien bastante comun, especialmente en sistemas con mecanismos de propagacion de incertidumbre, que se llegue a conclusiones absurdas o en conflicto como, por ejemplo, situaciones en las que el sistema genera probabilidades mayores que la unidad o negativas. Por ello, el subsistema de control de la coherencia comprueba e informa a los expertos de las inconsistencias. Por otra parte, cuando se solicita informacion de los expertos humanos, este subsistema informa sobre las restricciones que esta debe cumplir para ser coherente con la existente en la base de conocimiento.
De esta forma, ayuda a los expertos humanos a dar informacion fiable.
5. El Motor de Inferencia
El motor de inferencia es el corazon de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnostico medico, los sıntomas de un paciente (datos) son analizados a la luz de los sıntomas y las enfermedades y de sus relaciones (conocimiento).
Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilıstico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilısticas) puede ser considerablemente mas difıcil que el tratamiento de situaciones ciertas (deterministas).
En muchos casos, algunos hechos (datos) no se conocen con absoluta certeza. Por ejemplo, piensese en un paciente que no esta seguro de sus sıntomas. Puede darse el caso de tener que trabajar con conocimiento de tipo no determinista, es decir, de casos en los que se dispone solo de informacion aleatoria o difusa. El motor de inferencia es tambien responsable de la propagacion de este conocimiento incierto. De hecho, en los sistemas expertos basados en probabilidad, la propagacion de incertidumbre es la tarea principal del motor de inferencia, que permite sacar conclusiones bajo incertidumbre. Esta tarea es tan compleja que da lugar a que esta sea probablemente la componente mas debil de casi todos los sistemas expertos existentes. Por esta razon, la mayor parte de este libro se dedica al analisis y resolucion del problema de la propagacion de incertidumbre.
6. El Subsistema de Adquisicion de Conocimiento
Si el conocimiento inicial es muy limitado y no se pueden sacar conclusiones, el motor de inferencia utiliza el subsistema de adquisicion de conocimiento para obtener el conocimiento necesario y continuar con el proceso de inferencia hasta que se hayan sacado conclusiones. En algunos casos, el usuario puede suministrar la informacion requerida para este y otros objetivos. De ello resulta la necesidad de una interfase de usuario y de una comprobación de la consistencia de la informacion suministrada por el usuario antes de introducirla en la memoria de trabajo.
7. Interfase de Usuario
La interfase de usuario es el enlace entre el sistema experto y el usuario. Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener informacion de forma facil y agradable. Un ejemplo de la informacion que tiene que ser mostrada tras el trabajo del motor de inferencia, es el de las conclusiones, las razones que expliquen tales conclusiones y una explicacion de las acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia no puede concluir debido, por ejemplo, a la ausencia de informacion, la interfase de usuario es un vehıculo para obtener la información necesaria del usuario. Consecuentemente, una implementacion inadecuada de la interfase de usuario que no facilite este proceso minarıa notablemente la calidad de un sistema experto. Otra razon de la importancia de la interfase de usuario es que los usuarios evaluan comunmente los sistemas
expertos y otros sistemas por la calidad de dicha interfase mas que por la del sistema experto mismo, aunque no se deberıa juzgar la calidad de un libro por su portada. Los lectores que esten interesados en el dise˜no de una interfase de usuario pueden consultar los libros de Shneiderman (1987) y Brown y Cunningham (1989).
8. El Subsistema de Ejecucion de  Ordenes
El subsistema de ejecucion de ordenes es la componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como ejemplos, un sistema experto disenado para analizar el trafico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el trafico global, o un sistema para controlar una central nuclear puede abrir o cerrar ciertas valvulas, mover barras, etc., para evitar un accidente. La explicacion de las razones por las que se inician estas acciones pueden darse al usuario mediante el subsistema de explicacion.
9. El Subsistema de Explicacion
El usuario puede pedir una explicacion de las conclusiones sacadas o de las acciones iniciadas por el sistema experto. Por ello, es necesario un subsistema que explique el proceso seguido por el motor de inferencia o por el subsistema de ejecucion. Por ejemplo, si un cajero automatico decide rechazar la palabra clave (una accion), la maquina puede mostrar un mensaje (una explicacion) como la siguiente:
¡Lo siento!, su palabra clave es todavıa incorrecta tras tres intentos.
Retenemos su tarjeta de credito, para garantizar su seguridad.
Por favor, pongase en contacto con su banco en horas de oficina.
En muchos dominios de aplicaciones, es necesaria la explicacion de las conclusiones debido a los riesgos asociados con las acciones a ejecutar. Por ejemplo, en el campo del diagnostico medico, los doctores son responsables ultimos de los diagnosticos, independientemente de las herramientas tecnicas utilizadas para sacar conclusiones. En estas situaciones, sin un subsistema de explicacion, los doctores pueden no ser capaces de explicar a sus pacientes las razones de su diagnostico.
10. El Subsistema de Aprendizaje
Una de las principales caracterısticas de un sistema experto es su capacidad para aprender. Diferenciaremos entre aprendizaje estructural y aprendizaje parametrico. Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el descubrimiento de nuevos sıntomas relevantes para una enfermedad o la inclusion de una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural. Por aprendizaje parametrico nos referimos a estimar los parametros necesarios para construir la base de conocimiento. Por ello, la estimacion de frecuencias o probabilidades asociadas a sıntomas o enfermedades es un ejemplo de aprendizaje
parametrico.
Otra caracterıstica de los sistemas expertos es su habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden ser obtenidos por expertos y no expertos y pueden utilizarse por el subsistema de adquisicion de conocimiento y por el subsistema de aprendizaje.
De las componentes antes mencionadas puede verse que los sistemas expertos pueden realizar varias tareas. Estas tareas incluyen, pero no se limitan a, las siguientes:
• Adquisicion de conocimiento y la verificacion de su coherencia; por lo que el sistema experto puede ayudar a los expertos humanos a dar conocimiento coherente.
• Almacenar (memorizar) conocimiento.
• Preguntar cuando se requiere nuevo conocimiento.
• Aprender de la base de conocimiento y de los datos disponibles.
• Realizar inferencia y razonamiento en situaciones deterministas y de incertidumbre.
• Explicar conclusiones o acciones tomadas.
• Comunicar con los expertos y no expertos humanos y con otros sistemas expertos.

SISTEMAS EXPERTOS PIONEROS Y CICLO DE VIDA DE UN SISTEMA EXPERTO

19 Mar

SISTEMAS EXPERTOS PIONEROS

Los Sistemas Expertos se desarrolaron entere 1960-1970, al reconocerse la importancia primordial que tienen los conocimientos particulares de un dominio para que los métodos formales de búsqueda e inferencia sean eficaces en la solucion de problemas. El desarrollo de estos se caracteriza por las siguientes etapas: Invención (1965-1979),  Prototipos (1970-1977), Experimentación (19777-1981) e Industrialización (surgen compañias dedicadas a producir aplicaciones y herramientas).

Entre los principales sistemas expertos pioneros se destacan los siguientes:

DENDRAL.- Fue desarrollado por Buchanan, Feigenbaum, Lederberg, LInsdsay  en la Universidad de Standford en 1965. Uno de los primeros sistemas expertos ( basado en conocimientos),  programa interactivo que utiliza la fórmula molecular, los datos del espectrograma y la heurística de conocimiento sobre química orgánica y genetista. DENDRAL utiliza los datos que le dan para realizar una búsqueda de la estructura molecular , explora las posibles configuraciones moleculares con la estructura adecuada.

INTERNIST.-  Sistema experto en medicina. contempla el diagnóstico de las enfermedades de medicina interna u hospitalaria. Fue desarrollado en la universidad norteamericana de Pittsburg en 1975, por Pople y otros colaboradores. Puede diagnosticar hasta 500 enfermedades que forman parte del área de la medicina interna.

CASNET.- Desarrollado por Weiss y otros colaboradores en 1976. Su objetivo era ayudar a los médicos en el diagnóstico y el tratamiento del glaucoma (enfermedad ocular). Esta estructurado por: Observaciones (síntomas, signos y  resultados de las pruebas de laboratorio), Estados patofisiológicos (alteraciones que se producen en el funcionamiento de un órgano- ojo) y Estados de enfermedad (enfermedades se encuentran clasificadas en un árbol taxonómico; inferiores corresponden a especificaciones de los nodos superiores)

MYCIN.– Sistema experto desarrollado por ShortLiffe y Buchanan, en la Universidad de Stanford.  en 1976. Fue escrito en Lisp, e inicialmente estaba inspirado en Dendral,  Su principal función consistía en el diagnóstico de enfermedades infecciosas de la sangre; además, era capaz de “razonar” el proceso seguido para llegar a estos diagnósticos, y de recetar medicaciones personalizadas a cada paciente (según su estatura, peso, etc.)

PUFF.- Diagnostica y trata enfermedades del pulmon.PIP (Present Illnes Program), desarrollado en el MIT en 1976. Diagnostica enfermedades del riñón.

PROSPECTOR.- Sistema Enfocado a la prospección minera desarrollado por Konolige – SRI International en 1970,  establece hipótesis sobre la existencia de yacimientos minerales.

MACSYMA.- desde 1965 se trabajo en antecesores de este sistema experto como SAINT, SIN y MATHLAB. Desarrollado por Martin y Fateman- Instituto Tecnológico de Masachuseten 1976. Llegó a emular  a los expertos humanos matemáticos, incluyendo diferenciacion e integración

TWIRL: Tactical Warfare. Simulaciones de guerras completas y guía de mejores acciones posibles a realizar, en casi todas las situaciones.

R1 o XCON.- Proyecto de la quinta generación, shells y máquinas de LISP. Programa utilizado para el descubrimiento de yacimientos petroliferos bajo aguas marínas.Elaborado por John McDermott en 1979 de la Universidad Carnegie Mellon.

RHEUM.- realiza el diagnóstico en reumatología. Desarrollado por Kingsland en 1983.

DIFERENCIAS DEL CICLO DE VIDA DE UN SISTEMA EXPERTO CON UN SISTEMA TRADICIONAL

CICLO DE VIDA DE UN SISTEMA EXPERTOWeiss y Kulikowski (1984) sugieren el siguiente: CICLO DE VIDA DE UN SISTEMA TRADICIONALSegún Senn:
1.Planteamiento del problema. La primera etapa en cualquier proyecto es normalmente la definicion del problema a resolver. Puesto qu el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizas la mas importante en el desarrollo de un sistema experto. Si el sistema esta mal definido, se espera que el sistema suministre respuestas erroneas.
2. Encontrar expertos humanos que puedan resolver el problema. En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.
3. Diseno de un sistema experto. Esta etapa incluye el diseno de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicacion, la interfase de usuario, etc.
4. Eleccion de la herramienta de desarrollo, concha, o lenguaje de programacion.
Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programacion. Si existiera una concha satisfaciendo todos los requerimientos del diseno, esta deberıa ser la eleccion, no solo por razones de tipo financiero sino tambien por razones de fiabilidad. Las conchas y herramientas comerciales estan sujetas a controles de calidad, a los que otros programas no lo estan.
5. Desarrollo y prueba de un prototipo. Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.
6. Refinamiento y generalizacion. En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseno inicial.
7. Mantenimiento y puesta al dıa. En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.
Todas estas etapas influyen en la calidad del sistema experto resultante, que siempre debe ser evaluado en funcion de las aportaciones de los usuarios.
1.Estudio preliminar.- Se realiza el  levantamiento de información, la definición del problema, y un estudio de factibilidad.Análisis: Se elabora el modelo funcional del sistema actual, se determina los requerimientos, se realiza la descripción y evaluación de alternativas para  finalmente aprobarlas.2.Diseño: se elabora un  modelo funcional del sistema propuesto, a partir de un  diseño lógico, se elabora y presenta el prototipo del sistema con el fin de obtener la aprobación del sistema propuesto3.Implementación: comprende el desarrollo del software, pruebas del sistema, y puesta en marcha (acondicionamiento de locales – organización del cliente – entregar aplicación probada – elaborar datos en vivo – adiestramiento – carga de datos en vivo – entrega de documentación – asignar responsabilidades – determinar fin de la instalación) 

4.Mantenimiento: es la última fase del ciclo de vida de desarrollo de sistemas, en donde los sistemas son sistemáticamente reparados y mejorados.  Por definición, el proceso de mantenimiento de un si es un proceso de devolución al principio del ciclo de vida y de repetición de los pasos de desarrollo para la implementación de cambios (las 4 actividades más importantes que ocurren dentro del mantenimiento son: obtención de los requerimientos de mantenimiento, transformación de los requerimientos en cambios, diseño de los cambios e implementación de los cambios).

La principal diferencia es que en los Sistemas Expertos como su nombre lo indica se requiere de la colaboración de un experto en el area con la que se eta trabajando, por tanto requiere de  fases que pueden tomar mucho más tiempo que en un sistema tradicional para poder transmitir el conocimiento cognitivo al sistema experto. Entre las diferencias que se pudo observar se tiene las siguiente:

SISTEMA TRADICIONAL SISTEMA EXPERTO
Se basa en  la necesidad del cliente. Depende de la aplicación que vaya a tener.
Hace uso de algoritmos. Hace uso  de Conocimientos y Mecanismos de Inferencia. Por tanto requiere énfesis en la fase de diseño.
No toma decisiones, ni explica resultados. Posee razonamiento automático ( planificar, tomar decisiones, plantear y evaluar estrategias, aprender a partir de la experiencia, autoreprogramables). Por tanto la Implementación va ha ser mas compleja.

ANALISIS

Diferencias entre un experto y un no experto
EL tiempo de resolucion del experto es pequeño, la eficacia resolutiva alta, posee estrategias y tácticas, la busqueda de soluciones aplica la heuristica y realiza calculos aproximados.
Diferencias entre un SE y un programa tradicional
Un sistema experto utiliza datos simbólicos, aplica la resolución heurística, define el problema de forma declarativa, posee un control no secuencial, conocimientos imprecisos, requiere modificaciones frecuentes, explica, trata de buscar una solución satisfactoria, estos sistemas justifican su respuesta, la resolución esta aplicada a un area limitada, la comunicación es independiente.
Diferencias entre un sistema experto y un experto humano
Un experto humano posee un conocimiento adquirido e innato, la adquision del  mismo  es Teórico-Práctico, tiene multiples campos, a veces requiere una explicación, no es reproducible y posee una vida finita.

Sistema experto VS. sistema clásico
El sistema experto posee una base de conocimiento separada del mecanismo de procesamiento, puede contener errores, una parte del sistema experto consiste en el módulo de explicación, cuando se requiere hacer cambios en las reglas son fáciles, el sistema puede funcionar con pocas reglas, emplea la ejecución usa heurísticas y lógica, puede operar con información incompleta, y, representa y usa conocimiento

ENLACES

Ciclos de vida de los Sistemas Expertos

Definición, Motivación y Origen de los sistemas expertos

Software Inteligente

Introducción a la inteligencia artificial (parte 29)

Sistema Experto Sobre Medicina

Inteligencia Artificial Y Sistemas Expertos

Desarrollo de un Sistema Experto

Weiss y Kulikowski (1984) sugieren las etapas siguientes para el diseno e implementacion de un sistema experto
1.Planteamiento del problema. La primera etapa en cualquier proyecto es normalmente la definicion del problema a resolver. Puesto que el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizas la mas importante en el desarrollo de un sistema experto. Si el sistema esta mal definido, se espera que el sistema suministre respuestas erroneas.
2. Encontrar expertos humanos que puedan resolver el problema.
En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.
3. Diseno de un sistema experto. Esta etapa incluye el diseno de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicacion, la interfase de usuario, etc.
4. Eleccion de la herramienta de desarrollo, concha, o lenguaje de programacion.
Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programacion. Si existiera una concha satisfaciendo todos los requerimientos del diseno, esta deberıa ser la eleccion, no solo por razones de tipo financiero sino tambien por razones de fiabilidad. Las conchas y herramientas comerciales estan sujetas a controles de calidad, a los que otros programas no lo estan.
5. Desarrollo y prueba de un prototipo.
Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.
6. Refinamiento y generalizacion.
En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseno inicial.
7. Mantenimiento y puesta al dıa.
En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.
Todas estas etapas influyen en la calidad del sistema experto resultante, que siempre debe ser evaluado en funcion de las aportaciones de los usuarios.

Sistemas Expertos

15 Mar

Deep Blue (Azul Profundo)

Fue un ordenador de IBM que jugaba ajedrez. Se remonta a los años 1985, cuando el estudiante Feng-hsiung Hsu comenzó a desarrollar un jugador de ajedrez computarizado llamado “Chiptest”, pero el proyecto propiamente tal comenzó en 1989 IBM.
El equipo que se formó en IBM pasó a denominarse The Deep Blue Team y enfrento este problema con un clásico dilema de investigación de cómo desarrollar un jugador de ajedrez computarizado que testeara a los mejores campeones en esta disciplina del mundo. Los cientificos del proyecto fueron: Hsu Feng-Hsiung, Murray Campbell, Joseph Hoane, Jerry Brody y Tan Chung-Jen. Ellos mencionaron que aplicaron el toque humano, es decir que tuvieron la asesoria todo el tiempo del maestro de maestros en ajedrez, Joel Benjamin. Su principal característica era la “previsión” y “valoración” de las jugadas a un gran nivel de profundidad.

Deep Blue fue el primer ordenador que venció a un Campeón del Mundo vigente, Garry Kasparov. Esto ocurrió el 10 de febrero de 1996, en una memorable partida. Sin embargo, Kasparov ganó 3 y empató 2 de las siguientes partidas, derrotando a Deep Blue por 4-2. El encuentro concluyó el 17 de febrero de 1996.
El sistema saca su fuerza de juego principalmente en la fuerza bruta que calcula el sistema central. Era una computadora de procesamiento paralelo masivo basada en el RS/6000 con 30 nodos, cada uno con 30 microprocesadores P2SC de 120 MHz, ampliados con 480 procesadores VLSI de uso especial, especializados en ajedrez. El programa de ajedrez fue escrito en lenguaje C y corrió bajo el sistema operativo AIX. Era capaz de calcular entre doscientas y trescientas posiciones por segundo, dos veces más rápido que la versión de 1996. En junio de 1997, Deep Blue era el 259º superordenador más poderoso, capaz de calcular 11,38 gigaflops, aunque toda esta potencia no estaba pensada en realidad para jugar al ajedrez. Deep Blue, está conformada por dos modulos de 1.90 metros de altura, durante los juegos, los dos modulos se comunican entre si a traves de interruptores y envian la informacion de sus calculos, por medio de lineas telefonicas, a un unidad central que tiene un monitor de video.

En mayo de 1997, ganó el encuentro a 6 partidas por 3’5-2’5, lo que lo convirtió en el primer ordenador en derrotar a un campeón del mundo vigente, en un encuentro con ritmo de juego de torneo estándar. El encuentro concluyó el 11 de mayo.

El ruso Garry Kasparov, para muchos el mejor ajedrecista de todos los tiempos, justificó su derrota ante Deep Blue por el miedo que le causó esa maquina. “Es verdad, me asusta que una computadora juegue con un nivel superior a todos los ordenadores y al de casi todos los hombres”.

Enlaces relacionados:

Historia de Deep Blue

Diario del Navegantea

Deep Blue vs. Kasparov


Weka ( Waikato Environment for Knowledge Analysis)

WEKA es una herramienta de aprendizaje automático y data mining, escrita en lenguaje Java, desarrollada en la Universidad de Waikato  de Nueva Zelanda, distribuida de forma gratuita y publicada bajo licencia GPL lo cual ha impulsado que sea una de las suites más utilizadas en el área en los últimos años.
Posee un conjunto de librerias JAVA para la extracción de conocimientos desde bases de datos, y tiene las siguientes características:
·  Diversas fuentes de datos (ASCII, JDBC).
·  Interfaz visual basado en procesos/flujos de datos (rutas).
·  Distintas herramientas de minería de datos: reglas de asociación (a priori,  Tertius, …), agrupación/segmentación/conglomerado (Cobweb,  EM y  k-medias), clasificación (redes neuronales, reglas y árboles de decisión, aprendizaje Bayesiona) y regresión (Regresión lineal, SVM..).
·  Manipulación de datos (pick & mix, muestreo, combinación y separación).
·  Combinación de modelos (Bagging, Boosting …)
·  Visualización anterior (datos en múltiples gráficas) y posterior (árboles, curvas ROC, curvas de  coste..).
·  Entorno de experimentos, con la posibilidad de realizar pruebas estadísticas (t-test)

APLICACIONES DE LA INTELIGENCIA ARTIFICIAL EN ROBÓTICA

Introducción al Weka

Descargar Weka: http://www.cs.waikato.ac.nz/ml/weka

Sistemas Expertos

13 Mar

¿Qué es un Sistema Experto?

Los Sistemas Expertos, se consideran una rama de la Inteligencia Artificial.

La definición que da Stevens (1984)  es la siguiente:
Los sistemas expertos son maquinas que piensan y razonan como un experto lo haría en una cierta especialidad o campo.  Un Sistema Experto de verdad, no solo realiza las funciones tradicionales de manejar grandes cantidades de datos, sino que también manipula esos datos de forma tal que el resultado sea inteligible y tenga significado para responder a preguntas incluso no completamente especificadas.

Las definiciones dE Castillo y Álvarez (1991) y Durkin (1994)  pueden resumirse como sigue:
Un sistema experto puede definirse como un sistema informático (hardware y software) que simula a los expertos humanos en un área de especialización dada.

Esta ultima definición es aunque resumida la mas explicativa ya que nos indica que como tal un sistema experto debería ser capaz de procesar y memorizar información, aprender y razonar en situaciones deterministas e inciertas, comunicar con los hombres y/u otros sistemas expertos, tomar decisiones apropiadas, y explicar por qué se han tomado tales decisiones.

Por ejemplo, un sistema experto en diagnostico medico requeriría como datos los síntomas del paciente, los resultados de análisis clínicos y otros hechos relevantes, y, utilizando estos, buscaría en una base de datos la información necesaria para poder identificar la correspondiente enfermedad.

Cabe señalar que 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 o basados en reglas, pueden ser formulados usando un conjunto de reglas que relacionen varios objetos bien definidos. es decir sacan sus conclusiones basándose en un conjunto de reglas utilizando un mecanismo de razonamiento lógico.Los sistemas expertos que utilizan la probabilidad como medida de incertidumbre se conocen como sistemas expertos probabilístico y la estrategia de razonamiento que usan se conocen con el nombre de sistemas expertos probabilisticos.

Los componentes esenciales de un Sistema Experto son los que se presenta en la siguiente figura, en la cual además se incluye las interacciones entre los mismos:

Para el desarrollo de un Sistema Experto se requiere seguir la siguientes fases:

Fuente: