¿Puede el aprendizaje profundo predecir los dígitos de Pi?

Por supuesto. Una red neuronal suficientemente grande puede imitar fácilmente uno de los muchos algoritmos para producir los dígitos de [math] \ pi [/ math]. Claro, tendrá que ser lo suficientemente grande como para acomodar la lógica y la memoria necesarias para las variables, pero no hay nada fundamentalmente impredecible en esos dígitos. Son perfectamente computables, con programas informáticos realmente cortos.

No hay razón para intentar esto, de verdad. No hay razón para esperar ninguna revelación profunda de una red neuronal que aprendió a calcular los dígitos de [math] \ pi [/ math], aunque puede ser interesante desde la perspectiva de estudiar el poder expresivo de NNs y la cantidad de información necesitaba entrenar para un algoritmo corto pero algo complejo. Honestamente, los NN no son un paradigma algorítmico adecuado para este tipo de computación.

Sin embargo, desde una perspectiva matemática, no hay razón para esperar que esto sea perspicaz o útil. Ya tenemos muchos algoritmos para calcular esos dígitos con precisión y para siempre, y cualquier problema abierto que quede no se resuelve fácilmente usando tales algoritmos. Las preguntas son sobre la secuencia infinita en sí misma, en su conjunto, y requieren herramientas de análisis matemático para abordar.

Respuesta corta “No”

Para predecir, de manera matemática, es necesario poder basar el comportamiento futuro en observaciones anteriores. Hasta ahora, los números decimales de Pi que se han calculado están en el orden de decenas de billones y no se ha identificado ningún patrón.

Sin embargo, hay una manera de CONOCER el siguiente dígito de Pi después del último encontrado y es seguir calculando.

Este proceso escupe un dígito a la vez, al igual que la vida te permite vivir el futuro un segundo a la vez.

[editar] Sin embargo, hay una manera de encontrar el enésimo dígito de pi. Ver mi respuesta La respuesta de @Mario Chanto a ¿Es [math] \ pi [/ math] igual a 22/7?

Esa es una pregunta interesante, porque quién sabe si podría ser el caso de que los futuros dígitos de Pi sean un mapeo complejo de dígitos anteriores. Así que probé un modelo simple de aprendizaje profundo (LSTM) y decidí incluir esto como un ejemplo para un marco de aprendizaje profundo que estoy desarrollando.

Escribí el siguiente código en el marco de ERU, y descubrí que la precisión de la prueba es de alrededor del 10.86%. Tenga en cuenta que la suposición aleatoria producirá un 10% porque solo hay 10 dígitos.

input = Input (10)
x = LSTM (10, 32, return_sequence = False) (entrada)
x = Denso (32, 10) (x)
x = Activación (“softmax”) (x)
cur_model = Modelo (entrada, x)

cur_model.compile (“adam”, “crossentropy”, metrics = [‘loss’, ‘acc’])
g = gen (pi)
cur_model.fit_generator (g, batch_size = 128, epochs = 1, train_length = 1000)

Entonces, podemos usar el aprendizaje profundo para predecir dígitos de Pi o podemos adivinar.

Creo que hay muchas respuestas equivocadas aquí.

a) Existencia de solución

De hecho, sabemos que cualquier función computable se puede calcular usando un RNN finito. También conocemos formas de calcular n dígitos usando los dígitos anteriores usando programas de Turing finitos, por lo que esto se puede hacer con un RNN. Usar la complejidad de Kolmogorov de alguna codificación conocida significa que podemos encontrar dicha red en tiempo finito simplemente a través de una búsqueda aleatoria, ya que cada máquina de Turing se puede convertir a un RNN en tiempo lineal.

b) convergencia

¿Se puede llegar a esta solución usando el gradiente de descenso? Supongamos que tenemos N >> M neuronas, donde M es el mínimo requerido para implementar una máquina de cálculo de pi. Entonces, para N grande, seguramente convergeremos a una solución equivalente.

¿Convergerá con parámetros precisos dados los datos de entrenamiento limitados? Sí, dados los datos suficientes, ya que a medida que aumenta el número de dígitos n, la probabilidad de generar esta serie de dígitos con un algoritmo de cálculo no pi disminuye rápidamente. Sin embargo, la complejidad de Kolmogorov de cualquier algoritmo de cálculo de pi es constante para un N. dado

En resumen, a menos que haya cometido algún error en el análisis rápido y descuidado anterior, es casi seguro que converja a un algoritmo conocido de pi dado un gran número de neuronas y una gran cantidad de datos.

¡Solo agrega más neuronas!

