Comment fonctionnent les réseaux de neurones binaires et pourquoi ils seront populaires en 2020

Les réseaux de neurones sont une bonne chose, mais leur potentiel est toujours limité par le coût et l'énergie; les réseaux de neurones binaires peuvent aider à faire face à cette




Le concept de réseaux neuronaux est apparu il y a plus de 40 ans, lorsque les scientifiques ont expérimenté la modélisation mathématique des fonctions cérébrales. Ils ont compris comment réaliser une implémentation mécanique d'un réseau de neurones qui peut apprendre à reconnaître des modèles et à classer des données - par exemple, pour savoir s'il y a un chat ou un chien sur la vidéo.

Au cours de la dernière décennie, la complexité et la capacité des réseaux de neurones ont considérablement augmenté. Associés à une augmentation sans précédent de la puissance de superordinateurs et de processeurs graphiques (GPU) abordables et abordables, ils sont devenus la méthode par défaut pour résoudre les problèmes, reconnaître les modèles et détecter les anomalies. Les organisations les utilisent aujourd'hui pour faire des prédictions, rechercher les préférences des utilisateurs, valider les données et gérer les risques.

Mais, malgré leur utilisation active, ils ont leurs inconvénients qui limitent leur potentiel. Le Saint-Graal est un réseau de neurones qui peut rapidement analyser des informations, étant peu coûteux et non énergivore. La création d'un réseau répondant à ces critères est une tâche difficile, mais elle doit être résolue pour que nous puissions profiter des réseaux de neurones plus près des frontières des réseaux informatiques et de communication, ainsi que sur les terminaux.

Une des alternatives que de nombreuses organisations explorent est les réseaux binaires. Il s'agit d'une technologie assez nouvelle, mais elle est susceptible de devenir assez influente en 2020. Pour comprendre pourquoi, nous devons comprendre le fonctionnement des deux types de réseaux.

Comment fonctionnent les réseaux de neurones?


Les réseaux de neurones sont constitués de plusieurs couches de sommes pondérées. Chaque somme pondérée donne un nombre qui indique soit qu'il y a probablement un signe dans ces données, soit qu'il n'est probablement pas là. Ces couches combinent, par exemple, des images brutes en ensembles de fonctionnalités, et les recombinent pour finalement arriver à une réponse.

Autrement dit, disons que vous voulez que le réseau neuronal puisse reconnaître les visages sur les photos. Le système divise l'image en petits segments, puis les couches réseau scannent chaque segment de l'image, à la recherche d'un signe qu'ils ont appris à identifier. La première couche, par exemple, peut rechercher des caractéristiques de base: cercles noirs, cercles blancs, rectangles blancs, couleur de peau. Ces signes sont faciles à remarquer.

La deuxième couche peut rechercher des yeux (un cercle noir à l'intérieur du blanc), des bouches (un ensemble de rectangles blancs situés à proximité et entourés de peau), la couche suivante peut rechercher deux yeux au-dessus de la bouche et avec la peau autour. Chaque caractéristique donne à chaque segment d'image une estimation de la probabilité de la présence de la caractéristique souhaitée dans cette partie de la photo. Ensuite, ces probabilités sont combinées, et si un nombre suffisant de couches croit que le signe recherché est sur la photo, le réseau conclut que la personne est là.


Fig. 1

Dans la fig. La figure 1 (et c'est une photo de Barack Obama) montre comment ces couches d'analyse et de probabilités sont résumées, permettant au réseau de travailler avec des valeurs approximatives pour produire une réponse relativement précise.

Notez que des fonctionnalités telles que les cercles noirs, les yeux ou la bouche ne sont pas programmées par une personne, mais sont détectées par le réseau pendant l'entraînement. Il est possible qu'un autre motif (par exemple, le nez, les oreilles ou la racine des cheveux) soit mieux adapté aux recherches sur le visage, et la beauté des réseaux de neurones est qu'ils peuvent être utilisés pour rechercher de tels motifs.

Inconvénients des réseaux de neurones traditionnels


Le problème est que dans la recherche de la précision la plus élevée possible, il est nécessaire de traiter des niveaux de probabilité délimités très détaillés, et pour ces calculs mathématiques de sérieuses ressources sont nécessaires. En raison de l'utilisation de nombres à virgule flottante pour l'analyse des segments, les réseaux de neurones nécessitent relativement beaucoup de puissance de calcul, de mémoire et de temps pour fonctionner.

Bien que le cloud dispose de suffisamment de puissance de calcul et de mémoire, de nombreuses applications de périphérie ne peuvent pas compter sur le cloud. Par exemple, les robomobiles doivent prendre des décisions instantanément en fonction de leur environnement et, en cela, elles ne peuvent pas compter sur des communications à bande passante limitée.

Les réseaux de neurones qui fonctionnent avec des nombres à virgule flottante sur les terminaux ne peuvent pas être utilisés. Pour cette raison, de nombreuses entreprises utilisent l'arithmétique entière, qui économise une grande quantité de mémoire et de puissance de calcul, mais il existe une meilleure façon - c'est là que les réseaux de neurones binaires se manifestent.

Fonctionnement des réseaux binaires


Si un réseau neuronal ordinaire est une peinture de Picasso, alors un réseau neuronal binaire est un croquis au crayon grossier.

Si les réseaux de neurones attribuent à chaque segment une probabilité calculée avec précision, les réseaux de neurones binaires, comme leur nom l'indique, réduisent les valeurs probables à une version en noir et blanc, c'est-à-dire soit à -1 (si le réseau considère qu'il n'y a aucun signe dans ce fragment), soit + 1 (le cas échéant).

Maintenant, une somme pondérée évalue chaque trait positivement (multiplication par +1) ou négativement (multiplication par -1), et au lieu de multiplications complètes, nous n'avons qu'à considérer la multiplication par +1 et -1.


Fig. 2

Cette approche sacrifie un certain degré de précision, mais nous pouvons compenser les pertes en augmentant légèrement le réseau. Les réseaux binaires sont intrinsèquement beaucoup plus simples.

Par rapport à leurs homologues à virgule flottante, ils nécessitent 32 fois moins d'espace pour stocker le nombre (1 bit au lieu de 32), et des centaines de fois moins d'énergie, c'est pourquoi ils sont beaucoup plus adaptés aux "applications de pointe" comme les robots, lorsque les appareils eux-mêmes peuvent traiter des informations sans impliquer le cloud computing.

Habituellement, dans un réseau binaire, des couches avec des valeurs non binaires se produisent toujours, en particulier à l'entrée et parfois à la sortie. À l'entrée, l'image sera très probablement en couleur et devra être interprétée numériquement avant le début des couches binaires. Et la couche de sortie aura également toujours une sortie non binaire.

L'avenir des réseaux binaires


Une telle simplicité ouvre un vaste champ d'utilisation commerciale dans des conditions où l'efficacité est primordiale. Sur une puce intégrée, il est plus probable de stocker des coefficients de réseau binaires que les réseaux à coefficients à virgule flottante. Les fabricants de processeurs devront adopter cette technologie et fournir un support pour les réseaux binaires.

2020 devrait être l'année des réseaux binaires. Les entreprises travaillent activement à la mise en œuvre de cette technologie et les logiciels nécessaires à la formation des réseaux binaires se développent rapidement. Nous verrons probablement la première application réelle de cette technologie très bientôt, et des puces de faible puissance et de faible énergie apparaîtront sur des périphériques de pointe qui peuvent classer des images ou d'autres données.

Ainsi, la prochaine génération de technologie sera basée sur la simplicité.

Source: https://habr.com/ru/post/fr483674/


All Articles