Notice: La función wp_enqueue_script ha sido llamada de forma incorrecta. Los scripts y estilos no se deberían registrar o poner en cola hasta que se carguen los ganchos wp_enqueue_scripts, admin_enqueue_scripts y login_enqueue_scripts. Este aviso ha sido activado por la gestión de nfd_wpnavbar_setting. Por favor, ve depuración en WordPress para más información. (Este mensaje fue añadido en la versión 3.3.0). in /home1/spotsail/public_html/martra/wp-includes/functions.php on line 6078
Kurond. Una criatura ineficiente. – Pere Martra
No se han encontrado widgets en la barra lateral

Kurond ha sido mi primera criatura creada para moverse con ML Agents. Es ineficiente por que su cuerpo esta MAL DISEÑADO.

Demosle un vistazo:

La parte central esta formado por una esfera, dentro de un cubo. La esfera tiene dos esferas conectadas mediante un character joint a la esfera principal.

Las dos esferas tiene conectado una capsula mediante un fixed joint que no tiene movimiento.

El agente puede mover las dos esferas conetadas por el character joint con total libertad de rotación. Por lo que solo tiene dos piezas movibles que son esas especies de brazos que tiene.

Como observaciones tenemos:

  • Vector con el forward del codo derecho.
  • Vector con el up del codo derecho.
  • Vector con el forward del codo izquierdo.
  • Vector con el up del codo izquierdo.
  • Vector con la dirección al target.
  • Vector forward del cáracter.
  • Vector Up del caracter.
  • Distancia al target.

Un total de 22 observaciones.

Como acciones:

Recibimos dos vectores y los utilizamos para rotar las dos esferas que actúan como codos. Es decir, no le limitamos la rotación en ningún eje.

Premios y castigos:

  • 10 puntos cada vez que contacta con el Target.
  • -0.5 puntos al contactar con el borde del escenario.
  • +0.01 cada vez que se acerca al target.
  • -0.001 cada vez que se aleja del target.

Resumen.

Se trata de un caracter que hace lo que puede pero que le cuesta desplazarse en linea recta. Durante el proceso de aprendizaje ha aprendido a realizar pequeños saltos hacia el target, su desplazamiento muchas veces es lateral.

Se han realizado diverso procesos de aprendizaje, pero hay tres que son los principales.

Tres procesos de aprendizaje con ML Agents entrenando a Kurond

Como veis los resultados son muy diferentes.

  • Rojo: El fichero .yaml de configuración estaba claramente limitando las posibilidades del motor de aprendizaje Conda. Para los entrenos posteriores se hacen las siguientes modificaciones.
    • batch_size: de 32 a 1024.
    • buffer_size: de 1280 a 10240.
    • num_epoch: de 8 a 3.
    • hidden_units: de 64 a 256.
  • Azul: con el nuevo fichero de configuración, se consigue un entre mucho mas eficiente. Aparte se ha pasado de usar 6 agentes simultaneamente a usar 12. Otra modificación ha sido la incorporación de dos RayPerceptionSensor3D que detectan donde están los bordes y el target. Se incorporan dos por que el cubo puede girarse y dejar a uno de los rayperception apuntando al suelo y al cielo, con lo que pierde su efectividad. Al estar girados entre ellos 90 grados siempre tenemos a uno en horizontal.
  • Rosa. He incorporado los vectores up de los codos y del cuerpo principal. Es curioso, pero vigilando el entreno me di cuenta que cuando alguno de los agentes se giraba y quedaba boca abajo no conseguia moverse de forma eficiente hacia el target, y eso que no hay una diferencia física. Así que decidi incoporar esos tres vectores a la información observada y la diferencia ha sido bastante significativa.

Las tres veces se han entrenado más o menos unos cinco millones de pasos.

Decisiones a tomar al crear un entorno de aprendizaje usando ML Agentes de UNITY.

El título de este post... es largo, pero se me queda corto. Si pudiera poner un subtitulo seria: Decisiones a Read more

Preparando la certificación Tensorflow Developer by Google. 3-NLP Binary / Multi classification.

Explico los notebooks de clasificación binaria y múltiple de sentimiendos en texto (NLP) usando diversos modelos para preparar la certificación Read more

Cómo integrar Unity Ads en nuestro juego.

Unity Ads es una de las dos plataformas que nos permiten mostrar anuncios y monetizar nuestros juegos de Unity, ya Read more

Premios y enemigos en Unity.
Se muestran las monedas a recolectar por la bola

Un juego sin premios no es nada, pero un juego sin enemigos... un ARCADE sin nadie que te persiga o Read more

Por Martra

Un comentario en «Kurond. Una criatura ineficiente.»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *