Copy Link
Add to Bookmark
Report

SET 025 0x06

  

-[ 0x06 ]--------------------------------------------------------------------
-[ Inteligencia Artificial ]-------------------------------------------------
-[ by Janis ]---------------------------------------------------------SET-25-


Una introduccion a la inteligencia artificial
---------------------------------------------


1 - Preambulo.

"A single cell cannot do much without interaction with other cells.
A single cell has no concept of the whole. "

Stewart Dean

Corre el a~o 1950 cuando Alan Turing, el padre de la teoria de la
computacion moderna propone en la prestigiosa "Computing machinery and
intelligence"
el llamado 'Test de Turing'. En dicho escrito se proponia, a
grandes rasgos, la posibilidad de la existencia de un programa o maquina
que pudiera contestar a las respuestas propuestas por un ser humano sin
que este pudiera darse cuenta si estaba hablando con una persona o una
maquina.

El citado articulo causo un gran revuelo en la comunidad cientifica de
su tiempo. Por primera vez se teorizaba sobre la creacion de un ser a
imagen y semejanza del hombre.

Ya por el siglo XVIII Jacques Vacaunson fue capaz de crear maquinas que
simulaban comportamientos en seres vivos o en el propio humano. Asi
podemos encontrar entre sus multiples trabajos un pato mecanico, capaz de
comer y andar y una maquina flautista, capaz de ejecutar piezas musicales
con gran precision.

Hubo que esperar al siglo XX y al desencadenamiento de la II Guerra
Mundial para poder estudiar los primeros pasos de la ciencia en el campo
de la computacion y de la Inteligencia Artificial. Asi Von Neuman, el
modelador de las tarjetas perforadas que usaria IBM; junto a un militar
encargado de ciertos proyectos de alto secreto se reunieron para modelar
la primera maquina que simulaba un comportamiento logico-matematico. El
ENIAC. Posteriormente vendrian a desarrollarse otras maquinas como UNIVAC,
etc. hasta el IBM 731. Sin embargo, no fue hasta 1957 cuando se acu~o por
primera vez el termino Inteligencia Artificial.


Hoy en dia las aplicaciones de la inteligencia artificial han quedado
relegadas a basicamente, programas que toman decisiones "similares" a las
humanas. Por ejemplo, sistemas de control en coches, aeropuertos, estudios
mercantiles etc. es decir, bastante alejado del sue~o primitivo de crear
un ente pensante.

Este articulo no va destinado al hecho en si de exponer las ventajas de
un sistema experto en una empresa, sino a retomar la utopia (o no tanto) a
la que volcaron tantos esfuerzos los padres de la informatica.

- Elementos de la inteligencia humana y artificial.
------------------------------------------------

En el caso de que quisieramos emular una inteligencia similar a la humana
que elementos tendriamos que desarrollar?. Aunque parezca sencillo, el
limitado conocimento humano sobre el funcionamiento de la inteligencia de
las personas, supone un gran limite a la hora de dise~ar un automata. De
ahi que existan diversas ramas en la intelgencia artificial, desde la
simulacion de parametros biologicos (redes neuronales vs. bombas
sodio-potasio de la estructura de nuestro cerebro, vida artificial,
etc.) hasta las logico-matematicas (gramaticas y estructura del
lenguaje).

En este articulo vamos a tratar solamente tres de estos temas, en _mi_
opinion personal los tres puntos sobre los que se deberian basar un
sistema que se comportara como una persona.


-Sistemas celulares: juego de la vida, jardines de Lindenmayer, algoritmos
geneticos

-Sistemas de captacion fisica: sensores, procesamiento de informacion

-Sistemas logico-matematicos: procesamiento del lenguaje, gramaticas etc.



Desde que Oppenheimer desarrollara sus teorias de la creacion de la vida
a partir de macromoleculas, muchos han sido los investigadores que han
tratado de simular las condiciones experimentales necesarias para crear
vida a partir de elementos inertes.

En la teoria de la computacion hallamos distintas teorias que bien se
podrian asemejar a estas lineas de investigacion en la microbiologia.

___________________
|AUTOMATAS CELULARES|
-------------------

[1] Juego de la vida : http://www.bitstorm.org/gameoflife/

[2] http://cgi.student.nada.kth.se/cgi-bin/d95-aeh/get/lifeeng

