¿Puede una red neuronal recurrente aprender una función generadora de números aleatorios?

Supongo que está preguntando acerca de una función generadora de números pseudoaleatorios: un sistema determinista con un estado oculto que genera una serie de números en algún rango donde las salidas “se ven” al azar (es decir, pasan pruebas de aleatoriedad).

La respuesta del mundo real es no: un buen PRNG no tiene gradientes que el RNN pueda explotar. Piense en los sistemas criptográficos (por ejemplo, RSA) como una analogía: el objetivo es evitar que un atacante tenga un plan mejor que un ataque de fuerza bruta.

Por supuesto, esto lleva a la respuesta real, que es “sí”. Dado un estado oculto finito y una serie de salidas en un conjunto finito, un RNN lo suficientemente grande podrá aprender (o ajustarse a) la serie de salidas de ciclismo . Obviamente, el RNN sería enorme en relación con el estado interno del PRNG, y el tiempo de entrenamiento sería horrible, pero podría hacerlo.

En realidad, sería un proyecto divertido tomar PRNG simples (por ejemplo, generadores lineales congruentes x ‘= (ax + b)% y) e intentar capacitar a los RNN para aprenderlos. No tengo intuición si pudiéramos resolver y = 2 ** 8 o y = 2 ** 16 en un tiempo razonable.

Los RNN pueden aprender funciones basadas en el tiempo. Entonces, si el generador de números aleatorios se basa en el tiempo del sistema para generar el valor semilla y si genera un valor determinista, la red puede aprender la función y predecir el valor de los números aleatorios en función del tiempo actual.