Sistemas inteligentes y sus sociedades Walter Fritz

Resultados y experimentos

 

El GL puede aprender algunas palabras en cualquier idioma humano; hemos experimentado con inglés, castellano, alemán y francés. Puede aprender a dibujar figuras geométricas y dibujos simples. Puede aprender los conceptos de cantidad (dos líneas, cinco figuras) y puede aprender aritmética simple, expresada en cualquier lenguaje. Puede aprender a hacer abstracciones y finalmente puede aprender juegos de tablero simples.

Veamos algunos ejemplos. Utilizamos el ingles, pero con los otros lenguas obtenemos lo mismo. Del lado izquierdo mostramos la entrada de la persona y del lado derecho la salida del General Learner. Entre cada par de entrada/salida hay un NEW START (desde el menu, que limpia la pantalla), que nosotros no mostramos. (Nota; El GL comenzó con una memoria vacía. "R" significa tecla RETURN y "E" signifca tecla ENTER. Lo que tipea el usuario aparece en negrita y los comentarios, en cursiva).

 

Números y dibujos

(La persona tipea)
draw me two circles R
-- En la pantalla aparece una ventana, que dice --
"No sé qué hacer."(en ingles)
Como el GL hasta ese momento tiene una memoria vacía, no sabe qué responder.
circles E
-- La persona dibuja tres círculos con el ratón  -- E
En este punto el GL ha creado una cantidad de conceptos y también una regla de actuación:

concepto 10005
Tipo: WORD
(esto indica que el concepto contiene caracteres)
*pAddrP: circles
(los contenidos de un puntero hacia la ubicación donde los caracteres "círculos" están almacenados)
*pAddrRs: -10002
(el contenido de un puntero conteniendo el número de la regla de actuación en la que el concepto ocurre del lado situación)
Las otras partes del concepto están vacías.

concepto 10006
Type: DRWG
(esto indica que el concepto contiene un dibujo)
*pAddrT: 10007 10008 10009
(los tres conceptos compuestos que utilizan el concepto 10006)
*pAddrP: 2 0 0 0 -18
(2 indica el grosor de la línea, luego viene la ubicación X e Y, luego 0 por delta X ademas -18 por delta Y. El - 18 indica que el círculo fue dibujado con -18 en la dimensión Y.)
Las otras partes del concepto están vacías.

concepto 10007
Tipo: OBJ
(esto indica que el concepto es un objeto, teniendo ubicación y velocidad)
*pAddrT: 10010
(el concepto compuesto que utiliza el concepto 10007)
*pAddrP: 30 0 0 0 10006
(30 es la ubicación X , 0 es la ubicación Y, los dos ceros siguientes indican la velocidad horizontal y vertical y 10006 es el dibujo correspondiente)
Las otras partes del concepto están vacías.

conceptos10008 y 10009 son muy similares al 10007.

concepto 10010
Tipo: COMB
(esto indica que el concepto es uno compuesto)
*pAddrP: 10007 10008 10009
(Los tres objetos que son parte del concept)
*pAddrRr: -10002
(la regla de actuación en la que ocurre el concepto en el lado respuesta)
Las otras partes del concepto están vacías.

response rule -10002
From: LEARNEDRULE
(indica la función que creó la regla de actuación)
LastUse: 124
(el instante en el que fue usado por última vez)
*pAddrS: 10005
(el concepto del lado situación de la regla)
*pAddrW: 15
(la evaluación del concepto del lado situación )
*pAddrR: 10010
(conceptos del lado de la respuesta de la regla)
Ahora escribimos:
draw me three circles R
De la entrada, el GL entiende solamente la palabra ."circles".

Ahora le enseñaremos el concepto "two" (dos), para poder indicarle más adelante que dibuje "dos círculos."

two lines E
-- la persona dibuja dos líneas verticales cortas - - E

two lines E
-- la persona dibuja dos líneas horizontales largas del lado izquierdo de la pantalla E

two curves E
-- la persona dibuja dos curvas pequeñas en negrita. Esto se hace con el menú y el mouse -- E

DORMIR Aquí el programa entra en el modo del sueño.
Hemos utilizado la palabra "two" en tres circunstancias distintas. siempre la misma cantidad de dibujos, pero cambiando la ubicación, el tipo de dibujo, pequeño y largo, vertical y horizontal, para evitar que el GL cree conceptos incorrectos. Puede ser que hayamos dibujado solamente en la parte superior de la pantalla. Puede ser que el GL haya creado un concepto de "two" que signifique "arriba en la pantalla". Este tipo de error se puede corregir por medio del aprendizaje por refuerzo. Cuando el GL utiliza la palabra incorrectamente, indicamos nuestra desaprobación mediante el comando - flecha hacia abajo. Esto cambia los valores de la regla de actuación que el GL utiliza, por ejemplo, bajando del valor inicial de 15 al de 5.
Ahora entramos:
draw me two circles R
-- el GL dibuja dos círculos --
Ahora responde correctamente.

Siguiendo:

triangle E
-- la persona dibuja un triángulo -- E
draw me two triangle R -- el GL dibuja dos triángulos --
como el GL ahora conoce lo que es "two" y "triangle", puede responder correctamente. Nótese que no tiene en cuenta "draw" y "me". Hasta aquí no puede responder a la palabra "triangles" (la palabra en plural).


 

El GL aprende a saludar

(Persona tipeando)
i am carl R
-- en la pantalla aparece una ventana que dice --
"I do not know what to do"
i am walt E
hi walt E

