Un réseau de neurones pourrait-il détecter des nombres premiers?


21

Je ne cherche pas un moyen efficace de trouver des nombres premiers (ce qui bien sûr est un problème résolu ). Il s'agit plutôt d'une question «et si».

Donc, en théorie: pourriez-vous former un réseau de neurones pour prédire si un nombre n donné est composite ou premier? Comment un tel réseau serait-il organisé?



2
Si les nombres premiers suivent un modèle et que quelqu'un arrive à former un réseau de neurones avec suffisamment de nœuds cachés afin de définir la limite de classification, je suppose que cela fonctionnerait. Cependant, nous ne savons pas si cette classification existe et même si elle l'était, il nous faudrait prouver quelle est la frontière afin de prouver que le réseau neuronal a bien trouvé le modèle correct.
quintumnia

Réponses:


11

Le succès précoce des tests de nombres premiers via des réseaux artificiels est présenté dans Une solution de réseau neuronal compositionnel pour les tests de nombres premiers , László Egri, Thomas R. Shultz, 2006 . L'approche réseau basée sur la connaissance en corrélation en cascade (KBCC) s'est révélée la plus prometteuse, bien que la praticité de cette approche soit éclipsée par d'autres algorithmes de détection principaux qui commencent généralement par vérifier le bit le moins significatif, réduisant immédiatement la recherche de moitié, puis la recherche basé sur d'autres théorèmes et heuristiques jusqu'à . Cependant, le travail s'est poursuivi avecKnowledge Based Learning avec KBCC, Shultz et. Al. 2006Floor(X)

Il y a en fait plusieurs sous-questions dans cette question. Tout d'abord, écrivons une version plus formelle de la question: "Un réseau artificiel d'un certain type peut-il converger pendant la formation vers un comportement qui testera avec précision si l'entrée allant de à 2 n - 1 , où n est le nombre de bits dans la représentation entière, représente un nombre premier? "02n-1n

  1. Peut-il simplement mémoriser les nombres premiers sur la plage des entiers?
  2. Peut-il en apprenant à factoriser et à appliquer la définition d'un nombre premier?
  3. Peut-il en apprenant un algorithme connu?
  4. Peut-il en développant un nouvel algorithme qui lui est propre pendant la formation?

La réponse directe est oui, et cela a déjà été fait selon 1. ci-dessus, mais cela a été fait par sur-ajustement, sans apprendre une méthode de détection des nombres premiers. Nous savons que le cerveau humain contient un réseau de neurones qui peut accomplir 2., 3. et 4., donc si les réseaux artificiels sont développés dans la mesure où la plupart pensent qu'ils peuvent l'être, alors la réponse est oui pour ceux-ci. Il n'existe aucune contre-preuve pour exclure l'un d'eux de l'éventail des possibilités au moment de la rédaction de cette réponse.

Il n'est pas surprenant que des travaux aient été effectués pour former des réseaux artificiels aux tests des nombres premiers en raison de l'importance des nombres premiers en mathématiques discrètes, de leur application à la cryptographie et, plus précisément, à la cryptanalyse. Nous pouvons identifier l'importance de la détection des nombres premiers par le réseau numérique dans la recherche et le développement de la sécurité numérique intelligente dans des travaux comme A First Study of the Neural Network Approach in the RSA Cryptosystem , Gc Meletius et. al., 2002 . Le lien entre la cryptographie et la sécurité de nos nations respectives est également la raison pour laquelle toutes les recherches actuelles dans ce domaine ne seront pas publiques. Ceux d'entre nous qui peuvent avoir la clairance et l'exposition ne peuvent parler que de ce qui n'est pas classé.

Du côté civil, le travail en cours dans ce qu'on appelle la détection de nouveautés est un axe de recherche important. Ceux comme Markos Markou et Sameer Singh approchent la détection de nouveautés du côté du traitement du signal , et il est évident pour ceux qui comprennent que les réseaux artificiels sont essentiellement des processeurs de signaux numériques qui ont des capacités d'autoréglage multipoint peuvent voir comment leur travail s'applique directement à cela. question. Markou et Singh écrivent: "Il existe une multitude d'applications où la détection de nouveautés est extrêmement importante, notamment le traitement du signal, la vision par ordinateur, la reconnaissance de formes, l'exploration de données et la robotique."

Du côté des mathématiques cognitives, le développement d'une mathématique de la surprise, comme Learning with Surprise: Theory and Applications (thesis), Mohammadjavad Faraji, 2016, pourrait faire avancer ce qu'Ergi et Shultz ont commencé.


1

En théorie, un réseau neuronal peut cartographier n'importe quelle fonction donnée ( source ).

Cependant, si vous entraînez un réseau avec les numéros 0à N, vous ne pouvez pas garantir que le réseau classera correctement les numéros en dehors de cette plage ( n > N).

Un tel réseau serait un réseau de feed-back régulier ( MLP ) car la récurrence n'ajoute rien à la classification de l'entrée donnée. La quantité de couches et de nœuds ne peut être trouvée que par essais et erreurs.


1
Les théorèmes universels s'appliquent aux fonctions continues sur des sous-ensembles compacts. Prime / not prime n'est pas ce genre de fonction.
pasaba por aqui

1
@pasabaporaqui: Dans ce cas, la fonction de primauté peut être assez bien approximée par une fonction continue avec des pics aux valeurs des nombres premiers. Ainsi, le NN pourrait générer 90% de chances d'être un nombre premier pour 6,93 - ce qui est clairement un non-sens, mais si vous discrétisez les entrées et les sorties, vous ne vous souciez pas vraiment de ce que le NN prédirait pour les non-entiers. Je pense que cette réponse est fondamentalement correcte.
Neil Slater du

1

Je suis chercheur de premier cycle à l'université Prairie View A&M. J'ai pensé que je commenterais, car je viens de passer quelques semaines à peaufiner un modèle MLPRegressor pour prédire le nième nombre premier. Il est récemment tombé sur un minimum très bas, où les 1000 premières extrapolations en dehors des données de formation ont produit une erreur inférieure à 0,02%. Même à 300 000 amorces, c'était environ 0,5% de réduction. Mon modèle était simple: 10 couches cachées, entraînées sur un seul processeur pendant moins de 2 heures.

Pour moi, cela pose la question: «Y a-t-il une fonction raisonnable qui produit le nième nombre premier? À l'heure actuelle, les algorithmes deviennent très exigeants en termes de calcul pour l'extrême n. Découvrez les écarts de temps entre les plus grands nombres premiers découverts. Certains d'entre eux sont à des années d'intervalle. Je sais qu'il a été prouvé que si une telle fonction existe, elle ne sera pas polynomiale.


Bienvenue sur AI.SE! Veuillez noter que nous n'autorisons que les réponses (par opposition aux commentaires) dans la section des réponses, j'ai donc affiné un peu votre message pour vous concentrer sur la réponse à la question. Pour une introduction à notre site, voir la visite .
Ben N

Salut Cody, il n'y a pas longtemps. Mais j'aimerais avoir une conversation avec vous concernant le test que vous avez fait. Seriez-vous prêt à discuter en direct de ce que vous avez fait et de ce que vous avez perçu? Je voudrais voir s'il est possible d'expérimenter davantage avec cela.
momomo

-1

oui c'est faisable, mais considérez que le problème de factorisation d'entier est un problème NP-quelque chose et un problème BQP .

pour cette raison, il est impossible qu'un réseau de neurones basé uniquement sur l'informatique classique trouve un nombre premier avec une précision de 100%, à moins que P = NP.


Comme l'explique la question, vérifier si un nombre est premier n'est pas un problème NP.
pasaba por aqui
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.