Creo que es una pregunta interesante.

  1. Si en lugar de Pi intentamos predecir el siguiente dígito de 1/3, supongo que todos estarán de acuerdo en que Deep Learning puede “aprender” a hacer eso. Y es fácil generalizar a cualquier número racional una vez que haya visto algunos períodos: un modelo regularizado asumirá la hipótesis más simple de una secuencia periódica.
  2. Pero Pi es irracional. Por lo tanto, no hay punto en los dígitos. Incluso es trascendente, lo que significa que la «lógica» de la serie de dígitos es bastante difícil de encontrar.
  3. Sin embargo, digamos que le das los primeros mil millones de dígitos de Pi a un matemático humano, él podrá darte el siguiente una vez que haya reconocido a Pi. Cuál sería la hipótesis más simple para explicar sus mil millones de dígitos. Probablemente un matemático extraterrestre también podría adivinar de qué número está hablando con alta confianza después de mil millones de dígitos de Pi y darle el siguiente también.
  4. Entonces, ¿por qué no podría, en teoría, un sistema basado en IA hacer lo mismo? Pero obviamente no sería Deep Learning como lo conocemos.

Puede “predecir” (en términos de aprendizaje automático), seguro. La pregunta es si la precisión será alta.

En teoría: espero que la precisión de los datos de prueba sea 1/10 para los dígitos decimales (tenga en cuenta que una función tan simple como f (x) = 4 tendría la misma precisión). Debido a que los dígitos en π parecen aparecer con la misma frecuencia (esto es válido para al menos los primeros 10,000,000 dígitos: Frecuencia de cada dígito de Pi) y no hay un patrón conocido que cubra todos los dígitos de π (todavía es una pregunta abierta si π Sin embargo, es un número normal: ¿es Pi normal?).

En la práctica: tanto los conjuntos de entrenamiento como de prueba solo incluirán índices de dígitos relativamente pequeños (en comparación con el infinito). La precisión puede aumentar ligeramente según el rango de estos índices y el tamaño del conjunto de entrenamiento.

En cualquier caso, es extremadamente improbable que el aprendizaje profundo sea útil para predecir (o describir) dígitos π.

Hace más de un año, generé (para la diversión de Pi Day 🙂) una red neuronal que aprende Pi. Técnicamente, utiliza un enfoque combinado de Montecarlo + aprende a calcular el teorema de Pitágoras. En última instancia, combina esa información en el aprendizaje de Pi 😉 Puede preguntar si esto genera una estimación de Pi increíble y rápida, ¡no, hay métodos mucho mejores!

DavidsonMachineLearninroup / NeuralNetPiMonte

Seguro. 😉

Puede ingresar unos pocos miles de millones de dígitos de pi en una red neuronal de aprendizaje profundo (cnn, rnn, lstm, lo que sea), como un conjunto de entrenamiento para la clasificación supervisada. El modelo resultante predecirá felizmente el siguiente dígito de pi si le da la secuencia actual de dígitos, siempre y cuando no solicite más que los dígitos que ingresó.

Las redes neuronales aprenden mediante “entrenamiento” en datos. Si ya conoce la respuesta, puede entrenar fácilmente el modo para escupir el siguiente dígito en la secuencia.

Pero si quiere que calcule un número irracional por sí mismo, no, no puede hacer eso.

En un tema periférico, pero esto se aplica a la pregunta más amplia de qué puede hacer y qué no puede hacer el aprendizaje profundo, vea el video divertido, usando TensorFlow para predecir FizzBuzz:

Siempre estoy tentado de responder ‘sí y no’ con este tipo de preguntas, pero me resistiré en esta ocasión;)

No sería difícil producir un tipo de red neuronal que arrojara los dígitos de [math] \ pi [/ math] aunque los hexadecimales serían mucho más fáciles de producir.

Sin embargo, esto no es una “predicción”, ya que ya están determinados, aunque es posible que no sepamos cuáles son.

La universalidad de las redes neuronales de 2 capas probablemente significa que pueden coincidir con su problema, aunque solo hasta cierto punto, ya que en la práctica solo pueden tener un número finito de estados y su problema requiere un número infinito.

Por cierto, no he mencionado el “aprendizaje profundo” porque no es necesario, pero si quieres usarlo, no veo ninguna razón por la que no funcione.

Creo que la respuesta a esto es sencilla a pesar de que no estoy tan familiarizado con las redes neuronales.

Los números trascendentales son aquellos que, por definición, no se pueden expresar como una solución a un polinomio con coeficientes enteros.

Así que creo que eso implicaría que una red neuronal es por construcción inadecuada. Es un martillo con muchos clavos, pero muchos problemas son tornillos.