[3] Cellular Automata and Complexity. Stephen Wolfram. Addison Wesley

Que es un automata celular?. Segun su creador, John von Neumann; es una
matriz de n dimensiones que contiene celulas o unidades basicas de
informacion y que pueden actuar unas con otras. Segun esto, el universo
estaria acotado a las dimensiones de nuestra matriz y las reglas de
actuacion simularian las leyes de la Naturaleza. Asi, el famoso juego de
la vida de John Conway [1] es un ejemplo de lo que este tipo de automatas
puede llegar a ser. Partiendo de la base de que una celula que este sola
o acompa~ada por una celula muere y toda aquella que este acompa~ada de
mas de 3 tambien muere, solo nos queda asignarle un cuanto de tiempo al
juego y esperar. Los efectos son sorprendentes. Partiendo de un tablero
rellenado aleatoriamente, las celulas tienden a formar colonias y a
separarse por grupos. Estadisticamente, los grupos que se unen tienen mas
posibilidades de sobrevivir que los que se encuentran aislados.

El parecido con la biologia animal es sorprendente. En las formacion
del feto, existen transmisiones de informacion entre celulas para saber
que destino histologico va a tener cada uno. No en vano, cada celula
guarda cierta informacion y la transmite por medio de el ADN y ARN,
conviertiendo un celula en lo mas similar a una computadora. Recibe una
informacion de entrada y devuelve otra.

Esto se consigue en simulacion por ordenador a~adiendo nuevas
caracteristicas a las celulas y proporcionandoles reglas mas complejas.
En [2] encontramos unas celulas compuestas por otras partes mas peque~as.
Debido a esto las agrupaciones pueden tomar formas geometricas (triangulares,
etc.) gracias a las nuevas modificiaciones.

Es importante se~alar que los automatas celulares no son una
herramienta puramente teorica. Gracias a ello el estudio de la mecanica de
fluidos ha mejorado mucho, sobre todo en el aspecto de simulacion.

_______________________
|JARDINES DE LINDENMAYER|
-----------------------

[1] http://www.cogs.susx.ac.uk/users/gabro/lsys/lsys.html

Uno de los desarrollos mas interesantes de la teoria de automatas y
lenguajes formales ha sido la llevada a cabo por cientificos como Astrid
Lindenmayer (el creador originario) o Przemyslaw Prusinkiewicz.

Utilizando las recientes teorias sobre gramaticas incontextuales (en las
que cientificos como Chomsky han trabajado), Lindenmayer postulo los
principios de los L-Systems o sistemas-L. Una gramatica que permitia la
"construccion" de plantas de un modo asombrosamente parecido al que
encontramos en la naturaleza.

Una gramatica no es mas que un formalismo para la construccion de un
lenguaje. De esta manera una gramatica esta formada por cuatro elementos:
El universo de los simbolos terminales (esto es, las letras), los simbolos
no terminales (los que pueden ser sustituidos), las reglas de construccion
y el estado inicial.

{a,b} Simbolos terminales
{A,B} Simbolos no terminales
A--> aB
B--> b Nuestras reglas

Estado inicial: ABA

Bien, gracias a estos cuatro elementos vamos a ser capaces de construir
palabras y lenguajes gracias a la recursividad. El sistema consiste en la
mera sustiucion de elementos gracias a las reglas de construccion. Asi
pues, aplicando las reglas de construccion:

(1) aBbaB
(2) abbab Nuestra palabra.

Una vez hablado de esta teoria podremos comprender mas facilmente lo
que pretendia Lindenmayer. En vez de limitarse a sustituir elementos,
Lindenmayer ademas propone dibujarlos. De esta manera podemos conseguir el
dibujo de arboles. Asi pues, los elementos que Lindenmayer proponia eran
los siguientes.

En primer lugar una tortuga. Dicha tortuga posee tres parametros, los
cuales son: posicion X, posicion Y y el angulo. Gracias a las reglas,
dicha tortuga se ira moviendo hacia un lugar u otro y se decidira si va
coloreando el camino o no.

En segundo lugar una gramatica cuyos elementos mencionamos aqui:

F: Mueve hacia adelante un paso (longitud d, predeterminada).
La tortuga cambia a la posicion x'= x + d cos(a) and y'= y + d sin(a),
siendo ´a´ el angulo.

