Sommes-nous techniquement capables de créer, dans le matériel, des réseaux neuronaux arbitrairement grands avec la technologie actuelle?


9

Si les neurones et les synapses peuvent être mis en œuvre à l'aide de transistors, qu'est-ce qui nous empêche de créer des réseaux de neurones arbitrairement grands en utilisant les mêmes méthodes avec lesquelles les GPU sont fabriqués?

Essentiellement, nous avons vu le fonctionnement extraordinaire des réseaux de neurones virtuels mis en œuvre sur des processeurs séquentiels (même les GPU sont des machines séquentielles, mais avec d'énormes quantités de cœurs).

On peut imaginer qu'en utilisant les principes de conception du GPU - qui consiste essentiellement à avoir des milliers d'unités de traitement programmables qui fonctionnent en parallèle - nous pourrions simplifier les "unités de traitement des neurones" et mettre des millions ou des milliards de ces NPU dans une seule grande puce. Ils auraient leur propre mémoire (pour stocker des poids) et seraient connectés à quelques centaines d'autres neurones en partageant un bus. Ils pourraient avoir une fréquence de 20 Hz par exemple, ce qui leur permettrait de partager un bus de données avec de nombreux autres neurones.

Évidemment, il y a des défis en génie électrique ici, mais il me semble que toutes les grandes entreprises de technologie devraient explorer cette voie maintenant.

De nombreux chercheurs en IA disent que la superintelligence arrive vers l'an 2045. Je pense que leur raisonnement est basé sur la loi de Moore et le nombre de neurones que nous sommes en mesure d'implémenter dans des logiciels fonctionnant sur les ordinateurs les plus rapides que nous ayons.

Mais le fait est que nous fabriquons aujourd'hui des puces en silicium avec des milliards de transistors. SPARK M7 compte 10 milliards de transistors.

Si l'implémentation d'un neurone (non programmable) et de quelques centaines de synapses pour cela nécessite par exemple 100 000 transistors, alors on peut faire un réseau neuronal en matériel qui émule 100 000 neurones.

Si nous concevons une telle puce de manière à pouvoir simplement l'agrandir physiquement si nous voulons plus de neurones, il me semble alors que des réseaux de neurones arbitrairement grands sont simplement une question de budget.

Sommes-nous techniquement capables de créer, dans le matériel, des réseaux neuronaux arbitrairement grands avec la technologie actuelle?

N'oubliez pas: je ne demande PAS si un tel réseau sera en fait très intelligent. Je demande simplement si nous pouvons en fait créer des réseaux de neurones arbitrairement grands et hautement interconnectés, si nous décidons de payer Intel pour cela?

L'implication est que le jour où un scientifique est capable de créer une intelligence générale dans le logiciel, nous pouvons utiliser nos capacités matérielles pour faire croître cette intelligence générale au niveau humain et au-delà.


Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
nbro

Réponses:


5

L'approche que vous décrivez s'appelle l' informatique neuromorphique et c'est un domaine assez occupé .

TrueNorth d'IBM a même des neurones dopés .

Le principal problème de ces projets est que personne ne sait encore quoi en faire.

Ces projets n'essaient pas de créer des puces optimisées pour exécuter un réseau de neurones. Ce serait certainement possible, mais la partie coûteuse est la formation et non le fonctionnement des réseaux de neurones. Et pour la formation, vous avez besoin d'énormes multiplications matricielles, ce que les GPU sont déjà très bons. ( Le TPU de Google serait une puce optimisée pour exécuter des NN.)

Pour faire des recherches sur des algorithmes qui pourraient être implémentés dans le cerveau (nous n'en savons presque rien), vous avez besoin de flexibilité, ce que ces puces n'ont pas. De plus, le défi d'ingénierie réside probablement dans la fourniture de nombreuses synapses, il suffit de comparer le nombre moyen de synapses par neurone de TrueNorth, 256, et du cerveau, 10 000.

Donc, vous pourriez créer une puce conçue après une architecture neuronale et ce serait plus rapide, plus efficace, etc., mais pour ce faire, vous devrez d'abord savoir quelle architecture fonctionne. Nous savons que l'apprentissage en profondeur fonctionne, alors Google utilise du matériel sur mesure pour exécuter leurs applications et je pourrais certainement imaginer que du matériel d'apprentissage en profondeur sur mesure arrive dans un smartphone près de chez vous à l'avenir. Pour créer une puce neuromorphique pour une IA forte, vous devez d'abord développer une IA forte.


Je vous remercie. Je crois que les énormes réseaux de neurones dopés se comporteront très intelligemment. Donc, si quelqu'un a une idée (percée) permettant à un neurone matériel de se connecter efficacement à 10000 neurones ou plus - ce serait simplement une question d'avoir suffisamment de silicium pour créer des réseaux neuronaux arbitrairement grands - et peut-être une super intelligence. Ce qui implique que cela pourrait arriver aujourd'hui, est déjà arrivé dans un laboratoire d'IBM - ou arrivera dans 20 ans. Cela signifie que nous n'avons pas à attendre la loi Moores.
frodeborli

4

Si les neurones et les synapses peuvent être mis en œuvre à l'aide de transistors,

J'espère que vous ne parlez pas des réseaux de neurones qui remportent actuellement tous les concours en machine learning (MLP, CNNs, RNNs, Deep Residual Networks, ...). Ceux-ci étaient autrefois utilisés comme modèle pour les neurones, mais ils ne sont que très peu liés à ce qui se passe dans les vraies cellules du cerveau.

Les réseaux de dopage devraient être beaucoup plus proches des vrais neurones. J'ai entendu dire que le modèle Hodgkin-Huxley est assez réaliste. Cependant - contrairement aux modèles que j'ai nommés ci-dessus - il ne semble pas y avoir d'algorithme d'entraînement efficace pour les réseaux de dopage.

ce qui nous empêche de créer des réseaux de neurones arbitrairement grands

  • Ressources informatiques : la formation des réseaux de neurones prend beaucoup de temps. Nous parlons d'environ 12 jours avec un cluster GPU pour certains modèles CNN en vision par ordinateur.
  • Données de formation : plus vous ajoutez de variables au modèle, plus vous avez besoin de données pour les estimer. Les réseaux de neurones ne sont pas magiques. Ils ont besoin de quelque chose avec lequel ils peuvent travailler.

Mais le fait est que nous fabriquons aujourd'hui des puces en silicium avec des milliards de transistors. SPARK M7 compte 10 milliards de transistors.

Si l'implémentation d'un neurone (non programmable) et de quelques centaines de synapses pour cela nécessite par exemple 100 000 transistors, alors on peut faire un réseau neuronal en matériel qui émule 100 000 neurones.

Ce n'est pas aussi simple:

  • Asynchonosité : les réseaux de neurones biologiques fonctionnent de manière asynchrone. Cela signifie qu'un neurone peut être actif tandis que tous les autres ne le sont pas.
  • Émulation : vous supposez qu'il n'aurait besoin que d'un cycle pour simuler un neurone biologique. Cependant, il a besoin de plusieurs milliers de cycles. Vous ne pouvez pas simplement utiliser plus d'unités de calcul, car certaines choses ne sont pas parallélisables. Par exemple, pensez à la fonction f(x) = sin(x*x + 1). Pour un être humain, il y a essentiellement trois calculs: r1 = x*x, r2 = r1 + 1, r3 = sin(r2). Même si 3 personnes travaillent au calcul du résultat, vous ne serez pas plus rapide que la personne la plus rapide de ce groupe. Pourquoi? Parce que vous avez besoin des résultats du dernier calcul.

Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
nbro

1

Alors qu'un seul transistor pourrait approximer la fonction de base d'un seul neurone, je ne peux pas convenir qu'aucun élément électronique puisse simuler les synapses / axones. Les transistors sont gravés sur une surface plane et ne peuvent être interconnectés qu'à des transistors adjacents ou proches. Les axones du cerveau s'étendent sur de grandes distances (par rapport à la taille du neurone lui-même) et ne se limitent pas à une surface bidimensionnelle. Même si nous avons pu approcher le nombre de transistors sur un processeur du nombre de neurones dans un cerveau, nous ne sommes pas aussi proches que le nombre de connexions. On pourrait également faire valoir que les signaux analogiques dans le cerveau transportent plus d'informations par unité de temps, par rapport aux impulsions binaires sur une puce. De plus, le cerveau a en fait une plasticité, c'est-à-dire que les connexions entre les neurones peuvent être affaiblies / rejetées ou redressées / créées,


1
Les puces en silicium sont construites en plusieurs couches, ce qui permet une grande flexibilité sur l'interconnectivité entre les neurones. De plus, l'électricité voyage rapidement - ce qui nous permet de partager les trajets du signal par multiplexage. Je peux imaginer plusieurs façons de permettre une connectivité élevée entre les neurones proches et quelque peu éloignés. La plasticité serait émulée en ayant un degré de connectivité plus élevé - car une synapse rejetée se comporte de manière identique à une synapse qui se multiplie par zéro.
frodeborli

0

Vous pouvez considérer cette liste :

10 différences importantes entre le cerveau et les ordinateurs:

  1. Les cerveaux sont analogiques, les ordinateurs sont numériques
  2. Le cerveau utilise une mémoire adressable par contenu
  3. Le cerveau est une machine massivement parallèle; les ordinateurs sont modulaires et série
  4. La vitesse de traitement n'est pas fixée dans le cerveau; il n'y a pas d'horloge système
  5. La mémoire à court terme n'est pas comme la RAM
  6. Aucune distinction matériel / logiciel ne peut être faite en ce qui concerne le cerveau ou l'esprit
  7. Les synapses sont beaucoup plus complexes que les portes logiques électriques
  8. Contrairement aux ordinateurs, le traitement et la mémoire sont effectués par les mêmes composants dans le cerveau
  9. Le cerveau est un système auto-organisé
  10. Les cerveaux ont des corps

1
Vous faites de nombreuses hypothèses et je ne suis pas d'accord avec bon nombre d'entre elles. Les réseaux de neurones récurrents ont la plupart des propriétés que vous décrivez. Le corps n'a pas besoin d'exister, nous devons simplement nourrir les neurones sensoriels pour que ce cerveau lui donne un corps - en supposant que je veux que ce cerveau ait un corps.
frodeborli
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.