martes, 26 de noviembre de 2013

SOFTWARE LIBRE PARA INTELIGENCIA ARTIFICIAL

SOFTWARE LIBRE PARA IA
JAVA VIS
  • Licencia GPL
  • Multiplataformas.
  • Vídeo.
  • Simulación en 3D.
  • Tratamientos de imágenes.










VISUAL PROLOG

  • Licencia GPL (personal).
  • Plataforma de windows.
  • Entretenimiento en redes neuronales.
  • Algoritmos de inteligencia artificial.
 












FRAMEWORK JOONE
Joone  es un framework, desarrollado en Java, que permite ejecutar aplicaciones de Inteligencia Artificial basadas en redes neuronales artificiales. Tiene muchas características como el trabajo con aprendizaje supervisado, no supervisado y otras más.












QUAKE II NEURALBOT

El Neuralbot es un bot para el juego Quake II que utiliza una red neuronal para decidir su comportamiento y un algoritmo genético para el aprendizaje. Quake II es un motor y juego de acción en primera persona desarrollado por id Software y distribuido por Activision en 1997. Utiliza un sistema de red cliente/servidor similar al de Quake y posee todas las demás características del motor de Quake y varias adicionales,  fue lanzado con soporte nativo de OpenGL .











SNNS

Es un simulador de software de redes neuronales en estaciones de trabajo Unix desarrollado en el Instituto de Sistemas de Alto Rendimiento Paralela y Distribuida (IPVR) en la Universidad de Stuttgart.  El objetivo del proyecto SNNS es crear un entorno de simulación eficiente y flexible para la investigación y aplicación de las redes neuronales.
















RED NEURONAL
 
El cerebro humano es el sistema de cálculo más complejo que conoce el hombre. La capacidad del cerebro humano de pensar, recordar y resolver problemas ha inspirado a muchos científicos intentar o procurar modelar en el ordenador el funcionamiento del cerebro humano.
Los profesionales de diferentes campos como la ingeniería, filosofía, fisiología y psicología han unido sus esfuerzos debido al potencial que ofrece esta tecnología y están encontrando diferentes aplicaciones en sus respectivas profesiones.
Un grupo de investigadores ha perseguido la creación de un modelo en el ordenador que iguale o adopte las distintas funciones básicas del cerebro. El resultado ha sido una nueva tecnología llamada Computación Neuronal o también Redes Neuronales Artificiales.

Una red neuronal artificial es un modelo matemático compuesto por elementos interconectados entre sí, que se inspira en el sistema nervioso biológico. Los modelos de redes neuronales artificiales intentan reproducir el comportamiento del cerebro, cada neurona está caracterizada por entradas de activación yj que son modificadas por un peso wj (la sinapsis en el caso biológico), las señales moduladas se combinan entre ellas y entran a una función de activación que determina la salida S con base en una comparación de la suma con el valor de activación θ.

Comparación Neurona Biológica Vs. Neurona Artificial

NEURONA BIOLÓGICA
NEURONA ARTIFICIAL
 
 
 
DIFERENCIAS
·         No necesitan programación.
·         Pueden manejar información ambigua y consistente.
·         La muerte de alguna de sus células no afecta de manera inmediata su desempeño.
·         Necesitan de programación para establecer sus variables y funcionamiento.
·         Si alguno de sus componentes falla, esto afecta el desempeño general de la neurona.
·         Es un circuito eléctrico que responde a señales eléctricas.
·         Realiza sumas ponderadas para emitir una señal ya sea un 1 o un 0.
 
 
SEMEJANZA
·         Establece conexión con otras neuronas vecinas para el envío y recibo de información.
 

·         Recibe información de varias entradas para generar una sola salida.
   

·         La neurona artificial captura señales mediante sensores simulando al axón en la neurona biológica.
 

·         Los procesos de neurocomputación que se realizan en la neurona artificial son similares a los procesos neurológicos del cerebro.  

Características de las Redes Neuronales Artificiales

