Untitled
Untitled
Untitled
artificial con el
ZX SPECTRUM
ROBIN JONES
MICHAEL F AIRHURST
Inteligencia
artificial con el
ZX SPECTRUM
1986
~ARANINF~
MADRID
Traducido por
LUIS CAMPOY GUILLEN
© Robin Jones and Michael Fairhurst
© de la edición española, Paraninfo, S. A. - Madrid (España)
© de la traducción española Paraninfo, S. A. - Madrid (España)
Título original inglés:
ARTIFICIAL INTELLlGENCE: ZX SPECTRUM
publicado por SHIV A PUBLlSHING L1MITED
64 Welsh Row, Nantwich, Cheshire CW5 5ES, England
Reservados los derechos para todos los países de lengua española.
Ninguna parte de esta publicación, incluido el diseño de la
cubierta puede ser reproducida, almacenada o transmitida
de ninguna forma, ni por ningún medio, sea éste electrónico,
químico, mecánico, electro-óptico, grabación, fotocopia o cualquier
otro, sin la previa autorización escrita por parte de la Editorial
IMPRESO EN ESPAÑA
PRINTED IN SP AIN
Introducción ......................................... 7
1. ¿Qué es la inteligencia artificial? ....................... 9
2. Intróducción al reconocimiento de patrones 14
3. Técnicas para el reconocimiento de patrones .............. 27
4. Reconocimiento de voz .................... .. ..... ... 38
5. Aprendiendo mallas ............. . ............... .. .. 47
6. Mallas de aprendizaje y patrones visuales ....... ........... 63
7. La comprensión del lenguaje natural. . . . . . . . . . . . . . . . . . .. 76
8. Representación del conocimiento ............... . ..... " 97
9. Juego ............................................ 117
10. Proceso de imagen .. .. .... . ..... . ................ . . . 13 1
11. Proceso de la información y modelos biológicos. . . . . . . . . . .. 148
12. Breve examen de la anatomía del ordenador ... . ....... .. . 160
Apéndice 1: PATREC-Sistema de reconocimiento de patrones de
aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 169
Apéndice 2: LIZ-Implantación simplificada de Eliza ........... 175
Apéndice 3: CONOCIMIENTo-Sistema de representación y recu-
peración del conocimiento . . . . . . . . . . . . . . . . . . . . . . . . . . .. 180
Indice alfabético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 185
5
, Introducción
Hasta aquí hemos hablado de nosotros en plural. Sin embargo, cada uno de
nosotros escribió algún capítulo en solitario, por 10 que es más natural utilizar
la primera persona "yo" en lugar de "nosotros" ; así lo haremos en adelante,
por lo que cuando digamos "nosotros deberá significar "El lector y yo".
8
1
¿Qué es la inteligencia artificial?
9
¿QUE ES LA INTELIGENCIA ARTIFICIAL?
Sin embargo, hay quien nos quiere hacer creer que precisamente,
debido a que podemos describir un proceso formal para resolver su pro-
blema, tal como el juego de ajedrez, no puede ser inteligente. Este argu-
mento parece confundir la inteligencia con la intuición. Después de
todo, un chispazo instantáneo de inspiración es un hecho claramente
intuitivo y no existe un conjunto de procesos que podamos describir
entre las premisas y la conclusión. Ahora mismo Vd. está comprometi-
do en una actividad intuitiva. El reconocimiento simple de las letras de
esta página requiere una técnica que ciertamente Vd. no acertaría a des-
cribir. ¿Cómo puede ser que acierte a reconocer una "p", una "P" o
una "p", si en cierto modo significan lo mismo? Luego tiene que con-
juntar las letras para llegar a formar palabras y finalmente tomar el sen-
tido que incorporan las frases. Este es el momento auténtico del esfuer-
zo. Las ideas que presento aquí son bastante abstractas, si bien no debe
tener (espero) dificultades en seguirlas. Pero Vd. no tiene idea de cómo
está ensamblando esas ideas o incluso qué significa realmente formar un
concepto.
Quizás la inteligencia tenga algo que ver con el nivel de abstracción
involucrado en una actividad. Después de todo, disciplinas como la
filosofía y las matemáticas tratan casi exclusivamente con ideas abstrac-
tas y tendemos a pensa"r que sus practicantes son particularmente inteli-
gentes. Pero, ¿los números no son algo abstracto? El concepto "3 na-
ranjas" puede ser bastante concreto pero el "3" en sí mismo es incapaz
de tener una interpretación correcta. ¡Los ordenadores son espe,cial-
mente buenos para el tratamiento numérico!
En términos de definición no ha habido más avances. De hecho po-
dríamos argumentar que la frase "inteligencia artificial" se escogió de
forma poco cuidadosa, dado que el concepto de "inteligencia" es algo
abstracto. Pero lo tenemos adherido a nosotros casi del mismo modo
que el teclado QWERTY que ya nadie (o casi nadie) cuestiona.
Por tanto, me gustaría proponer una definición que más o menos
ignora del todo la palabra "inteligencia" . Yo diría que quienes de algún
modo están comprometidos con lA, intentan, de forma limitada, mode-
lar algunos aspectos del comportamiento humano. Los juegos de sobre-
mesa, la lectura de libros, abrir una botella , todas son actividades huma-
nas de una forma que el cálculo de tablas de amortización no 10 es, (se
uqe voy a recibir varias cartas de queja por esta última afirmación; lo
siento, pero Vds. saben a qué me estoy refiriendo).
Esto es lo que para mí hace tan fascinante el área lA. El investigador
puede desarrollar una técnica para resolver un problema y enfrentarlo
luego a las posibilidades de realización del mismo problema por un ser
humano o puede estudiar primero la técnica humana e intentar mode-
11
¿QUE ES LA INTELIGENCIA ARTIFICIAL?
Mi robot puede
vencer al tuyo en
el test de Turing .
H
.
"'<.
12
¿QUE ES LA INTELIGENCIA ARTIFICIAL?
todo lo que sea rojo es un coche. Con mucha sensatez luego prueba su
hipótesis gritando "coche" cada vez que ve algo rojo, si no se le indica,
por supuesto, que está equivocado. El test ha fallado, la hipótesis es fal-
sa. Con frecuencia tales hipótesis son ciertas o casi ciertas y el niño
aprende mucho y muy deprisa. Por ejemplo, si se le enseña un Ford
Fiesta y se le dice que es un coche puede formar la hipótesis de que
"todas las cosas con cuatro ruedas son coches" que no está lejos de la
verdad, necesitando sólo una pequeña revisión para que distinga los ca-
miones, los coches de caballos, etc.
Examinaremos en breve las formas en que se pueden programar los
ordenadores para imitar las características humanas, al menos de forma
limitada.
l3
2
Introducción al
reconocimiento de patrones ·
El término "reconocimiento de patrones" es en sí mismo explicativo
¿o no lo es? Si se le pregunta qué significa para Vd ., probablemente dirá
algo como : "el reconocimiento de patrones describe lo que Vd. hace
cuando reconoce un patrón, es decir, cuando examina algo, como un
cuadro, y sabe qué es lo que está examinando". Bien, esto es válido en
cierta medida, pero una definición tan simple oculta una multitud de
problemas prác,ticos que nosotros, como seres humanos, con frecuencia
damos por supuesto. ¿Se ha detenido a pensar cuántas actividades dia-
rias implican este tipo de proceso que acabamos de describir?
El simple acto de leer estas palabras, requiere la posibilidad de reco-
nocimiento de patrones. En realidad, no es tan simple como eso, ya que
este "reconocimiento" sucede a distintos niveles. A nivel más bajo, para
leer este libro Vd. debe ser capaz de reconocer que ciertos patrones de
tinta y papel forman las letras, que son unos símbolos que, en términos
de su experiencia anterior, son significativos para Vd. Estas letras gene-
ralmente significan poco por sí mismas, pero agrúpelas para formar
palabras y frases y tendrá disponible gran cantidad de información. Sin
embargo, para extraer esta información, Vd. debe conocer (reconocer)
que una "S" es distinta de una "T", por supuesto, pero también que la
secuencia de las letras L-A-S está permitida, mientras que la secuencia
L-S-A no es una palabra válida.
Sin pensamos en las frases debemos aprender pronto que no todas las
disposiciones de orden de palabras conforman frases válidas. Intente
decir" ¿Hora qué decirme puede es?" a un policía, por ejemplo, y pro-
bablemente le pida que se someta a la prueba del alcohol y sople por ese
pequeño dispositivo o quizás le prepare una confortable cama para que
pase Vd . la noche. En otras palabras, la estructura gramatical es impor-
tante y hay que añadirla ciertas reglas gramaticales (¿patrones?). Esta
idea la desarrollaremos con más detalle en el capítulo 7.
14
INTRODUCCION AL RECONOCIMIENTO DE P'ATRONES
Procesos de fabricacibn
Bien, todos hemos oído de los coches construidos por las manos de
los robots.
A pesar de que, según el contexto de la discusión del capítulo 1, mu-
chos de los robots utilizados actualmente en fabricación no son real-
mente "inteligentes", ya que simplemente realizan una secuencia repeti-
tiva de operaciones, existe un gran interés en la utilización de robots
basados en sensores que son capaces de trabajar y captar el ambiente
en el que trabajan. Un área típica de aplicación, existen muchas, es la
inspección automática para detección de defectos en los productos y
mejorar así el control de calidad. El reconocimiento de patrones involu-
crado aquí trataría de "reconocer" un componente (en una línea de
montaje, por ejemplo) de calidad aceptable y distinguirle de los que se
consideran defectuosos o inaceptables por alguna razón. Así mismo, se
podrían utilizar en las fábricas robots que incorporaran un dispositivo
sensor visual para localizar, identificar y acceder a un componente para
efectuar un ensamblaje automático, luego transferirlo a una fase subsi-
guiente del proceso de fabricación, etc.
Reconocimiento de voz
Exploraciones Médicas
Proceso de Datos
Ambientes Nocivos
1![Q]~~~l!~
Patrón de 'O' " , '2 ' '3' '4' '5'
prueba Máscara Máscara Máscara Máscara Máscara Máscara
Fig. 22.-Ejemplos de máscaras de caracteres.
19
INT.RODUCCION AL RECONOCIMIENTO DE PATRONES
ayuda. Por ejemplo, sabemos siempre donde buscar los números en el che-
que, todos ellos son del mismo tamaño, los cheques normalmente están
bastante limpios, etc.
20
INTRODUCCION AL RECONOCIMIENTO DE PATRONES
EJ
6/ ,~
v\l\~k0\
I ~~.cP / ~0~
0/ ~~ ~
' \ 1~1 \ W /
\$ t®.-:&
." ES~NA
0
.~/
G\;)
?'~íI~~ :J @~
~ .~ G I-
~ '\ ~ O
Fig. 23.-Pandemonium.
21
INTRODUCCION AL RECONOCIMIENTO DE PATRONES
F L O P R
Líneas verticales 1 1 1 1
Líneas horizontales 2 1 2 2
Angulos rectos 3 1 3 3
Angulos agudos
Curvas continuas 1
Curvas discontinuas 1 1
23
INTRODUCCION AL RECONOCIMIENTO DE PATRONES
x~ xxx xxxxxx x xx x
xxxx xxxxxxxxxxxx ~xxxxx xxxxxx
xx xxx xxxxxxxxxxxx xxxxxxxxx xxxx xxxx
xxxxxxx xx,xxxxxxxxxxx xxxxxxxxxxx xx xxx
xxx xxxx xxx xxx X xxxxxxXJQxx xx xxx
xxx x xxx xxx xx x xxx x xxxx· XI xx
xxx xxx xxx xx xxxxx xxxx xx xx
xxx xx xxx xxx xxxxx Xxx x xx xxx
xxx xxx xxx xx xxxx xxxxxx IX xx
xxx xxx xx xxx xxxxx xxxxxx x xx
xxx xxx xx xxx xxx x xxxxxx xx xx
xxx xxxx xx xxx xxxx xxxxxx x x
xxx xxx xx xx xxx xxxxxxx XI x
xxx xxxx xx xx xxxx xxxxxxx xx xx
xxx xxxx xx xx xxx x xxxxxxx IX xx
~xxxxxx xx xx xxxxxxx xxxx x x xx xxx
xxxxxxx xx xxx xxxxxxxxxxx xx xx
XXXXI llXxxxxxxxxxx XXXXXXXX:K xxx x xxx
xxx XXXXXIXXXXXX XXXXXX XXXXXXXXX
xxxxxxxxx XXXXXX
x X
xx xxx
XXXXx xx XXXXXx XXXXXXX
xxxxxxxx xxx xxxxxxx XXXXXXXX
XXXXXXXXX xx XXXXXXXXX X~XXXXXXX
xxx xxx XX xxx xx xxx
xx xx xx X xxx xxx x x
xxx xx xx xxx xx xxx X
xx xxx x xx x xxx xx xxx x
xx xxx x xx X X xx xx xxx X
xx xxx x xxx x xxx xx xxx XX
xx xxx X XX X X X xxx xx
xx xx x xxx x x XX XX
xxx xx XX X xx xx xx
XX xx X xxx ~ xx xxx X xx
X xxx X xx X xx XX X
xx xxx Xx X X xx XX X
xx xx xx X xxx XX X
XXXX xx xx x XXXXX xxx x
XXXXXXXXXXXX xx XXXXXXXX x
XXXXXXIX xxx X XXXIII!
XXXX XXX XX XXXX
xxx XXX
x ·xXXXXXX ~ X
(e) (n (g)
24
INTRODUCCION AL RECONOCIMIENTO DE PATRONES
BRYSLEN
Fábrica de Automóviles
Proyecto de Inteligencia
Artificial
~~
25
INTRODUCCION AL RECONOCIMIENTO DE PATRONES
26
3
Técnicas para el
reconocimiento de patrones
Como vimos en el capítulo anterior, necesitamos desarrollar un poco
más nuestras ideas sobre el reconocimiento automático de patrones,
antes de abordar con éxito problemas del mundo real. En este capítulo
intentaremos por lo tan.to dirigirnos hacia otras técnicas generalmente
aplicables y mejor definidas; pero para ello debemos comenzar por defi-
nir con algo más de precisión algunos términos y estar de acuerdo con
algunas notaciones de expresión.
Comenzaremos con la idea de patrón. Aunque, como ya hemos visto,
pensemos que conocemos intuitivamente lo que es un patrón, necesita-
mos precisar más para que sea de utilidad. Puesto que la idea del proce-
so de un patrón (por ejemplo, su reconocimiento) requiere que tenga-
mos algo concreto que manejar, podemos comenzar observando que la
generación de un patrón debe implicar una forma de medidas del am-
biente (por ejemplo , obtención de datos en forma numérica). Esto pue-
de comprender diferentes procedimientos ya que las medidas pueden
corresponder a cosas como la intensidad de una luz en distintos puntos
de una imagen visual (obtenida por ejemplo a través de una cámara de
TV), la presencia o ausencia de los síntomas específicos en el diagnósti-
co de una dolencia, las frecuencias presentes en una onda sonora, etc.
Sin embargo, lo más importante es que si nos concentramos en el hecho
de que estamos midiendo una cantidad numérica que tiene alguna rela-
ción con el ambiente físico, podemos representar un patrón (cualquie-
ra) como una cadena de medidas de los elementos de un patrón. Estos
elementos son los que generalmente denominamos rasgos (features) de
un patrón o descriptores de un patrón (ya que considerados juntos,
"describen" el patrón) y ya podemos presentar así una notación o for-
27
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
x = (011110111111110011110011111111011110)
Observará que existen ciertas ventajas significativas al medir los ras-
gos de esta forma, en particular cuando deseamos continuar con el pro-
ceso de los patrones utilizando un ordenador.
Por supuesto, no es necesario restringirnos únicamente a la medida
de rasgos tan simples ni a patrones tan obvios como las imágenes visua-
les del ejemplo que hemos tomado .
* * **
• •
******
** **
• •
** **
• •
******
****
• •
28
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
29
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
""
ALTURA
HOMBRES
~
-lo
O
~ +
O +
O
~ +
O
O O
~ + -lo
O
O
O
MUJERES
~
PESO
30
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
l. ¿.Hubiese sid? satisfactorio haber elegido otros dos parámetros, como por
ejemplo el numero de dientes y la longitud del pelo, como los rasgos a uti-
lizar para esta tarea?
2. ¿Serían igualmente apropiados los rasgos que hemos utilizado, si hubiéra-
mos tratado de distinguir unos jugadores de una Liga de Baloncesto de
unos jugadores de la Liga de Fútbol?
, También se ~abrá fijado en que para tareas más complejas se necesita-
na un mayor numero de rasgos para poder realizar una decisión de reco-
n?ci":liento: El problema entonces habría que representarlo en un espa-
CIO dImenSIonal mayor (cualquier espacio con más de tres dimensiones
se. llama "hipe~espacio"; sí, no se asombre, existe), y la función discri-
mmante asumIría una forma matemática relativamente compleja, en
lugar de la fo~a de l~nea rect~ ~ácilmente visualizable de nuestro ejem-
plo. Vd. podna ver sm gran dIfIcultad la forma de ampliar esta idea a
tres dimensiones .
. ~or ~upuesto, también verá que, en general, para determinar la línea
dlvlsona entre los tipos (es decir, para determinar las características de
la función discriminante), necesitamos algunos ejemplos con nombre y
etiqueta de los tipos que debemos identificar.
Podemos ver, entonces que, en algunos casos, por ejemplo, en los
casos sencillos de reconocimiento de dos tipos, una función matemática
sencilla (aquí una ecuación de una línea) puede ser todo lo que se nece-
site para poder discriminar entre patrones que pertenecen a tipos dife-
rentes. Tal y como precisamos anteriormente, podemos literalmente
"ver" a qué clase pertenece un patrón trazando un diagrama donde se
han dibujado los rasgos, dibujando la línea recta divisoria y encontran-
do en qué lado de la lí,nea cae el patrón en cuestión.
Por supuesto que existe el problema de que, generalmente, no desea-
mos tener que dibujar monótonamente el cuadro cada vez que quere-
mos clasificar un patrón nuevo y, por tanto, como alternativa, utilizare-
mos las propiedades matemáticas de la función discriminante. En la
figura 3.3 , se ilustra esto brevemente. Aquí, de nuevo, hemos dibujado
dos grupos de patrones, cada uno de ellos representado por sólo dos
rasgos, como antes. De nuevo hemos deducido una función discriminan-
te, dibujando en los ejes de los rasgos una línea recta que divide los dos
grupos de patrones. Sin embargo, podemos ser más precisos, ya que po-
dríamos escribir una expresión para la relación general entre los descrip-
tores Xl y X2 correspondientes a la ecuación de la función discriminan-
te de la línea recta que hemos utilizado. Puesto que estamos tratando
con una línea recta, esto es sencillo y para este caso, la ecuación de la
línea sería:
2x¡ ...:.. X2 - 2 =O
31
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
XI
12
Clase A
11
10
Función
Discriminante
9
8
)(
~
7
" )(
Clase B
6
" )( O
5
O
4 " Y O O
3 " O
O
2 O O
O O
O
O X2
O 2 3 4 5 6 7 8 9 10 11 12
Esta ecuación representa la línea divisoria entre los dos tipos o clases.
Dicho de otro modo, cualquier patrón que tenga medidas de descripto-
res que satisfagan exactamente a la ecuación de arriba (Xl ~ 5 y X2 = 8,
por ejemplo), serían teóricamente inclasificables, ya que caerían exac-
tamente sobre la línea .
Por otro lado, cualquier patrón con los valores Xl y X2 tales como:
32
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
Tabla 3.1.
Número de patrón
Al A2 A3 A4 As A6 A7 As A9 A lo All AIl
<{
'"'"
~ XI 30 35 40 35 35 45 45 50 55 60 55 60
u
X2 25 75 60 45 35 40 55 65 70 60 50 65
BI 82 B3 B4 Bs 86 B7 Bs B9 8 10 BII BI2
ca
'"'"
'"
U Xl 30 40 45 55 65 55 65 70 80 70 85 80
X2 15 20 31 31 35 40 45 25 20 55 45 40
y así sucesivamente.
Entonces, ¿cómo utilizamos esta idea de distancia entre patrones
como base para el reconocimiento de algunos patrones de identidad des-
conocida? Bien, podemos comenzar asumiendo que (como antes) tene-
mos disponibles algunos ejemplos etiquetados e identificados de los
tipos de patrones que estamos tratando. Empleando la técnica de agru-
paci0n para reconocer un patrón desconocido, es relativamente sencillo
calcular su distancia con todos los patrones de ejemplo que tenemos y
asignarla al tipo en que se encuentra el patrón más cercano a ella, con
arreglo a nuestro criterio de distancia elegido. Podríamos expresar el
procedimiento en términos del flujograma de la figura 3.4 y Vd. debe-
ría estar capacitado para escribir por sí mismo un programa que realiza-
ra el procedimiento.
Antes de abandonar la idea de agrupación, es interesante destacar
otra característica útil de esta solución y es que puede permitirnos con-
siderar la posibilidad de clasificar patrones incluso si no disponemos de
ningún ejemplo etiquetado de miembros típicos de una clase. En esta si-
tuación, nos podemos encontrar enfrentados a un conjunto de patrones
de identidad desconocida que necesitamos dividir en categorías de
acuerdo con sus propiedades comunes. Utilizando un procedimiento de
agrupación podríamos examinar uno a uno cada patrón y asignarlo a
una agrupación si su distancia desde cualquier agrupación actualmente
disponible es menor que cualquier valor de entrada elegido arbitraria-
mente. Si un patrón se encuentra fuera de este límite de entrada enton-
35
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
no
Asignar
x a e2
Asignar x
a el
36
TECNICAS PARA EL RECONOCIMIENTO DE PATRONES
ces se utiliza para formar una nueva agrupación; de esta forma podemos
dividir nuestro conjunto de patrones en un conjunto de agrupaciones de
tipos de patrones. Por supuesto, hemos obviado la pregunta de cómo
escoger el límite de entrada para los miembros de un tipo, pero esta
aplicación puede ser un ejemplo muy útil de este tipo de técnica.
En este capítulo hemos pasado de las ideas básicas y la teoría del
reconocimiento de patrones a algunas técnicas sencillas que pueden
aplicarse en una situación práctica. Aunque hemos utilizado unos
ejemplos sencillos para ilustrar nuestros procedimientos, pienso que
Vd. ya puede comel).zar a ver cómo estas técnicas pueden extenderse
a situaciones más complejas. Sin embargo, tenga cuidado, ya que el
reconocimiento de patrones puede ser un proceso muy complejo y
a menos que los problemas estén muy bien definidos, puede que le
sucedan cosas extrañas. No se desanime, ya que precisamente este as-
pecto del reconocimiento de patrones es el que hace que en este área
de trabajo exista mucha competencia y también recompens.as Y ~llo
explica porqué tantos científicos están tratando todavía de mvestIgar
los problemas fundamentales de este tema ademá~ de explorar nuevas
y excitantes aplicaciones de las técnicas ya establecIdas.
Continuamos ahora con una tercera solución para el reconocimient~
de patrones que próporcionará algo más de flexibilidad Y presentara
también una discusión más detallada sobre cómo tratar patrones en su
ordenador. Para ampliar esto, por supuesto, debería intentar encontrar
la distancia Euclídea más corta al capítulo 5 ...
37
4
Reconocimiento de voz
En nuestra discusión de introducción en el capítulo 2 sobre las ideas
básicas del reconocimiento de patrones, yo mencioné específicamente
el problema del reco~ocimiento de vo~, ha~ien~o hincapi~ en el ~ec~o
de que este área partIcular es de gran mteres e lffip~rta?cla por SI mIs-
ma. En este capítulo discutiremos algunos de los prmclpales puntos d~
este área y, más específicamente, demostraremos cómo el reconOCI-
miento de voz, aunque se encuentra ciertamente .en. el campo del reco-
nocimiento de patrones requiere un proceso especIahzado.
El problema básico radica en el hecho de ~ue, .a diferencia de~ r~co
nocimiento de patrones y las tareas que esto lffiphca, tales como lm~ge
nes visuales de caracteres alfabéticos o incluso imágenes más complejas,
como radiografías con rayos X o imágenes tipo TV en las que los rasgos
y las características se pueden definir con relativa facilidad, por su pro-
pia naturaleza, la voz es algo difícil de definir de forma precisa tal y
como hacíamos en los ejemplos anteriores. Existen dos motivos funda-
mentales donde radica la dificultad. En primer lugar, a diferencia de la
imagen visual, que es algo que se puede considerar en términos bastante
concretos en el sentido de que Vd. generalmente la puede dibujar en un
papel y puede medir los parámetros apropiados que le permitan almace-
narla de forma bastante natural dentro de un ordenador, la voz, ~omo
decíamos es un concepto más vago y más abstracto. En segundo lugar,
la voz intrínsecamente varía con el tiempo. Es decir si Vd. intenta loca-
lizar la voz en un momento dado, entonces destruye su cualidad esen-
cial por propia naturaleza. La voz sólo se define en términos de la
variación en el tiempo y esto es más bien distinto de lo que hemos visto
hasta ahora.
Inevitablemente, por tanto, para aplicar el tipo de técnicas que he-
mos discutido previamente a los datos que constituyen la voz necesita-
38
RECONOCIMIENTO DE VOZ
~~ Su protocolo de recono-
Pues que no
cimiento de conversación
se hablen
se ha parado
~,.
9.". ~~
Jm~~
AI-/f;.6
39
RECONOCIMIENTO DE VOZ
y así sucesivamente.
Para complicar las cosas, nosotros generalmente etiquetamos los fo-
nemas con símbolos especiales a efectos de identificación.
Quizás deba observar que los fonemas se pueden agrupar en catego-
rías cuya disp~sición depende de la forma en que el grupo total de fone-
mas se produce físicamente.
Sonidos fricativos tales como la f surgen al expeler aire a través de un
paso constreñido antes de excitar una resonancia en la cavidad, pero si
se añade una vibración de las cuerdas vocales, el fonema se convierte en
una V. La categoría de fonemas que produce el sonido más alarmante
y potencialmente peligroso contine los sonidos explosivos*. Estos soni-
dos se producen cerrando la boca, creando una cámara de aire a presión
y luego soltando la presión con una vibración simultánea de las cuerdas
vocales. Afortunadamente para las personas esto es más fácil de realizar
que de describir. Un ejemRlo de un explosivo es el fonema b.
Es bien sabido que cada fonema se produce por una única combina-
ción de la actividad muscular del aparato vocal, pero ello no nos ayuda
demasiado para poder dis~ñar un sistema de reconocimiento (aunque
quienes son capaces de leer en los labios, mtentan hacer esto exacta-
mente). Lo que necesitamos en realidad es un medio de obtener descrip-
tores de patrones para la voz, de forma semejante a la que adoptamos
para patrones visuales. Para tener una idea de cómo solucionar esta
cuestión, necesitamos penetrar con un poco más de profundidad en
la naturaleza de la propia señal de la voz y hacernos algunas pregun-
41
RECONOCIMIENTO DE VOZ
Formante
Fl
Formante F2
Fig. 4.1.-Relación entre las frecuencias formantes de las vocales.
Formante'
F.
Fonnante F 2
Fig. 4.2. -Cambios en las posiciones de las forman tes.
44
RECONOCIMIENTO DE VOZ
l. En la voz continua no aparece siempre claro donde hay que situar los lími·
tes entre las palabras, en gran parte debido a que nosotros tendemos a no
establecer pausas a modo de puntos de señalización.
2. Al encadenar palabras para formar una expresión continua es inevitable
que la articulación de un sonido quede afectada por el movimiento de los
órganos vocales al cambiar de un fonema al siguiente. Como consecuencia,
se obtienen sonidos que son versiones distorsionadas de los sonidos arque·
tipo oídos aisladamente.
3. Con frecuencia omitimos enteramente algunos fonemas, particularmente si
su sonido es común al final de una palabra y el comienzo de la siguiente .
45
RECONOCIMIENTO DE VOZ
Imagine que oye esto a través de una línea telefónica y vea las ambi-
güedades que pueden surgir si Vd. tuviera que analizar el mensaje basa-
do exclusivamente en los patrones de sonidos.
Esto nos lleva al punto final que, es, tal y como ilustra el ~timo
párrafo, que con frecuencia podemos utilizar información adicional al
idioma normal hablado para ayudar a analizar el cOhtenido de un men-
saje. Esta información adicional puede obtenerse-utilizando las reglas
gramaticales y estructurales de la lengua y el contexto real del mensaje
que viene dado al considerar el significado de las palabras involucradas
en él. Esta utilización de la información sintáctica y semántica puede
aportarnos más confianza en la forma en que de~cifremos un mensaje
hablado, pero la contrapartida es que el ordenador tiene que trabajar
más para llevar a cabo el análisis que necesitamos hacer.
Finalmente, desde el momento en que llegamos a la etapa en la que
consideramos el reconocimiento de voz en el contexto de pasajes de
voz continua, o la interpretación de diálogos conversacionales, nos esta-
mos acercando cada vez más al punto en el que nuestra distinción entre
reconocimiento de voz y comprensión de voz se convierte de nuevo en
algo importante y volvemos a las preguntas que nos hacíamos al co-
mienzo de este capítulo. Estamos también en un punto en el que el
área del lenguaje como un todo, en lugar de patrones de sonidos indivi-
duales, se convierte en el foco de atención; esto nos conducirá clara-
mente, tras una corta pausa en los dos próximos capítulos al área de la
Comprensión del Lenguaje Natural, que es el tema del capítulo 7.
46
5
Aprendiendo mallas
Una de las puntualizaciones que hice en el capítulo 2 sobre las posibi-
lidades del aprendizaje humano , se relacionaba con nuestra facilidad
para generalizar. En este capítulo, examinaremos un modelo electrónico
del proceso, de aprendizaje en el que es fácil ver cómo ocurre el proceso
de generalización.
Primero necesitamos algunos conocimientos. Piense por un minuto
en un fragmentq de m'emoria de ordenador que consta de ocho bits en
el que cada bit se puede direccionar por separado. Necesitamos pues
tres bits de direccionamiento para poder identificar los ocho bits de
datos numéricamente, del O al 7. También necesitamos un elemento de
datos para almacenar (un sólo bit) y una señal de control que indique al
sistema si debe escribir o leer un bit de la memoria. Por tanto, podría-
mos verlo así :
1, bit de datos I U 0
0
h
" 2
3
I 0 4
I 0 5
0 6
" 7
bits de
dirección
L....._ _ _ _ _~ sonda
I ~ b;, de control
,, = leer
1= escribir
47
APRENDIENDO MALLAS
dirección
______-+. patrón
-------+. reconocer
control [leer
-+.
escribir _ _ _ _ _ _ enseñar
Por supuesto que varios patrones pueden considerarse como del mismo
tipo, mientras que 10 que se pretende que represente cada patrón puede
variar. Podría ser un patrón visual o cualquier otra estructura represen-
tativa diferente. Si pensamos en que nuestro patrón de 3 bits representa
enteros positivos, por ejemplo, podríamos enseñar al dispositivo a dis-
tinguir entre los números pares y los impares. Después de un ciclo com-
pleto de enseñanza, tendríamos:
clasificación '1
señal
0 0
,~oo{
0 2
1 3
0 4
5
0 Ó
48
APRENDI E NDO MALLAS
patrón
reconocer/enseñar
49
APRENDIENDO MALLAS
1 o
0 1
0 2
o 0 3
o 0 4
o 0 5
0 6
0 7
0 o
0 1
0 2
0 3
0 4
0 5
0 6
1 7
1 o
0
0 2
1 3
1 4
0 5
0 6
-
0 7
0 o
1 I
0 2
0 3
0 4
1 5
0 6
1 7
51
APRENDIENDO MALLAS
20 DIM n$(2)
Inicializar (1000)
Enseñar (1200)
Reconocer (1400)
Los números entre paréntesis indican los números de línea en los que
comienza cada rutina. Al agrupar la codificación, Vd. puede escribir:
GOSUB 1400
GOSUB 1000
GOSUB recon
GOSUB íníci
etcétera.
52
APRENDIENDO MALLAS
inicializar
Comenzaremos esta rutina con los razoriamientos usuales que son los
más sencillos:
1000 FOR p = 1 TO 2
1010 LET n$(p) = CHR$ O
1020 NEXT p
1030 RETURN
enseñar
53
APRENDIENDO MALLAS
bina
54
APRENDIENDO MALLAS
El uso de "> =" en la línea 1700 indica que pad creará una cadena de
longitud seis para nuestros fines, pero bina puede aún utilizarse para va-
lores de num mayores de 63 y, en tal caso, creará simplemente una ca-
dena con longitud mínima.
ponbit
00110000
01000000
00110pOO
DR con 00001000 (= 23 )
= 00111000
00011000
DR con 00001000 (=2 3 )
=00011000
55
APRENDIENDO MALLAS
y puesto que evalúa expresiones condicionales como "a < 7" para O
(falso) ó 1 (verdadero), no importa si no se tratan los otros valores de
forma convenciona1.
Podríamos profundizar en esto de distintas formas, pero es obvio que
puesto que las operaciones lógicas con bits de este tipo se suministran
directamente en código Z80, una rutina en código de máquina es la so-
lución más sencilla.
Si no está familiarizado con el código de máquina en un Spectrum,
lo que sigue le puede parecer una receta de cocina, pero si Vd. quiere
comprender realmente 10 que hacemos, le sugiero que lea algún libro
especializado.
1 CLEAR 31999
56
APRENDIENDO MALLAS
LET or = 32002
El código de máquina
LO 8,00 06·00
LO HL,7000 21 00 70
LO A, (HU 7E
INC HL 23
OR A, (HL) 86
LOC, A 4F
RET C9
Pruebas
90 GOSUB inici
100 GOSUB enseñar
110 LET num = CODE n$(l ):GOSUB bina:PRINT b$
120 LET num = CODE n$(2):GOSUB bina:PRINT b$
130 GOTO 100
Reconocimiento
58
APRENDIENDO MALLAS
and es una rutina en código de máquina que hace el AND de los bytes
32000 y 3200l. El valor con el que se ha hecho POKE en la 32000 es
una máscara que permite solamente el ·paso del bit direccionado de
n$(p) que está en 32001. Funciona así: supongamos que tenemos 0100
en s$. Luego queremos examinar el bit 4 de n$(p). 2 t VAL ("BIN"
+ s$) es 2 t 4 = 16. Por tanto, el valor hecho poke e.s:
00010000
abcdefgh
generando:
OOOdOOOO
Hex Decimal
32012 LO 8,00 06 00 6, O,
LO HL, 7000 21 00 70 33, O, 125
LO A, (HL) 7E 126,
INC HL 23 35,
ANO A, (HL) A6 166,
LOC, A 4F 79,
32021 RET C9 201
Prueba final
y co¡tipúe:
Esto nos sugiere que hay que indicar al sistema unas pocas cosas para
que comprenda completamente el concepto de "número impar", en el
supuesto de que escojamos los ejemplos más sugestivos.
Puede ser instructivo examinar los patrones de bits creados al enseñar
los números impares 1, 3, 5, 7 y así sucesivamente hasta el 63. Por su-
puesto, podríamos hacerlo utilizando el programa llamador en curso,
pero sería más fácil sustituirlo por:
90 GOSUB inici:LETseñal = 1
95 FO R q = 1 TO 63 STEP 2
96 LET num =q
100 GOSUB enseñar + 20
110 LET num = CODE n$(l):GOSUB bina:PRINT b$
120 LET num = CODE n$(2) :GOSUB bina:PR INT b$: T AB 28;q
125 NEXT q
60
APRENDIENDO MALLAS
000001 000010 1
000001 001010 3
000001 101010 5
000001 10101010 7
000011 10101010 9
000011 10101010 11
Aquí tenemos algo interesante. Las cinco primeras entradas han cam-
biado el patrón de bits y, si Vd. quiere, se han incorporado al almace-
namiento del conocimiento. Pero la sexta (11) no puede haber hecho
nada útil ya que el patrón de bits permanece inalterado. Por supuesto,
si lo decimos de otra forma, significa que el sistema podría haber reco-
nocido el 11 habiéndose entrenado con los cinco números precedentes.
Continuemos:
000011 10101010 13
000011 10101010 15
000111 10101010 17
1,3,5,7,9,17,25,33,41,49,57
11111111 10101010
abcd a bcd
61
APRENDIENDO MALLAS
62
6
Mallas de aprendizaje
y patrones visuales
N uestra primitiva malla de aprendizaje del capítulo 5 podría distin-
guir, de modo limitado, entre distintos tipos de números. Pero esto 10
hacía de un modo completamente no numérico; de hecho, simplemente
examinaba patrones de bits. Por tanto, no es un salto de gigante sugerir
que debemos ser capacer de diseñar un sistema semejante para recono-
cer patrones visuales (dibujos y símbolos) en el supuesto caso de que
puedan representarse como combinaciones de ceros y unos.
Esto es sencillo. Después de todo, una fotografía de un periódico
consta de puntos (o ausencia de ellos), por 10 que podemos utilizar un
"1" para el "punto" y un "O" para el "espacio" de forma casi idéntica.
En el caso de la fotografía impresa variando la densidad con la que
están empaquetados los puntos se consigue una escala de grises.
Nosotros no podemos hacer esto; por tanto, nuestras "imágenes"
serán en blanco y negro,(de momento, porque más tarde veremos como
se puede representar una escala gris).
Vamos a ceñirnos a un pequeño conjunto de patrones que conste de
los dígitos 1,2,3,4,5,6,7,8 Y 9.
El "5" a parecería así:
63
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
00000000
00001100
01111100
01100000
01111000
00001100
00001100
00001100
00011100
00111000
00000000
00000000
DIM r$(12,8)
DIM c(96,2)
65
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
Esto nos indica que los tres pixels que forman la dirección o patrón
de entrada para la celda 1 se encuentran en r$ (7,2), r$ (3,6) y r$ (4,4)
Y que los de la celda 2 están en r$ (6,5), r$ (8,1) y r$ (9,6). Podernos
inicializar c laboriosamente a mano, o por medio de alguna rutina al
azar. En cualquier caso, nos ocuparemos de ello más adelante.
En este momento deberíamos comprobar la cantidad de memoria
que se va a utilizar. Cada número ocupa 5 bytes; por tanto, la matriz de
coordenadas es 96 X 2 X 5 = 960 bytes. Además, r$ es de 96 bytes y n$
será ahora de 32 bytes. Todavía estarnos aproximadamente sobre lK de
memoria, 10 cual no presenta problemas. Si deseamos incrementar más
tarde el tamaño de la retina, será bueno no olvidar que c puede crearse
como una matriz de caracteres, ya que no contiene nunca valores mayo-
res de 255. Esto disminuiría el espacio necesario para la matriz en una
quinta parte. De todas formas he hecho que la retina sea una matriz de
caracteres por razones que pronto veremos justificadas.
1000 FOR p= 1 TO 32
66
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
retin (2400)
limpia (2600)
Esto es fácil:
2600 FO R y = 1 TO 12
2610 LET r$(y) = "00000000"
2620 NEXT y
2630 RETURN
editar (2800)
68
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
Probablemente esté pensando en algo más claro que las líneas 2820-
2830 pero ¡es difícil escribirlo! Copiar tomará el patrón actual de unos
(1) en r$ y le mostrará como cuadros negros en la pantalla .
. Ahora las características de edición. Cada celda se puede editar co-
menzando a partir del ángulo superior izquierdo. La celda que se puede
editar actualmente, contendrá un signo "#" actuando como cursor. Las
teclas de cursor (sin SHIFT) permitirán que el cursor se desplace a vo-
luntad. Un editar consistirá en la simple pulsación de la tecla EDIT (de
nuevo, sin SHIFT), que combinará el estado de la celda marcada (es
decir, de plano de fondo a negro o de negro a plano de fondo). Se pue-
de abandonar el modo editar pulsando ENTER:
69
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
copiar (3000)
3000 FOR y = 1 TO 12
3010 FOR x = 1 TO 8
3020 IF r$ (y,x) = "1" THEN PRINT AT y,x; "."
3030 NEXT x
3040 NEXT y
3050 RETURN
lanzar (3200)
Pero como son caracteres, si quiero hacer ese truco tengo que conver-
tir el carácter en número (utilizando V AL), hacer un NOT al resultado
e invertir el proceso con STR$:
3200 LET r$(y,x) = STR$ NOT VAL r$(y,x)
3210 IF r$(y,x) = "1" THEN PRINT ATy,x;"."
3220 IF r$(y,x) = "0" THEN PRINT AT y,x;" "
3230 RETURN
70
MALLAS DE APRENDIZAJE Y PATRONES VISUALES
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
.--
12 5
12 6
12 7
12 8
3400 FO R y = 1 TO 12
3410 FORx=1T08
3420 LET e(8 * (y - 1) + x,1) = y
3430 LET e(8 * (y - 1) + x,2) = x
3440 NEXT x
3450 NEXT y
3460 RETURN
72
MALLAS DE APRENDlZAJE y PATRONES VISUALES
Reconocimiento
1400 CLS:LETtot=O
1410 PRINT AT 20,0; "Introduzca la figura a reconocer"
1420 GOSUB retin
1430 FORp=1T032
1440 GOSUB tomabits
1450 GOSUB sacabit
1460 IF bit THEN LET tot = tot + 1
1470 NEXT P
1480 I F tot = 32 THEN PR INT "5"
1490 RETURN
Pruebas
Es por esto por lo que fue conveniente comenzar con una representa-
ción tan directa; es fácil decir qué pixels son miembros del mismo blo-
que o no. Sin embargo, ahora podemos combinarlo si queremos.
En el arra y c está cada par de coordenadas, por tanto lo único que
necesitamos hacer es volver a disponer su orden. Podríamos escribir una
rutina llamada desordenar, para hacer esto:
Proyectos
75
7
La comprensión
del lenguaje natural
Durante casi cuarenta años los científicos relacionados con los orde-
nadores han dedicado un gran esfuerzo al diseño de lenguajes artificiales
con los que dialogar con los ordenadores. Primero vinieron los códigos
ensambladores y de máquina, lenguajes dificultosos en el sentido con-
vencional. Luego, a mediados de la década de los 50, apareció el FOR-
TRAN seguido rápidamente por el ALGOL60, COBOL, BASIC, LISP
y PL/ l. Después de una pausa vinieron APL, Pascal, C y más reciente-
mente Prolog, Ada y Occam. Esto no constituye, en absoluto, una rela-
ción exhaustiva: existen literalmente cientos de lenguajes de ordenador
que se utilizan actualmente. Existen además dentos de ellos más que
han florecido de forma breve, quizás en un ambiente limitado, antes de
ser sustituidos por otra alternativa más conveniente.
Por tanto, ¿por qué ha sido necesaria esta proliferación de lenguajes
de ordenador? ¿Por qué no se ha desarrollado un lenguaje de ordenador
multi-propósito? O incluso mejor, ¿por qué no se canalizó todo este
esfuerzo para lograr que el ordenador comprendiera los mandatos escri-
tos en idioma inglés ordinario? (o francés o castellano, etc.).
Veamos una a una todas estas preguntas. Primeramente, se han reali-
zado intentos para diseñar lenguajes multi-propósito. Hoy día, general-
mente están considerados como de difícil manejo. Su propia naturaleza
cerrada les hacen difíciles de recordar, menos aún la utilización correcta
de todas sus características. Los lenguajes modernos multi-propósito
tienden a tener pocas funciones intrínsecas, pero permiten al usuario
escribir las suyas propias y encadenarlas fácilmente con el cuerpo del
lenguaje, para hacerle crecer si así lQ desea. La última solución tiene, sin
embargo, un inconveniente en sí misma. Significa que se deben escribir
toda una serie de utilidades, clasificaciones, procedimientos de búsque-
da, etc. No son parte esencial del lenguaje. En cierto sentido, tenemos
algún tipo de código de máquina muy potente.
76
LA COMPRENSION DEL LENGUAJE NATURAL
1. Ca1cular la suma de 17 y 38 .
2. Quizás desearía sumar 17 a 38.
3. ¿Cuánto es 17 más 38?
PRINT 17 + ·38
PRINT38+ 17
o:
77
LA COMPRENSION DEL LENGUAJE NATURAL
pero en todos los casos la palabra PRINT y la operación "+" son ele-
mentos centrales de las posibilidades BASIC para interpretar y ejecutar
el mandato .
Es la asombrosa flexibilidad de un lenguaje natural la que le confiere
su potencia y es esa flexibilidad la que aporta los mayores dolores de
cabeza al diseñador potencial de un sistema de entendimiento o com-
prensión de un lenguaje natural.
Empleemos algo más de tiempo en la costa tratando de encontrar
algunas conchas marinas antes de adentrarnos en las aguas profundas.
SINTAXIS Y SEMANTICA
alguno. Esto no nos detiene para establecer la estructura que tiene pro-
bablemente la frase. "ramar" parece ser un verbo; "berco" un adjetivo
y "mareta" un sustantivo. Si yo le dijera:
Vd. me podría decir "No tengo ni la más vaga idea de 10 que está Vd.
hablando, pero ha puesto un adverbio donde deber estar un adjetivo".
Es trañ o ¿verdad?
. La realidad es. que si no tuviéramos esta especial habilidad o in tui-
ción, seríamos incapaces de mejorar nuestro vocabulario o incluso
aprender el lenguaje en nuestra infancia. Después de todo, la alternativa
es rehusar obstinadamente a involucrarnos con una frase que incluye
una palabra nueva para nosotros, tal como procedería un intérprete o
un compilador de lenguaje. Por 10 tanto, si utilizo una palabra que no
está en su vocabulario, por ejemplo "mesa", Vd. dira "No comprendo la
palabra mes¡:¡" y yo respondo "Una mesa es una estructura de madera
con cuatro patas que soportan una superficie plana" y Vd. dice "No
comprendo la palabra mesa". ¿No es frustrante?
Así pues, parece como si las personas analizaran la sintaxis y la se-
mántica de una sentencia al unísono. Cada parte aporta pistas a la otra.
Podemos verlo muy claramente en mi ejemplo preferido:
ARBOLES SINTACTICOS .
Adjetivo
Sustan-
tivo
80
LA COMPRENSION DEL LENGUAJE NATURAL
ELlZA
81
LA COMPRENSION DEL LENGUAJE NATURAL
¿Ve Vd. lo que quiero decir con "conocimientos reflejados"? Eliza está
analizando simplemente las frases que aparecen, de forma sintáctica, y
luego recomponiéndolas en una afirmación o una pregunta, cambiando
el "yo" por el "tú", "mi" por "tu", "siento" por "sientes" y así suce-
sivamente.
Eliza no tiene ni remota idea de lo que significa ."descansado" o que
está relacionado con el insomnio, o que "pasar una mala noche" es otra
forma de decir "pasar una noche en vela". ' Ni siquiera sabe que lo
común es dormir por la noche. Las personas utilizan una cantidad
extraordinaria de conocimientos acumulados para comprender incluso
el sentido de una conversación tan trivial como ésta.
Sin embargo, desde un punto de vista externo, Eliza llevaría a cabo,
de forma notable, el test de Turing. Puede ser engañoso para quien no
conozca como funciona. Por ejemplo, a un amigo mío sin relación con
los ordenadores le mostré cierto día una implantación del programa lla-
mado Analiza 11. Por espacio de veinte minutos mantuvo con el progra-
ma una conversación aparentemente sensata, si bien superficial y quedó
altamente impresionado. Sin embargo, el tema, por alguna razón, se
tornó en las actividades del servicio secreto y mi amigo tecleó:
Yo creó que tú eres un miembro de la Compañía TO YO SA
Analiza respondió:
¿Por qué crees que yo soy un miembro de la Compañ ía To tu SA?
Yo «verbo» «objeto»
y
Sí
como parte del objeto en lugar de como parte del verbo, ya que son tan
fijos como el objeto y están obligados a precederle.
Por supuesto, si Liz realizara siempre esta transformación exactamen-
te de esta forma, sería muy aburrido; por tanto deben existir transfor-
maciones opcionales, seleccionadas al azar. Una de ellas ,se muestra en
"Por tanto, tuvo Vd. una mala noche", cuyo formato general es:
Liz tendrá dificultades con las respuestas monosílabas como "sí" por-
que no aportan nada a Liz para que trabaje. A este tipo de respuesta las
llamaré de "no compromiso", ya que sus miembros nunca aportan nada
a 10 que ya se ha dicho. Algunos ejemplos son "No", "correcto" y "De
acuerdo". Este último no es un monosílabo, pero todavía hay alguno
peor. Dentro de la misma categoría están "Veo que" y "pensaría así",
pero ¡éstas además incluyen verbos! de forma que Liz en estos casos
generaría probablemente alguna prosa inmortal como "Por qué supo-
ne que pensaría así?
En mi diálogo de ejemplo, Eliza contendió con la respuesta de no
compromiso volviendo al último objeto. El formato general es:
que suena más pomposo. Por otra parte, intentar hacer la transforma-
ción de "una" a "su" sería contraproducente. Después de todo, es un
fragmento del idioma con una particular idiosincrasia. Implica la pose-
sión de la noche. Sería mejor solución transformar un artículo indeter-
minado "una" en el artículo determinado "la" en base a que todo lo
que se refiera a ello ha ocurrido con anterioridad. Cuéntame más sobre
la mala noche no suena demasiado mal.
Liz también se encontrará en dificultades con las preguntas, ya que
no conoce ninguna respuesta. Lo más sencillo es asumir que el interlo-
cutor humano está capacitado para introducir un signo de interrogación
para indicar la presencia de una pregunta. Luego Liz puede obrar a la
defensiva y ofrecer una serie de respuestas almacenadas tales como "Me
temo que no lo sé" o "No puedo responderle".
Esto nos lleva a otra posible transformación del objeto (la primera
fue "una" que se convirtió en "la"). Si Liz dice:
84
LA COMPRENSION DEL LENGUAJE NATURAL
No puedo responder
invita a la respuesta:
y:
85
LA COMPRENSION DEL LENGUAJE NATURAL
obtengo
obtiene
obtuve
puedo
seremos
sería
--
Cada entrada de v$ contiene una forma de cada verbo sin ninguna
ordenación. Ahora buscaver puede realizar una búsqueda lineal en esta
lista.
86
LA COMPRENSION DEL LENGUAJE NATURAL
~
~(
,..a¡.
EL CODIGO
140 LETo$=s$(pTO)
87
LA COMPRENSION DEL LENGUAJE NATURAL
parada (1000)
q$
Me temo que no puedo responder que
No lo se
No puedo responder preguntas como esa
¿Qué le hace preguntar eso?
88
LA COMPRENSioN DEL LENGUAJE NATURAL
La codificación es:
buscaver( 1,200)
89
LA COMPRENSION DEL LENGUAJE NATURAL
Cuando esté Vd. probando esto, es posible que existan algunas llama-
das a barquillo no esperadas debido a que se haya olvidado de introdu-
cir algún verbo obvio en v$, por lo cual necesitará en realidad una rutina
adecuada para añadir entradas a v$.
transobj (1400)
soy eras
fuí fuiste
mío tuyo
me te
90
LA COMPRENSION DEL LENGUAJE NATURAL
buscapal (1600)
1600 LET p = ep - 1
1610 IF p>O THEN IF s$(p) <>" "THEN LET p= p -1:
GOTO 1610
1620 LET p = p + 1
1630 LET w$ = s$(p TO epI
1640 RETURN
barquillo (1800)
La rutina barquillo puede hacer dos cosas básicas. Puede ser algo no
comprometedor, como decir "continúe" o puede utilizar el objeto ante-
rior (que estará todavía en 0$) para formar una frase como "Cuéntame
más sobre tus padres".
91
LA COMPRENSION DEL LENGUAJE NATURAL
Continúa
1800 FOR p= 1 to 10
1810 IF o$(p) ="" THEN GOTO 1830
1820 NEXT p
1830 LET r= INT(RND * 3) + 1
1840 LET r$ = c$( r)
1850 I F RND> 0.5 THEN LET r$ = r$ + "sobre porqué" + 0$
1860
1870
. PRINT r$
RETURN
select (2000)
92
LA COMPRENSION DEL LENGUAJE NATURAL
Cuentos
~
tt .
c".~
Triturador (2200)
Prueba
94
LA COMPRENS!ON DEL LENGUAJE NATURAL
Checksub (2400)
2400 LET vt = 1
2410 IFs$(p-2)="Yo"THEN RETURN
2420 LET ep = p - 2: GOSUB buscapal
2430 IF w$ = "Vd." THEN LET 0$ = "pienso que yo" + o$:RETURN
2440 IF w$ = "nosotros" OR w$ = "ellos" OR w$ = "ello"
THEN LET 0$ = "piensan/mos" + w$ + " " + 0$:
LET vt = O:RETURN
2450 LET 0$ = "piensa que él" + w$ + " " + 0$:
. LET vt = O: RETURN
1405 LET st = 3
1406 IFvtTHENLETst=l
1440 FOR a = st TO 4
Proyectos
l. Modificar barquillo para que la conversación pueda volver a uno de los te·
mas anteriores, no al más reciente. Esto asegurará la creación de un array
para 0$ y la selección de uno de sus elementos al azar. Comoquiera que
este array no puede ser indefinidamente largo, en algún punto se deberán
descartar los antiguos objetos en favor de los más recientes. Sin embargo,
no olvide que en la conversación humana, no ocurre con frecuencia esta
especie de marcha atrás; por tanto debería haber un cierto peso a favor del
tema más reciente.
2. Por ahora, el vocabulario de Liz es fijo. Sería posible permitirle que , hasta
cierto punto, aprendiera verbos de su interIocu.tor humano . La palabra que
sigue a un "yo" es muy probable que sea un verbo y con cierta menos pro·
babilidad la que sigue a un "tú", "él", "nosotros", etc., también lo sea. Así
pues Liz podría preguntar si una palabra es un verbo cuando la encuentra
desconocida detrás de un pronombre y añadirla a v$ si obtiene una res·
puesta afirmativa.
Sin embargo , tenga cuidado con esto. Recuerde un consejo de alguien
que dijo:
3. Unas veces Liz le hace una pregunta y otras forma una afirmación. Por el
momento, en ninguno de ambos casos inserta el ' signo de interrogación.
Modifíquelo para que lo inserte de forma apropiada.
4. Permita que Liz trate ciertas contracciones como a el (al) de el (del) etc.
Haga también que Liz puede tratar correctamente las letras mayúsculas
(por ahora, no transformará "Tú" en "m~", por ejemplo).
96
8
Representación del conocimiento
Hemos visto 10 fácil que es engañar a un intérprete de lenguaje natu-
ral que dispone solamente de reglas de sintaxis (¿recuerda el maíz y el
elefante?) y cómo se enfrenta Liz con los problemas, ignorándolos. Por
supuesto, no podemos permitirnos una solución tan fácil; no sería de
utilidad.
Así pues, tenemos el.problema de cómo vamos a dar a la máquina un
"modelo universal"; de cómo, en realidad, podemos representar en ella
el conocimiento.
Para percatarnos de la dificultad que encierra este problema y cómo
10 resolvemos los humanos, aparentemente sin esfuerzo, consideremos
el párrafo siguiente:
·Julia pensó que podría conducir hasta la casa de Ana. Tocó el tim-
bre de la puerta , pero no obtuvo respuesta. Así pues, volvió a la
ciudad.
ARBOLES DE CONOCIMIENTOS
Supongamos que dice Vd. a Liz, "Yo tuve una discusión con mi pa-
dre". Sería bueno que Liz pudiera decir "Cuéntame más sobre tus
padres". Para ello Liz necesi taría saber que existe una relación entre
"padre" y "padres" (en el sentido de padre o madre). Podemos formali-
zar estas relaciones por medio de árboles como éste:
l' arien-
te no de
sangre
" \ (arielite,
'por ma- I
tr"monio/
98
REPRESENTACION DEL CONOCIMIENTO
O como éste:
---.......
Muebles
' --
0siento
,Banqueta
Cada nodo puede quedar representado por un array tipo cadena que
alberga su contenido más dos apuntadores a sus nodos hijos. Así, el
árbol de los muebles aparecería así :
n$ p
1 muebles 2 3
2 asiento 4 5
r----
3 mesa 6 13
4 banqueta 12 7
5 silla 8 9
6 patas mesa 0 0
7 tapa banqueta 0 0
8 patas silla 0 0
9 cuerpo 10 11
10 respaldo 0 0
11 asiento 0 0
12 patas banqueta 0 0
13 tablero 0 0
100
REPRESENTACION DEL CONOCIMIENTO
CRECIMIENTO DE ARBOL
o:
y obtener:
Crecer (1000)
1000 INPUT "Partes de"; e$( 1); "son"; e$(2); "y"; e$(3)
102
REPRESENT ACION DEL CONOCIMIENTO
o 1M e$ (3,20)
para que coincida con n$. También mantendremos en un array, q un re-
gistro que contenga dónde apuntan los elementos de e$ (si ha lugar):
DIM q (3)
e$ 'q
banqueta
o
patas de ban·
queta o
asiento
banqueta o
para comenzar. Ahora buscaremos en n$ cada elemento de e$ para em-
parejarlos. Si encuentra uno, hace que el elemento correspondiente de q
apunte adonde se le encontró:
1010 FOR i = 1 TO 3
1020 LET q(i) = O
1030 FOR r = 1 TO 100
1040 IF n$(r) = e$(i) THEN LET q(i) = r:GOTO 1060
103
REPRESENTACION DEL CONOCIMIENTO
1050 NEXT r
1060 NEXT i
Para aclarar cómo actúa esta rutina, vamos a seguirla para las tres prime-
ras entradas (banqueta, patas de banqueta y tapa de banqueta) y luego
añadiremos "Partes de un asien to son banqueta 'y silla".
Por supuesto, es posible que no se encuentre emparejamiento en n$
para las tres primeras entradas; si fuera así, las líneas 1010 a 1060 ejecu-
tarían una búsqueda infructuosa sin tomar acción alguna. En conse-
cuencia, en el bloque de codificación siguiente (líneas 1070 a 1120) las
tres entradas de e$ se añaden a n$ (q(i) siempre es cero) y tenemos:
n$ p
banqueta 0 0
patas de
banqueta 0 f/J
asiento de
banqueta 0 f/J
e$ q
104
REPRESENT ACION DEL CONOCIMIENTO
qm
mente a "patas de banqueta" y "tapa de banqueta". Cuando añadimos
asiento , banqueta y silla tenemos sobre la entrada:
e$, Asiento I 0
Banqueta I 0
Silla 0
(En realidad esto no es deHo del todo, ya que q no vuelve a valer cero
hasta que entra la rutina de búsqueda, pero el efecto es el mismo).
Esta vez la búsqueda detecta una referencia previa, por 10 que se
obtiene:
~$
asiento
ban~ueta
qEB
silla
105
REPRESENT ACION DEL CONOCIMIENTO
e$ q
asiento 4 pff
banqueta 1
silla 5
1 banqueta 2 3
patas de
2 banqueta 0 0
tapa de
3 banqueta 0 0
4 asiento 1 5
5 silla 0 0
RECORDANDO CONOCIMIENTOS
107
REPRESENTACION DEL CONOCIMIENTO
madre (2200)
y luego buscarla en n$
hijas (2400)
2400 O 1M m$(20)
2410 I NPUT "Averiguar las hijas de".; m$
2420 FOR i = 1 TO 100
2430 IF n$(i) = m$ THEN GOTa 2450
2440 NEXT i
108
REPRESENTACION DEL CONOCIMIENTO
¿No le sugiere esto nada? Pues bien, si desde las subrutinas madre e
hijas hubiera llamado a otra denominada buscanodo, me hubiera ahorra-
do tener que escribir dos veces esta codificación, que es la misma que
madre.
Sin embargo, el siguiente fragmento es diferente y muy sencillo. En
el supuesto caso de que no sean cero, los apuntadores de la fila que he-
mos encontrado nos dan las filas para las hijas:
conex (2600)
Esta vez comenzaremos por buscar dos nodos. Vamos pues a escribir
buscanodo. Definamos 'su función. Acepta t$ (previamente dimensiona-
do con longitud 20), busca coincidencia sobre n$ y devuelve i, que es la
fila donde encuentra la coincidencia. Si no se encontrara coincidencia
alguna , devuelve una variable coinc = O; si la encuentra la devuelve a l .
Así pues, buscanodo es:
Así pues, ahora tenemos apuntadores a los dos nodos que estamos in-
vestigando en j y en k. ¿Qué hacer con ellos? Como de costumbre, to-
memos un ejemplo para clarificar las ideas. Supongamos que creamos
dos arrays tipo cadena cuyos primeros miembros sean los dos nodos
recién encontrados. Si, por ejemplo, estamos conectando "banqueta" y
"patas de mesa":
a$ b$
~
Para cada uno de ellos trazamos un camino hacia la raíz:
a$ b$
a
• asiento b
• mesa
muebles muebles
Lo--" l..--""""""
110
REPRESENT ACION DEL CONOCIMIENTO
aS b$
a ____ patas de
-+ silla banqueta
-
I
asiento b --+ banqueta
muebles asiento
1-- muebles
aS b$
a ----+ -
patas de
silla banqueta
I
asiento b ----+ cuerpo
muebles silla l
.....- asiento
muebles
L--'
a$
1 2
silla tapa de silla
asiento cuerpo
y se ha dimensionado con:
DIM a$(50,2,20l
rastreo (3000)
menosuno (3200)
113
REPRESENTACION DEL CONOCIMIENTO
SISTEMAS EXPERTOS
Los síntomas del sarampión son fiebre y granos que aparecen después de la
fiebre.
......::.... ~~ No te preocupes, es
"I-/~:¡'
un sistema inteligente.
1 .z. ,
y
~ "'
ÁjJJ(L
'"" '
lIS
REPRESENTACION DEL CONOCIMIENTO
Proyectos
116
9
Juego
Una de las áreas de la investigación sobre inteligencia artificial que
más éxito ha tenido en los últimos treinta años, se ha desarrollado sobre
el diseño de programas para juegos frente a un contrincante humano.
Esto no debe sorprender ya que, después de todo, en el tipo de proble-
mas que hemos examinado hasta ahora era necesario aportar a la máq ui-
na gran cantidad de infonnación (un modelo de universo) para dar sen-
tido a los datos que se le introducían. Un tablero de juego representa
todo un mundo en pequeño, por lo que es relativamente sencillo contar
al ordenador con exactitud todo lo que hay que saber. Aun así, en los
juegos especialmente atractivos como el ajedrez, los mejores jugadores
no saben todo 10 que hay que saber, por 10 que el modelo del ordenador
es necesariamente incompleto. En realidad, ésta es una de las condicio-
nes para que unjuego sea atractivo. Si los jugadores lo conocen comple-
tamente, saben la solución al primer movimiento efectuado. Esta es la
idea que se esconde detrás de la broma que supone que un programa de
ajedrez sumamente potente, jugando con las negras, responda a un mo-
vimiento de apertura peón a reina 4 reflexionando durante cuarenta y
cinco minutos para concluir luego abandonando.
ARBOLES DE JUEGO
117
JUEGO
Movimiento 2° jugador
Movimiento 2° jugador
Movimiento 1erjugador
118
JUEGO
Movimiento 2 0 jugador
1
Si recorre Vd. el árbol desde abajo hacia la raíz, verá que la raíz se valo-
ra en 1. Dicho de otra forma, ¡el primer jugador puede ganar siempre!
Esto nos demuestra que Nim no es un juego atractivo. Además, los
juegos para los que se puede escribir u~ conjunto completo de movi-
119
JUEGO
FUNCIONES DE EVALUACION
120
JUEGO
EL EFECTO HORIZONTE
121
JUEGO
fianza, pero tienden a tener una visión menos rígida sobre el valor de
las piezas y por lo tanto pueden sentirse deseosos de examinar opciones
extremas. En realidad, son más propicios al riesgo. Es difícil construir
en un programa este tipo de posturas. Es más difícil aún contemplar en
un programa otro atributo muy común en los seres humanos durante el
juego: las fanfarronadas. Incluso en el ajedrez, los humanos utilizan este
tipo de trucos sutiles. Un jugador efectúa un movimiento aparentemen-
te intrascendente, confiando en que su oponente reaccionará sin dete-
nerse a pensar demasiado en la jugada. Pero en el póker, por ejemplo,
las fanfarronadas, las baladronadas, constituyen quizás e180% del juego.
Aquí sí puede Vd. confiar en que elordenador sea especialmente bue-
no. Después de esto puede evaluar todas las probabilidades necesarias
con más efectividad que el elemento humano y con"una cara muy espe-
cial de póker. Sin embargo, no existen señales como tics nerviosos,
miradas confiadas o caras sudorosas que puedan detectar sus oponentes
humanos. E incluso aunque pudiéramos construirlas dentro del progra-
ma, sería difícil convencer a los jugadores humanos de que al ordenador
le preocupa perder una jugada.
OTHELLO
EL TABLERO
DIM b (50,8,8)
1 -1
-1 1
123
JUEGO
m fila col
~bt::::==±=:::;::;:oJ;;;;>1
fila col
-1 0 Norte
-1 1 Noreste
0 1 Este
1 1 Sureste
1 0 Sur
1 -1 Suroeste
0 -1 Oeste
-1 -1 Noroeste
124
JUEGO
~
1050 ' FORd=lT08
probar movimiento en las 8
1060 GOSUB prumov
di recciones
1070 NEXT d
1080 LET sf = O (inicializar suma de f)
~
1090 FORd=lT08
1100 LET sf = sf + f(d) calcular suma de f
1110 NEXTd
1120 If sf > O THEN GOSUB (si el movimiento es legal, hágalo
mover:LET movimiento = y cuéntelo)
movimiento + 1
125
JUEGO
1260 LET P = 1
1270 FOR fila= 1 T08
1280 FOR col = 1 TO 8
1290 IF a(fila,col) =0 THEN GOSUB adyacente
1300 I F ady TH EN LET m(p, 1) = fila;LET m(p,2) = col:
LET p = P + 1
1310 IF p > 10 THEN RETURN
1320 NEXTcol
1330 NEXT fila
1340 RETURN
prumov
Esta subrutina prumov tiene que decidir primero dónde mirar y qué
incrementos utilizar:
mover
Esta rutina utiliza la misma información para cambiar todos los valo-
res "-jugador" a "jugador". Sin embargo, lo hace para las ocho direc-
ciones:
1600 LETfila=m(p,1):LETcol=m(p,2)
1610 FOR d = 1 TO 8
1620 LET incr = i(d,l): LET incc = i(d,2)
1630 IF NOT f(d) IHEN GOTO 1660
1640 LET fila = fila + incr: LET col = col + incc
1650 I F b(n,fila,col) = -jugador THEN LET b(n,fila,col)
= jugador:GOTO 1640
1660 NEXT d
1670 RETURN
adyacente
127
JUEGO
La función de evaluación
LET ef = O
FOR fila = 1TO 8
FO R col = 1 TO 8
LET ef = ef + b(n,fila,col)
NEXT col
NEXT fila
dará, por ejemplo, ef = 4 si hay seis 1 (unos) y dos -1, mostrando así la
ventaja mantenida por eljugador 1. Sin embargo, vea la sección Proyec-
tos, donde encontrará algunas ideas adicionales.
128
JUEGO
7 9 -2 3
Proyectos
130
10
Proceso de imagen
Los capítulos dedicados a reconocimiento de patrones nos han mos-
trado que dado un conjunto de patrones que son suficientemente seme-
jantes, es relativamente fácil diseñar programas que los distingan de
otros patrones.
Ya he señalado que el término "patrón" no se aplica solamente a las
imágenes o formas visuales; sin embargo, en este capítulo voy a ceñir
nuestra discusión a las imágenes visuales.
El problema que tenemos con el reconocimiento de patrones visuales
es que los seres humanos tienden a reconocer imágenes, formas que
son realmente diferentes, como si pertenecieran a la misma clase. Por
ejemplo:
5 5)S 5
Todos ellos son cincos, ¿o no lo son? Y sin embargo existen diferen-
cias significativas entre ellos. Tres de ellos están formados por líneas
continuas, otro tiene un vano entre dos líneas y el quinto tiene dos
vanos. Cuatro de ellos tiene trazos horizontales, mientras que el otro
tiene un trazo diagonal. Todos menos uno tienen una línea vertical. Sus
tamaños son diferentes y uno de ellos tiene los trazos más gruesos que
los otros cuatro.
Es interesante observar que quizás Vd . no se había percatado de
todas estas diferencias antes de haberlas expuesto. ¿No necesita Vd. vol-
ver a mirar la figura para confirmar que lo que yo he dicho es cierto?
Seguramente sí.
131
PROCESO DE IMAGEN
ENGROSAMIENTO Y ADELGAZAMIENTO
10 PLOT 60,100
20 DRAW 0,31
25 PLOT 61,100
30 PLOT 60,135
40 DRAW 35,0
45 PLOT61,134
46 DRAW 34,0
50 PLOT 60,100
60 DRAW 10,-30,-4,4
esto dibuja un "5" con un pequeño corte en la parte superior. Vd. po-
dría escribir una rutina para hacerlo con la ayuda de un mando de jue-
gos, pero es difícil conseguir buenas curvas.
Ahora dibujaremos una casilla rodeándolo y otra casilla vacía para
albergar el resultado engrosado para comparar.
132
PROCESO DE IMAGEN
70 LET xs = 50:LET ys = 60
80 GOSUB casilla
90 LET xs = 140
100 GOSUBcasilla
110 STOP
casilla es sencilla:
1000 PLOT xS,ys
1010 D RAW 0,80
1020 DRAW 60,0
1030 DRAW 0,-80
1040 DRAW -60,0
1050 RETURN
o
O
O
133
PROCESO DE IMAGEN
y sumaven es:
()()()()()()(){JVVVUVVUVVV\JUUJUUVVU\.JV\.JVVJ
000000012333333333333333333333333333333333321000000000000
000000013566666666666666666666666666666666642000000000000
0000000135 2000000000000
000000001233333333333333333333333333333333321000000000000
00000oo 1221 """"",,"IV\A""""""JVV'JVV""""'VVVVVVVVVVVV""""""J'VV~'''V
00000002«2""""",,"~""""""""_""~JVV"JVV"~"""'VVVVVV~N~~~~
00000003663"""~~IV\A"""~JVV'JVV""""'~~'''''TVVVVVV~~'V~~
l~3663~J"",,"~""""""""JVV'JVV"l""'VVVl""Tl"~\~N~~N~~_~N
Fig. 10.1. -Impresión de las diez filas superiores de p$. Tenga en cuenta que en la pantalla la
visualización se desplazará de forma que la imagen no quedará clara.
I I-l
I l~- - - -.\. I
I ------.-.-) II
ENTRADA=3
1--------)
--
----
I~
135
PROCESO DE IMAGEN
ENTRADA=6
l------.")
----_......,
puede conducir a:
6
¡que puede interpretarse como un 6!
6
EL ESQUELETO DE LA IMAGEN
d
describe un perro o una criatura semejante (¿por qué no un gato?) sin
ningún detalle que desordene el proceso de reconocimiento.
Sin embargo , la extracción del esqueleto de una imagen viene a ser
como una ilusión o ficción trucada. Comencemos por examinar algunos
de los problemas más espinosos con los que nos vamos a encontrar.
Este caso es el más sencillo de tratar. Una posible solución sería cincelar
los bordes hasta conseguir que quede una sola línea de grosor sencillo .
Pero si esculpimos el perímetro total con igual criterio, la línea resultan-
te será muy corta. Para obtener un esqueleto satisfactoriamente intuiti-
vo necesitaremos tomar más de los lados que de la parte alta o la baja.
Así pues, quizás deberíamos identificar los "puntos finales" y asegurar-
nos que éstos quedan intactos al cincelar los bordes. Pero ¿cómo encon-
tramos los puntos finales?
Problema 3: Simetría
UNA SOLUCION
Cuando hace unos pOCOS años me tropecé con este problema, estuve
trabajando sobre ello cerca de un mes y a punto estuve de intentar algo
más sencillo, como entrenar víboras venenosas, cuando cayó en mis
manos accidentalmente un artículo de una revista científica que hacía
referencia, de pasada, al hecho de que el cangrejo herradura tiene una
singular característica en su sistema visual. Cuando una célula nerviosa
de su retina reacciona ante una luz brillante, inhibe las restantes células
próximas a aquélla para que no reaccionen. En otras palabras, si Vd.
ilumina un círculo de luz en el ojo del cangrejo, él visualiza un punto de
luz. ¡Es un algoritmo de obtención del esqueleto maravillosamente
simple!
Esto me incomodó, ya que había pasado un mes investigando en un
problema cuya respuesta conocía el cangrejo hace dos millones de años.
Sin embargo, esto en sí mismo, no resuelve el problema completamente,
ya que no conserva la conectividad. Para esto, necesitamos conocer algo
sobre la densidad del patrón de la región del pixel que intentamos elimi-
nar. La rutina suma que ya hemos tratado hará parte del trabajo, pero
no hay razón para crear trozos de patrón que no existían allí anterior-
mente; por tanto sumaremos (suma) solamente aquellos puntos que no
sean cero . Por ejemplo, el patrón :
1
1
1
1
1
1
1
1
139
PROCESO DE IMAGEN
se transforma en:
2
3
5
4 7 7 7 6 4
6 9 9 9 9 6 +- ®
4 7 7 7 6 4
5 t
2 ®
Ciertas cosas quedan claras inmediatamente. En primer lugar, un "2"
ó un "3", no pueden eliminarse nunca, ya que en el ejemplo podemos
ver que deben representar el final de una línea del esqueleto y un punto
dentro de una línea del esqueleto respectivamente: Después de esto las
cosas se van enturbiando. Por ejemplo, el "6" señalizado con A se debe
preservar como final de una línea, mientras que el de B se debería elimi-
nar y, como de hecho sucede, los 4 podrían quitarse, pero los 5 se
deben mantener. Por supuesto, lo que hemos hecho ha sido crear una
cierta escala de gris. (Ya mencioné en el capítulo 6 que llegaríamos a
esto). Podemos imaginar que los 9 son más "luminosos" que los 2.
Ahora, ¿qué haría nuestro amigo el cangrejo? Bien, cuanto más lumi-
nosa sea la región que rodea a un pixel, más probabilidades tendrá de
que se suprima. Si sumamos (suma) los valores ·luminosos de una venta-
na de 3 X 3 alrededor de B obtenemos 41. Alrededor de A el valor es
de 35. Así, en alguna parte entre 35 y 41 hay un valor por debajo del
cual deberíamos conservar un pixel cuyo valor sea 6. Existirán valores
límites semejantes para los otros niveles de luminosidad. La tabla que
doy a continuación nos los muestra:
9 78
8 66
7 52
6 40
5 30
4 22
3 siempre preservado
2 siempre preservado
1 siempre preservado
140
PROCESO DE IMAGEN
Ya hemos visto que se pueden eliminar los 2 y los 3 y que un "1" será
un punto por sí mismo, por 10 cual también se mantendrá (puede que
sea el punto de una i).
ALGO DE CODIFICACION
limpia (2000)
copia (2200)
2200 FORy=62T0138
2210 FOR x = 142 TO 198
2220 IF POINT (x,y) THEN PLOT x - 90,y
2230 NEXT x
2240 NEXT y
2250 RETURN
Por tanto copia asume que la casilla izquierda está limpia y copia
sobre ella el contenido de la casilla de la parte derecha. Así pues, nues-
tro convenio es que todo el proceso tiene lugar de izquierda a derecha.
141
PROCESO DE IMAGEN
esquel (2400)
Lo primero será sumar solamente los pixels que están activados (on).
142
PROCESO DE IMAGEN
b
--
1
2
3
4 22
5 30
6 40
7 52
8 66
9 78
lumin (2600)
2600 LET br = O
2610 FOR r = y - 1 TO y + 1
2620 FO R e = x - 1 TO x + 1
2630 LET d$ = q$(r - 60, e - 140)
2640 IFd$<>""THEN LETbr=br+VALd$
2650 NEXTc
2660 NEXT r
2670 RETURN
Prueba de "esquel"
GOSUB esquel
I 1 I~ I
I 1
I~I
l___~ UJ
Fig. 10.3.-GOSUB esquel.
s
Fig. 10.4.-Suficienre GOSUB esquel.
I íneadel (2800)
~~
145
PROCESO D E IMAGEN
buscalon (3000)
r-'--
L·----·· -.....
1,
_._--_. "
...
Proyectos
1. La rutina líneadel tiene un error. Si una línea de dos pixels se conecta con
otras dos líneas así:
147
11
Proceso de la información
y modelos biológicos
Comenzamos este libro con una exposición sobre la naturaleza de la
inteligencia para ver si en determinadas circunstancias un sistema de
ordenador se podía considerar capaz de ser artificialmente inteligente.
Tratamos esta idea de inteligencia de modo puramente cualitativo (en
realidad, no estamos involucrados con el ordenador IQ o el MENSA,
¿o si lo estábamos?) y como recordará en todas nuestras discusiones,
daba la impresión de que medíamos o evaluábamos la inteligencia com-
parándola con el comportamiento equivalente. en los seres humanos.
Todo esto nos sugiere que consideramos a los seres humanos como los
definidores de la inteligencia o como los representantes del modo más
avanzado de comportamiento inteligente. Esto a su vez implica suponer
que el cerebro humano (que, al menos en este contexto podemos con-
siderar como un cierto tipo de ordenador biológico) es el sistema de
ordenador más apropiado y más capacitado para ejecutar procesos in-
teligentes.
Entonces nos podemos preguntar ¿por qué, a la vista de estas afirma-
ciones, no intentamos copiar la forma en que el cerebro humano lleva
a cabo su proceso para construir así un sistema de ordenador inteli-
gente? Esta es una pregunta engañosamente simple que tiene muchas
respuestas interrelacionadas, una de las cuales se relaciona con la clara
complejidad del cerebro y con el hecho difícilmente inseparable de que
sólo se conocen parcialmente los mecanismos del cerebro. No es éste el
lugar más adecuado para adentrarnos en una discusión pormenorizada
sobre este tema pero, por todo ello, es una cuestión de gran trascenden-
cia y en el curso de los años se han llevado a cabo intentos para tratar
de imitar la forma en que el cerebro ejecuta sus asombrosas proezas de
cálculo. Aunque hay que decir que dichos intentos se han enfocado
generalmente sobre áreas de problemas específicos, se han obtenido im-
148
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
portantes logros y además hoy día existe una buena voluntad, por parte
de los investigadores, de reconocer el valor de una aproximación inter-
disciplinaria a la ciencia del cerebro. Así, los psicólogos, los fisiólogos,
los matemáticos, los informáticos e incluso los ingenieros electrónicos,
se han dado cuenta, en algún momento, de que tenían que contribuir
de alguna manera al avance sobre el conocimiento del ordenador más
complejo y mejor dotado que existe.
En este capítulo haremos un breve examen sobre una posible solu-
ción para tratar de imitar las propiedades de cálculo del cerebro. Como
verá, utilizamos algunos términos con cierto grado de libertad. Este
examen 10 realizaremos a un nivel muy bajo (en el sentido de concen-
trarnos sobre las propiedades de lo que quizás es la unidad más básica
aunque gobernable de la estructura maravillosa del cerebro) a fin de ver
cómo podemos describir sus propiedades de proceso de forma que se
preste a una comparación con los sistemas de cálculo artificiales.
Antes de comenzar debemos decir que no pretendemos que esta
aproximación nos lleve (o pueda llevarnos) directamente a la implanta-
ción de un procesador artificial "inteligente". Lo que intentaremos
mostrar, en primer lugar, es cómo un sistema así tiende a poseer, en su
propia naturaleza, alguna de las propiedades que pueden suponerse
razonablemente que son la base de la inteligencia (las cuales, en conse-
cuencia, se conectan con algunas de las ideas que se han presentado
anteriormente), y en segundo lugar, intentaremos mostrar cómo pode-
mos comenzar a extraer ciertas características como elementos clave
para el diseño de los sistemas "artificialmente inteligentes".
-Axon
_ _ Sinapsis
150
PROCESO DE LA INFORMAClON y MODELOS BIOLOGICOS
UN PROTOTIPO DE NEURONA
f=l
si:
pero:
f =O de otra forma
Entradas
excitativas
Em------+I
f = Salida
Entradas
inhibidoras
Las células disparan si (El +É
2 + '" Em) - (1 1 + 12 ... In) ~ T
A A
B B
Función OR Función AND
(a) (b)
célula disparará por sí misma, pero cuando ninguna de las fibras esté
activada, la célula permanecerá inactiva. Por otro lado, para la configu-
ración de la figura 11.3 (b), esta célula solamente disparará si sus dos
entradas se estimulan simultáneamente. No le llevará mucho tiempo ver
que estas dos células están calculando respectivamente las funciones
que se presentaron en el capítulo 5 como funciones OR y ANO.
Por lo tanto hemos llegado a la conclusión de que si tomamos una
célula de cálculo modelada con las propiedades funcionales de la neuro-
na biológica podemos describir su comportamiento utilizando ideas,
términos y notaciones que ya conocemos del lenguaje normal de cálcu-
lo. Sin embargo, podríamos ampliar estas ideas considerando algunos
ejemplos de pequeñas "redes" de células interconectadas. Considere,
como ejemplo, la red mostrada en la figura 11.4 (a). Un análisis de esta
red revelará que señalizará cuando una o dos de sus entradas A, B Ye
B ,l.
e
1--------.. f
153
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
B
Fig.".4(b).
estén activas, pero supnmlra su salida (la dejará inactivada) si las tres
entradas se activan al tiempo. La configuración de la figura 11.4 (b) se
incluye como ejercicio para que pruebe Vd. solo. ¿Qué hace esta red?
X1--0----
Suma =
X2 ----{W2~----__1 W1Xl + ... T
• • + WnX n .
154
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
f =1
si:
y:
f = O en caso contrario.
Esta es una versión del modelo más clara que la que tomamos en un
principio.
Por ejemplo, podemos realizar una red aprendizaje (si quiere expre-
sarlo Vd. así), cambiando los valores de las ponderaciones y por supues-
x.--_ ·
x.---~ Suma T= l
x,--0------~ Función OR
(a)
x. - - -
t7\
x, - - ____--;\!.I)---- - /'
Función ANO
(b)
x.--0-
x. (3 ))-------~ Suma T=6
x, ( 2 )f-------
Una función más compleja ·
(e)
Fig. 11.6. -Realización de las funciones de una célula.
155
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
Sin embargo, existe otra forma de examinar este modelo que puede
ser mejor comprendida si consideramos un ejemplo específico. Por sen-
cillez, escogeremos una célula que tenga exactamente dos fibras de
en trada, como se muestra en la figura 11.7. Primeramente podemos
examinar de nuevo las expresiones que determinan si la célula disparará
para un patrón en particular de estímulo de entrada. En este caso, la
ecuación general presentada anteriormente se reduce a la siguiente ex-
presión específica:
f=1
si:
y:
f = O en caso contrario.
X1 -e-------..:ar-----I~I-----.. f
X2 - - '"oe------',
Fig. 11. 7.-Ejemplo de una célula generalizada de dos entradas.
156
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
W1Xl + W2X2 = T
,. te ~X2
(X1X2) =(11,'" (fl, 1)
W 1X~ + w 2 X2 = T
Así pues, podemos dibujar esto sobre los ejes que definen nuestro
espacio de entrada como antes y ver que la expresión da lugar a una
línea recta que divide el espacio en dos regiones. Ahora, un punto dado
en el grafo (correspondiente a un patrón particular de estímulo sobre
las entradas) generará un estado de disparo/no disparo de la célula con
arreglo al lado de la línea donde cae el punto. Lo más importante de
todo es que la posición de la línea viene determinada por las pondera-
ciones w 1 y w 2 (también, por supuesto, por el valor de T , pero si quere-
mos, podemos considerarlo fijo para todas las células).
Verá ahora porqué hemos desarrollado el argumento de esta forma.
Para el descubrimiento que hemos realizado (examine de nuevo la últi-
ma ecuación que escribimos) al modelar la célula básica relacionada con
el cálculo biológico, volvemos a una descripción de sus propiedades de
157
PROCESO DE LA INFORMACION y MODELOS BIOLOGICOS
159
12
Breve examen de la anatomía
del ordenador
Si volviera a repasar todas las anteriores páginas de este libro quizás le
llame la atención un hecho destacable. Supongo que estoy exagerando
realmente, porque a menos que esté errado, el hecho al que me refiero
es muy probable que no haya pasado desapercibido para la mayoría de
los lectores y quizá para la mayor parte de la comunidad de usuarios de
ordenadores.
Pero , ¿cuál es este hecho? Simplemente que en todo lo anterior-
mente expuesto hemos asumido que el ordenador digital convencional
es el dispositivo de cálculo más apropiado (probablemente el único)
para la apliacación a tareas de inteligencia artificial. El hecho de haber
suscitado este tema, probablemente le hará desconfiar, por supuesto; en
particular puede que ahora esté preguntándose cosas como :
.
¿ Tiene este hombre la suficiente experJencia práctica?
... y quizás otras más.
161
BREVE EXAMEN DE LA ANATOMIA DEL ORDENADOR
162
BREVE EXAMEN DE LA ANATOMIA DEL ORDENADOR
tiene una célula básica de cálculo llamada neurona, que puede calcular
una función relativamente sencilla, pero que trabajando simultáneamen-
te con otras muchas células semejantes interconectadas produce unos
resultados realmente impresionantes. Ahora conecte esta información
con la observación que hemos considerado en muchos de los procesos
prácticos de patrones. Un patrón ha consistido en un array bastante
regular de puntos y en una operación típica de proceso repetimos en
todos los puntos del array un cálculo muy semejante. Por ejemplo, si
aplicamos al patrón de la figura 12.1 (a) el algoritmo anterior de la
"eliminación del punto de ruido aislado", llevamos a cabo nuestra ope-
ración definida, para cada punto del array para producir el nuevo
patrón de la figura 12.1 (b).
X
X XX X xx X
XXXXXX X XXXXXX
XXXX XXXX XXXX XXXX
XX XXX xx xxx
XX XXX xx xxx
X xx X X XX xx xx
XX XX xx xx
XX X X XXX xx xxx
XX XX xx xx
X XX X xx
X XX XXX xx xxx
X' X X X X X X
XX X XX X
XX XX XX XX
XX X XX XX XX
XX XXX XX XXX
XX X XX XX XXX
X XXXX XXX X XXXX XXX
XXXXXXXXX XXXXXXXXX
XXXXXX X XXXXXX
X XXX XXX
(a) (b)
Agrupe todas estas ideas y será casi obvio sugerir que quizás debería-
mos tomar una célula sencilla individual responsable de un número res-
tringido de operaciones asignando dicha célula como responsable para
cada punto del array. Si bien tendríamos que invertir más dinero en
equipo de procesador (duplicando el número de elementos de cálculo
requerido) podríamos hacer que cada procesador fuera mucho más sim-
163
BREVE EXAMEN DE LA ANATOMIA DEL ORDE NADOR
• •
• •
• • • •
164
BREVE EXAMEN DE LA ANATOMIA DEL ORDENADOR
Valor actual
del punto del
patrón
165
BREVE EXAMEN DE LA ANATOMIA DEL ORDENADOR
167
Apéndice 1: PATREC-
Sistema de Reconocimiento de Patrones
de Red de Aprendizaje
Programa principal
CLEAR 31999
2 LET lilpia=2600: LET editar=2S00: LET copiar=3000: LET lanzar=3200:
LET retin=2400
10 LET ponc=3400: LET tOlabits=2200: LET sacabit=2000: LET and=32012:
LET inici=IOOO: LET enseñar=1200: LET recon=1400:
LET bina=1600:
LET pad=1700: LET ponbit=1800: LET or=32002
20 DI" rfI12,8): DI" cI96,2): DI" nf(32)
30 FOR p=32002 TO 32021
35 READ byte
40 POKE p,byte
45 NEXT P
50 DATA 6,0,33,0,125,126,35,182,79,201,6,0,33,0,125,126,35,166,1';201
"90 60 SUB pone: 60 SUB inici
100 60 SUB enseñar
110 LET nUI=CODE 0$ 11): 60 SUB bina: PRi~~T b$,
120 LET nUI=CODE nfW: 60 SUB bina: :'~INT b$
130 INPUT ".ode";I$
140 IF .f=Ut" THEN 60 TO !OO
150 60 SUB recon
lbO 60 TO 130
169
APENDICE 1: PA TREC-SISTEMA DE RECONOCIMIENTO DE PAT RONES DE RED
inici (1000)
enseñar (1200)
recon (1400)
170
APENDICE 1: PATREC-SISTEMA DE RECONOCIMIENTO DE PATRONES DE RED
bina (1600)
ponbit (1800)
sacabit (2000)
171
APENDlCE 1: PATREC-SISTEMA DE RECONOCIMIENTO DE PATRONES DE RED
tomabits (2200)
retin (2400)
limpia (2600)
editar (2800)
copiar (3000)
303(1. NEXT x
3040 NEXT Y
3050 RETURN
lanzar (3200)
pone (3400)
174
Apéndice 2: LlZ-
Implantación Simplificada de Eliza
Programa principal
lO LET ehecksub=2400: LET tri turador=2200: LEl sel ect=2000: LEl barqui 11 0=1800:
LET buscapal=lbOO: LET parada=1000: LET buscaver=1200:
. LET transobj=r400
20 DI" e$(3,17): DI" aS(20,IO): DI" b$(20,lO): DI" q$(4,40}: DI" t$(lO}:
DI" v$(40}
lOO PRINT 'Hola, ¿qu~ quieres decirle?'
110 INPUT sS
115 PRINT INK 4;5$
120 IF sS(LEN sS}=''!'' THEN 60 SUB parada: 60 10 110
130 60 SUB busca ver
135 IF p=1 THEN 60 SUB barquillo: 60 10 110
140 LET o$=sSlp 10 )
150 60 SUB checksub
lbO SO SUB transobj
170 60 SUB select
180 LET kS=rS+o$: 6D SUB triturador: PRINT 1$
190 60 ro 11 (1 ,
parada (1000)
buscaver (1200)
transobj (1400)
buscapal (1600)
barquillo (1800)
select (2000)
triturador (2200)
checksub (2400)
+0$: RETURN
2445 IF w$="ellos DR w$="ellas "THEN LET o$="piensan que yo "+ 0$: RETURN
I
178
APENDlCE 2 : LlZ-IMPLANTACION SIMPLIFICADA DE ELIZA
soy eres
fui fuiste
mi tu
me te
179
3: CONOCIMIENTO-
Apéndice
Sistema de Representación
y Recuperación del Conocimiento
Progama principal
crecer (1 000 )
buscar (2000)
Función: Permite que el usuario examine un árbol para buscar las co-
nexiones entre nodos específicos.
2000 INPUT "encontrar .adre,hijas,conexion,salidal./h/c!sl";q$
2010 IF q$="." THEN 60 SUB .adre: 60 TO 2000
2020 IF q$="h" THEN 60 SUB hijas: 60 TO 2000
2030 IF q$="c" THEN 60 SUB conex: 60 TO 2000
2040 IF q$="s·, THEN RETURN
2050 60 TO 2000
madre (2200)
hijas (2400)
conex (2600)
buscanodo (2800)
182
APENDICE 3: CONOCIMIENTO-SISTEMA DE REPR ESENTACION y RECUPE RACION
rastreo (3000)
Función: Acepta un apuntador i a un nodo y un apuntador col a un
camino. Crea un camino desde el nodo apuntado a la raíz y
devuelve ésta en aS .
3000 LET a'(I,coll=n'li): LET a=1
3010 60 SUB .enosuno
3020 IF raiz THEN RETURN
3030 LET a=a+ 1
3040 LET a'la,col'=.'
3050 60 TO '3010
menosuno (3200),
Función: Acepta un apuntador i a un nodo y devuelve el nodo en m$ ,
que apunta a it. Si el nodo no está apuntado, devuelve
raíz = l. En caso contrario raíz = O. También devuelve i apun-
tando al nodo anterior.
3200 FOR r=l TO lOO
3210 IF plr,I)=i OR p(r,2)=i THEN LET .'=n$lr): LET raiz=O: LET i=r: RETURN
3220 NEXT r
3230 LET raiz=l
3240 RETURN
183
Indice alfabético
Cerebro, 149
Códigos postales, 24 Generador de movimientos legales, 123
Comprensión de la voz, 39 Generalización, 47
Conexión de líneas, 137
Confianza en la clasificación, 33
Conocimiento, 97 Hiperespacio, 31
Conversión de decimal a binario, 54 Hoja, 101
185
INDICE ALFABETICO
OR,55 Semántica, 68
Othello, 122 Simetría, 138
Sinapsis, 151
Sinapsis excitativa, 151
Pandemonium, 22 Sinapsis inhibid ora, 151
Patrón, 27 Sistemas expertos, 114
Pixel, 65
Poda alfa-beta, 129
Proceso de imagen, 131
Proceso en serie, 164
Proceso paralelo, 164 Tablero de juego, 117
Procesador de arrays, 164 Tipos, 29
Producción de voz, 40
PROSPECTOR,115
Pr9totipo de neurona, 151
Puntos finales, 137 Umbral de la célula, 151
186
Libros sobre INFORMATICA publicados por
~ARANINFf!!iJ
,,:11""
.', H1~'
'.