Loading

viernes, 11 de mayo de 2012

Inteligencia Artificial

En su histórico artículo de 1950, Turing propuso que la pregunta “¿puede pensar una máquina?” era demasiado filosófica para tener valor y, para hacerlo más concreto, propuso “un juego de imitación”. En la prueba de Turing intervienen dos personas y un computadora. Una persona, el interrogador, se sienta en una sala y teclea preguntas en la terminal de una computadora. Cuando aparecen las respuestas en la terminal, el interrogador intenta determinar si fueron hechas por otra persona o por una computadora. Si actúa de manera inteligente, según Turing es inteligente. Turing, señaló que una máquina podría fracasar y aún ser inteligente. Aun así creía que las máquinas podrían superar la prueba a fin del siglo. 


Inteligencia artificial

Introducción
Historia y evolución de la inteligencia artificial
Características de la inteligencia artificial
Funcionamiento básico de la inteligencia artificial
Funcionamientos generales de la inteligencia artificial
La vida artificial
Las redes neuronales
Aplicaciones y proyectos
La inteligencia artificial y el mundo
La inteligencia artificial en la Argentina
El cine y la inteligencia artificial
Bibliografía



1. INTRODUCCIÓN

La finalidad de la inteligencia artificial consiste en crear teorías y modelos que muestren la organización y funcionamiento de la inteligencia. Actualmente, el mayor esfuerzo en la búsqueda de la inteligencia artificial se centra en el desarrollo de sistemas de procesamientos de datos que sean capaces de imitar a la inteligencia humana, realizando tareas que requieran aprendizaje, solución de problemas y decisiones. A veces llamada inteligencia de máquina, la inteligencia artificial o AI (Artificial Intelligence) cubre una vasta gama de teorías y prácticas. 




1.1 La base de la inteligencia artificial

La inteligencia artificial se basa en dos áreas de estudio: el cuerpo humano y el ordenador electrónico. Puesto que la meta es copiar la inteligencia humana, es necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurología y Psicología, la inteligencia del hombre se conoce poco, exceptuando sus manifestaciones externas. Muchos estudiosos de la inteligencia artificial se han vuelto – para obtener su modelo de inteligencia – hacia el estudio de la Psicología cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos.. Después comprueban sus teorías programando los ordenadores para simular los procesos cognoscitivos en el modelo. Otros investigadores intentan obtener teorías generales de la inteligencia que sean aplicables a cualquier sistema de inteligencia y no solo al del ser humano. 




1.2 ¿Pueden pensar las máquinas?

En 1950 el matemático inglés Alan M. Turing publicó un ensayo que comenzaba así: "Quiero proponer una pregunta: ¿Pueden pensar las máquinas?." Como la pregunta era demasiado vaga (¿Qué entendemos por "pensar"?), Turing desarrolló un experimento basado en un juego de salón en el que una persona formula a dos jugadores escondidos (un hombre y una mujer) preguntas que le servirán para descubrir cuál de los dos es la mujer. Turing propuso sustituir uno de los dos jugadores escondidos por una máquina inteligente capaz de conversar. Si el examinador, que se servía de un teletipo para comunicarse, no podían distinguir cuál de los dos jugadores era la máquina, ello evidenciaría – según Turing – que la máquina podía pensar. En la actualidad, este experimento de Turing podría ser superado, en situaciones limitadas, por muchos programas de ordenador estudiados para dialogar con el usuario.

Investigaciones acerca de la inteligencia artificial realizadas en la Universidad de Yale (EE.UU.) han llevado al desarrollo de programas de ordenador mediante los cuales éstos pueden aprender y razonar. Otros estudiosos de la inteligencia artificial están poniendo a punto sistemas para dotar a los ordenadores de capacidad visual y auditiva. Una importante área de investigación es la del lenguaje normal, que permite a los ordenadores comunicarse mediante lenguaje humano en lugar de hacerlo en lenguaje de máquina. Es decir, la mayoría de los ordenadores están programados para recibir e interpretar instrucciones de este tipo: S#DYR=48-56, LOC=AS NOT SW, EN=RALSTON". Únicamente personas preparadas son capaces de comunicarse eficazmente de esta forma. Pero si un ordenador programado para gestionar la documentación de una compañía petrolífera pudiese entender la orden dactilografiada (traducción de la anterior) "Encuéntrame toda la documentación relativa a las perforaciones de los pozos de Arabia Saudita entre 1948 y 1956, pero únicamente la de los pozos en que trabajó Ralston, no los de la zona surocciodental del país", muchas personas podrían utilizarlo. 




1.3 Los fines de la IA

Las primeras investigaciones acerca de la inteligencia artificial estaban principalmente dirigidas al hallazgo de una técnica universal para la solución de problemas. Este intento a gran escala ha sido abandonado y las investigaciones actuales están dirigidas al diseño de numerosos programas para ordenadores capaces de imitar los procesos de toma de decisiones de expertos, como médicos, químicos, basados en los conocimientos de especialistas en cada materia, son ahora utilizados para diagnosticar enfermedades, identificar moléculas químicas, localizar yacimientos de minerales e incluso diseñar sistemas de fabricación. Investigaciones acerca de la percepción han sido aplicadas a los robots y se han diseñado algunos capaces de "ver". La meta final consiste en crear un sistema capaz de reproducir todas las facetas de la inteligencia humana. 





Para seguir leyendo entre en la noticia.






2. HISTORIA Y EVOLUCIÓN DE LA INTELIGENCIA ARTIFICIAL

La Inteligencia Artificial "nació" en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representación simbólica de la actividad cerebral.

Más adelante, Norbert Wiener elaboró estas ideas junto con otras, dentro del mismo campo, que se llamó "cibernética"; de aquí nacería, sobre los años 50, la Inteligencia Artificial.

Los primeros investigadores de esta innovadora ciencia, tomaron como base la neurona formalizada de McCulloch y postulaban que:

"El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro".

Pero si consideramos la enorme complejidad del mismo esto es ya prácticamente imposible, ni que mencionar que el hardware de la época ni el software estaban a la altura para realizar semejantes proyectos.

Se comenzó a considerar el pensamiento humano como una coordinación de tareas simples relacionadas entre sí mediante símbolos. Se llegaría a la realización de lo que ellos consideraban como los fundamentos de la solución inteligente de problemas, pero lo difícil estaba todavía sin empezar, unir entre sí estas actividades simples.

Es en los años 50 cuando se logra realizar un sistema que tuvo cierto éxito, se llamó el Perceptrón de Rossenblatt. Éste era un sistema visual de reconocimiento de patrones en el cual se asociaron esfuerzos para que se pudieran resolver una gama amplia de problemas, pero estas energías se diluyeron enseguida.

