Anuncio

Colapsar
No hay ningún anuncio todavía.

Sobre Números Primos e Inteligencia Artificial (Redes Neuronales).

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Otros Sobre Números Primos e Inteligencia Artificial (Redes Neuronales).

    No cabe duda que la inteligencia artificial está cada vez más al alcance de todos, las redes neuronales están siendo utilizadas en una gran variedad de ámbitos en el quehacer cotidiano. Es extraño que siendo la función principal de las redes neuronales encontrar patrones escondidos entre una serie de datos de entrada y salida, no se haya intentado utilizarlas en el estudio de los números primos.

    Este sería mi primer intento por reunirlos.

    Uno de los paradigmas con los que trabajan, aprenden o se entrenan a las redes neuronales es el “aprendizaje supervisado”, en donde se alimenta a una red neuronal con una serie de datos (DataSet) en los cuales se conocen las entradas y las salidas esperadas, luego de iniciar a la red con una serie aleatoria de pesos neuronales se va utilizando el cálculo del error (función de coste) y el algoritmo de Propagación hacia atrás (BackPropagation) para reducir el error en cada iteración y de a poco ir reajustando los pesos neuronales hasta hacer que la salida obtenida coincida con la esperada en cada uno de los ejemplos del dataset.

    Imagino entonces que un primer intento podría ser así:

    Primera capa de neuronas: se encargaría de alimentar el número a estudiar

    Capa de Entrada
    Primera neurona: Unidades
    Segunda neurona: Decenas
    Tercera Neurona: Centenas

    Y así sucesivamente hasta el grado de magnitud de los números que se deseen estudiar.

    El valor asignado a cada neurona de entrada podría ser:
    0 = 0.00 ; 1 = 0.10 ; 2 = 0.20 ; 3 = 0.30 ; 4 = 0.40 ; 5 = 0.50 ; 6 = 0.60 ; 7 = 0.70 ; 8 = 0.80 ; 9 = 0.90

    Así por ejemplo para alimentar al número 770 se tendría:
    Primera neurona: Unidades = 0.00
    Segunda neurona: Decenas = 0.70
    Tercera Neurona: Centenas =0.70

    Y luego de una serie de neuronas en capas ocultas, por determinar aún el número de capas ocultas y el número de neuronas por capas. Se finalizaría con la capa de Salida, la cual contaría con tan solo dos neuronas, en una se determinaría el porcentaje de seguridad para un número Compuesto y en la otra para un número primo

    Capa de Salida

    Primera Neurona: Es Compuesto
    Segunda Neurona: Es Primo

    Siguendo con el ejemplo del número 770 como entrada, se esperaría que luego del proceso de entrenamiento la salida fuese.

    Capa de Salida.
    Primera Neurona: Es Compuesto = 1.00
    Segunda Neurona: Es Primo = 0.00

    Y para finalizar como siempre con preguntas y dudas.

    ¿Estaría una red de este tipo preparada para dado un número nunca antes visto predecir si es primo o compuesto?
    ¿En caso de poder predecir con certeza la primalidad de un número dado con una red de este tipo, cuál sería el criterio escondido utilizado?
    ¿Entrenada una red de este tipo hasta un cierto orden de magnitud dado, cual sería el máximo orden de magnitud para una supuesta predicción?

    Sin más por el momento y como siempre en espera de sus comentarios, observación y sugerencias

    Un Abrazo.

    - - - Actualizado - - -

    Por acá dejo el enlace a un trabajo realizado en este sentido por estudiantes de la facultad de ingeniería de la universidad SurColombia, aunque no estoy muy de acuerdo en la forma en la que modelizaron los datos de entrada ni con las conclusiones obtenidas al final del trabajo:

    http://read.pudn.com/downloads222/so...RIO%20No.3.pdf

    Pero al menos se que me hice la misma pregunta que ellos.

  • #2
    Re: Sobre Números Primos e Inteligencia Artificial (Redes Neuronales).

    Hola Miguel Ángel, en su momento leí el hilo pero no pude aportar nada porque nada sé del tema. Pero resulta que hoy por pura casualidad me he tropezado con este estudio: A Compositional Neural-network Solution to Prime-number Testing El título me ha encendido la bombilla y me ha hecho recordar inmediatamente este hilo, te lo enlazo por si te interesa.

    He echado un leve vistazo y he visto que nombran un algoritmo al que llama "Knowledge-Based Cascade-Correlation (KBCC)", y he encontrado otro artículo de los mismos autores sobre él: "Knowledge-based Learning with KBCC"

    Repito, nada sé sobre el tema, te paso los enlaces por si a tí, que te interesan estas cosas te resultan útiles, ya sean los artículos en sí o las referencias a otros estudios que figuran en ellos.

    Saludos.
    "Das ist nicht nur nicht richtig, es ist nicht einmal falsch! "

    Comentario


    • #3
      Re: Sobre Números Primos e Inteligencia Artificial (Redes Neuronales).

      Hola, sobre este tema hoy he visto, que podría interesarte: "Factorización de grandes números con técnicas de aprendizaje automático", Factoring Massive Numbers with Machine Learning Techniques

      Y del mismo autor, Vincent Granville:

      Data Science Method to Discover Large Prime Numbers

      Introduction to Number Theory: Fascinating Facts and Conjectures about Primes and Other Special Numbers

      "Demostración corta del teorema de los números primos": Little Proof of the Prime Number Theorem

      Ojalá te sea útil, saludos
      "Das ist nicht nur nicht richtig, es ist nicht einmal falsch! "

      Comentario


      • #4
        Re: Sobre Números Primos e Inteligencia Artificial (Redes Neuronales).

        Escrito por Alriga Ver mensaje
        He echado un leve vistazo y he visto que nombran un algoritmo al que llama "Knowledge-Based Cascade-Correlation (KBCC)", y he encontrado otro artículo de los mismos autores sobre él: "Knowledge-based Learning with KBCC"

        Repito, nada sé sobre el tema, te paso los enlaces por si a tí, que te interesan estas cosas te resultan útiles, ya sean los artículos en sí o las referencias a otros estudios que figuran en ellos.
        Está muy interesante el enlace que colocas, y tiene que ver con lo que decía yo sobre: "....Y luego de una serie de neuronas en capas ocultas, por determinar aún el número de capas ocultas y el número de neuronas por capas....".

        En los modelos de Base de Conocimientos Cascada Correlacional (la traducción es horrible), lo que se hace es que la propia Red Neuronal vaya determinando el número de capas ocultas y el número de neuronas por capas que son necesarios para que la tarea de clasificar (u obtener la solución) se haga de la manera más rápida y exacta posible.

        O sea, este tipo de tratamiento "juega" con el "diseño" de la red neuronal a medida que hace el entrenamiento de la red, originalmente un sistema de Deep Learning sólo cambia los pesos neuronales que conectan a las neuronas hasta obtener el resultado esperado, pero en este caso si el resultado no es obtenido o si se está tardando demasiado, aparte de los pesos neuronales también se puede cambiar el diseño mismo de la red, agregando nuevas neuronas que "faciliten" la obtención del resultado.

        Este tipo de tratamiento ya se ha utilizado en algunos casos de estudio y con buenos resultados, aunque aún hay debates en si es mejor o no que el sistema tradicional de sólo cambio de los pesos neuronales.

        Saludos.


        Comentario

        Contenido relacionado

        Colapsar

        Trabajando...
        X