f: Mueve hacia adelante, sin pintar. Identicas
formulas que en F.

+: Gira en el sentido de las agujas del reloj.
-: Gira en sentido contrario.

Una vez definido esto, solo nos queda proporcionar una serie de reglas y
empezar a trabajar.

palabra: F+F+F+F regla : F -> F+F-F-FF+F+F-F

Puesto que es un metodo recursivo, hemos de limitar los pasos que
queremos dar. Podeis ver el objeto resultante en [1].

No en vano, la utilizacion de estos elementos, limita bastante a la hora
de construir elementos como "tronco", "ramas", etc. debido sencillamente a
la estructura mas intrinseca de las gramaticas (la recursividad sobre
todo). Asi pues, era necesario incluir elementos que permitieran la
construccion de estructuras mas lineales. Asi que se opto por el uso de
pilas.

[ : Introduce el estado actual de la tortuga en una pila. ] : Saca el
estado de la pila y lo asigna al actual de la tortuga.

En [1] podeis ver mas ejemplos de estas modificaciones.


Breves comentario:

Con los jardines de Lindenmayer hemos visto uno de los puntos mas
importantes sobre los que se basa la creacion de vida. El crecimiento del
ser. En E.G.B. nos ense~aban que un ser vivo es aquel que nace, crece, se
reproduce y muere. Hasta ahora vemos que es facilo realizar las dos
primera tareas y la ultima. No en vano, la reproduccion fisica (no
simulada en un ordenador) es quizas la mas dificil de representar (no
podemos limitarnos a meter dos robots de sexo opuesto en una habitacion
con cama, para tener peque~os robotitos por la ma~ana).

En mi opinion las bases logico-matematicas para crear un ser vivo (que
no inteligente) estan bien fundamentadas y muchos algoritmos de
comportamiento ya estan dando sus primeros resultados: colonias de
hormigas sinteticas en el MIT, robots que expresan emociones en Japon...
etc.

Los avances tecnologicos son muy importantes, sin embargo se deberian
abrir nuevas lineas de investigacion hacia avances biologicos o la
posibilidad de crear entes sinteticos capaces de reproducirse. Crear
celulas vivas.

Como he mencionado arriba, las teorias de Oppenheimer sobre la creacion
de la vida (el famoso caldo primigenio) han permitido a biologos, geologos
y quimicos la posibilidad de reproducir las condiciones medio-ambientales
que permitieron que un conjunto de elementos quimicos pudiera llegar a
tener conciencia de si misma.

Quizas en un futuro las investigaciones permitan que los humanos
podamos hacer biodroides (dejandonos de Terminators y cyborgs), modelos
sinteticos capaces de reproducirse, o lo que es lo mismo seres
artificiales.


________________
|REDES NEURONALES|
----------------
[1] http://www-ra.informatik.uni-tuebingen.de/SNNS
[2] http://pagina.de/wintermute

W. Pitts y W. Culloch lanzaron en su dia una teoria revolucionaria que
intentaba explicar el cuadro de funcionamiento sinoptico del cerebro. En
resumen, proponian que una neurona por si sola no realizaba un gran
trabajo. Sin embargo la union de esa neurona con el resto era lo que
producia resultados. A mayor numero de conexiones mayor capacidad de la
neurona. Estas teorias han sido ratificadas en nuestro tiempo, en lineas
de investigacion diferentes a las de la computacion, con enfermades como
el Alzheimer o el Parkinson.

Asi pues las redes neuronales computacionales simulan el comportamiento
de las neuronas en un sistema nervioso.
_______
X | | Y
----->| f(X) |------->
-------

Esto que he dibujado arriba es una neurona. Un conjunto de neuronas
permite realizar trabajos como reconocer objetos en fotografias.

X representa una serie de se~ales de entrada. Por decirlo de una manera
osca, es la informacion que introducimos a la neurona.
f(X) es una funcion mas o menos compleja que transforma nuestra
informacion de entrada en Y, que sera la informacion una vez procesada.

Lo que da potencia a las redes neuronales es la combinacion de
estructura, algoritmos y cantidad de unidades computacionales.