Fue en los años 60 cuando Alan Newell y Herbert Simon, que trabajando la demostración de teoremas y el ajedrez por ordenador logran crear un programa llamado GPS (General Problem Solver: solucionador general de problemas). Éste era un sistema en el que el usuario definía un entorno en función de una serie de objetos y los operadores que se podían aplicar sobre ellos. Este programa era capaz de trabajar con las torres de Hanoi, así como con criptoaritmética y otros problemas similares, operando, claro está, con microcosmos formalizados que representaban los parámetros dentro de los cuales se podían resolver problemas. Lo que no podía hacer el GPS era resolver problemas ni del mundo real, ni médicos ni tomar decisiones importantes. El GPS manejaba reglas heurísticas (aprender a partir de sus propios descubrimientos) que la conducían hasta el destino deseado mediante el método del ensayo y el error.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum comenzó a elaborar un proyecto para resolver problemas de la vida cotidiana o que se centrara, al menos, en problemas más concretos. Así es como nació el sistema experto.

El primer sistema experto fue el denominado Dendral, un intérprete de espectrograma de masa construido en 1967, pero el más influyente resultaría ser el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre y recetar la correspondiente medicación, todo un logro en aquella época que incluso fueron utilizados en hospitales (como el Puff, variante de Mycin de uso común en el Pacific Medical Center de San Francisco, EEUU).

Ya en los años 80, se desarrollaron lenguajes especiales para utilizar con la Inteligencia Artificial, tales como el LISP o el PROLOG. Es en esta época cuando se desarrollan sistemas expertos más refinados, como por el ejemplo el EURISKO. Este programa perfecciona su propio cuerpo de reglas heurísticas automáticamente, por inducción.

Desarrollo Histórico (según Jackson, 1986)

1950-1965 Periodo "clásico"

Gestación (McColluck y Pitts, Shannon, Turing)
Inicio - reunión de Darmouth College en 1956 (Minsky, McCarthy)
Redes neuronales, robótica (Shakey)
Búsqueda en un espacio de estados, Heurísticas, LISP
Solucionador general de problemas (GPS) (Newell, Simon)
Juegos, prueba de teoremas
Limitaciones de pura búsqueda, explosión combinatoria.
1965-1975 Periodo "romántico"

Representación "general" del conocimiento.
Redes semánticas (Quillian)
Prototipos (frames) (Minsky)
Perceptrón (Minsky y Papert)
Lógica (Kowalski)
Mundo de bloques (SHDRLU) (Winograd)
Compresión de lenguaje, visión, robótica.
Dificultades de representación "general", problemas de "juguete".
1975-Hoy Periodo "moderno". Inteligencia "especifica" vs. "general"

Representación explícita del conocimiento específico del dominio.
Sistemas expertos o basados en conocimiento.
Regreso de redes neuronales (Hopfield, Rumelhart, Hinton), algoritmos genéticos (Holland, Goldberg) Reconocimiento de voz (HMM), incertidumbre (RB, Lógica difusa), planeación, aprendizaje. Aplicaciones "reales" (medicina, finanzas, ingeniería, exploración, etc.).
Limitaciones: conocimiento "superficial"
Desarrollo Histórico (según Russell y Norvig, 1995):

Gestación (1943-1956):

McCullock y Pitts (1943)
Hebb (1949)
Shannon (1950)
Turing (1953)
Minsky y Edmonds (1951)
Darmouth College (1956)
McCarthy, Newell y Simon, « The Logic Theorist »
Entusiasmo y grandes expectativas (1952-1969):

Samuel - checkers (1952)
McCarthy (1958): LISP: time sharing, Programs with common sense.
Minsky y McCarthy en MIT moldearon mucho del área.
Minsky, Evans, Student, Waltz, Winston, Winograd, etc.
Trabajo en RN: Hebb, Widrow, Rosenblatt
Dosis de realidad (1966-1974):
Simon predecía que en 10 años se tendría una máquina inteligente.
Predicciones similares en traducción automática y ajedrez.
Teoría de NP- completness.
Experimentos en machine evolution (ahora algoritmos genéticos; estaban bien fundados pero no produjeron nada.) (Friedberg, 1958)
Minsky y Papert Perceptrons (1969) (aunque irónicamente el mismo año se descubrió backpropagation (Bryson y Ho))
Sistemas basados en conocimiento (1969-1979):

Dendral, Mycin, HPP, Prospector, Winograd, SHDRLU, Shank (no hay sintáxis), frames, Prolog, Planner
IA como industria (1980-1988):

R1/XCON, proyecto de la quinta generación, shells y máquinas de LISP.
Regreso de redes neuronales (1986-presente):

Hopfield, Rumelhart y Hinton y descenso de los SE
Eventos recientes (1987-presente):

Cambio gradual hacia los técnicos y lejos de los rudos (implica cierto grado de madurez y estabilidad) ej., reconocimiento de voz (HMM), incertidumbre (Bayes), planeación (Tweak), robótica, aprendizaje (PAC), etc.
3. CARACTERÍSTICAS DE LA INTELIGENCIA ARTIFICIAL

Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.
El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).
El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.
Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca información, con una solución cercana y no necesariamente exacta.
La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robótica, usada principalmente en el campo industrial; comprensión de lenguajes y traducción; visión en máquinas que distinguen formas y que se usan en líneas de ensamblaje; reconocimiento de palabras y aprendizaje de máquinas; sistemas computacionales expertos.

Los sistemas expertos, que reproducen el comportamiento humano en un estrecho ámbito del conocimiento, son programas tan variados como los que diagnostican infecciones en la sangre e indican un tratamiento, los que interpretan datos sismológicos en exploración geológica y los que configuran complejos equipos de alta tecnología.

Tales tareas reducen costos, reducen riesgos en la manipulación humana en áreas peligrosas, mejoran el desempeño del personal inexperto, y mejoran el control de calidad sobre todo en el ámbito comercial.

3.1 Programa fijo y programa modificado por el procesamiento

Existen grandes diferencias entre el funcionamiento de las máquinas y el del cerebro: algunas son evidenciadas en el esquema bajo estas líneas. Las máquinas y el cerebro se diferencian en muchos aspectos: el primero es ligado a la arquitectura del sistema de memoria y a la elaboración realizada por la inteligencia natural, que influye en los programas sucesivos al ser almacenada en la memoria que mantiene disponibles todos los hechos que se han ido acumulando a lo largo del tiempo. Abajo a la izquierda se muestra el esquema de funcionamiento de un sistema artificial: procesa datos que recibe del exterior y que le son presentados ya seleccionados. Los procesa mediante un programa fijo, siempre elegido y construido por el hombre, es decir, desde el exterior.



Este programa es sencillo comparado con los utilizados por el cerebro humano. A lo largo del tiempo, un mismo programa que procese los mismos datos obtendrá siempre los mismos resultados. Sin embargo, este sistema es muy veloz cuando se le piden secuencias de operaciones. Contrariamente, el cerebro humano es capaz de procesar al mismo tiempo todas las informaciones contenidas en una imagen, y el resultado de dicho procesamiento puede servir para modificar el programa, que para posteriores utilizaciones será más completo. La observación de una imagen muestra la diferencia fundamental entre el modo de procesar los datos del cerebro humano y el de la máquina. El cerebro humano no actúa teniendo en cuenta un programa prefijado, sino más bien uno de naturaleza variable en el tiempo; las variaciones dependen de los resultados procedentes. De hecho, el cerebro tiene la propiedad de recordar imágenes similares; una vez vista la figura, extrae de su memoria imágenes similares previamente almacenadas y los resultados de los análisis realizados sobre ellas. Estos resultados sirven para mejorar el programa según el cual sacará conclusiones aplicadas al examen de la figura.

4. FUNCIONAMIENTO BÁSICO DE LA INTELIGENCIA ARTIFICIAL

Diferentes teorías:


Construir réplicas de la compleja red neuronal del cerebro humano (bottom-up).


Intentar imitar el comportamiento del cerebro humano con un computador (top-down).

4.1 Símbolos vs. Métodos Numéricos

El primer período de la Inteligencia Artificial, llamado sub-simbólico, data de aproximadamente 1950 a 1965. Este período utilizó representaciones numéricas (o sub-simbólicas) del conocimiento. Aunque la mayor parte de los libros de Inteligencia Artificial enfatizan el trabajo realizado por Rosenblatt y Widrow con redes neuronales durante este período, la realidad es que otra importante escuela sub-simbólica data también de la misma época y estos son los algoritmos evolutivos.

La escuela clásica dentro de la Inteligencia Artificial, utiliza representaciones simbólicas basadas en un número finito de primitivas y de reglas para la manipulación de símbolos. El período simbólico se considera aproximadamente comprendido entre 1962 y 1975, seguido por un período dominado por los sistemas basados en el conocimiento de 1976 a 1988. Sin embargo, en este segundo período las representaciones simbólicas (por ejemplo, redes semánticas, lógica de predicados, etc.) siguieron siendo parte central de dichos sistemas.

La Programación Lógica tiene sus orígenes más cercanos en los trabajos de J. A. Robinson que propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de manera automática.

La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo.

Otros trabajos importantes de esa época que influyeron en la programación lógica, fueron los de Loveland, Kowalski y Green, que diseña un probador de teoremas que extrae de la prueba el valor de las variables para las cuales el teorema es válido.

Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una época, pero, por su ineficiencia, fueron relegados hasta el nacimiento de Prolog, que surge en 1971 en la Universidad de Marsella, Francia.

La Lógica de Primer Orden, es uno de los formalismos más utilizados para representar conocimiento en Inteligencia Artificial. La Lógica cuenta con un lenguaje formal mediante el cual es posible representar fórmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, además consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento.

4.2 Alfabeto del Lenguaje de la Lógica de Primer Orden

Contiene dos tipos de símbolos:


Símbolos lógicos, entre los que se encuentran los símbolos de constantes proposicionales true y false; los símbolos de operadores proposicionales para la negación, la conjunción, la disyunción y las implicaciones (=>, <=); los símbolos de operadores de cuantificación como el cuantificador universal; el cuantificador existencial; y los símbolos auxiliares de escritura como corchetes [,], paréntesis (,) y coma.


Símbolos no lógicos, agrupados en el conjunto de símbolos constantes; el conjunto de símbolos de variables individuales; el conjunto de símbolos de funciones n-arias; y el conjunto de símbolos de relaciones n-arias.

A partir de estos símbolos se construyen las expresiones válidas en el Lenguaje de Primer Orden: los términos y las fórmulas.

Un término es cualquiera de las tres expresiones siguientes: una constante, por ejemplo, el número "100", la palabra "alfredo" y la letra "c"; o una variable, por ejemplo, "X" o bien una expresión de la forma "f(t1,...,tn)" donde "f" es un símbolo de función n-aria y t1,...,tn son términos. Ejemplos de funciones son: f(100,X), padre(Y) y sucesor(X).

Las fórmulas atómicas o elementales son expresiones de la forma R(t1,...,tn) donde R es un símbolo de relación n-aria y t1,...,tn son términos.

Ejemplos de fórmulas son:

positivo(3),not(igual(4,doble(2))), recetar(X,aspirina)<=tiene(X,fiebre), tiene(X,cefalea).

Esta última establece una regla que dice que, si X tiene fiebre y cefalea (dolor de cabeza), X debe tomar una aspirina.

El Lenguaje de Primer Orden posee un amplio poder de expresión, los términos permiten nombrar los objetos del universo, mientras que las fórmulas permiten afirmar o negar propiedades de éstos o bien establecen las relaciones entre los objetos del universo.

Puede decirse que la Programación Lógica utiliza la Lógica de Primer Orden como lenguaje de programación. Prolog es un ejemplo de lenguaje basado en la Lógica de Primer Orden y aunque toma su nombre de este término ("PROgramming in LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para resolver problemas, pues está restringido al uso de cierta clase de fórmulas denominadas cláusulas definidas o cláusulas de Horn.

Un programa lógico está formado por un conjunto finito de cláusulas de programa que son hechos o reglas. Por ejemplo:

padre(luis,miguel). hecho
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla

Este programa está formado por cuatro cláusulas de programa, las tres primeras son del tipo hecho y definen la relación padre/2 y la cuarta una regla que define la relación abuelo/2. Nótese el uso de las variables X,Y y Z en esta cláusula, las cuales permiten definir de manera general en Prolog la relación "ser abuelo de", pues la lectura declarativa de dicha cláusula es la siguiente: "Para cualesquiera X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z padre de Y".

En Prolog es posible hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se formulan como objetivos o metas, que son evaluadas por el intérprete de Prolog utilizando su mecanismo de inferencia interno, el cual determina si la meta a demostrar es una consecuencia lógica del programa, aplicando reglas de deducción para obtener la respuesta.

Por ejemplo, del programa anterior, utilizando la cláusula de tipo meta ?abuelo(X,juan), para preguntar ¿quién es el abuelo de Juan? o bien ¿quiénes son los abuelos de Juan?, es posible deducir que Luis es abuelo de Juan, aunque implícitamente no existe en el programa ningún hecho que así lo afirme.



En este ejemplo de análisis de oraciones, podemos observar de qué manera se analiza una oración ingresada por el usuario y cómo el ordenador lo traduce en un lenguaje lógico de primer orden.

En este caso la ejecución del programa, para dicha meta, arrojaría como resultado que X=luis.

El método de deducción utilizado por Prolog, para dar respuesta a los objetivos planteados, se basa en el uso de una única regla de inferencia: el Principio de Resolución.

Los primeros trabajos de prueba automática de teoremas utilizaban la resolución, aplicada a cláusulas cualesquiera, pero el problema de las deducciones con cláusulas generales es el gran número de combinaciones posibles para llevar a cabo las resoluciones.

Por ello Prolog restringe el conjunto de cláusulas, lo que le permite llevar a cabo una prueba dirigida y, en la mayoría de los casos, con un universo de posibilidades explorable en tiempo de ejecución. 





5. FUNCIONAMIENTOS GENERALES DE LA INTELIGENCIA ARTIFICIAL5.1 Tipos de Algoritmos Utilizados 

Cuando una tarea se realiza por medio de un algoritmo perfectamente definido de almacenamiento, clasificación o cálculo, lo puede hacer un computador. Este concepto de algoritmo, secuencial, fijo y de determinadas operaciones, es incapaz de manejar problemas donde el camino del razonamiento es variable y donde deben afrontarse situaciones diversas sin haber sido especificadas.

La Inteligencia Artificial hace uso de un tipo de lenguaje diferente como es el caso de LISP y PROLOG.

En 1932, Cannon visualizó la evolución natural como un proceso de aprendizaje. Alan Turing reconoció, en 1950, que debe haber una conexión obvia entre el aprendizaje de máquina y la evolución, y señaló que se podrían desarrollar programas para jugar ajedrez usando esta técnica. Campbell conjeturó en 1960 que en todos los procesos que llevan a la expansión del conocimiento, se involucra un proceso ciego de variación y supervivencia selectiva.

Los primeros intentos de aplicar de manera formal la teoría de la evolución, a problemas prácticos de ingeniería, apareció en las áreas de control de procesos estadísticos, aprendizaje de máquina y optimización de funciones. Tal vez el primer intento serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en 1957, en el desarrollo de una técnica que denominaron operación evolutiva, la cual se aplicó a una planta de manufactura, y que se implanto sobre la base de los votos de un comité de jefes técnicos. Bajo este esquema, la calidad del producto avanzaba a través de mutaciones aleatorias y la selección era determinada por el comité.

Por su parte, Friedberg intentó, en 1958, hacer que un programa en lenguaje máquina se mejorara a sí mismo, seleccionando instrucciones que se asociaran más frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencionó explícitamente estar simulando la evolución natural, esa es la interpretación más comúnmente aceptada de su trabajo, y a pesar de que tuvo cierto éxito evolucionando manipuladores de bits y determinando las interconexiones de una caja negra de 1400 terminales, la comunidad de Inteligencia Artificial de la época prestó poca atención a su trabajo. Por ejemplo, Minsky lo criticó duramente, argumentando que una búsqueda puramente aleatoria era mucho mejor que el algoritmo de Friedberg.

El trabajo de Bremermann, en 1958, se enfocó más a la optimización, introduciendo el importante manejo de un valor de aptitud, y definiendo a un individuo como una cadena de símbolos binarios (unos y ceros). Bremermann advirtió, acertadamente, que la mutación jugaba un papel importante en la evolución, pues impedía el estancamiento en mínimos locales. Aunque muchas de sus ideas se usan hoy en día, Bremermann cometió el error de tratar de optimizar funciones lineales y convexas, obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenían que ser complementados con otras heurísticas para converger en una solución. Hoy sabemos que los algoritmos evolutivos difícilmente pueden competir con las técnicas tradicionales de optimización en esos dominios.

Barricelli ofreció, en 1954, una de las primeras simulaciones que usaba principios evolutivos, utilizando los mismos procedimientos generales que se usan hoy en día en la disciplina conocida como vida artificial. Sin embargo, en este trabajo, así como el que Reed realizó posteriormente en 1967, se concluyó que la cruza no parecía mejorar la velocidad de la adaptación selectiva, y el operador primordial era la mutación.

Fue Fogel el que introdujo la primera técnica evolutiva que realmente funcionó más o menos dentro de los lineamientos actuales de la computación evolutiva. Su programación evolutiva consistía en hacer evolucionar autómatas de estados finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de población y selección, y aunque las revisiones iniciales de su trabajo fueron favorables, algunos investigadores, como Solomonoff, enfatizaron que el método de Fogel no debía verse en su estado actual (en 1966) como algo particularmente útil para resolver problemas, a excepción de los más simples posibles. Solomonoff vio a la programación evolutiva como una especie de búsqueda escalando la colina modelada mediante autómatas, y otros investigadores como Holland, Kieras, Rada y Lenat compartieron esa opinión.

Otra técnica evolutiva dirigida particularmente a la optimización de funciones continuas de alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver problemas de ingeniería que desafiaban a los métodos de optimización tradicionales, como el gradiente conjugado, y se basa en la modificación sistemática de un vector de números reales (representando las variables de decisión del problema) mediante operadores probabilísticos, usando ciertos criterios para decidir en qué dirección dirigir la búsqueda. La estrategia evolutiva utiliza como operador principal a la mutación, y en su versión más reciente usa la cruza como operador secundario.

Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creación de la técnica que se conoce como algoritmo genético, a raíz de que Holland publicara el libro "Adaptation in Natural and Artificial Systems" en 1975.



5.1.1 Algoritmo Genético

La principal diferencia del algoritmo genético con las técnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutación como operador secundario (e incluso opcional). El algoritmo genético, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y contraejemplos que guíen la evolución a partir de poblaciones iniciales totalmente aleatorias.

Los mecanismos de selección del más apto y de reproducción sexual del algoritmo genético, son los encargados de preservar las características más adecuadas de cada individuo a fin de hacer converger a la población en soluciones óptimas.

Los algoritmos genéticos se distinguen también por no quedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicas de búsqueda clásicas, además de usar operadores probabilísticos más robustos que los operadores determinísticos, que las otras técnicas suelen usar.

No obstante, siendo una heurística, tampoco pueden garantizar encontrar siempre la solución óptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoría de los casos, superiores a las encontradas con otras técnicas de búsqueda y optimización.

Aunque aún atacados por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el reconocimiento de los investigadores como una técnica efectiva en problemas de gran complejidad, como lo demuestra un número creciente de conferencias y publicaciones especializadas alrededor del mundo, en los últimos años.

5.2 Sistemas Basados en Conocimiento

Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigación.

A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.

La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente:

Componentes: software de interfaz, base de datos, programa computacional.

Una relativamente nueva categoría de sistemas de información orientada al servicio es el sistema experto, llamado así porque su base de datos guarda una descripción de habilidades en la toma de decisiones de experiencias humanas en un estrecho dominio de procedimientos, tales como interpretación médica de imagen, impuestos, diseño de piping, configuración de hardware en un sistema de computadores, equipamiento para reparar malfuncionamientos o, en la preparación de cerveza.

La motivación para construir sistemas expertos es el deseo de replicar el escaso, in estructurado y quizás el pobremente documentado conocimiento empírico de especialistas que de este modo puede ser rápidamente usado por otros.

Un programa computacional que usa inteligencia artificial resuelve problemas en un dominio especializado que ordinariamente requiere experiencia humana.

El primer sistema experto fue desarrollado en 1965 por Edward Feigenbaum y Joshua Lederberg de la Universidad de Standford en California, EEUU, y se lo llamó Dendral. Fue diseñado para analizar componentes químicos.

Dado que cada condición que puede ser encontrada puede ser descrita por una regla, los sistemas expertos basados en reglas no pueden manejar eventos no anticipados, pero pueden evolucionar con el uso, y permanece limitado a un estrecho dominio de problemas.

Otra variante de sistemas expertos, uno que no posee esta limitación, emplea una base de conocimiento que consiste de descripciones estructuradas de situaciones, de problemas del mundo real y de decisiones actualmente hechas por expertos humanos.

En medicina, por ejemplo, el registro de un paciente contiene descripciones de datos personales, exámenes físicos y de laboratorio, diagnóstico clínico, tratamiento propuesto, y los resultados de tales tratamientos.

Dada una gran base de datos con tales registros en una especialidad médica, el médico puede indagar acerca de eventos análogos a los relacionados con el paciente. Esto en contraste con el sistema que idealmente intenta reemplazar al ser humano, ya que en casos como estos sólo podría usarse este tipo de conocimiento como una herramienta que ayuda en la toma de decisiones.

El software requerido para este tipo de sistemas se ha ido complicando con el tiempo ya que su desarrollo demanda tiempo, un buen equipo de programadores y un buen producto final.

Se percibe este trabajo como una tarea para el ingeniero y consiste de:


Identificación y análisis de los requerimientos del usuario.


Desarrollo de las especificaciones del sistema (software y hardware).


Diseño del software.


Implementación


Testeo


Mantenimiento

Tareas típicas para sistemas expertos involucran clasificación, diagnóstico, monitoreo, diseño, inventario y planificación para esfuerzos especializados.

5.2.1 Niveles de conocimiento

A pesar de no disponerse de un modelo general comúnmente aceptado, existe unanimidad en cuanto a la aprobación de tres niveles distintos de conocimientos, a los que corresponde tres fases diferentes de estudio y sobre los que se basa, en general, la concepción de un sistema experto. Esos niveles son el de estructuración, el conceptual y el cognoscitivo. El primero es el que define el mecanismo que genera la certeza. Este mecanismo varía según el campo al que se aplique el sistema experto, ya que las evidencias asociadas a cada campo no son idénticas. La determinación del nivel de estructuración permite definir un formalismo de representación del conocimiento así como un mecanismo adecuado de deducción. El nivel conceptual es el que determina el conjunto de los conceptos que emplea el experto humano en la materia; cada uno de ellos corresponde a un nudo del razonamiento del experto. Se le asocia un descriptor que se experimenta con el formalismo correspondiente al nivel de estructuración. Finalmente, el nivel cognoscitivo corresponde al conjunto de los conocimientos que el experto humano pone en práctica para la resolución del problema planteado. Este conjunto de conocimientos debe poder traducirse al lenguaje definido mediante el formalismo de representación del conocimiento adoptado. En cuanto al desarrollo actual de la investigación en el campo de los sistemas expertos, la primera fase corresponde al desarrollo de sistemas y programas que traten directamente el lenguaje natural, si bien persisten todavía dos escollos importantes. Por un lado, el problema de cómo emplear de un modo eficaz una gran cantidad de información sin necesidad de echar mano de la combinatoria; es decir, cómo conseguir un sistema dotado de conocimientos (metaconocimientos) que le permitan utilizar los conocimientos del sistema y que, a su vez, le permitan deducir automáticamente nuevos conocimientos, ya que no cabe pensar en la reunión de todos los conocimientos necesarios en casos de campos tan sumamente vastos como el del diagnóstico en la medicina.

5.3 Sistemas Expertos

Los sistemas expertos se basan en la simulación del razonamiento humano. El razonamiento humano tiene para ellos, un doble interés: por una parte, el del análisis del razonamiento que seguiría un experto humano en la materia a fin de poder codificarlo mediante el empleo de un determinado lenguaje informático; por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de manera que éstos sean semejantes a los empleados por el experto humano en la resolución de la cuestión planteada.

Estos dos campos de interés han conducido a los investigadores que trabajan en el campo de la inteligencia artificial (de la cual los sistemas expertos son un campo preferente) a intentar establecer una metodología que permita verificar el intercambio con los expertos humanos y aislar los diversos tipos de razonamiento existentes (inductivo, deductivo, formal, etc.), así como construir los elementos necesarios para modelizarlos. Los sistemas expertos son, por lo tanto, intermediarios entre el experto humano, que transmite sus conocimientos al sistema, y el usuario de dicho sistema, que lo emplea para resolver los problemas que se le plantean con la competencia de un especialista en la materia y que, además, puede adquirir una destreza semejante a la del experto gracias a la observación del modo de actuar de la máquina. Los sistemas expertos son, pues, simultáneamente, un sistema de ejecución y un sistema de transmisión del conocimiento. Asimismo, los sistemas expertos se definen mediante su arquitectura; obtienen, por lo tanto, una realidad palpable. Mientras que en las operaciones de programación clásicas se diferencia únicamente entre el propio programa y los datos, en el caso de los sistemas expertos se diferencian tres componentes principales. Son los siguientes:

La base de conocimientos aloja la totalidad de las informaciones específicas relativas al campo del saber deseado. Está escrita en un lenguaje específico de representación de los conocimientos que contiene y en el cual el experto puede definir su propio vocabulario técnico.

A la inversa de lo que sucede en los programas clásicos, en la base de conocimientos las informaciones entran tal como llegan, ya que el orden no influye en los resultados obtenidos. Sucede así porque cada elemento de conocimiento es comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es necesario referirse al contexto en el cual está inserto. La información se representa, por regla general, mediante reglas de producción o redes semánticas. Las reglas de producción constituyen el método más utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas también implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas, unos efectos; o, para determinadas condiciones, ciertas consecuencias. Junto a cada regla, se almacena también su porcentaje en forma de probabilidad. Éste indica, mediante un tanto por ciento, el grado de certeza de las consecuencias que se obtienen como resultado de la aplicación de la regla de producción. En cuanto a las redes semánticas, se trata de un método de construcción de bases de conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vértices representan los conceptos u objetos y las aristas indican las relaciones entre ellos.

Además el sistema dispone de la llamada base de hechos, que alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios, permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicar las reglas para obtener las conclusiones buscadas.

El último elemento, el motor de inferencias, es un programa que, mediante el empleo de los conocimientos puede resolver el problema que está especificado. Lo resuelve gracias a los datos que contiene la base de hechos del sistema experto. Por regla general, el tipo de reglas que forman la base de conocimientos es tal que, si A es válido, puede deducirse B como conclusión. En este caso, la tarea que lleva a cabo el motor de inferencias es la de seleccionar, validar y activar algunas reglas que permiten obtener finalmente la solución correspondiente al problema planteado.

El sistema experto establecido se compone, por lo tanto, de dos tipos bien diferenciados de elementos, los propios del campo de los expertos relacionados con el problema concreto (es decir, la base de conocimientos y la base de hechos) y el que se puede aplicar de forma general a una gran variedad de problemas de diversos campos (como el caso del motor de inferencias). Sin embargo, el motor de inferencias no es un mecanismo universal de deducción, ya que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para el cual el resultado puede ser erróneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un resultado (si llegan a él), con toda seguridad, verdadero.

5.3.1 Fases del proceso

Sin embargo, a pesar de no existir una metodología generalmente aceptada en cuanto a la concepción de los sistemas expertos, se admite por regla general un esquema que consta de tres fases. En la primera fase, la discusión con el experto o los expertos humanos en la cual se intenta, por un lado, delimitar el problema a resolver y, por el otro, los modos de razonamiento que se emplearán para su solución. La segunda fase comprende el desglose del formalismo de expresión del conocimiento y la determinación del motor de inferencias adecuado a dicho formalismo. Por último, la tercera etapa, corresponde a la creación de la base de conocimientos (en colaboración con los expertos humanos), así como a la comprobación y ajuste del funcionamiento del sistema experto mediante el empleo de ejemplos.

6. LA VIDA ARTIFICIAL

La Vida Artificial se puede considerar como la parte de la Inteligencia Artificial que pretende reproducir los procesos y comportamientos típicos de los seres vivos. También podemos definirla como el intento de crear vida, o algo parecido a la vida, mediante la combinación de símbolos (datos) y procesos de símbolos (programas) independientemente del soporte físico de estos símbolos y procesos.

Por una parte están los intentos "hardware" de emulación de vida. Por ejemplo, es posible construir un pequeño robot con aspecto de ratón capaz de encontrar la salida de un laberinto.

Por otra parte están las simulaciones "software". Éstas tienen la ventaja de que permiten construir un gran número de seres vivos y entornos en los que estos existen, de manera que es más fácil estudiar comportamientos sociales.

Podemos construir los seres artificiales con el objetivo de solucionar los problemas que a nosotros nos interesen, y que aprendan o colaboren entre ellos hasta conseguir el resultado deseado.

De esta forma, se puede considerar la Vida Artificial (VA) como un paso más allá después de la Programación Orientada a Objetos (POO), y sin embargo, siendo la VA un caso particular de la POO. Es decir, si un objeto es un elemento que encapsula datos y procedimientos, una entidad artificial es un elemento que encapsula un objetivo, unos sentidos, unas acciones y unas creencias. A esto le podemos llamar Programación Orientada a Agentes.

En muchos campos de estudio se plantea la posibilidad de realizar simulaciones para intentar predecir o ayudar a la toma de decisiones acerca de ciertos aspectos del mundo real. Hay dos formas de enfocar estas simulaciones.

La primera de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más alto nivel", es decir, precisamente en los que se pretenden predecir o modificar, y también en aquellos que aparentemente están más relacionados con éstos. El cerebro humano elabora una teoría acerca de cómo todos estos aspectos varían. Esta teoría se formaliza en fórmulas, reglas o algo parecido, y se simula en un ordenador ante diversas condiciones iniciales. Se observa si el modelo, ante datos históricos del pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la toma de decisiones en el futuro, ajustando continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de la realidad, se revisa la teoría inicial, reescribiéndola por completo, ajustando ciertos aspectos o detallando con mayor nivel de profundidad los que parecen ser generalizaciones excesivas.

La segunda de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más bajo nivel" del problema, buscando los aspectos más sencillos y a la vez con una alta multiplicidad. Es decir, el cerebro humano identifica aquellas características sencillas que están presentes en muchas entidades del problema. Mediante fórmulas, reglas o algo parecido, se define un tipo genérico de entidad que admita estas características, y en un ordenador se realiza una simulación basada en la generación de un alto número de estas entidades capaces de interactuar entre sí, con la esperanza en que de esta interacción emerja el comportamiento complejo que se pretende estudiar. Inicialmente los agentes genéricos se definen tan sencillos como sea posible sin dejar de ajustarse al problema. Se observa si el modelo, ante datos históricos del pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la toma de decisiones en el futuro, ajustando continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de la realidad, se deduce que la definición del agente genérico (más su entorno, etc.) es demasiado sencilla y se va complicando, añadiendo detalles hasta ajustarse suficientemente a la realidad.

6.1 Cuestión Filosófica de la Vida Artificial

Para ver el gráfico seleccione la opción ¨Bajar trabajo¨ del menú superior

La Vida Artificial también nos ofrece una "visión privilegiada" de nuestra realidad. No hace falta que las simulaciones por ordenador sean todavía más complejas, para poder tener el derecho a preguntarnos acerca de si nuestro propio mundo no será también una "simulación dentro de un cosmo-ordenador". De hecho, esta pregunta se ha planteado, desde tiempos remotos, de infinidad de maneras.

Si los ordenadores son capaces de simular universos artificiales poblados por organismos que mediante la reproducción, las mutaciones y la selección natural, evolucionan y se hacen cada vez más inteligentes y conscientes, podríamos interpretar nuestro propio mundo como un "superordenador" donde nosotros mismos somos los "seres artificiales" que lo habitan, siguiendo el curso de evolución que El Programador ha deseado.

En el caso de que existiera un creador y una intencionalidad, es decir, si El Programador que nos ha creado lo ha hecho con algún objetivo, no sería extraño que ese mismo programador hubiera implementado mecanismos para que sus "entidades" (nosotros) no escapen a su control. Por ejemplo, podría haber marcado límites a su movimiento (¿la velocidad de la luz? ¿la gravedad?) en su ordenador (nuestro universo) ...¿O tal vez el límite de 300.000 km/seg corresponde con los MHz del ordenador en el que vivimos?.

Pero las limitaciones que el programador fija para controlar a sus entidades pueden no ser suficientes. Algunos programadores de Vida Artificial quedan a menudo gratamente sorprendidos por el inesperado comportamiento de sus pequeñas creaciones, más inteligentes y capaces de lo que cabría esperar en un primer momento.

Además, los "bugs" (errores) en programación son probablemente una constante en todos los universos, dimensiones y realidades posibles, así que tal vez el "programador" haya dejado algún hueco por donde podamos colarnos; es decir, que es posible que en nuestro mundo existan acciones, comportamientos, o razonamientos con efectos maravillosos, que están ahí, accesibles, pero que aún nadie ha realizado, ya sea por ignorancia, mala suerte, o porque provocan la muerte a quien llega a adquirirlos. Un ejemplo de esto último se encuentra en "Creced y Multiplicaos", de Isaac Asimov.

6.2 Perspectivas Futuras de la Vida Artificial

Con poco más de diez años de antigüedad, la Vida Artificial se ha convertido en un punto de referencia sólido de la ciencia actual.

En septiembre de 1987, 160 científicos en informática, física, biología y otras disciplinas se reunieron en el Laboratorio Nacional de Los Álamos para la primera conferencia internacional sobre Vida Artificial. En aquella conferencia se definieron los principios básicos que han marcado la pauta desde entonces en la investigación de esta disciplina.

Un concepto básico dentro de este campo es el de comportamiento emergente. El comportamiento emergente aparece cuando se puede generar un sistema complejo a partir de reglas sencillas. Para que se dé este comportamiento se requiere que el sistema en cuestión sea reiterativo, es decir, que el mismo proceso se repita de forma continua y además que las ecuaciones matemáticas que definen el comportamiento de cada paso sean no lineales.

Por otra parte, un autómata celular consiste en un espacio n-dimensional dividido en un conjunto de celdas, de forma que cada celda puede encontrarse en dos o más estados, dependiendo de un conjunto de reglas que especifican el estado futuro de cada celda en función del estado de las celdas que le rodean.

Hay dos posturas dentro de la Vida Artificial: la fuerte y la débil.

Para los que apoyan la postura débil, sus modelos son solamente representaciones simbólicas de los síntomas biológicos naturales, modelos ciertamente muy útiles para conocer dichos sistemas, pero sin mayores pretensiones.

Para los que defienden la versión fuerte, dicen que se puede crear vida auténtica a partir de un programa de ordenador que reproduzca las características básicas de los seres vivos.

Desde este punto de vista, la vida se divide en vida húmeda, que es lo que todo el mundo conoce como vida, vida seca, formada por autómatas físicamente tangibles, y vida virtual, formada por programas de computador. Las dos últimas categorías son las que integran lo que genéricamente se conoce como Vida Artificial.

Para defender un punto de vista tan radical, los defensores de la postura fuerte, aluden a un conjunto de reglas que comparten las tres categorías anteriores:


La biología de lo posible: La Vida Artificial no se restringe a la vida húmeda tal como la conocemos, sino que "se ocupa de la vida tal como podría ser". La biología ha de convertirse en la ciencia de todas las formas de vida posibles.


Método sintético: La actitud de la Vida Artificial es típicamente sintética, a diferencia de la biología clásica, que ha sido mayoritariamente analítica. Desde este punto de vista, se entiende la vida como un todo integrado, en lugar de desmenuzarlo en sus más mínimas partes.


Vida real (artificial): La Vida Artificial es tal porque son artificiales sus componentes y son artificiales porque están construidos por el hombre. Sin embargo, el comportamiento de tales sistemas depende de sus propias reglas y en ese sentido es tan genuino como el comportamiento de cualquier sistema biológico natural.


Toda la vida es forma: la vida es un proceso, y es la forma de este proceso, no la materia, lo que constituye la esencia de la vida. Es absurdo pretender que sólo es vida genuina aquella que está basada en la química del carbono, como es el caso de la vida húmeda.


Construcción de abajo hacia arriba: la síntesis de la Vida Artificial tiene lugar mejor por medio de un proceso de información por computador llamado programación de abajo hacia arriba. Consiste en partir de unos pocos elementos constitutivos y unas reglas básicas, dejar que el sistema evolucione por sí mismo y que el comportamiento emergente haga el resto. Poco a poco el sistema se organiza espontáneamente y empieza a surgir orden donde antes sólo había caos.

Esta clase de programación contrasta con el principio de programación en la Inteligencia Artificial. En ella se intenta construir máquinas inteligentes hechos desde arriba hacia abajo, es decir, desde el principio se intenta abarcar todas las posibilidades, sin dejar opción a que el sistema improvise.

El principio de procesamiento de información en la Vida Artificial se basa en el paralelismo masivo que ocurre en la vida real. A diferencia de los modelos de Inteligencia Artificial en los que el procesamiento es secuencial, en la Vida Artificial es de tipo paralelo, tal y como ocurre en la mayoría de fenómenos biológicos.

7. LAS REDES NEURONALES



Si se pudieran explicar los procesos cognitivos superiores de una manera intrínseca, es decir, si se pudiera demostrar que los procesos mentales inteligentes que realiza el hombre se producen a un nivel superior (o intermedio) con independencia de las capas subyacentes que existen hasta la constitución física del ente inteligente, se demostraría que es posible crear -mediante un sistema de símbolos físicos-, una estructura artificial que imite perfectamente la mente humana mediante una arquitectura de niveles, ya que se podría construir dicho nivel superior mediante la combinación de elementos que no necesariamente han de ser los que forman el nivel inferior en los humanos (que por ejemplo, podemos suponer que son las neuronas).

En cambio, si sólo se pudieran explicar los procesos cognitivos superiores mediante una descripción al más bajo nivel (comportamiento neuronal), sólo se podría imitar la inteligencia humana mediante la construcción de neuronas artificiales. Para ser exactos, esta afirmación está condicionada por la certeza de la suposición (bastante común) según la cual el neuronal es el más bajo de los niveles relevantes para la formación de los procesos cognitivos. Arbitrariamente, se podría haber elegido otro nivel aún más bajo (moléculas, átomos). Llevado al extremo, se podría reescribir la afirmación, sustituyendo "neuronas" por "la más pequeña partícula de nuestro universo", si este fuera discreto (no infinitamente divisible).

Las denominaciones "nivel superior" y "nivel inferior" son arbitrarias en cuanto a que parece que se puede encontrar con facilidad un nivel que esté aún más bajo que el que hemos llamado "nivel inferior" -el nivel atómico es inferior al neuronal- y lo simétrico respecto al nivel superior -la conciencia colectiva es superior a la individual-. La existencia de una conciencia colectiva capaz de comunicarse a un nivel superior al del individuo parece evidente en los estudios sobre el comportamiento de algunos insectos, siempre que hagamos el esfuerzo de no interpretar el término "conciencia colectiva" desde nuestro punto de vista subjetivo como individuos. ¿Cómo conseguir esto? No es difícil, si se usa una analogía bajando un nivel. Imaginemos dos células (concretamente, dos neuronas) de nuestro cuerpo charlando amistosamente acerca de la posibilidad de que el conjunto de células forme una "conciencia colectiva". Las neuronas podrían hablar sobre esta "conciencia colectiva", ponerla en duda o intentar argumentar su existencia, pero difícilmente podrían llegar a comprenderla, no puede ser un concepto familiar para ellas.

Una Red Neuronal es usada para aprender patrones y relaciones de datos. Los datos pueden ser el resultado del esfuerzo de una investigación de mercado, el resultado de un proceso de producción dando variación a las condiciones de operación, o las decisiones de un prestamista dado un conjunto de aplicaciones de préstamo, utilizando una Red Neuronal es una salida considerable parecida a un enfoque tradicional. Tradicionalmente un programador o un analista especifican "códigos" de cada faceta del problema en orden para la computadora pueda "entender" la situación. Redes Neuronales no requieren el código explícito del problema. Por ejemplo, para generar un modelo que lleve acabo un pronóstico de ventas, una Red Neuronal solo necesita que le den los datos sin preparar relacionados con el problema. Los datos sin preparar podrían consistir en: historias de ventas pasadas, precios, precios de la competencia y otras variables económicas. La Red Neuronal escoge entre esta información y produce un acuerdo de los factores que influyen en las ventas. El modelo puede entonces ser llamado para dar una predicción de ventas futuras dado un pronóstico de los factores claves. Estos adelantos son debidos a la creación de reglas de aprendizaje de una Red Neuronal, que son los algoritmos usados para "aprender" las relaciones de los datos. Las reglas de aprendizaje habilitan a la red para "ganar conocimiento" desde datos disponibles y aplica ese conocimiento para asistir al gerente para hacer decisiones claves.

Aunque su estructura varía según el tipo de red, lo más usual es que haya tres capas de neuronas, una de entrada, que recoge los estímulos, otra oculta, que procesa la información, y otra de salida, que ejecuta la respuesta. La figura siguiente muestra esta disposición:



7.1 Red Neuronal Artificial

Las Redes Neuronales Artificiales son el resultado de investigaciones académicas que utilizan fórmulas matemáticas para modelar operaciones del sistema nervioso, es decir, es un modelo de procesamiento de información que es inspirado por el modo de un sistema nervioso biológico, tal como el cerebro procesa información. El elemento clave de este paradigma es la estructura original del sistema de procesamiento de información. Este se compone de un gran número de elementos interconectados procesando y trabajando en armonía para resolver problemas específicos. Las Redes Neuronales Artificiales, como la gente, aprenden con ejemplos. Una Red Neuronal Artificial es configurada para una aplicación específica, tal como el reconocimiento de patrones o clasificación de datos, a través de un proceso de aprendizaje. Aprender en sistemas biológicos implica ajustes para las conexiones sinópticas que existen entre las neuronas. Esto lo hace una Red Neuronal Artificial.

También, las Redes Neuronales Artificiales se han aplicado a un gran número de problemas reales de complejidad considerable. Su ventaja más importante está en resolver problemas que son demasiado complejos para tecnologías convencionales, problemas que no tienen un algoritmo de solución o que su algoritmo de solución es muy difícil de encontrar. En general, a causa de su abstracción del cerebro biológico, las Redes Neuronales Artificiales son aptas para resolver problemas que la gente puede resolver, pero las computadoras no pueden. Estos problemas incluyen reconocimiento de patrones y pronósticos (los cuales requieren el reconocimiento de tendencias de datos).

El hecho de suponer que el comportamiento inteligente en el hombre se produce a un nivel superior con independencia de los niveles inferiores está íntimamente relacionado con el debate entre holismo o creencia en que "el todo es más que la suma de sus partes" y el reduccionismo, o creencia en que "un todo puede ser comprendido completamente si se entienden sus partes, y la naturaleza de su suma."

Los esfuerzos desarrollados en Arquitecturas Generales de Inteligencia son puramente reduccionistas. Por el contrario, el holismo subyacente en los modelos conexionistas como las Redes Neuronales Artificiales, sugiere el aspecto de la interdependencia entre algunos niveles, o lo que es lo mismo, la imposibilidad de sustituir un nivel (las conexiones neuronales, como sistema sub-simbólico) por otro que realice sus mismas funciones (sistema simbólico). Sin embargo, también las Redes Neuronales Artificiales pueden ser consideradas reduccionistas si tenemos en cuenta otros niveles aún más bajos.

7.2 Modelos de Redes Neuronales

Los modelos de redes neuronales también conocidos como modelos de procesamiento distribuido en paralelo ó sistemas neuromorfológicos tienen su principio de funcionamiento basado en la interconexión de alta densidad de elementos sencillos de cómputo. La estructura de las redes neuronales ha sido desarrollada de acuerdo a nuestra comprensión del sistema nervioso biológico. Estos modelos de redes han tenido gran auge en áreas como el reconocimiento de imágenes y sonido, ya que dichas redes procesan simultáneamente varias hipótesis a través de redes paralelas compuestas de elementos de cómputo conectados a las variables ponderables. Los elementos de cómputo o nodos utilizados en las redes neuronales son generalmente no lineales y analógicos, además están caracterizados por un umbral y offset interno. Algunas de las no linealidades más comunes son: los limitadores lógicos del umbral y las no linealidades sigmoidales. Los nodos más complejos incluyen temporal y otras operaciones matemáticas más complejas. Los módulos de redes neuronales son especificados de acuerdo a la topología de la red, las características de los nodos y las reglas de entrenamiento o aprendizaje. Estas reglas indican un grupo inicial de valores y como deben modificarse esos valores para obtener un mejor resultado. La mayoría de los algoritmos de las redes neuronales realizan lecturas de los valores a analizar a lo largo del tiempo para obtener bases en resultados actuales, valores más confiables. Esto con el propósito que el aprendizaje y la adaptación sean lo más óptimo posible. Para este fin se utilizan clasificadores, los cuales tienen un grado de robustez determinado por la capacidad de adaptabilidad de la red, mayor que los clasificadores estadísticos. Mediante la utilización de las redes neuronales c




No hay comentarios:

Visita la tienda de iConocimientos