Une fois, je suis tombé sur un livre intitulé
"Créez votre réseau neuronal" , écrit par
Tarik Rashid . Contrairement à de nombreux autres livres sur les réseaux de neurones, tout a été présenté dans un langage simple, avec un nombre suffisant d'exemples et de conseils
Inspiré par ce livre, je veux le parcourir pas à pas - à savoir sa partie pratique - en
écrivant le code d'un réseau neuronal simple .
Cet article s'adresse à ceux qui veulent faire des réseaux de neurones et de l'apprentissage automatique, mais qui ont jusqu'à présent du mal à comprendre ce domaine scientifique étonnant. Le
squelette le plus simple
du code d'un réseau neuronal sera décrit ci-dessous, afin que beaucoup comprennent le principe le plus simple de construction et d'interaction de tout ce que ce réseau neuronal consiste.

Les théories sur l'apprentissage automatique et les réseaux de neurones sur l'Habré suffisent. Mais si quelqu'un en a besoin, je laisserai quelques liens à la fin de l'article. Et maintenant, nous allons commencer à écrire du code directement, et nous allons écrire en
Python , je recommande d'utiliser
Jupyter-Notebook lors de l'écriture de code
Étape 1. Initialisation du réseau
Tout d'abord, bien sûr, nous devons initialiser tous les composants actifs de notre réseau
Sigmoïde
Cette fonction appartient à la classe des fonctions continues, prend un
nombre réel arbitraire (c'est-à-dire pas nécessairement un entier) à l'entrée
et donne un nombre réel dans la plage de 0 à 1 à la sortie .
En particulier, les grands
nombres (modulo)
négatifs se transforment en zéro et les grands nombres positifs en deviennent un .
Sa sortie est bien interprétée
comme le niveau d'activation des neurones: de l'
absence d'activation (0) à l'
activation complètement
saturée (1).
La sigmoïde est exprimée par la formule:

Le graphique de la fonction sigmoïde conformément à la figure ci-dessous:

La fonction sigmoïde est:
- continu
- en augmentation monotone;
- différenciable.
Dans ce code, le sigmoïde est présent, comme vous pouvez le voir, sous le nom
expit (x)Un peu sur l'apparence d'un nœud dans un réseau de neurones

L'image montre le plus ce nœud, seulement il est généralement présenté sous la forme d'un cercle, pas d'un rectangle. Comme nous le voyons, à l'intérieur d'un rectangle (enfin, ou d'un cercle) - tout cela est abstrait, il y a 2 fonctions:
La 1ère fonction est engagée dans le fait qu'elle reçoit toutes les entrées, en tenant compte des poids, des données, et parfois même en tenant compte du neurone de déplacement (un neurone spécial qui permet simplement aux graphiques de se déplacer, et non de se mélanger dans un tas laid, c'est tout)
La 2e fonction prend comme paramètre la même valeur que la première fonction additionnée, et cette deuxième fonction est appelée fonction d'activation. Dans notre cas, un
sigmoïdeNous continuons :
Partie 2. Formation au réseau neuronal
def train(self, inputs_list, targets_list):
Et maintenant nous approchons de la finPartie 3. Interrogation d'un réseau de neurones
Nous le menons à terme
PS
Ci-dessus a été présenté le modèle le plus simple d'un réseau de neurones. Mais aucune application spécifique n'a été montrée.
Si vous le souhaitez, vous pouvez aller plus loin en ajoutant la possibilité de reconnaître le texte manuscrit dans le code
MNIST , pour cela vous pouvez comprendre complètement (et juste vous amuser) avec ce
fichier jupyter , ma tâche était de démontrer le code et, si possible, de mâcher sur le réseau et pour quelles réponses
PPS
Vous trouverez ci-dessous des liens utiles:
1. Lien vers Github Tarik
->2. Son livre
->3. Théorie de l'apprentissage automatique
->4. Théorie de l'apprentissage automatique
->5. Théorie de l'apprentissage automatique
->