i am pete E
hi pete E

i am george E
hi gorge E

SLEEP Aquí el programa entra en el modo de sueño.
Probemos nuevamente:
i am carl R
hi carl

El GL ha aprendido exitosamente cómo se saluda.

 

El GL aprende algo de matemáticas
Antes de poder enseñarle al GL algo de matemáticas, primero le tenemos que enseñar algunos números más. De manera que en la forma similar a cómo le enseñamos el concepto "two", le enseñamos los conceptos de "five" y "one" (no mostramos los detalles). Pero nótese que en vez de la palabra "five", podríamos enseñarle el signo "5" o la palabra "cinco" (o el una serie de caracteres sin sentido "asdfjkl;") o el mismo concepto en cualquier otro lenguaje o manera de anotar.

Ahora le enseñaremos substracción ("less").

five lines less one line E
-- la persona dibuja cuatro líneas angostas -- E

two lines less one line E
-- dibuja una línea larga -- E

five curves less one curve E
-- dibuja cuatro curvas en negrita -- E

SLEEP Aquí el programa entra en el modo de sueño. En este momento el GL genera un nuevo patrón de regla, relacionando la cantidad de patrones de reglas para para"two" y "one":
patrón de regla 20009
Type: PAT_OP
(tipo de patrón que indica cómo leer ContP)
Lab2Type: COMB
(tipo del segundo concepto conectado por medio de este patrón de regla)
LastUse: 133
(el momento en el que se utilizó por última vez)
wt: 20
(una evaluación entre -99 y +99)
Take2: 1
(se tomó para comparaciones el primer concepto del lado respuesta)
Det2: 1
(se tomó el concepto mismo y no alguna parte del concepto)
Lab1: 10086
(ésta es la etiqueta del concepto para "less". El GL asigna etiquetas desde el 10001 en adelante. A cada nuevo concepto que ocurre le asigna el próximo número, como etiqueta)
ContP: 78
(el contenido de este patrón de regla es la sustracción)
*pAddrRs: empty
(no utilizado en la parte situación de cualquier regla de actuación)
Probamos de nuevo:
draw me five lines less two lines R
el GL dibuja correctamente tres líneas
El GL ha utilizado el nuevo patrón de regla para relacionar "five" y "two". Ha aplicado este patrón de regla en una regla de actuación existente: "five lines" -> (dibujo de cinco líneas), modificándolo y dibujó tres líneas.

En forma similar, le podemos enseñar suma, multiplicación o división, dándole tres ejemplos de cada uno y dejarlo DORMIR después.

Ahora le enseñaremos el concepto de "big" (grande).

rectangle E
-- la persona dibuja un rectángulo pequeño -- E

big curve E
-- la persona dibuja una curva grande en negrita -- E

big line E
-- la persona dibuja una línea grande -- E

big lines E
-- la persona dibuja dos líneas grandes -- E

SLEEP Aquí el programa entra en el modo del sueño.
Ahora probamos:
draw a big rectangle R
el GL lo dibuja correctamente
draw a big triangle R el GL lo dibuja correctamente

 

El GL aprende algo básico sobre "juegos"
Como último ejemplo, veamos una sesión de ta-te-ti (en ingles: tic-tac-toe).

Primero le enseñamos los elementos que se utilizan durante el juego:

ttt-grid E (El dibujo, el "tablero" sobre el cual se juega)
-- la persona dibuja una rejilla de dos líneas verticales y dos líneas horizontales - E

ttt-cross E
-- la persona dibuja una cruz pequeña -- E

ttt-circle E
-- la persona dibuja un círculo pequeño -- E

el GL no hace nada y absorbe una enseñanza nueva

Ahora le enseñamos la regla de actuación a usar para comenzar:

ttt-grid R el GL dibuja la rejilla
(la persona señala a la izquierda con el mouse) y tipea ttt-cross R el GL dibuja la cruz del lado izquierdo de la rejilla
(la persona señala a la derecha con el mouse) y tipea ttt-circle R el GL dibuja un círculo del lado derecho de la rejilla
OPTION ENTER
(para indicar que todo lo que se muestra en la pantalla es la acción)
lets play tic-tac-toe E
(la situación actual)
El GL ahora ha creado una regla de actuación con "let's play tic-tac-toe" (juguemos al ta-te-ti) como la parte situación actual y todas las figuras que estaban en la pantalla como la parte respuesta.

Y seguimos con un juego ...

NEW START
let's play tic-tac-toe R El GL muestra la rejilla sobre la pantalla, la cruz y el círculo.
-- La persona elige "copy, move" del menu. Esto cambia el puntero a un par de pinzas --
-- La persona presiona ENTER and mueve la cruz hacia un lugar conveniente dentro de la rejilla E. -- El primer ENTER indica que ésta es la situación a la que el GL debe encontrar una respuesta. El segundo ENTER (E) completa la regla de actuación

De la misma manera se realizan muchos movimientos y el juego se juega muchas veces. La computadora aprende reglas de actuación específicas concretas (no las reglas del juego, pero pares de situación --> respuesta). Durante el período de sueño el GL abstrae y generaliza estas reglas de actuación. Ahora el GL puede responder a muchas situaciones nuevas.

 

Para leer de corrido, como un libro - continua aquí
Saltar al contenido del libro electrónico / a Sistemas inteligentes artificiales / a Programas de inteligencia artificial . . . / a Programa General Learner / al inicio de esta página.


Ultimo cambio: 7 Mar. 06 / Walter Fritz
Copyright © New Horizons Press