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.
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.
Comentario