Showing posts with label Analisis Tesis. Show all posts
Showing posts with label Analisis Tesis. Show all posts

Thursday, August 23, 2012

Apuntes de Exposición en Cátedra Sistemas Inteligentes

El proceso general como fue inicialmente planteado es similar a lo que tiene Ricardo Cuevas. Varía principalmente en los nombres y algunos detalles pero se busca llegar a un resultado similar.

Se debe plantear el objetivo (problema particular) sobre el que deben girar todos los componentes del sistema e investigación. Miguel González propuso modificar el proceso general para que quede más claro que se busca el seguir el objetivo en particular, su propuesta fue la siguiente:

image

image

Por otra parte dependiendo de lo que se quiera después de los indicadores se dieron algunas sugerencias:

  • Se debería buscar las necesidades actuales de empresas o del gobierno para plantear el objetivo y atacarlo, entre los ejemplos se mencionó a DHL, Unilever, etc.
  • Un juego serio puede conllevar demasiada carga (experiencia previa armando un simulador por parte de miembro de la cátedra) y puede que se llegue a desviar un poco del objetivo (dependiendo de cual sea).
  • Para la programación de rutas, existen dos tesistas trabajando en el tema y se podría contar con su apoyo o al menos con su modelo para ser reimplementado.
  • Para la parte de redes sociales, Rogelio trabajó en un módulo que permite llevar a cabo la recolección de datos por lo que sería prudente verlo.
  • Se debe buscar en detalle el área sobre la que se quiere hacer la aportación.

Wednesday, February 22, 2012

Usos de predicción

Revisando artículos he encontrado que el uso de Machine Learning es muy variado y dentro de un mismo entorno las predicciones que se pueden llevar a cabo varían dependiendo del objetivo que al que se busca llegar.

Algunos ejemplos encontrados son los siguientes:

  • Redes Sociales:
    • Existen varios artículos que hablan sobre este tema (la mayoría encontrados en el sitio de la AAAI) donde las predicciones van desde algo que puede parecer hasta cierto punto superficial como el identificar que temas pueden ser un trending topic en twitter hasta el buscar predecir las preferencias electorales y los resultados de una elección.
    • Predicción de que blogs pueden contener un contenido interesante.
    • Predicción de número de reproducciones de un video (en un sitio como Youtube).
  • Bolsa de valores
    • Por su parte existen varios modelos que intentan llevar a cabo un comportamiento de la bolsa de valores o de acciones o segmentos específicos de esta.
  • Videojuegos
    • Como se ha estado explorando existen varias competiciones y retos que promocionan el crecimiento de esta rama.
  • Transportación
    • Existen trabajos que tratan de predecir las mejores rutas en un camino dadas ciertas condiciones de forma que se logre evitar el efecto del tráfico.
  • Educación
    • En aplicaciones de educación se encontró el uso de predicción para poder modelar a un estudiante y los conocimientos que tiene en algún determinado tema.
  • Seguridad computacional
    • Se han utilizado métodos de predicción para la detección de intrusos, ataques y otro tipo de riegos computacionales.

Existen otros campos en los que se lleva a cabo la predicción pero hasta ahora he podido revisar solo un poco de estos.

Thursday, February 9, 2012

Detalles al elegir un RTS como ambiente de prueba

Un RTS (y los videojuegos en general pero específicamente este género por las características que lo comprenden) resulta ser un buen ambiente de prueba para temas relacionados con la inteligencia artificial y específicamente lo relacionado con machine learning y opponent modeling.

Si se busca desarrollar inteligencia artificial para que esta compita contra otra similar se busca crear los modelos más precisos y que las acciones dentro del juego las aprovechen al máximo para lograr vencerlo. Sin embargo, cuando se enfrenta a jugadores humanos el enfoque puede cambiar de cierto modo debido a que depende de lo que se desee proporcionar al jugador y el nivel que este busca para divertirse y adentrarse en el juego.

Para que un jugador encuentre un juego agradable y fascinante este necesita reunir ciertas características como lo son:

  • El juego debe contener un tema interesante o al menos no desagradable al jugador
  • El género del juego debe ser atractivo al usuario
    • El gameplay debe ser agradable y accesible al usuario
  • La dificultad del juego debe ser suficiente para que el jugador encuentre un reto en él pero no al grado de resultar frustrante para el jugador.
    • Es deseable que se incremente gradualmente la dificultad conforme se avanza en el juego para que se adapte a las nuevas habilidades del jugador
  • Debe existir suficiente variedad de elementos para que el juego sea variado pero no a un grado excesivo en el que se pierda atención en elementos más imperativos (como la defensa y el ataque) por estar buscando entre menús los elementos que se pueden desarrollar.
  • Es deseable que exista un tutorial o algún medio de ayuda para el usuario tanto para aprender a jugar el juego (cuando no se conoce) como cuando se está jugando y se requieren pequeñas descripciones para los elementos en pantalla.
  • Debe ser claro lo que ocurre en el ambiente y es bueno cumplir estándares sobre el género del juego para crear cierta familiaridad con el jugador.
  • Si el juego esta diseñado para ser de un solo jugador debe contener varios niveles (escenarios) para mantener la atención del jugador.

