¿Puede una red neuronal resolver el concepto de distancia?


10

Imagine un juego en el que se trata de una pantalla en negro además de un píxel rojo y un píxel azul. Dado este juego a un humano, primero verán que presionar las teclas de flecha moverá el píxel rojo. Lo siguiente que intentarán es mover el píxel rojo al píxel azul.

Dale este juego a una IA, moverá aleatoriamente el píxel rojo hasta que un millón más tarde se mueva accidentalmente al píxel azul para obtener una recompensa. Si la IA tuviera algún concepto de distancia entre el píxel rojo y el azul, podría intentar minimizar esta distancia.

Sin programar realmente en el concepto de distancia, si tomamos los píxeles del juego, ¿podemos calcular un número (s), como "entropía", que sería menor cuando los píxeles están muy separados que cuando están juntos? Debería funcionar con otras configuraciones de píxeles. Tal como un juego con tres píxeles donde uno es bueno y otro es malo. ¿Solo para darle a la red neuronal una mejor idea de cómo se ve la pantalla? Luego, dale a la NN una meta, como "tratar de minimizar la entropía del tablero y tratar de obtener recompensas".

¿Hay algo similar a esto en la investigación actual?


No creo que lo alimentes directamente con la imagen y hagas que encuentre la distancia ... Más bien lo alimentarías con un conjunto de números que representan la distancia, la distancia vertical, la distancia horizontal, etc.
FreezePhoenix

@Pheo sí, pero tendrías que darle diferentes valores para cada tipo de "juego". Mientras que lo que digo es, ¿podríamos tener algún tipo de valor global que sea alto cuando los píxeles se agrupan y bajo cuando los píxeles están separados?
zooby

"Lo siguiente que intentarán es mover el píxel rojo al píxel azul". es posible que "rojo" y "azul" sean enemigos la mayoría de las veces, por lo que comenzará a aumentar la distancia antes de que el píxel azul lo note.
Lee

Respuestas:


1

Responder

Tomaré su pregunta al pie de la letra y profundizaré en este tema.

Sí pueden. La mente humana típica puede. Pero considere la mente humana. Millones, si no miles de millones , de neuronas. De hecho, uno puede considerar la distancia como un concepto humano, simplemente una teoría desarrollada a partir de interacciones con el mundo.

Por lo tanto, dado un año o dos, con una tonelada de neuronas en su mano, podría replicar este escenario. Eso es si su computadora es tan paralela como la mente humana. La breve explicación es que la mente humana es muy paralela.

Sin embargo, sería más sencillo calcular la distancia con un programa, no una IA, y simplemente alimentar el resultado a la IA que tomaría las decisiones.

Considere la cantidad de tiempo que ha pasado mirando una pantalla. Si puede distinguir la distancia (aproximada) entre dos píxeles, también puede hacerlo una Red neuronal, ya que usted es uno. Sin embargo, agregue la cantidad de tiempo que ha pasado vivo y aprendiendo en la ecuación, y se convierte en un desastre.

Otras lecturas

El cerebro humano es paralelo

Esto es el resultado del hecho de que todas las neuronas en el cerebro humano son independientes entre sí. Pueden ejecutar verdaderas acciones simultáneas , haciendo que la acción de interpretar imágenes sea mucho más fácil, ya que los bloques de neuronas pueden "pensar" independientemente de las operaciones de los demás, limitando lo que sería un "retraso" a una cantidad minúscula.


1

Puedes crear IA para "ver" como humano. Como dijiste, dándole al humano las llaves, hará clic al azar. Solo necesita saber qué teclas presiona para acercarse a otros objetos en la pantalla. Creo que lo básico de una IA es el reconocimiento de objetos. Intentaría crear un script para mapear los objetos de pantalla del juego. Hay ejemplos legales en Python.

