Inteligencia artificial para videojuegos/Razonamiento probabilista

De Wikiversidad

Introducción[editar]

En la inteligencia artificial para videojuegos es relativamente sencillo crear agentes capaces de razonar dentro de contextos bien definidos y controlados. Es cuando aparece la incertidumbre cuando empiezan los problemas. Con ayuda de la probabilidad se puede razonar en la incertidumbre. Para esto, una solución es utilizar formas sistemáticas para razonar sobre una distribución de probabilidad conjunta, para lo que se usan las redes Bayesianas.

De esta manera podemos crear agentes que valoren cada situación y tomen sus decisiones acorde a la situación en la que se encuentren.

Distribución de probabilidad conjunta[editar]

En probabilidad, dados dos eventos aleatorios X y Y, la distribución de probabilidad conjunta de X y Y es la distribución de probabilidad de la intersección de eventos de X y Y, esto es, de los eventos X e Y ocurriendo de forma simultánea. En el caso de solo dos variables aleatorias se denomina una distribución bivariada, pero el concepto se generaliza a cualquier número de eventos o variables aleatorias.

Varias cosas a tener en cuenta: 1) Se puede volver intratable si la cantidad de variables es muy elevada. 2) Es posible simplificarla y dividirla en subtablas, en caso de que existan variables independientes de un suceso X. Con estas tablas se pude hacer inferencia utilizando las reglas de marginalización, condicionamiento y normalización. Estas tablas no son prácticas para razonar, ya que tienen complejidad exponencial.


Con la distribución de probabilidad conjunta podemos responder a toda consulta. En base a esta idea podemos crear un sistema de razonamiento probabilista. Para ello tendremos que tener algún tipo de estructura de datos en el que guardar toda la información (conocimiento) necesaria para el agente o agentes que harán uso de ella.


Red Bayesiana[editar]

Una red Bayesiana es un grafo dirigido sin ciclos cuyos nodos están anotados con tablas de distribución que se utiliza para expresar relaciones de probabilísticas entre variables. En una red bayesiana:

  • Cada nodo corresponde a una variable aleatoria.
  • Cada arista dirigida de X a Y indica que X es el padre de Y, por lo tanto X influye directamente a Y.
  • Cada nodo Y tiene una tabla de distribución de probabilidad conjunta condicional que cuantifica el efecto de todos sus padres sobre él.

Para construir una red Bayesiana podemos verla como una distribución de probabilidad común a sus variables lo que nos permite realizar consultas.

Nodos[editar]

Escoger las N variables para modelar el dominio y establecer sus relaciones, luego ordenarlas bien (primero las causas y luego los efectos). Si el valor de un nodo depende del de sus padres, se le considera determinista.

Aristas[editar]

Para cada variable Xi (de 1 a N), repetir los siguientes pasos:

  • Elegir conjunto mínimo de padres entre las variables anteriores que cumpla la regla de la cadena (si una variable Y, depende de una segunda variable U, que a la vez depende de una tercera variable X; entonces, la razón de cambio de Y con respecto a X puede ser calculada con el producto de la razón de cambio de Y con respecto a U multiplicado por la razón de cambio de U con respecto a X).
  • En cada padre, inserta arista hacia su hijo Xi.
  • Escribe la tabla de probabilidad condicional.

Aplicaciones[editar]

Las redes bayesianas se utilizan para realizar predicciones en diferentes situaciones; algunos ejemplos son los siguientes:

  • Selección de oportunidades de crédito con poco riesgo de fracaso.
  • Estimación cuando se necesite reparar el equipo o piezas de recambio, en función de los datos de los sensores y los registros existentes.
  • Solución de problemas de los clientes mediante herramientas de solución de problemas en línea.
  • Diagnóstico y solución de problemas de redes de telefonía móvil en tiempo real.
  • Evaluación de los riesgos potenciales y recompensas de proyectos de investigación y desarrollo para centrar los recursos en las mejores oportunidades.