Las Redes Neuronales Artificiales, ANN (Artificial Neural Networks) al margen de "parecerse" al cerebro presentan una serie de características propias del mismo. Por ejemplo las ANN aprenden de la experiencia, generalizan de ejemplos previos a ejemplos nuevos y abstraen las características principales de una serie de datos.

Aprender: adquirir el conocimiento de una cosa por medio del estudio, ejercicio o experiencia. Las ANN pueden cambiar su comportamiento en función del entorno. Se les muestra un conjunto de entradas y ellas mismas se ajustan para producir unas salidas consistentes.

Generalizar: extender o ampliar una cosa. Las ANN generalizan automáticamente debido a su propia estructura y naturaleza. Estas redes pueden ofrecer, dentro de un margen, respuestas correctas a entradas que presentan pequeñas variaciones debido a los efectos de ruido o distorsión.

 
 Abstraer: aislar mentalmente o considerar por separado las cualidades de un objeto. Algunas ANN son capaces de abstraer la esencia de un conjunto de entradas que aparentemente no presentan aspectos comunes o relativos.



Estructura básica de una red neuronal

 

 












Ventajas que ofrecen las redes neuronales

 
Debido a su constitución y a sus fundamentos, las redes neuronales artificiales presentan un gran número de características semejantes a las del cerebro. Por ejemplo, son capaces de aprender de la experiencia, de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales a partir de entradas que representan información irrelevante, etc. Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se esté aplicando en múltiples áreas. Entre las ventajas se incluyen:
  • Aprendizaje Adaptativo: Capacidad de aprender a realizar tareas basadas en un entrenamiento o en una experiencia inicial.
  • Auto-organización: Una red neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje.
  • Tolerancia a fallos: La destrucción parcial de una red conduce a una degradación de su estructura; sin embargo, algunas capacidades de la red se pueden retener, incluso sufriendo un gran daño.
  • Operación en tiempo real: Los cómputos neuronales pueden ser realizados en paralelo; para esto se diseñan y fabrican máquinas con hardware especial para obtener esta capacidad.
 
Aplicación de las Redes Neuronales

 
Las aplicaciones de las redes neuronales las podríamos dividir según el campo del conocimiento donde se aplican:

Medicina: Las aplicaciones en medicina encuentran su reflejo en problemas de diagnóstico médico. Es uno de los campos con más futuro y, hoy por hoy, uno de los menos desarrollados. Aplicaciones en este campo serían:
  • Diagnóstico de cardiopatías
  • Detección de tumores cancerígenos
  • Caracterización de la dinámica en la variabilidad cardíaca
  • Compresión de señales electrocardiográficas
  • Predicción de enfermedades degenerativas cardíacas
  • Predicción del riesgo de intoxicación por digoxina
  • Predicción de la respuesta emética
  • Predicción del nivel de Tacrolimus en sangre
  • Predicción del nivel de ciclosporina
Procesado de la señal: En este campo las redes neuronales han encontrado un gran hueco de tal forma que ya existe una sociedad internacional sobre la aplicación de redes neuronales en problemas de procesado de la señal. Algunos problemas de clasificación donde se aplican las redes neuronales serían:
  • Ecualización de canales de comunicación
  • Reconocimiento de patrones en imágenes
  • Reconocimiento de voz
  • Sonar y Radar
  • Eliminación activa de ruido
  • Control

Economía: En esta disciplina, donde hay que tomar decisiones entre un número de opciones, las redes neuronales son directamente aplicables frente a otros métodos por sus características intrínsecamente no lineales. Así algunas de estas aplicaciones serían:
  • Concesión de créditos
  • Detección de posibles fraudes en tarjetas de crédito
  • Determinación de la posibilidad de quiebra de un banco
  • Predicción del gasto eléctrico de empresas y centrales
  • Cambio de moneda
  • Tendencias a corto y medio plazo en bolsas de valores
  • Predicción de stocks 