Uno de los elementos mas caracteristicos de las redes neuronales es su
capacidad de almacenamiento o aprendizaje. Al igual que en neurobiologia
se cree que las neuronas adoptan patrones de comportamiento debido a la
transmision de flujos electricos, las redes neuronales adoptan este tipo
de comportamiento. Esto normalmente se reduce a guardar informacion sobre
los datos que entran y salen de las redes. Si el aprendizaje es
supervisado, significa que existen elementos externos (humanos, sistemas
expertos) que revisa, por asi decirlo, la calidad de la informacion y la
genera guardandola en la red neuronal. Si no existen tales elementos
reguladores, la red sera no revisada. Ejemplos de este tipo de aprendizaje
es el hebbiano y el cooperativo.

Para finalizar os recomiendo que busqueis informacion sobre las
siguientes redes neuronales reales (podeis encontrar simuladores en
[1]). Una pagina realmente impresionante es la mantenida por Wintermute,
"ex"-29A que incluye tanto articulos propios como ajenos todos ellos con
una calidad envidiable y bastante originales. Podeis encontrarla en [2].



______________________________
|ELEMENTOS MATEMATICOS DE LA IA|
------------------------------
[1] Fundamentos de algoritmia. G. Brassard y P. Bratley. Prentice Hall.

[2] Kasparov vs. Deeper Blue. Daniel King. Editorial Paidotribo
Para finalizar voy a hablar ligeramente sobre algunos elementos
esenciales del mundo de la inteligencia artificial.

[3] Tractatus logico-philosophicus. L. Wittgenstein.

[4] http://library.thinkquest.org/18242/nlpoverview.shtml

[5] http://dir.yahoo.com/Recreation/Games/Computer_Games/
Internet_Games/Web_Games/Artificial_Intelligence/

[6] http://www.seattlerobotics.org/encoder/mar98/fuz/flindex.html

- Metodologia de la programacion:

Consisten en una serie de algoritmos y formas de programacion que
favorece la toma de decisiones en un sistema informatico. Por ejemplo,
tecnicas de ramificacion y poda en estructuras de datos como arboles
permiten que un juego de ajedrez sea capaz de ganar a un contrincante. Me
explico, los juegos de ajedrez suelen dar unos valores a cada posible
jugada; sin embargo a medida que se van calculando nuevas posiciones, los
arboles de decision (las jugadas) crecen exponencialmente siendo
necesarias ciertas restricciones. Por ejemplo, rechazar jugadas en las que
se pierda la reina. Los monticulos mini-max son utiles de este tipo,
programacion dinamica, "backtracking" o vuelta atras, son estilos y formas
de programar. Podeis encontrar algo de esto en [1]. Para el ajedrez os
recomiendo [2].


-Elementos sintacticos.

O el reconocimiento de estructuras del lenguaje. Desde identificar que
clase de pregunta estamos formulando hasta permitir que un ordenador pueda
comunicarse con nosotros. Os recomiendo para introduciros lecturas de
Wittgenstein [1] y Noam Chomsky. Despues podeis visitar algunas paginas
en las que vereis programas como Eliza y Barry (programado originariamente
en LISP) en [4]. Y para echaros unas risas: [5], desde donde podreis
hablar con John Lennon o el propio Jesucristo.

-Logica difusa.

Que trata la logica booleana desde un punto de vista mas estadistico,
viendo las probabilidades de que un dato se encuentre en un determinado
grupo (por ejemplo tama~os de ruedas, habra unos estandares y unos tama~os
especiales). Mirar [6].

--------------------------------------------------------------------------

Desafortunadamente existen muchos elementos que no han sido tratados en
este articulo (recuerda que no formamos a nadie ;) ), pero si quereis
saber mas podeis probar a buscar sobre los siguientes temas:

- Sistemas expertos.
- Programacion orientada a objetos (Eiffel, C++).
- Lenguajes especializados como LISP, PROLOG, Haskell.
- Maquinas de Turing...

En definitiva, he tratado de dar una vision al menos curiosa de lo que es
y lo que puede llegar a ser la IA. Espero que os haya gustado y que nos
veamos en la proxima peli de Spielberg ;).

Janis
<janis@set-ezine.org>

[ Editor: Si os interesa el tema otra vision la da John Searle en su libro
"Mente, cerebro y ciencia" donde expone la hipotesis de la habitacion
china ]


*EOF*

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT