¿Cómo se programa el miedo en una red neuronal?

8

Si una araña te ha atacado una vez, es probable que nunca vuelvas a acercarte a una araña.

En un modelo de red neuronal, tener una mala experiencia con una araña disminuirá ligeramente la probabilidad de que se acerque a una araña dependiendo de la tasa de aprendizaje.

Esto no está bien. ¿Cómo puedes programar el miedo en una red neuronal, de modo que no necesites cientos de ejemplos de mordidas por una araña para ignorarla? ¿Y también, que no solo reduce la probabilidad de que elijas acercarte a una araña?

Zooby
fuente
El miedo es una tasa de aprendizaje disminuida con un componente estocástico aumentado, pero sin un centro de idiomas el sistema no puede decir: "Tengo miedo".
FelicityC
El artículo de WP One-shoot learning en.wikipedia.org/wiki/One-shot_learning incluye una sección sobre el aprendizaje con un ejemplo.
Jaume Oliver Lafont

Respuestas:

5

Hay muchos enfoques que podría tomar para esto. Puede ser posible crear un análogo artificial realista para el miedo, tal como se implementa biológicamente en los animales, pero hay bastante implicado en la respuesta al miedo de un animal real que no se aplicaría en los robots de IA más simples disponibles ahora. Por ejemplo, un animal que entra en un estado de miedo generalmente usará hormonas para indicar cambios en todo su cuerpo, favoreciendo el gasto de recursos y la toma de riesgos ("pelear o huir").

En el aprendizaje de refuerzo básico, la red neuronal no necesitaría decidir directamente activar un "modo de miedo". En cambio, puede hacer uso de algún diseño en el agente y el algoritmo de aprendizaje para ayudar a aprender de eventos raros pero significativos. Aqui hay algunas ideas:

  • Experimenta la repetición. Es posible que ya esté haciendo esto en el escenario de Pacman, si está utilizando DQN o algo similar. Almacenar la transición de estado y la recompensa que causó una gran recompensa positiva o negativa, y aprender repetidamente de ella debería compensar su preocupación

  • Barrido priorizado. Puede usar las diferencias más grandes experimentadas entre la recompensa predicha y la real para sesgar el muestreo de su memoria de repetición hacia eventos significativos y aquellos relacionados estrechamente con ellos.

  • Planificación. Con un modelo predictivo, tal vez basado en transiciones muestreadas (puede reutilizar la memoria de repetición de la experiencia para esto), o tal vez una red de predicción de transición de estado entrenada, entonces puede mirar varios pasos adelante simulando. Existe una fuerte relación entre RL y la planificación anticipada también, son un algoritmo muy similar. La diferencia es qué estados y acciones se están considerando, y si se están simulando o experimentando. La repetición de la experiencia desdibuja la línea aquí: se puede enmarcar como aprender de la memoria o mejorar las predicciones para la planificación. La planificación ayuda al optimizar las decisiones sin necesidad de repetir tantas experiencias: una combinación de planificación y aprendizaje puede ser mucho más poderosa que cualquiera de las dos de forma aislada.

  • Selección de acción exploratoria más inteligente. Epsilon-codicioso, donde tomas una acción codiciosa o tomas una acción completamente al azar, ignora por completo lo que ya has aprendido sobre acciones alternativas y su mérito relativo. Puede usar algo como Upper Confidence Bound con un agente basado en el valor.

  • En un mundo determinista, aumente el tamaño del lote para el aprendizaje y la planificación, ya que puede confiar en que cuando se aprende una transición una vez, sabe todo al respecto.

Tendrá que experimentar en cada entorno. Puede crear agentes de aprendizaje que sean más conservadores acerca de explorar cerca de áreas de baja recompensa. Sin embargo, si el entorno es tal que es necesario correr riesgos para obtener las mejores recompensas (que suele ser el caso en los juegos), entonces puede no ser óptimo en términos de tiempo de aprendizaje tener un agente "tímido". Por ejemplo, en su ejemplo de Pacman, a veces los fantasmas deben ser evitados, a veces deben ser perseguidos. Si el agente aprendió una fuerte aversión al principio, podría llevar mucho tiempo superar esto y aprender a perseguirlos después de comer un poder.

Para su ejemplo de la araña, como el constructor del experimento, entonces sabe que la mordida siempre es mala y que el agente debe evitarla tanto como sea posible. Para la mayoría de los algoritmos RL, no existe tal conocimiento, excepto que se obtiene a través de la experiencia. Un modelo mundial de MDP no necesita coincidir con el sentido común, puede ser que una picadura de araña sea mala (-10 recompensa) el 90% del tiempo y buena el 10% del tiempo (+1000 recompensa). El agente solo puede descubrir esto al ser mordido varias veces. . . RL generalmente no comienza con ningún sistema para hacer suposiciones sobre este tipo de cosas, y es imposible llegar a una regla general sobre todos los MDP posibles. En cambio, para un sistema RL básico, puede considerar modificar hiperparámetros o enfocarse en eventos clave como se sugirió anteriormente. Fuera de un sistema RL básico, podría tener mérito replicar otras cosas,

Neil Slater
fuente
1
Será un proceso bastante complejo para modelar algo como el miedo ... diferentes tasas de aprendizaje para diferentes objetos (pero tal vez sea cuidado por el riesgo creciente = tasa de aprendizaje creciente), entonces algunas personas tienen miedo irracional a los insectos ... .entonces hay una teoría de que nuestra mente funciona logarítmicamente, es decir, tienes miedo de 1 tigre, aún tienes más miedo de 2 tigres ... tienes miedo de 100 tigres, pero tu miedo no aumenta tanto para 101 tigres como en el ejemplo de 1 -> 2 caso de tigre ..... ¿se pueden modelar todos estos?
DuttaA
1
@DuttaA: Estoy de acuerdo, por eso sugiero un montón de cosas que no son "miedo real (tm)". Creo que un "miedo instintivo" muy básico usando RL implicaría de alguna manera agregar un valor bajo previo a la función de valor mediante programación sin experiencia real.
Neil Slater
2

Creo que hay 2 formas de hacer que esto suceda: 1) programar explícitamente el miedo como una restricción o parámetro en alguna expresión lógica, o 2) utilizar un gran conjunto de datos de entrenamiento para enseñar el miedo.

Piensa en un juego básico de Pacman: es difícil saber si Pacman teme a los fantasmas o no les teme, pero SON fantasmas y Pacman los evita, así que creo que es seguro que podamos usar esto como un ejemplo básico de "miedo". Dado que, en este juego, miedo = evitación, lógicamente podrías programar la evitación para que sea una especie de distancia. Intenté esto con el aprendizaje de refuerzo de Pacman. Traté de establecer una distancia de 5 casillas a los fantasmas y cada vez que Pacman podía ver un fantasma dentro de 5 casillas, se movía en una dirección diferente. Lo que encontré es que, si bien Pacman intentará evitar los fantasmas, no conoce la estrategia (ni tiene inteligencia). Pacman simplemente se alejaría de los fantasmas hasta que fuera encerrado.

Mi punto es que puedes programar tu red para evitar que las arañas no se muerdan, pero sin entrenamiento, ¡solo estarás creando un parámetro básico que podría causar problemas si hay 100 arañas súper agresivas que te atacan! La mejor manera es usar un poco de lógica de base para evitar las arañas, pero luego entrenar la red para ser recompensado, se evitan las mejores arañas.

Ahora, hay muchas situaciones de miedo, por lo que este ejemplo con Pacman no se aplicaría necesariamente a todos ... Solo trato de dar una idea de mi experiencia con la enseñanza del miedo con el aprendizaje de refuerzo en Pacman.

CaptainPlanet
fuente
1
Estoy pensando que para algunas cosas como el fuego debe ser un instinto. Porque para cuando hayas tenido algunos "ejemplos de entrenamiento" estarías bastante quemado. Pero con otras cosas, solo debería necesitar un ejemplo, como ser mordido por un hámster, debe aprender que los hámsters tienen dientes afilados, así que no se meta la mano en la boca. Entonces, para algunas cosas, los instintos deberían evitar que hagas cosas como poner tu mano en el fuego. O hacerte saltar hacia atrás. Pero, ¿también debería tener miedo de acercarse al fuego si se entera de que puede ser golpeado por una chispa?
zooby
2
@zooby en mi experiencia, los niños pequeños realmente no aprenden a temer a la estufa caliente o al fuego hasta que se queman. (¡por qué tienes que vigilarlos tan de cerca!) Diría que si el algoritmo está aprendiendo a evitar mediante una técnica como el aprendizaje por refuerzo, es "aprender a qué temer", mientras que, si lo ha hecho el mecanismo de evitación preprogramado, eso sería "instinto".
DukeZhou
2

El miedo de este tipo es una respuesta irracional (gran incentivo negativo en respuesta a un pequeño riesgo). Modelar el miedo necesitaría modelar un factor de "aspereza" asociado con, por ejemplo, las arañas para que se produzca una respuesta normalmente no proporcional. El factor "grosería" podría manifestarse en muchas otras formas para magnificar una respuesta a una experiencia previamente desagradable, aunque no particularmente peligrosa. Tal miedo también puede inspirarse en rumores (piense en la histeria causada por una noticia sensacionalista). Un NN normalmente solo respondería mínimamente a un riesgo mínimo.

SchroedingersGato
fuente
1

Sugeriría que el agente evalúe su aprendizaje de un evento determinado en función de la gravedad de las consecuencias de que ocurra ese evento. P.ej. Haga que desarrolle un modelo de amenaza como los que normalmente se redactan en el campo de Seguridad de la información. Alto riesgo pero baja probabilidad es algo que puede ser considerado y juzgado.

Intentar imitar directamente el miedo humano sería una tontería, es probable que termines con IA que tienen fobias si lo logras demasiado bien.

Christopher Griffith
fuente