Medio Ambiente: Que vivimos en un ambiente dinámico y no lineal nadie lo puede negar; cualquier método aplicado a este campo necesariamente debe tener en cuenta estos hechos irrefutables. Tenemos, pues, otro campo importante de aplicación de las redes neuronales. Algunas aplicaciones de éstas serían: 
  • Predicción de irradiación solar
  • Predicción de niveles tóxicos de ozono en zonas urbanas y rurales
  • Predicción de variaciones globales de temperatura
     
AGENTES INTELIGENTES
 
 
Agente, del latín agere, es "el que hace". "es un tipo de programa informático que, por encargo de un usuario u otro programa, realiza de forma autónoma tareas que requieren cierto grado de inteligencia y aprendizaje".
 
De igual forma un agente inteligente es un sistema informático capaz de tener un comportamiento autónomo, flexible en algunos ambientes.
 
Propiedades  de los agentes inteligentes
 
  • Autonomía: Actuar sin ningún tipo de intervención humana directa, y tener control sobre sus propios actos.
  • Inteligencia: Creada o adaptable al entorno (aprendizaje).
  • Reactividad – Proactividad
  • Reactivo: Actúa en función de los sucesos producidos en el entorno.
  • Proactivo: Toma la decisión de actuar antes de que se den los sucesos.
  • Sociabilidad: Comunicarse por medio de un lenguaje común con otros agentes, e incluso con los humanos.
  • Cooperación: Con otros agentes para realizar tareas de mayor complejidad.
  • Racionalidad: el agente siempre realiza «lo correcto» a partir de los datos que percibe del entorno.
  • Adaptabilidad: está relacionado con el aprendizaje que un agente es capaz de realizar y si puede cambiar su comportamiento basándose en ese aprendizaje.
  • Movilidad: Capacidad de un agente de trasladarse a través de una red telemática.
  • Veracidad: Un agente no comunica información falsa a propósito.

Funciones básicas de la Tecnología de Agentes


Un agente puede llevar a cabo las siguientes funciones:

  • Ejecución de Tareas: la capacidad de realizar tareas, son las destrezas que el agente posee para lograr sus objetivos.
  • Conocimiento de su entorno: el conocimiento del entorno debe de ser introducido o construido por el desarrollador. Algunos agentes además adquieren su conocimiento por aprendizaje.
  • Capacidad de Comunicación: se distinguen dos tipos de comunicación, la interacción con el usuario, y la que se refiere a comunicación inter-agente.

Tipos de Agentes Inteligentes
 
Agentes colaborativos
 
Este tipo de agentes se enfatiza en la autonomía y las habilidades sociales con otros agentes para ejecutar las tareas de sus usuarios. La coordinación de los agentes se logra mediante la negociación para alcanzar acuerdos que sean aceptables para los agentes negociantes.

Los agentes colaborativos son capaces de actuar racionalmente y autónomamente en ambientes multiagente y con restricciones de recursos. Otras características de estos agentes es que poseen habilidades sociales, son proactivos, benévolos, estáticos y veraces.

Los agentes colaborativos se pueden utilizar es la solución de algunos de los siguientes problemas:
  • Para resolver problemas que son muy grandes para un agente centralizado. 
  • Para permitir la interconexión e interoperabilidad de sistemas de IA existentes como sistemas expertos, sistemas de soporte de decisión etc. 
  • Solucionar problemas que son inherentemente distribuidos. 
  • Proporcionar soluciones que simulen recursos de información distribuidos. 
  • Incrementar la modularidad, velocidad, confiabilidad, flexibilidad y reutilización en sistemas de información.
Agentes de Interfaz

Los agentes de interfaz se enfatizan en la autonomía y la adaptabilidad para realizar tareas a sus usuarios. Este tipo de agentes básicamente presta soporte y asistencia a un usuario que esta aprendiendo una nueva aplicación o nuevos conceptos.
El agente puede aprender mediante alguna de las siguientes cuatro técnicas, observando y monitoreando la interfaz:

1. Por observación e imitación del usuario.
2. A través de una retroalimentación positiva o negativa del usuario.
3. Recibiendo instrucciones explicitas del usuario.
4. Asesorándose de otros agentes.

