Revolución IA
La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica
Inicio | Sobre Revolucionia | Temas | Para saber más | Contacto |
Lógica para agentes basados en conocimiento
Fernando P. 21/02/2018
Temas: Fundamentos
La característica fundamental de los agentes
basados en conocimiento consiste en que
son capaces de mantener un almacén de conocimiento (AC en lo sucesivo) bien estructurado, compuesto por sentencias, que permite
deducir nuevas sentencias, aumentando el alcance del AC, por la vía de usar construcciones lógicas
de una forma equivalente a como opera el razonamiento humano.
El concepto de construcciones lógicas puede parecer más o menos evidente, pero conviene dar ciertas
descripciones precisas de lo que vamos a entender por construcciones lógicas. Vamos a ver en este
artículo los fundamentos que debe reunir cualquier sistema que use la Lógica para deducir nuevo conocimiento.
Sentencias, síntaxis y semántica
La unidad fundamental de conocimiento que vamos a manejar con agentes basados en conocimiento es
la sentencia. El AC de un agente basado en conocimiento no es más que una
colección de sentencias.
Una sentencia es un concepto abstracto, pero a la hora de modelizar una situación concreta vamos a necesitar
una forma de representar la sentencias para que un computador las pueda manejar.
Denominamos síntaxis al conjunto de símbolos y reglas que vamos a usar para representar nuestras
sentencias. Hay muchas posibles síntaxis, más sencillas o más complicadas. En algunos problemas
será suficiente una síntaxis sencilla para representar todas las posibles sentencias y en otros
problemas necesitaremos una síntaxis más elaborada.
Por ejemplo, en la situación que expusimos relativa a un
posible agente basado en conocimiento
que tenía como misión gestionar inversiones financieras, podemos pensar que algunas de las
sentencias que debe manejar este agente tendrán que ver con la rentabilidad esperada de determinado
activo para los próximos n meses, una posible forma de síntaxis para representar
esto sería como sigue:
Sean a1,a2…an inversiones que podemos hacer
∀ 1≤i≤n sea vt(i) el valor estimado de
la inversión ai en el instante t≥0
Entonces, Rt(i) = [vt(i) - v0(i)] /v0(i) ⋅ 100
será la rentabilidad esperada (en %) de la inversión i hasta el instante t
Podemos usar las definiciones de valor y rentabilidad esperada para definir una síntaxis que nos permita construir ciertas sentencias sencillas sobre el estado de nuestras inversiones. Por ejemplo:
Rt(i) ≥ 10% ; Rt(j) ≤ 5% ; Rt(i) ≥ Rt(j)
Naturalmente, estas sentencias pueden ser ciertas o falsas, dependiendo del valor en cada momento de las
inversiones involucradas. Unas veces serán ciertas y otras veces serán falsas.
La semántica de una sentencia nos habla de la certeza de esa sentencia respecto a todos los valores
posibles del entorno. En el ejemplo de las inversiones, digamos que si el valor de la inversión
i aumenta más de un 10% hasta el instante t ,
pues la semántica de la sentencia Rt(i) ≥ 10% nos dirá que
la sentencia es, efectivamente, cierta. Si el valor disminuye, la semántica de esta sentencia nos dirá
que es falsa.
En general, la semántica de una sentencia sólo proporcionará resultado verdadero o falso para cada
una de las posibilidades del entorno. De momento, no vamos a considerar semánticas que puedan
resultar en incertidumbre.
Semántica y modelos
Cuando definimos una síntaxis para construir sentencias estamos usando las Matemáticas para
modelizar los aspectos de la realidad que son relevantes en nuestro problema.
Traducimos la variabilidad del entorno
del agente en variables matemáticas que pueden adoptar determinados valores.
Fijadas unas condiciones del entorno, diremos que tenemos un modelo concreto y sobre ese modelo
la semántica de nuestras sentencias quedará definida y estas serán verdaderas o falsas.
Siguiendo con el ejemplo de las inversiones, si tenemos un modelo tal que el valor de la inversión
i es
de 100 en el instante 0 y su valor es
150 en el instante 4 , pues sucede que la sentencia
R4(i) ≥ 10% es cierta.
Sea un modelo m y una sentencia α, si sucede que bajo el modelo
m la sentencia α es cierta, decimos que m
satisface α. Por otro lado, denotamos por M(α) al
conjunto de todos los modelos que satisfacen a la sentencia α.
Inferencia lógica
Si tenemos dos sentencias α,β y sucede que
M(α) ⊆ M(β) entonces, y sólo entonces,
decimos que α
implica a β, o que β es consecuencia de α.
Es decir, si α es cierta en determinado modelo también lo será
β. Denotamos esto como α ⊨ β
El que una sentencia pueda implicar otra es el mecanismo básico de la inferencia lógica, que permitirá
a un agente basado en conocimiento deducir nuevas sentencias a partir de las ya conocidas.
Si tenemos un agente basado en conocimiento con su correspondiente AC nos enfrentamos a la tarea
de usar la inferencia lógica sobre AC para derivar nuevas sentencias que sean consecuencia de las
sentencias en AC. Es decir, queremos encontrar una sentencia α tal que:
M(AC) ⊆ M(α)
Esta tarea de inferencia lógica deberá ser llevada a cabo por un algoritmo. Dado un AC, necesitaremos
usar un algoritmo de inferencia lógica que nos permita deducir nuevas sentencias.
Diremos que un algoritmo que usa un AC para generar nuevas sentencias que sean consecuencia de las
sentencias en AC es un algoritmo veraz, en contraposición a algoritmos que no pueden garantizar que las
sentencias que generan sean consecuencia de las sentencias en AC.
Si un algoritmo g es capaz de deducir una sentencia α a partir
de un AC lo denotaremos por:
AC ⊢g α
Si el número de posibles modelos es finito, es posible usar enumeración para calcular los
modelos en los que el AC es válido. Cualquier sentencia que también sea válida para esos
modelos será consecuencia del AC. Un algoritmo de este tipo lo denominaremos como algoritmo de
comprobación.
Por otro lado, decimos que un algoritmo es completo si es capaz de obtener todas las sentencias
que se pueden deducir a partir de cierto AC. Se trata de una propiedad muy deseable pero que no
es fácil que se verifique. Si el número de posibles modelos es finito, posíblemente algún
algoritmo de verificación será completo. Pero si el número de posibles modelos es infinito (lo
más habitual), será difícil encontrar algoritmos completos.
Conexión con la realidad
Usando el esquema de inferencia lógica descrito, si tenemos un AC que es cierto en el mundo real (todas
sus sentencias son ciertas en las condiciones actuales del entorno),
entonces cualquier nueva sentencia deducida usando un algoritmo
veraz deberá ser cierta en el mundo real, será un medio para descubrir hechos reales desconocidos hasta
ese momento.
El AC de un agente basado en conocimiento será cierto en cuanto que la información que el agente
recibe del mundo real a través de sus sensores sea exacta.
Puede suceder que sea posible construir sentencias que son ciertas en la mayor parte de modelos
en las que el AC es cierto, pero no en todos. Esas sentencias no serán derivadas del AC y si las
aceptamos en el mismo romperíamos su veracidad. Pero a menudo ocurre que sentencias de ese
tipo, que son ciertas en un porcentaje altísimo de modelos, podrían ser muy útiles para un agente basado
en conocimiento.
Por ejemplo, para el caso del agente que gestiona inversiones, podemos considerar una sentencia con
el siguiente significado (que habría que ver cómo se codifica según la síntaxis correspondiente):
La rentabilidad del oro no suele caer rápidamente
Naturalmente, esta sentencia es discutible desde el punto de vista financiero, pero es bastante
fácil que sea cierta y muy importante en determinadas situaciones. Desde un punto de vista de
inferencia lógica es difícil integrar algo de esto en un AC.
Este tipo de sentencias que pueden ser muy útiles pero que no encajan en un esquema de
inferencia lógica es lo que vamos a denominar como aprendizaje. Se trata de un conocimiento
perfectamente válido pero que no es infalible, tiene un difícil encaje desde el punto de vista lógico y deben
usarse otras herramientas para que un agente basado en conocimiento gestione este tipo
de información.
La inferencia lógica es un mecanismo muy potente que permite ampliar el almacén de
conocimiento de un agente basado en conocimiento con la seguridad de que todo el nuevo
conocimiento adquirido es cierto en el mundo real si las premisas ya lo son.
Para saber más:
Libro de Stuart Russell y Peter Norvig que trata todas las técnicas de Inteligencia Artificial. No hace demasiado énfasis en cuestiones conectivistas (redes neuronales artificiales) y contiene abundante material del resto de técnicas. El capítulo 7 contiene una discusión detallada sobre los agentes basados en conocimiento y se discute en profundidad el concepto de inferencia lógica.
Inicio |
![]() ![]() |
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales. No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo. Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos. 2017,2018 Revolucionia.net |
Sobre Revolucionia | ||
Temas | ||
Para saber más | ||
Contacto |