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.
Lógica para agentes basados en conocimiento
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 Powered by NetBSD
 
HTML5
 
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