Lauritzen y Spiegelhalter crearon un ejemplo común y básico de una red bayesiana en 1988. También se conoce como modelo "Asia" y es una versión simplificada de una red que se puede utilizar para diagnosticar a los nuevos pacientes de un médico; la dirección de los enlaces corresponde por lo general a la causalidad. Cada nodo representa una faceta que se puede relacionar con el estado de un paciente; por ejemplo, "fumador" indica que se trata de un fumador habitual y "VisitaAsia" muestra que recientemente ha viajado a Asia. Los enlaces entre los nodos muestran las relaciones probabilísticas; por ejemplo, fumar aumenta las posibilidades de que el paciente padezca bronquitis y cáncer de pulmón, mientras que la edad parece estar relacionada únicamente con la posibilidad de desarrollar cáncer de pulmón. De la misma forma, las anomalías detectadas en una radiografía de los pulmones pueden estar causadas por tuberculosis o cáncer de pulmón, mientras que las posibilidades de que un paciente tenga dificultades respiratorias (disnea) aumentan si también padece bronquitis o cáncer de pulmón.


Existen diferentes razones para elegir utilizar una red bayesiana:

  • Es de gran ayuda para obtener información acerca de las relaciones causales. Permite conocer un área problemática y predecir las consecuencias de cualquier intervención.
  • La red proporciona un método eficaz sin ajustar los datos en exceso.
  • Puede obtener una vista clara de las relaciones que intervienen.

Representación efectiva de distribuciones condicionales[editar]

Si el valor de un nodo depende solo del valor de sus padres, sin probabilidad, es determinista.

Se pueden usar relaciones lógicas ruidosas O-ruidoso, MAX-ruidoso, etc. Que introducen incertidumbre sobre qué padre (causa) es el que está dando valor al hijo (efecto).

Se pueden usar variables continuas, pero habrá que discretizarlas o usar funciones de densidad de probabilidad.

Inferencia exacta[editar]

Para diseñar procesos de inferencia en una red Bayesiana es útil verla como un conjunto de declaraciones de independencia condicional. Hay que tener en cuenta que la inferencia exacta llega a ser intratable en el caso peor (por su complejidad), pero puede ser eficaz en la práctica.

Formas de inferir Inferencia por enumeración (mostrar como premisas hechos observados regulares que se aducen a manera de muestra y sacar una conclusión en base a estas "enumeraciones").

Se pueden reducir cálculos con programación dinámica, usando eliminación de variables o incluso agrupamiento (se usa en herramientas comerciales).

Inferencia aproximada[editar]

Cuando una red Bayesiana es demasiado grande no es posible hacer inferencia exacta y se vuelve imprescindible aproximar. Un primer enfoque puede ser hacer un muestreo directo (probar a dar valores a las variables, N muestras, e ir “viendo” los resultados).

También existe el muestreo por rechazo o por importancia.

El segundo enfoque es simulando una cadena de Markov (dar valor a una variable tras otra sobre la misma muestra anterior).

Probabilidad de primer orden[editar]

En estadística, el estadístico de orden kº es igual al valor k-ésimo más pequeño de una muestra estadística.​ Junto con las estadísticas de rango, los estadísticos de orden son una de las herramientas más fundamentales de la estadística no paramétrica y de inferencia.

Igual que en Lógica proposicional, la probabilidad puede extenderse hacia el mundo de los objetos y sus relaciones para lo cual existen múltiples modelos.

Para que esto funcione podemos usar la semántica “de base de datos” (nombres únicos y mundo cerrado).

Otro enfoques para lo incierto[editar]

Como entre 1975 y 1988 no había algoritmos eficientes para inferir sobre redes Bayesianas, se exploraron enfoques alternativos a la probabilidad:

  • Razonamiento por defecto
  • Sistemas basados en reglas
  • Representar la ignorancia en vez de la incertidumbre (Teoría Dempster-Schafer)
  • Representar la ambigüedad en vez de la incertidumbre (Lógica Difusa)

Y razonamiento probabilista temporal