De esta manera el agente puede actuar como un asistente personal y autónomo del usuario, cooperando con él para terminar una cierta tarea.
 
Agentes móviles
 
Estos agentes se enfatizan en las habilidades sociales y la autonomía, a diferencia de los agentes cooperativos, estos son móviles.

Los agentes móviles son procesos de software que son capaces de transitar por una red, generalmente una WAN, interactuando con computadores alejados, reuniendo información para el usuario y volviendo a su origen cuando las tareas fijadas por el usuario se hayan completado. Las tareas que se pueden realizar son por ejemplo reservaciones de vuelos, manejo de una red de telecomunicaciones entre otras.

Los agentes móviles traen con si grandes beneficios aunque no son funcionales, esto quiere decir que una tarea que realiza un agente móvil puede ser realizada por un agente colaborativo, la diferencia radica en que para movilizar el agente se requiere de un costo muy alto de recursos.

Algunas de las ventajas que se pueden obtener al usar agentes móviles son:
  • Reducen el costo de comunicación, por ejemplo cuando en una ubicación hay un gran volumen de información que necesita ser examinada y transmitida, esto ocuparía una gran cantidad de recursos en la red y consumiría mucho tiempo. En este caso el agente móvil puede determinar la información relevante al usuario y transmitir un resumen comprimido de esta información. 
  • Facilitar la coordinación, es más sencillo coordinar un cierto número de requerimientos remotos e independientes al comparar solo los resultados localmente. 
  • Reduce los recursos locales, los agentes móviles pueden ejecutar sus tareas en computadores diferentes del local, de tal manera que no consuman recursos de procesamiento, memoria y almacenamiento en estos. 
  • Computación asíncrona, mientras que un agente móvil realiza su tarea el usuario puede ir realizando otra, de tal manera que después de un tiempo el resultado del agente móvil sea enviado al usuario.
 Agentes de información

Están diseñados específicamente para procesar consultas, y poseen al menos uno de los siguientes elementos: capacidad de proceso, conocimiento del entorno donde se mueven e información de un dominio.
Un agente tiene capacidad de proceso puesto que puede descomponer una consulta en subconsultas y asociar a los distintos términos resultantes otros términos relacionados o afines.

Su conocimiento del entorno le viene dado por su propio conocimiento y por el de otros agentes que se comunican con él (el conocimiento puede ser adquirido: del mismo usuario o de otros agentes con los que se encuentra mientras realiza una tarea determinada). En todo momento debería saber a qué información acceder o a qué otro agente dirigirse para obtenerla.
Estructura de un agente
Agente = Arquitectura +  Programa 
Programa de agente
Función que implemente la correspondencia entre percepciones y acciones
Arquitectura (computadora, hardware específico)
  • Proporciona al programa las percepciones
  • Ejecuta el programa  
  • Alimenta al actuador con las acciones determinadas por el programa

Aplicación de los Agentes Inteligentes
Los agentes inteligentes son considerados como:
  • "El próximo avance más significativo en el desarrollo de software”
  • "La nueva revolución en software".
Numerosas aplicaciones basadas en este nuevo paradigma vienen ya siendo empleadas en infinidad de áreas:
Ejemplos de aplicaciones:
  • Aplicaciones industriales
  • Aplicaciones médicas
  • Áreas de entretenimiento (juegos, teatro interactivo)
  • Aplicaciones comerciales
  • Gestión de información
  • Comercio electrónico

 SISTEMAS EXPERTOS

Un Sistema Experto (SE), es básicamente un programa de computadora basado en conocimientos y raciocinio que lleva a cabo tareas que generalmente sólo realiza un experto humano.
 
Componentes  de un Sistema Experto
 

Arquitectura de los Sistemas Expertos
La arquitectura de un sistema experto está basada en una entrada de datos realizada por el usuario a fin de efectuar la oportuna consulta. Las entradas no solamente están compuestas de estas consultas. El aprendizaje del sistema y las condiciones específicas del problema a tratar también han de encontrarse en la entrada

