Nouvelles Du Monde

Exécuter des réseaux de neurones profonds sur Bitcoin

Exécuter des réseaux de neurones profonds sur Bitcoin

Implémenter un classificateur de chiffres manuscrits en chaîne

Ce billet a été publié pour la première fois le Moyen.

Nous avons mis en place un réseau de neurones profonds pour la classification des chiffres manuscrits. Le modèle déjà formé fonctionne entièrement en chaîne. Il est entraîné hors ligne à l’aide du Ensemble de données MNIST de chiffres manuscrits. Le modèle prend une image de 28 × 28 pixels en niveaux de gris et génère un chiffre de 0 à 9.

Introduction aux réseaux de neurones profonds

Un réseau de neurones artificiels est une construction inspirée des réseaux de neurones biologiques. Le réseau apprend en étant exposé à un grand nombre d’exemples de données étiquetés. Ce processus est également appelé enseignement supervisé.

Le réseau est constitué de plusieurs composants : neurones/nœuds, connexions, biais et fonctions d’activation. Ces composants sont regroupés consécutivement en couches. La première couche s’appelle le “couche d’entrée,” où les données sont transmises au réseau, et le dernier le “couche de sortie,” par lequel le réseau renvoie sa sortie. Un réseau de neurones très simple ne contient que ces deux couches. Pour améliorer les performances, nous pouvons ajouter un ou plusieurs “calques cachés” entre les deux. Les réseaux avec des couches cachées sont appelés “réseaux de neurones profonds» (DNN).

Lire aussi  Les actions d'Amazon chutent en raison de la baisse des bénéfices et de faibles prévisions de ventes

Réseau neuronal

Une illustration d’un réseau neuronal profond

Chaque connexion entre les neurones du réseau est pondérée par une valeur spécifique. Chaque neurone a également une valeur appelée “biais” qui s’ajoute à la somme de ses entrées. L’apprentissage est le processus de recherche d’un ensemble de ces poids et biais, de sorte que le réseau renvoie une sortie significative compte tenu de certaines entrées.

Pour avoir une bonne idée intuitive de la façon dont les réseaux de neurones profonds fonctionnent sous le capot, nous vous recommandons de regarder un courte série de vidéos sur le sujet.

L’architecture du réseau

Le DNN pour les chiffres manuscrits MNIST est composé d’une couche d’entrée de 784 (28 x 28) nœuds, d’une couche cachée de 64 nœuds et d’une couche de sortie de 10 nœuds (nombre de classes/chiffres possibles). Les couches sont toutes entièrement connectéce qui fait que le réseau contient un total de 501760 (784 * 64 * 10) connexions.

Lire aussi  L'alcool à tempérament dans les boutiques en ligne progresse, les experts veulent que le cabinet intervienne

L'architecture du réseau

Les nœuds de la couche cachée utilisent le Fonction d’activation ReLU. Argmax est utilisé sur les nœuds de sortie pour obtenir la bonne valeur, c’est-à-dire le chiffre de la classification.

Former le modèle

Le DNN est formé en utilisant Dur. Avec notre architecture de réseau esquissée et en utilisant le Optimiseur RMSprop pour la formation, le modèle est capable d’atteindre une précision de classification de 98 % après 50 époques.

Une fois le modèle formé, les pondérations et les biais doivent être exportés dans un format que nous pouvons utiliser dans un contrat intelligent sCrypt. Pour des raisons de performance, nous encoder ces valeurs dans octetsne pas tableaux.

Mise en œuvre

Nous avons implémenté le DNN ci-dessus, similaire à le réseau de neurones à une seule couche (alias, un perceptron) que nous avons déjà implémenté. Le code complet est disponible sur GitHub.

La fonction prédire() prend les valeurs initiales de la couche d’entrée. Dans notre cas, il s’agit des valeurs sérialisées d’une image manuscrite. Il renvoie un entier qui représente le résultat de la classification, c’est-à-dire le numéro sur l’image.

Lire aussi  Les prêts immobiliers pour les clients d'Indiabulls Housing Finance deviendront plus coûteux à partir d'octobre ; Voici pourquoi

Étant donné que sCrypt ne prend pas en charge les nombres à virgule flottante natifs, nous utilisons représentations en virgule fixe en mettant simplement à l’échelle les valeurs par 10⁸. Par exemple, 0,86758491 devient un entier 86758491. Lors de la multiplication de deux valeurs, nous redimensionnons le résultat, c’est-à-dire le divisons par 10⁸.

Cas d’utilisation potentiels

Des DNN comme celui-ci pourraient être utilisés de plusieurs façons dans un contrat intelligent. Par exemple, vous pouvez entraîner un modèle à reconnaître si une image contient un hot-dog avec une certaine précision. Les utilisateurs sont incités à rechercher de telles photos sur Internet et sont automatiquement payés en micropaiements Bitcoin pour les avoir soumises. Ces photos peuvent être collectées pour former le modèle et améliorer sa précision.

Regardez : Présentation de Xiaohui Liu de sCrypt à la BSV Global Blockchain Convention, Smart Contracts and Computation on BSV

width=”562″ height=”315″ frameborder=”0″ allowfullscreen=”allowfullscreen”>

Nouveau sur Bitcoin? Découvrez CoinGeek Bitcoin pour les débutants section, le guide de ressources ultime pour en savoir plus sur Bitcoin – tel qu’envisagé à l’origine par Satoshi Nakamoto – et la blockchain.

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ADVERTISEMENT