Para el caso preciso de los RTS es conveniente seguir lo siguiente:

  • Deben existir varios tipos de unidades en el juego para diversificar la experiencia del usuario.
  • Es bienvenida la existencia de varias razas dentro del juego.
    • Estas razas pueden tener unidades totalmente distintas (como Starcraft) o unidades iguales pero con un árbol de tecnologías que las distingan (Age of Empires II aunque cada raza tiene al menos una unidad extra que los distingue) con el fin de crear cierto balance en el juego y mantenerlo entretenido.
    • El balance entre unidades puede ser un tema delicado y que puede requerir mucho tiempo y pruebas el llevarlo a cabo.
  • Debe existir un límite claro de unidades para no sobresaturar la computadora que se encuentre ejecutando el juego entre otros temas a facilitar.
  • Existencia de estándares precisos para este juego como el mini mapa, las formaciones de unidades, ayudas, el uso del mouse para seleccionar y controlar, etc.

Por su parte en cuanto a la rama de Machine Learning, Opponent Modeling y Predicción se debe considerar lo siguiente:

  • Debe poder obtenerse datos del entorno, mientras mayor sea el número de datos se tiene más posibilidades de encontrar patrones y elegir los datos significativos.
  • Deben existir una cantidad considerable de registros de juegos para poder llevar a cabo el análisis, en los papers analizados se mencionan hasta 300 juegos por raza para llevar a cabo un análisis.
  • Se debe saber a que se va a enfocar el proceso de machine learning:
    • La recolección eficiente de recursos (posicionamiento de las bases, asignación de unidades para la recolección, priorización de recursos dependiendo de las tropas o edificios que se requieran construir).
    • Estrategias defensivas (creación de tropas, establecimiento de edificios defensivos, desarrollo del árbol de tecnología).
    • Estrategias ofensivas (creación de tropas, desarrollo del árbol de tecnologías, formaciones, estrategias).
    • Un sistema que englobe a los puntos anteriores.
  • Por otro lado para la predicción y opponent modeling se puede llevar a cabo como parte complementaria de los puntos anteriores o como una rama que permita conocer de antemano las acciones y estrategias del rival.
    • Se puede intentar predecir la estrategia global del rival, el tipo de unidades que esta creando, los recursos que esta recolectando (en base al tipo de juego que lleva a cabo), el posicionamiento de sus defensas, posicionamiento de sus tropas, posicionamiento de bases extra, la forma en que actúan sus tropas en batalla (ofensiva y defensivamente).

Hay que considerar el ambiente en que se llevaran a cabo las pruebas y experimentos para las técnicas de inteligencia artificial, en este caso se propone el uso de un juego serio (actualmente en desarrollo) sobre alguna otra plataforma establecida lo que me da la siguiente tabla de ventajas y desventajas:

Ventajas

Desventajas

Es un entorno que al ser creado desde cero ofrece un completo control sobre el mismo.

Es necesario aprender un poco sobre la programación del juego para poder manipularlo.

Se puede modificar lo que sea necesario para cubrir las necesidades de la investigación.

Aunque los modelos para el juego pueden ser enviados por externos es posible que en caso de no ser del agrado no sean fáciles de modificar.

Se puede combinar con otras investigaciones.

Para poder ser empleado como ambiente de pruebas primero debe ser completado el juego.

El conocimiento adquirido en el diseño del juego puede ayudar en temas como el modelado del oponente (saber cosas de antemano como los valores de las unidades y contra que son efectivas).

No existen registros (logs) de juegos pasados que puedan ser analizados.

Se tiene un conocimiento profundo sobre las mecánicas del juego así como los objetivos y los elementos que lo comprenden.

Lograr un balance entre unidades no parece ser una tarea trivial.

 

No se tiene asegurado que al jugador le sea atractivo el juego y no se conocerá hasta tener alguna versión armada.

 

La falta de existencia de un estado del juego (meta game) hace difícil poder definir las estrategias que usan los jugadores.

Al tener en cuenta esas razones creo que es conveniente buscar un poco sobre que se ha hecho sobre predicción en otro tipo de ambientes para poder tomar una decisión sobre el entorno en que se basará mi tesis.