Intentaría seguir un camino como este:

  • Haz que la IA entienda que al hacer clic en las flechas o en WASD y en el contexto JUEGO, el objeto que mueve los píxeles de acuerdo con la dirección, representa al autor principal (el jugador).

  • En paralelo: mapee todos los límites de la región e indexe diferentes objetos dentro de esa región para tener automáticamente el dominio de coordenadas y la distancia del objeto. La IA necesita VER (transmitir) el juego y a través de imágenes para clasificar objetos. ¿Entiendes lo que quiero decir?

  • Paralelamente: la IA debe estar al tanto de todos los textos e información que está en la pantalla (todo mapeado, ¿recuerda?). Debe comprender cuándo cambia un texto o sucede algo diferente. Por ejemplo: cada vez que regresa a la posición inicial de cada fase, cada vez que tiene un conteo, lo que sucede cuando el corte llega a cero o un número común que genera otro tipo de cambio.

  • Necesita comprender lo que se repite en cada "reaparición". También necesitas entender qué es "reaparecer". Tal vez una determinada posición del mapa en cada mapa devuelve cada vez que finaliza un conteo en la pantalla. O cuando se encuentra con un cierto tipo de objeto (objeto mapeado)

Para ser honesto, si quieres crear un robot súper inteligente, puedes seguir todos los pasos que pasan por las cabezas de diferentes humanos, o los mejores humanos, o las reglas de cada juego. Pero a veces es más fácil construir bots específicos para realizar tareas específicas. Depende de lo que quieras hacer


Él no estaba pidiendo la forma que lo haría, sino que más bien puede usted hacerlo.
FreezePhoenix

Es posible hacerlo de varias maneras. Pasé el camino que tomaría para crear la plantilla. No es una teoría, es un proceso que puede abarcar otros procesos de acuerdo con la evolución de la IA.
Guilherme IA

1

Lo que mencionas allí es el ejemplo perfecto para la planificación de rutas , que se investiga ampliamente en IA.

Busque el algoritmo A-star y cómo mejorarlo con redes neuronales :)


1

Podemos analizar el problema de la siguiente manera:

<X0 0,y0 0,X1,y1>(X0 0-y0 0)2+(X1-y1)2), debería poder aprender esta relación con una precisión arbitrariamente cercana.

A continuación, si tiene una imagen similar a la que describe y la alimenta a través de una red neuronal diferente (p. Ej., Una CNN), y como etiquetas, utilizó los puntos de los dos puntos (una vez más <X0 0,y0 0,X1,y1>), entonces debería poder aprender esa relación con una precisión arbitrariamente cercana una vez más.

Por supuesto, no hay razón para hacer esto en dos redes neuronales separadas, por lo que podemos combinar las dos de extremo a extremo para tener un modelo que tome la imagen como entrada y la distancia como salida.

Sin embargo, este modelo necesitaría ser entrenado en datos etiquetados, por lo que necesitaría generar los datos usted mismo o etiquetar imágenes.

Pero si desea que aprenda la noción de cerrar una distancia de una manera menos supervisada, necesitaría utilizar el aprendizaje por refuerzo. En este caso, tendría que configurar un entorno que incentive al agente a reducir la distancia. Esto podría ser tan simple como obtener recompensa si una acción reduce la distancia.

Otro enfoque sería incentivar al agente utilizando recompensas futuras. Es decir, su recompensa no solo proviene de los resultados del próximo estado inmediato, sino que también hay contribuciones del siguiente estado posible, y el siguiente, y así sucesivamente. Esta es la idea detrás de Deep Q-Learning, e implemento un ejemplo simple (muy similar a lo que estás describiendo) en este cuaderno .

Entonces, ahora la pregunta es: ¿esta implementación ha hecho algo más que moverse al azar hasta que sigue un camino hacia el éxito?

En su ejemplo, habla de recompensar al agente cuando llega a la meta. Pero en lo que describí, ganó recompensa al acercarse a la meta (ya sea a través de la función Q o directamente desde el entorno). Puede hacerlo aprendiendo alguna idea abstracta de distancia (que puede ilustrarse en la versión supervisada).

Cuando un humano aprende esto, es por la misma razón exacta: el humano está ganando una recompensa por moverse en esa dirección a través de una sensación de recompensas futuras.

Yo diría que, con suficiente capacitación y datos, el aprendizaje por refuerzo podría aprender este concepto con facilidad. En lo que respecta a otras recompensas presentes en el tablero (por ejemplo, "minimizar la entropía del tablero e intentar obtener recompensas"), debe pensar qué es lo que está preguntando. ¿Prefieres que el agente minimice la distancia o maximice la recompensa? Porque, en general, no puede hacer ambas cosas. Si está buscando un equilibrio entre los dos, entonces realmente está redefiniendo la recompensa para considerar también la distancia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.