Tipos de Sistemas Expertos
 
*Interpretación: infieren la descripción de situaciones por medio de sensores de datos. estos S.E. usan datos reales, con errores, con ruidos, incompletos etc. Ejemplos: medición de temperatura, reconocimiento de voz, análisis de señales etc.

*Predicción: Infieren probables consecuencias de situaciones dadas. Algunas bases usan modelos de simulación para generar situaciones que puedan ocurrir. Ejemplos: predecir daños a cosechas por algún tipo de insecto.

*Diagnostico: Infieren las fallas de un sistema en base a los síntomas. Utilizan las características de comportamiento, descripción de situaciones o conocimiento sobre el diseño de un componente para inferir las causas de la falla. Ejemplos: diagnostico de enfermedades en base a síntomas, encontrar componentes defectuosos o fallas en circuitos.

*Diseño: Configuración de objetos. Utilizan un conjunto de limitaciones y restricciones para configurar objetos. Utilizan un proceso de análisis para construir un diseño parcial y una simulación para verificar o probar las ideas. Ejemplos: configuración de equipos de oficina, de equipos de computo.

*Planeación: Diseñan un curso completo de acción, se descompone la tarea en un subconjunto de tareas. Ejemplo: transferir material de un lugar a otro, comunicaciones, ruteo, planificación financiera. remediar estas fallas y monitorear la ejecución de este.

*Monitoreo: Comparan observaciones del comportamiento del sistema con el comportamiento standard, se compara lo actual con lo esperado. Ejemplo: asistir a un paciente de cuidados intensivos, tráfico aéreo, uso fraudulento de tarjetas de créditos

*Depuración:(debugging) sugieren remedios o correcciones de una falla. Ejemplo: sugerir el tipo de mantenimiento a cables dañados, la prescripción médica a un paciente.

*Instrucción: diagnostican, revisan y reparan el comportamiento de un estudiante. Ejemplo: educar a un estudiante de medicina, usa un modelo del estudiante y planea la corrección de deficiencias.

*Control: Gobierna el comportamiento del sistema. Requieren interpretar una situación actual, predecir el futuro, diagnosticar las causas de los problemas que se pueden anticipar, formular un plan para remediar estas fallas y monitorear la ejecución de este.

Ventajas  y Desventajas de los Sistemas Expertos
 
Ventajas
 
*Los conocimientos de un sistema experto pueden ser copiados y almacenados fácilmente, siendo muy difícil la pérdida de éstos.

*Otra ventaja de los sistemas expertos sobre los humanos es que el experto computarizado siempre está a pleno rendimiento. Cuando un humano se cansa, la exactitud de sus consejos puede decaer. Sin embargo, el experto computarizado siempre proporcionará las mejores opiniones posibles dentro de las limitaciones de sus conocimientos.

*Una última ventaja de un sistema experto está en que después de que un experto computarizado exista, usted puede crear un nuevo experto simplemente copiando el programa de una máquina a otra. Un humano necesita mucho tiempo para convertirse en un especialista en ciertos campos, lo que hace difícil que puedan aparecer nuevos especialistas humanos.

 
Desventajas
 
Creatividad: los humanos pueden responder creativamente a situaciones inusuales, los sistemas expertos no pueden.

Experiencia Sensorial: los humanos tienen un amplio rango de disponibilidad de experiencia sensorial. Y los sistemas expertos actualmente dependen de una entrada simbólica.

Degradación: los sistemas expertos no son bueno para reconocer cuando no existen respuestas o cuando los problemas están fuera de su área.

Áreas de Aplicación de los Sistemas Expertos

Los SE se aplican a una gran diversidad de campos y/o áreas. A continuación se listan algunas de las principales:
* Militar
* Química
* Geología
* Electrónica
* Medicina
* Informática
* Derecho
* Arqueología
* Transporte
* Industrial
* Telecomunicaciones
* Aeronáutica
* Agricultura
* Educación
* Finanzas y gestión
 

No hay comentarios:

Publicar un comentario