Lecturas de Inteligencia Artificial
Lecturas de Inteligencia Artificial
Lecturas de Inteligencia Artificial
Inteligencia
Artificial
Fundamentos
Breve Introducción
Luego se verán cuáles son las ramas de la ciencia que más han influenciado
el estudio y desarrollo de la IA en la sección Fundamentos del presente
módulo 1. Ramas como la filosofía, las matemáticas, la economía, la
Neurociencia, la Psicología, la Ingeniería computacional, la teoría de
control y cibernética o la Lingüística han ayudado, a pesar de ser en
muchos casos asignaturas muy disimiles entre sí, a la evolución de la IA.
Otra sección de esta unidad se refiere a los Orígenes de la IA. En este caso
se profundizará y se verá cuáles son los orígenes de esta ciencia moderna,
la cual tiene sus inicios con el trabajo de Warren McCulloch y Walter Pitts
(1943).
Siglos más tarde, alrededor del año 1300, Ramón Llull, por su parte,
construyó “Ars Magna” el cuál era un conjunto de ruedas que, se suponía,
iba a ser una máquina capaz de responder todas las preguntas.
(Russell y Norvig, 2004; Ponce 2010)
John Locke dijó “Nada existe en la mente que no haya pasado antes por los
sentidos”. (Russell y Norvig, 2004, p. 7)
David Hume definió lo que hoy se conoce como principio de inducción.
Rudolf Carnap desarrolló la doctrina del positivismo lógico.
Rudolf Carnap y Cari Hempel intentaron explicar con la teoría de la
confirmación cómo el conocimiento se obtiene a partir de la experiencia.
(Russell y Norvig, 2004)
Fue George Boole, entre otros, quien desarrolló algoritmos que permitían
realizar deducciones lógicas. A pesar de ello, hay funciones de los números
enteros que no se pueden representar mediante un algoritmo.
Economía
“La mayor parte de la gente cree que la economía sólo se trata de dinero,
pero los economistas dicen que ellos realmente estudian cómo la gente
toma decisiones que les llevan a obtener los beneficios esperados”.
(Russell y Norvig, 2004, p. 11)
La economía y la investigación operativa han contribuido en gran medida a
la noción de “agente racional” y modelos basados en satisfacción (que
toman decisiones que son suficientemente buenas, en vez de realizar
cálculos complejos para alcanzar decisiones óptimas).
Neurociencia
La Neurociencia es el estudio del sistema neurológico, en especial del
cerebro. Gracias a su desarrollo y evolución fue posible pensar en la teoría
de las redes neuronales y perceptrones; comprender el funcionamiento del
cerebro y, particularmente, de las neuronas (y sus conexiones) se hizo
fundamental para este hecho.
Lingüística
Los lingüistas demostraron que el uso del lenguaje se ajusta al modelo de
que los humanos y animales podrían ser considerados como máquinas de
procesamiento de información. (Russell y Norvig, 2004)
Rich, E. Y Knight, K. (1991) Artificial Intelligence (2ª ed.). New York: Mc Graw-Hill.
Inteligencia
Artificial
Orígenes
Génesis de la IA
Los inicios de esta ciencia moderna se remontan al trabajo de Warren
McCulloch y Walter Pitts (1943). Ellos propusieron un modelo constituido
por neuronas artificiales, en el que cada una de estas se caracterizaba por
estar activada o desactivada. En dicho modelo, que cada neurona
estuviera activada dependía de los estímulos producidos y enviados por
cada una de sus vecinas. Demostraron, además, que cualquier función de
cómputo podía calcularse mediante una red neuronal interconectada, y
que estas interconexiones podían representarse a través de conectores
lógicos sencillos, como AND (en castellano, “Y”), OR (en castellano, “O”),
NOT (en castellano, “Negación” o “No”), etc.
Nacimiento de la IA
El nacimiento oficial de la IA se remonta a la conferencia de 1956 del
Dartmouth College. Allí, científicos como John McCarthy, Minsky
(convencido por McCarthy), Claude Shannon y Nathaniel Rochester
intentaron aumentar el interés de los demás investigadores norte-
americanos en torno a tópicos tales como:
• La teoría de autómatas.
Inicios
Los primeros años de la IA fueron muy alentadores, si se tiene en cuenta lo
primitivo que eran los computadores y las herramientas de programación
que se usaban en aquel entonces. Luego, al éxito del Teórico Lógico de
Newell y Simon le siguió el del Sistema de Resolución General de
Problemas o SRGP, el cual, a diferencia de su antecesor, se diseñó desde
sus comienzos para que imitara protocolos de resolución de problemas de
los seres humanos. El SRGP fue el primer programa que incorporó el
enfoque de pensar como un ser humano. (Russell y Norvig, 2004)
El éxito del SRGP y de los programas que le siguieron, como los modelos de
cognición, hizo que Newell y Simon (1976) formularan la hipótesis del
sistema de símbolos físicos. Esta hipótesis determina que un sistema de
símbolos físicos debe contar con los medios necesarios y suficientes para
poder llevar a cabo una acción inteligente.
Realidad
En los comienzos de la IA hubo mucha euforia y algunos buenos resultados,
pero durante las décadas de los '60 y '70 esta euforia y optimismo comenzó
a decaer debido a que esa prometedora actuación de los primeros sistemas
de IA en lo relativo a problemas simples, en la mayor parte de los casos
falló estrepitosamente cuando se los intentó aplicar a problemas más
variados o complejos. El primer tipo de problemas surgió porque la
mayoría de los primeros programas contaban con poco o ningún
conocimiento de las materias que eran objeto de estudio; obtenían
resultados gracias a sencillas manipulaciones sintácticas.
Cuando se comenzó a trabajar en la traducción automática, al principio se
consideró que todo se reduciría a sencillas transformaciones sintácticas del
lenguaje y a la ubicación de palabras mediante un diccionario electrónico,
dejando de lado el conocimiento general sobre el tema. (Russell y Norvig,
2004)
En 1969 Minsky y Papert demuestran que era posible lograr que los
perceptrones (una red neuronal simple) aprendieran cualquier cosa que
pudiesen representar, pero su capacidad de representación era muy
limitada. (Russell y Norvig, 2004)
Ciencia
Podemos decir que la IA ya forma parte del ámbito de los métodos
científicos. Para que se acepte como tal, las hipótesis se deben someter a
rigurosos experimentos empíricos, y los resultados deben analizarse
estadísticamente para identificar su relevancia. Internet se ha vuelto
fundamental en este sentido, ya que permite compartir repositorios de
datos de prueba y código, lo que ha hecho posible que se puedan
contrastar experimentos. (Russell y Norvig, 2004)
Rich, E. Y Knight, K. (1991) Artificial Intelligence (2ª ed.). New York: Mc Graw-Hill.
Inteligencia
Artificial
Áreas de aplicación
Robótica
Podríamos decir que la robótica va de la mano con la IA, ya que un robot es
la representación más acabada de lo que es IA.
Los robots son parte de la fabricación automotriz desde hace décadas. Entre otras tareas, trabajan en el
ensamblado final de las puertas. (Recuperado de Infotechnology.com, http://goo.gl/Ujg8kM)
Medicina
Se han desarrollado máquinas que interpretan imágenes médicas,
controlan las unidades de cuidados intensivos, monitorean a los pacientes
y realizan diagnósticos. Se han creado sistemas expertos que colaboran con
los médicos.
La búsqueda de ruta es otro de uso común para la IA, ampliamente visto en los juegos de estrategia en
tiempo real. (Recuperado de El píxel ilustre, http://goo.gl/4ugYps)
Gestión de Información
La IA nos permite extraer fácilmente información desde diferentes fuentes,
pero se requiere de mucho esfuerzo para conseguirlas; un ejemplo de ello
es la minería de los datos.
Rich, E. Y Knight, K. (1991) Artificial Intelligence (2ª ed.). New York: Mc Graw-Hill.
Inteligencia
Artificial
Agentes inteligentes
Entorno
Según Russell y Norvig (2004): “un agente es cualquier cosa capaz de
percibir su medio ambiente con la ayuda de sensores y actuar en ese
medio utilizando actuadores” (Russell y Norvig, 2004, p. 37)
Percepción Acción
[A, LIMPIA] DERECHA
[A, SUCIA] LIMPIAR
[B, LIMPIA] IZQUIERDA
[B, SUCIA] LIMPIAR
[A, LIMPIA] [A, LIMPIA] DERECHA
[A, LIMPIA] [A, SUCIA] LIMPIAR
….. …..
[A, LIMPIA] [A, LIMPIA] [A, LIMPIAR
SUCIA]
Tipos de Agentes
Cómo es el
mundo ahora
Medio ambiente
Reglas de Qué acción debo
condición-acción tomar
Actuadores
¿Cómo evoluciona el
¿Cómo es el
mundo?
mundo ahora?
Medio ambiente
¿Qué efecto causan
mis acciones?
¿Qué acción
debo tomar?
Reglas de
condición-acción
Actuadores
Esquema de un Agente reactivo basado en modelos (Fuente: Russell y Norvig, 2004, p. 56)
Agente Sensores
Estado
Medio ambiente
¿Qué efecto causan ¿Qué pasará si
mis acciones? realiza acción A?
¿Qué acción
debo tomar?
Objetivos
Actuadores
Agente Sensores
Estado
Medio ambiente
mis acciones? realiza acción A?
¿Estaré contento
Utilidad en este estado?
¿Qué acción
debo tomar?
Actuadores
Agente
Sensores
Crítica
Retroalimentación
Medio ambiente
Elemento de Cambio
aprendizaje Elemento de
Conocimiento actuación
Objetivos a
aprender
Generador de
problemas
Actuadores
Rich, E. Y Knight, K. (1991) Artificial Intelligence (2ª ed.). New York: Mc Graw-Hill.
Inteligencia
Artificial
Algoritmos: problemas y
búsquedas de soluciones
Introducción
Antes de profundizar en los algoritmos de búsqueda propiamente dichos,
debemos comenzar entendiendo un tipo especial de agente inteligente
denominado Agente Resolvente de Problemas, el cual pertenece al grupo
de los Agentes basados en objetivos.
Una solución óptima es la que implica el menor costo del camino entre
todas las soluciones posibles.
A
5 M
D
3
F
10 10
12 3
L 6
C 4
2 B
G 3
4 5
J K
8
6 11
H 8
E
4 14
I
Estructura común de un grafo con su estado inicial A y la secuencia de caminos, con sus
correspondientes costos numéricos, que llevan al estado objetivo B. (Fuente: elaboración
propia a base de Russell y Norvig, 2004)
Ascolano, F., Cazorla, M. A., Alfonso, M. I., Colomina, O., Lozano Ponce y Cruz, P.
(2003). Inteligencia artificial. Modelos, técnicas y áreas de aplicación. Madrid:
Paraninfo.
Cabrales, S., García, D., Girón, I., Medina, L., Rodríguez, E. y Valenzuela, A.
(23/04/2014) Semántica de las reglas de producción. Instituto Tecnológico
Superior de Lerdo. Recuperado de http://es.slideshare.net/Zero2306/semntica-
12645677
Inteligencia
Artificial
Estrategias de búsqueda
Estrategias de búsqueda no
informada o búsqueda a ciegas
Se las denomina así porque en este tipo de búsquedas no se tiene
información adicional acerca de los estados, más allá de la proporcionada
por la definición del problema. Lo único que ellas pueden hacer es generar
los sucesores y distinguir si un estado es objetivo o no.
búsqueda bi-direccional.
En este gráfico puede verse cómo crece el tiempo y la memoria de manera exponencial al
crecer la profundidad. (Fuente: Russell y Norvig, 2004, p. 83)
si nodo frontal tiene hijos, insertar todos sus hijos al final de la cola;
Es completa: No;
Es óptima: No;
Es óptima: sí;
Es óptima: no;
Podemos compararlo con los nodos generados por una búsqueda primero
en anchura:
es óptima: sí, siempre que los costos sean iguales y se use búsqueda
primero en anchura;
su complejidad en tiempo es de: O(bd/2);
búsqueda A*.
La definición de heurística, según el diccionario de la RAE, nos indica que
es: “una regla aproximada, una simplificación, o estimación justificada que
reduce o limita la búsqueda de soluciones en dominios difíciles o poco
comprendidos”.
Búsqueda A*
Es la estrategia más ampliamente difundida dentro de los tipos de
búsqueda primero el mejor.
Es decir, es optimista.
Formalmente:
Demostración:
Supongamos la existencia de un nodo objetivo G2 sub-óptimo en la
frontera, y que el costo de la solución óptima es C*.
n
’
Nodo
Objetivo
es completa: sí;
Ascolano, F., Cazorla, M. A., Alfonso, M. I., Colomina, O., Lozano Ponce y Cruz, P.
(2003). Inteligencia artificial. Modelos, técnicas y áreas de aplicación. Madrid:
Paraninfo.
Cabrales, S., García, D., Girón, I., Medina, L., Rodríguez, E. y Valenzuela, A.
(23/04/2014) Semántica de las reglas de producción. Instituto Tecnológico
Superior de Lerdo. Recuperado de http://es.slideshare.net/Zero2306/semntica-
12645677
Inteligencia
Artificial
Lógica proposicional y lógica
de predicados
¿Es posible representar el
conocimiento? ¿Se puede generar
nuevo conocimiento?
Agentes basados en
conocimiento
Un agente basado en conocimiento es aquel que posee una base de
conocimiento que le ayuda a realizar sus acciones y a inferir (generar)
conocimiento nuevo a partir del ya existente. Por lo general, una base de
conocimiento está conformada por aserciones del mundo real almacenadas
mediante alguna forma de representación específica, como puede ser la
lógica proposicional o la lógica de predicados.
Representación del
conocimiento mediante lógica
proposicional
Esta es la más antigua y simple de las formas de lógica. Permite representar
y manipular aserciones sobre el mundo que nos rodea, utilizando una
representación primitiva del lenguaje.
Una sentencia simple es, entonces, una proposición que tiene únicamente
un valor verdadero (v) o falso (f), por ejemplo:
Hoy es lunes.
Hace frio.
hoy_es_lunes;
ayer_salió_el_sol;
hace_frío.
hoy_es_lunes y hace_frío.
v v v v f v v
v f v f f f f
f v v f v v f
f f f f v v v
para los casos en los cuales p sea falso, la expresión p => q es siempre
verdadera, independientemente de los valores lógicos que tome q,
ya que el operador de implicación no puede hacer inferencias acerca
de los valores de q.
Entonces, p => q se lee: “p implica a q” o “p entonces q”.
Tanto para las proposiciones como para los predicados existe algún un valor
que los hace verdaderos. En los predicados su veracidad está definida a
partir de sus términos. Por ejemplo:
se_encuentra_en(Argentina, Europa)
Ascolano, F., Cazorla, M. A., Alfonso, M. I., Colomina, O., Lozano Ponce y Cruz, P.
(2003). Inteligencia artificial. Modelos, técnicas y áreas de aplicación. Madrid:
Paraninfo.
Cabrales, S., García, D., Girón, I., Medina, L., Rodríguez, E. y Valenzuela, A.
(23/04/2014) Semántica de las reglas de producción. Instituto Tecnológico
Superior de Lerdo. Recuperado de http://es.slideshare.net/Zero2306/semntica-
12645677
Inteligencia
Artificial
Inferencia y razonamiento
Por otro lado razonar es pensar de manera ordenada para poder llegar a una
determinada conclusión; se puede decir, entonces, que se está infiriendo o
concluyendo en base a hechos conocidos o asumidos. (Russell y Norvig,
2004)
Nosotros podremos realizar cualquier inferencia utilizando la lógica de
predicados, ya que esta proporciona un conjunto de reglas muy bien
definidas, para tal fin, que veremos a continuación.
Reglas de inferencia
Las principales reglas de inferencia son:
A => B
B => C
C => D
Entonces: A => D
~(A => B)
Y si recordamos: A => D ≡ ~A D
A => D es un teorema porque su negación lleva a una contradicción. (Fuente: Ascolano, F.,
Cazorla, M. A., Alfonso, M. I., Colomina, O., Lozano Ponce y Cruz, P., p. 58)
Por ejemplo:
Representación del
conocimiento mediante reglas
La forma de representación del conocimiento mediante reglas es la más
comúnmente utilizada debido a su similitud con el razonamiento humano.
Ascolano, F., Cazorla, M. A., Alfonso, M. I., Colomina, O., Lozano Ponce y Cruz, P.
(2003). Inteligencia artificial. Modelos, técnicas y áreas de aplicación. Madrid:
Paraninfo.
Cabrales, S., García, D., Girón, I., Medina, L., Rodríguez, E. y Valenzuela, A.
(23/04/2014) Semántica de las reglas de producción. Instituto Tecnológico
Superior de Lerdo. Recuperado de http://es.slideshare.net/Zero2306/semntica-
12645677
Inteligencia
Artificial
Redes neuronales
Las redes neuronales artificiales o el
modelo conexionista
Introducción
A lo largo de este módulo veremos los métodos estadísticos de aprendizaje
y razonamiento, veremos que estos métodos van desde simples cálculos
hasta modelos más complejos, como lo son las redes neuronales multicapa.
Fundamentos biológicos
Cada neurona en nuestro cerebro está compuesta por un cuerpo, axones y
dendritas. Las dendritas forman un "cepillo filamentoso" muy fino que rodea
el cuerpo de la neurona.
Partes de una célula nerviosa o neurona (Fuente: Russell y Norvig, 2004, p. 13)
Si tomamos a cada neurona por separado veremos que son
extremadamente lentas comparándolas con sus homologas artificiales, ya
que trabajan en el rango de los milisegundos, lo cual representa una
eternidad para una computadora digital. Sin embargo, los humanos
podemos llevar a cabo tareas extremadamente complejas, como la
interpretación de una escena visual o la comprensión de una frase
incompleta en la décima parte de un segundo. En, otras palabras, que lo que
nosotros somos capaces de realizar en 100 pasos, a una computadora puede
llevarle 10 millones de pasos.
Pero, ¿cómo puede ser esto posible si cada una de nuestras neuronas es tan
lenta? La diferencia está en que nuestro cerebro contiene un número
gigantesco de elementos procesadores que actúan en paralelo.
Redes neuronales
Podemos decir que una red neuronal artificial es, básicamente, la
reproducción mediante computadores del funcionamiento del cerebro
humano. “Su principal aplicación es en torno a las tareas en que los seres
humanos fácilmente superan a los computadores tradicionales, como en
procesamiento de señales, procesamiento de imágenes, procesamiento de
voz, robótica y otros”. (Gamarra Moreno, http://goo.gl/y4pqoq, p. 165)
Nuestro cerebro está formado por miles de millones de neuronas
interconectadas entre sí en forma variable y compleja.
A su vez, cada uno de los elementos simples que componen una red
neuronal está formado por:
Modelo matemático sencillo para la neurona. (Fuente: Russell y Norvig, 2004, p. 839)
Función umbral:
Las unidades neuronales con los pesos adecuados pueden representar las funciones
booleanas AND, OR y NOT. (Fuente: Russell y Norvig, 2004, p. 840)
¿Te atreverías a verificar, utilizando una función
sigmoide, si se cumple la representación de las
funciones booleanas “AND, OR y NOT” utilizando
estas unidades básicas neuronales?
Estructuras
Brevemente, diremos que existen dos estructuras principales de redes
neuronales:
Las entradas (x1, x2, x3,…, xn) y los pesos de las conexiones (w1, w2, w3,…, wn)
son valores normalmente reales que pueden ser negativos o positivos. Si la
presencia de alguna entrada xi tiende a causar la activación del perceptrón,
el peso wi será positivo, y si la entrada xi inhibe al perceptrón, entonces el
peso wi será negativo.
Lo más interesante es que cualquiera que sea el cálculo que se tenga que
realizar con un perceptrón, este puede aprender a calcularlo.
Llegado a este punto, se debe aclarar que por lo general los perceptrones
solo pueden representar funciones linealmente separables. Esto se debe a
la forma de calcular que tiene intrínsecamente un perceptrón y porque,
además, este se comporta como un “separador lineal”. Si vemos
detalladamente el modo de cálculo de un perceptrón, entenderemos más
este concepto. Si tenemos un vector de entrada x (x1, x2, x3,…, xn), podemos
advertir (como vimos anteriormente con las unidades neuronales básicas)
que la función de la suma ponderada g(x) y la función de salidas o(x) se
definen como:
g(x) = wi . xi (para i=0 hasta n)
x2 = -((w1/w2).x1) – (w0/w2)
Como puede verse, la ecuación de esta recta está determinada por los pesos
w0, w1 y w2. Por lo tanto, si un vector de entrada se sitúa hacia uno de los
dos lados de la recta, el perceptrón da como salida 1, y si se sitúa al otro lado
el perceptrón, da como salida 0; es decir que tendremos una recta que
separa dos casos de entrenamiento correctamente. Dicha recta suele
denominarse superficie de decisión. Para perceptrones con muchas
entradas, la superficie de decisión es un hiperplano en el espacio
multidimensional de los posibles vectores de entrada.
Separación lineal del perceptrón para el caso de las funciones booleanas AND y OR
(gráficos a y b respectivamente) y el problema de intentar representar una función no
lineal, como lo es la función XOR (gráfico c). (Fuente: Russell y Norvig, 2004, p. 843)
Dos cuestiones muy importantes a tener en cuenta son que:
2. Inicializar los pesos (w1, w2, w3,…, wn) con valores reales aleatorios.
5. Modificar los pesos (w1, w2, w3,…, wn), añadiendo los elementos del
vector S a éstos. Volver al paso 3.
Podríamos decir que una red multicapa es capaz de calcular cualquier cosa.
Dado un conjunto de entradas, se pueden utilizar unidades de suma y
umbral simples como compuertas “AND, OR y NOT”, seleccionando
apropiadamente el umbral y los pesos de conexión. Con esto se pretende
decir que es posible construir un circuito combinacional cualquiera
constituido por dichas unidades lógicas básicas.
Aplicaciones
Las redes neuronales artificiales son un tema apasionante y tienen un
ámbito muy grande de aplicación, desde los juegos de computadora hasta la
medicina. A continuación, se detallaran brevemente algunos de estos casos.
Se eligieron las redes neuronales para llevar este trabajo debido a que estas
son muy buenas para representar funciones o reconocer patrones. Además,
la ventaja de la segunda configuración es que el tiempo de entrenamiento
se reduce considerablemente en relación con otros algoritmos y, a su vez, se
garantiza una buena velocidad de convergencia.
Proceso seguido para el desarrollo de la red neuronal para este caso. (Fuente: Ponce Cruz, 2010, p. 26).
Imagen del corazón que remarca los marcadores anatómicos (Fuente: Ponce Cruz,
2010, p. 27)
Gamarra Moreno, Abraham (s. f.). Aprendizaje con redes neuronales artificiales.
Recuperado de http://goo.gl/y4pqoq
Inteligencia
Artificial
Ontología, categorías y medidas
Introducción
En el apartado anterior vimos cómo un agente es capaz de aprender y
entrenar su conocimiento y, si nos remitimos a capítulos anteriores,
recordarás que hemos visto brevemente también que el conocimiento
puede ser representado por medio de la lógica proposicional o de la lógica
de predicados. A continuación, y a lo largo de este capítulo, estudiaremos
otra rama de la IA muy apasionante y que tiene mucho que ver con la
representación del conocimiento de los problemas del mundo real,
denominada Ingeniería Ontológica. Esta rama de la IA es muy importante ya
que en muchas interacciones o búsquedas nuestras, como usuarios de
Internet, seguramente hay por detrás una representación ontológica.
Ingeniería Ontológica
En el dominio de un problema de juguete vimos que la representación del
conocimiento era bastante simple y limitada, pero cuando nos enfrentamos
a un problema del mundo real (como puede ser una compra en Internet o el
desplazamiento de un robot en un entorno cambiante) se requieren
representaciones más generales y flexibles. La definición y representación
de estos conocimientos es lo que se denomina Ingeniería Ontológica.
Más adelante se definirá lo que significa un objeto físico y sus detalles; por
ahora podemos decir que el marco de trabajo que permite especificar estos
conceptos se denomina ontología superior debido a la convención general
de representar en los grafos los conceptos generales en la parte superior y
los conceptos más específicos debajo de ellos. (Russell y Norvig, 2004)
Representación de la ontología superior del mundo, donde cada arco indica que el concepto inferior es una
especialización del concepto superior. (Fuente: Russell y Norvig, 2004, p. 364)
Pero, ¿cuál será el nivel de abstracción adecuado para definir una ontología?
¿Conviene definir una ontología muy general, que sea capaz de abarcar la
totalidad de los problemas a los que un agente inteligente pueda
enfrentarse?, ¿o conviene especificar una ontología más específica, para
luego generalizarla? Además, ¿todas las ontologías terminarán
convergiendo en una ontología de propósito general? Las respuestas a todas
estas preguntas las iremos tratando de responder a lo largo de este
apartado; por lo pronto, podremos decir que una ontología de propósito
general se distingue de una de propósito específico por dos características:
Categoría y Objetos
Una parte central de la representación del conocimiento es la de organizar
a los conjuntos de objetos en categorías, ya que la mayoría de las veces
nuestro proceso de razonamiento tiene lugar a nivel de categorías. Por
ejemplo, una persona puede tener la intención de comprar de forma
genérica una pelota de baloncesto en lugar de querer comprar una pelota
específica de baloncesto.
Las categorías son útiles también para realizar predicciones sobre los
objetos, una vez que estos están clasificados. Por ejemplo, a partir de las
características: gris, mamífero, con trompa, se puede inferir que un objeto
es un elefante; a partir de esto, uno puede inferir que este puede tener
mucha memoria ya que es una característica comúnmente difundida y
conocida de este tipo de animales.
Por medio de la herencia, podemos decir que las categorías sirven para
organizar y simplificar el conocimiento base. Por ejemplo, si se dice que
todos los objetos que pertenecen a la categoría “alimentos” son comestibles
y se afirma que “fruta” es una subclase de alimentos, y que “manzanas” en
una subclase de fruta, entonces cualquier manzana es comestible. Por todo
esto, podemos decir que las manzanas individuales heredan la propiedad
comestible, en este caso por su función de pertenencia a la categoría
alimentos. Las relaciones de subclasificación organizan categorías en
taxonomía, o relaciones taxonómicas.
Trompita Elefantes
Elefantes Mamíferos
Perros EspeciesDomesticadas
Disjunto({Animales, Vegetales})
Objetos compuestos
Con esto nos referimos a que un objeto puede ser parte de otro. Esta es una
idea simple, familiar y que muy a menudo empleamos. Por ejemplo: un
capítulo es parte de un libro, la oreja es parte de la cabeza, etcétera. Por lo
general, se utiliza la relación ParteDe para indicar que algo forma parte de
otra cosa, por ejemplo:
ParteDe(Córdoba, Argentina)
ParteDe(Argentina, Sudamérica)
ParteDe(Sudamérica, América)
ParteDe(América, Tierra)
ParteDe(x, x)
Gamarra Moreno, Abraham (s. f.). Aprendizaje con redes neuronales artificiales.
Recuperado de http://goo.gl/y4pqoq
Inteligencia
Artificial
Sustancias, eventos y procesos
Podemos decir que una sustancia son todos aquellos objetos a los que
resulta imposible separar o descomponer en otros objetos. Así, por ejemplo,
si tenemos un trozo de manteca y lo partimos en dos trozos, entonces
tendremos dos trozos de manteca, pero sin lugar a dudas podremos decir
que seguimos teniendo manteca por más pedazos que hagamos de la
misma. Esto no ocurre así con, por ejemplo, un perro ya que si lo partimos
por la mitad no podemos asegurar que tendremos dos perros.
Resultado([], s) = s
Uno de los problemas que se presentan es que el axioma de efecto nos dice
qué es lo que cambiará, pero no lo que permanecerá igual. Aquí aparece lo
que se conoce como problema del marco, es decir, lograr representar todas
las cosas que permanecen inalterables.
Formalización del axioma del cálculo de eventos (Fuente: Russell y Norvig, 2004, p. 380)
SubEvento(BatallaDiaD, SegundaGuerraMundial)
En(Sydney, Australia)
Con lo cual estaremos diciendo que Roberto voló ayer de Buenos Aires a Sao
Pablo.
E(c, i) e : e c SubEvento(e, i)
Podemos escribir, por ejemplo, que Roberto iba volando en algún momento
del día de ayer:
E(Volando(Roberto), Ayer)
T(Trabajando(Juan), HoyHoraDelAlmuerzo)
Más genéricamente, lo podemos escribir como T(c, i), lo cual significa que
cierto evento de tipo c se produjo exactamente durante el intervalo i.
Gamarra Moreno, Abraham (s. f.). Aprendizaje con redes neuronales artificiales.
Recuperado de http://goo.gl/y4pqoq
Inteligencia
Artificial
Razonamiento
Sistemas de razonamiento para
categorías
Introducción
Vimos a las categorías como bloques de construcción primarios para
esquemas de representación del conocimiento a gran escala. Existen dos
familias de sistemas íntimamente relacionadas: las redes semánticas y la
lógica descriptiva.
Redes Semánticas
Las redes semánticas son una forma de lógica. Estas proporcionan una ayuda
gráfica sobre una base de conocimiento y, además, cuentan con algoritmos
eficientes para inferir propiedades de un objeto de acuerdo a su pertenencia
a una categoría.
Una red semántica con predicados sobre intervalos de tiempo. (Fuente: Russell y Norvig, 2004, p. 398)
Como puede verse, la forma de notación de la red semántica hace que sea
muy simple el razonamiento basado en herencia.
p, s TieneHermana(p, s) HermanaDe(s, p)
Lógica Descriptiva
La lógica descriptiva está basada en notaciones diseñadas para hacer más
fácil describir definiciones y propiedades de categorías. Los sistemas de
lógica descriptiva han evolucionado desde las redes semánticas permitiendo
formalizar el significado de la red y manteniendo el énfasis en la estructura
taxonómica.
P(v1,…, vn) B1
P(v1,…, vn) Bk
P(v1,…, vn) B1 … Bk
P(v1,…, vn) B1 … Bk
Gamarra Moreno, Abraham (s. f.). Aprendizaje con redes neuronales artificiales.
Recuperado de http://goo.gl/y4pqoq
Inteligencia
Artificial
Hardware
Sensores y actuadores que permiten a
los agentes interactuar
Introducción
En este módulo veremos los principales aspectos de la robótica, otro campo
apasionante de la IA, el cual es, quizás, el más conocido. Podemos comenzar
diciendo que un robot es todo aquel agente físico que lleva a cabo sus tareas
por medio de la manipulación física del mundo. Para realizar dichas tareas
estos están equipados con efectores como piernas, ruedas, articulaciones y
pinzas. El fin de los efectores es transmitir fuerzas físicas al entorno. También
los robots están equipados con sensores (desde cámaras y ultrasonidos para
medir el entorno hasta giroscopios y acelerómetros para medir su propio
movimiento), que les permiten percibir el entorno.
Los robots reales normalmente suelen hacer frente a ambientes que sólo
son observables parcialmente, estocásticos, dinámicos y continuos. Algunos
de estos ambientes son a la vez secuenciales y multiagente.
Los Robots Humanoides P3 y Asimo construidos por Honda. (Russell y Norvig, 2004, p.
1024)
Sensores
Los sensores son la interfaz que le permite percibir a un robot lo que está
pasando en su entorno.
Sensores pasivos: capturan las señales que son generadas por otras
fuentes en el entorno. Dentro de este grupo tenemos a las cámaras,
por ejemplo.
Los sensores activos suelen proporcionar más información que los pasivos,
pero a expensas de un mayor consumo y con el peligro de causar
interferencias cuando se usan múltiples sensores al mismo tiempo. Pero, ya
sean activos o pasivos, podemos decir que los sensores se pueden dividir en:
Sensores que toman imágenes del entorno: dentro de estos, los más
comunes son las cámaras que proporcionan a los robots imágenes
del entorno, para las cuales se utilizan complicadas técnicas de
tratamiento de visión artificial.
Escáner de rango SICK LMS basado en Láser. (Russell y Norvig, 2004, p. 1026)
Efectores
Los efectores permiten a los robots moverse y cambiar la forma de sus
cuerpos. Pero, para entender esto, conviene hablar primero del concepto de
grados de libertad. Nosotros contamos los grados de libertad como cada
dirección independiente del robot en la cual uno o varios de sus efectores se
pueden mover. Por ejemplo, un brazo rígido de robot que tiene seis grados
de libertad, tendrá tres para los ejes x, y, z que permitirán su localización en
el espacio, y los otros tres nos darán su orientación angular, denominados
por lo general como desvío, balanceo y cabeceo (yaw, roll y pitch). Estos seis
grados nos dan el estado de pose (o cinemático) del robot. El estado
dinámico del robot incluye una dimensión adicional para evaluar el cambio
cinemático de cada dimensión. Seis grados de libertad son los mínimos
requeridos para poner un objeto en una posición y orientación
determinadas.
Los robots con menos grados de libertad se hacen más difíciles de controlar
que aquellos que poseen más grados de libertad.
Para los robots móviles, los grados de libertad no son necesariamente los
mismos que el número de elementos actuadores. Por ejemplo, un automóvil
se puede mover hacia delante y hacia atrás, y puede girar, es decir que tiene
sólo dos grados de libertad. Pero la cinemática de un automóvil es
tridimensional, es decir que en una superficie abierta puede fácilmente
moverse hacia cualquier punto (x, y) en cualquier orientación. De esta
manera, vemos que el automóvil tiene tres grados efectivos de libertad pero
sólo dos grados controlables de libertad.
Percepción Robótica
El proceso mediante el cual los sensores del robot construyen un mapa del
entorno utilizando una determinada representación interna se denomina
percepción. Esta suele ser un proceso complejo porque es común que los
sensores tengan ruido y el entorno sea parcialmente observable,
impredecible y dinámico. Por esto, una buena representación interna suele
tener tres propiedades:
Localización
Cuando hablamos de localización, nos referimos al problema de determinar
dónde están las cosas. La localización es una de las cuestiones más
importantes de la percepción robótica, ya que el conocimiento sobre dónde
están las cosas es el núcleo principal para una satisfactoria interacción del
robot con el mundo real. Por ejemplo, los manipuladores del robot deben
saber la localización de los objetos que han de manipular. Los robots
navegadores deben saber dónde están para poder encontrar las
localizaciones requeridas.
Podemos decir que el problema de la localización esta dado por tres formas
con dificultad incremental:
Generación de Mapas
Por lo general, en robótica se intentan localizar muchos objetos. El ejemplo
más común es la construcción de mapas mediante robots. Si tenemos un
robot al que no se le da un mapa del entorno, entonces, el robot debe
construir su propio mapa. La generación de mapas mediante robots se suele
denominar localización y mapeado simultáneo o SLAM. El robot debe ser
capaz de construir el mapa y, además, lo debe hacer sin tener ningún
conocimiento sobre dónde está ubicado. SLAM es uno de los problemas
principales y más complejos de la robótica.
Planear el movimiento
Podemos decir que el movimiento punto a punto consiste en situar al robot,
o a sus efectores, en una posición determinada. Además, tenemos el
problema del movimiento obediente en el cual un robot se desplaza
mientras está en contacto físico con un obstáculo, como por ejemplo: un
robot que manipula un destornillador con una bombilla o un robot que pone
una caja encima de una mesa.
Antes que nada, debemos encontrar una buena representación por medio
de la cual los problemas de planificación puedan ser descritos y
solucionados. Tenemos, por un lado, lo que se denomina como espacio de
configuración, que no es otra cosa que el espacio de los estados del robot
definido por la localización, orientación y ángulos de las articulaciones.
Resulta que este espacio de configuración es una abstracción mejor para
trabajar que el espacio original, en tres dimensiones, del mundo real. Por lo
tanto, el problema de planificación de trayectorias consistirá en encontrar
un camino desde una configuración a otra del espacio. Algo para destacar es
que la planificación requiere espacios continuos. Las aproximaciones más
comunes se conocen como descomposición en celdas y esqueletización.
Cada una reduce el problema continuo de planificación en la búsqueda sobre
un grafo discreto mediante la identificación de algunos estados canónicos y
caminos entre el espacio libre.
Espacio de configuración
El primer paso hacia la solución del problema es encontrar una
representación apropiada para el problema. Para ello, consideremos el
brazo de robot que tiene solo dos articulaciones que se mueven
independientemente.
Representación del área de trabajo de un brazo robótico con dos grados de libertad. El
área de trabajo es una caja con un obstáculo plano colgando del techo. (Russell y Norvig,
2004, p. 1042)
Es obvio que estas cuatro coordenadas caracterizan el estado del robot. Ellas
constituyen lo que se conoce como representación del área de trabajo, en
la que las coordenadas del robot se especifican con el mismo sistema de
coordenadas que los objetos que busca para manipular (o evitar). Podemos
decir que si el robot y todos los objetos dentro del área de trabajo se pueden
representar por modelos poligonales simples, entonces la representación de
dicha área de trabajo está bien adaptada para la comprobación de
colisiones. El problema con la representación del área de trabajo es que no
todas las coordenadas de dicha área son realmente alcanzables, aún con la
ausencia de obstáculos. Por ejemplo, la posición del codo (xe, ye) y de la pinza
(xg, yg) distan siempre una distancia fija porque están unidas por un brazo
rígido. Un planificador de movimiento de un robot dado, sobre un área de
trabajo con coordenadas, se enfrenta al problema de generar soluciones que
soporten dichas limitaciones.
El espacio de configuración del robot, en donde sólo las regiones blancas en el espacio son
configuraciones libres de colisión. (Russell y Norvig, 2004, p. 1042)
la región negra que rodea el espacio libre por entero equivale a las
configuraciones en las que el robot colisiona consigo mismo;
las dos regiones ovales a ambos lados del robot corresponden a la
mesa donde el robot está montado;
(a) Función de valor y ruta encontrada para una aproximación de rejilla discreta de celdas
del espacio de configuración. (b) La misma ruta visualizada en coordenadas del área de
trabajo. (Russell y Norvig, 2004, p. 1044)
Métodos de esqueletización
Estos tipos de algoritmos transforman el espacio libre del robot a una
representación unidimensional, haciendo que el problema de planificación
sea mucho más simple. La representación unidimensional del espacio libre
del robot es denominada esqueleto del espacio de configuración.
(a) El diagrama de Voronoi es un conjunto de puntos equidistantes a dos o más obstáculos
en el espacio de configuración. (b) Un itinerario probabilístico, compuesto de 400 puntos
elegidas al azar en espacio libre. (Russell y Norvig, 2004, p. 1046)
Brooks, R. A. (1986). A robust layered control System for a mobile robot. IEEE
Journal o f Robotics and Automation, 2, 14-23.
Inteligencia
Artificial
Movimiento
Dinámica y Control
Cuando hablamos de efectores, vimos el estado dinámico de un robot: este
extiende el estado cinemático del robot, es decir que, por ejemplo, no solo
considera los ángulos de las articulaciones de un robot, sino que además
captura la velocidad de cambio del ángulo. Es muy común expresar por
medio de ecuaciones diferenciales los modelos de representación de un
estado dinámico que incluye el efecto de las fuerzas en esta velocidad de
cambio.
Control de brazo robótico utilizando (a) control proporcional con factor de ganancia 1,0;
(b) control proporcional con control de ganancia 0,1; y (c) control PD con factores de
ganancia 0,3 para el componente proporcional y 0,8 para el diferencial. (Russell y Norvig,
2004, p. 1053)
at = Kp(y(t) - xt)
Donde:
Si equipamos un robot, que debe seguir una linea recta pintada en el piso,
con un controlador P, lo más probable que ocurra es que si el robot se sale
por la izquierda o derecha de la línea recta y el controlador P corrige esa
situación girando al robot en el sentido opuesto al que se dirigía y así
sucesivamente, veremos que el robot va zigzagueando a lo largo de su
trazado por encima de la línea recta, como consecuencia de la utilización
de un controlador P.
Según tu criterio y leyendo la bibliografía, el
controlador P descripto hasta aquí, ¿es estable y
estrictamente estable? ¿Por qué?
Control por campo de potencial. (a) Ruta con éxito; (b) Óptimo local. (Russell y Norvig,
2004, p. 1055)
Las técnicas de campo potencial son muy buenas para control local del
robot, pero necesitan de planificación global. Además, dichas técnicas
tienen el inconveniente de que las fuerzas que generan dependen sólo de la
posición del robot y de los obstáculos (son un método cinemático), no de la
velocidad del robot, por lo cual este tipo de control puede fallar si el robot
se mueve rápidamente.
Control reactivo
Hasta ahora nos referimos a lograr controlar un robot por medio de técnicas
que requieren algún modelo del entorno, ya sea para construir una ruta de
referencia o un campo potencial. Pero vimos que este tipo de técnicas
acarrean diferentes inconvenientes:
Es por esto que muchas veces conviene diseñar un agente robótico guiado
por sus reflejos, o lo que también se conoce como: control reactivo.
(a) Un robot hexápodo; (b) Un autómata finito aumentado (AFSM o Augmented Finite
State machine) para el control de una única pierna. (Russell y Norvig, 2004, p. 1056)
De esta manera, para el robot con piernas de la figura anterior lograr definir
una ley de control se convierte en algo muy simple con el nivel de
abstracción correcto. Una ley correcta debería coordinar las seis piernas de
tal forma que tres de ellas (opuestas) estuvieran siempre en tierra para
darle al robot el adecuado soporte físico. Este patrón de control es excelente
para terreno plano y es fácilmente programable. En un terreno abrupto (con
obstáculos) puede producirse oscilación, pero esto se soluciona fácilmente
con la siguiente sencilla regla de control: cuando se bloquea el movimiento
hacia delante de una pierna, retrasar la misma, elevarla más alto y volver
a intentar.
Brooks, R. A. (1986). A robust layered control System for a mobile robot. IEEE
Journal o f Robotics and Automation, 2, 14-23.
Nombre de la
materia
Arquitectura de subsunción y de
tres capas
¿Cómo se estructuran los robots?
Introducción
Podemos decir que una arquitectura de software es una metodología para
estructurar algoritmos, y podemos denominar a una arquitectura, de
manera general, como al conjunto de lenguajes y herramientas que
permiten desarrollar programas, así como también una filosofía global de
cómo esos programas deben estructurarse y unirse.
Arquitectura de subsunción
En la arquitectura de subsunción las conductas complejas son el resultado
evolutivo de funciones conductuales simples. Se comienza por diseñar una
red de procesadores y otros equipos capaces de producir conductas
sencillas. No se añaden al sistema de conductas nuevas hasta que las
conductas que subsumen no están perfectamente a punto y en marcha.
Podemos decir que es una plataforma que permite armar autómatas finitos
por medio de la unión de controladores reactivos simples.
Brooks, R. A. (1986). A robust layered control System for a mobile robot. IEEE
Journal o f Robotics and Automation, 2, 14-23.
Inteligencia
Artificial
Programación y dominios de
aplicación
Cuando definimos una arquitectura, hablamos de lenguajes y herramientas
que nos permiten desarrollar programas para nuestros robots. Es por ello
que en este apartado hablaremos de algunos de los lenguajes de
programación para la robótica.
Sistema robótico desarrollado con C++ utilizado para minimizar las cirugías invasivas al
corazón. (Fuente: TUM, http://goo.gl/tFQ3n0)
ALisp es un lenguaje, el cual surge como una extensión de Lisp. Mediante
ALisp podemos hacer que un robot aprenda inductivamente la acción
correcta mediante aprendizaje por refuerzo. ALisp permite la incorporación,
de manera flexible, de conocimiento del dominio. ALisp sólo ha sido aplicado
a problemas robóticos en simulación, pero parece ser una metodología
prometedora para construir robots que aprendan a través de la interacción
con el entorno.
Dominios de Aplicación
Del mismo modo en que analizamos de manera genérica la IA, en este
apartado veremos cuáles son los principales campos de aplicación de la
robótica.
Industria y Agricultura
Por lo general, los robots fueron y son desarrollados para llevar a cabo las
tareas que resultan complejas o son muy pesadas para que sean realizadas
por los humanos.
Transporte:
En este ámbito tenemos desde helicópteros autónomos, que entregan
objetos a localizaciones inaccesibles, hasta sillas de ruedas automáticas.
Otro claro ejemplo son los robots autónomos que transportan carga, por
ejemplo, desde barcos a camiones en muelles de carga.
Robot Bellbot utilizado para transportar pedidos a las habitaciones de un hotel. (Fuente:
Ride, http://goo.gl/U0mGFc)
Posible escenario de transporte dentro de un hotel para Bellbot. (Fuente: Ride,
http://goo.gl/U0mGFc)
Es decir que los robots son la herramienta ideal para recabar información en
ámbitos peligrosos o de difícil acceso.
Brooks, R. A. (1986). A robust layered control System for a mobile robot. IEEE
Journal o f Robotics and Automation, 2, 14-23.