Notes d'étude de base du réseau neuronal (deux) réseau neuronal

table des matières

Trois, réseau de neurones

3.1 Du perceptron au réseau neuronal

3.1.1 Exemples de réseaux de neurones:

3.1.2 Conversion de fonction:

3.2 Fonction d'activation

3.2.1 Type de fonction d'activation:

3.2.3 Graphique de la fonction de classe

3.2.2 Comparaison de la fonction step et de la fonction sigmoïde:

3.2.3 Fonction ReLU:

3.3 Fonctionnement du tableau multidimensionnel:

3.3.1 Le produit interne du réseau neuronal:

3.4. Implémentation d'un réseau neuronal à trois couches

3.5.1 Trois types de fonctions de sortie

3.5.2 Le problème de débordement de la fonction softmax

3.5.3 Caractéristiques de la fonction Softmax:

3.5.4 Le nombre de neurones dans la couche de sortie

3.6 Reconnaissance des chiffres manuscrits

Traitement unique et traitement par lots

résumé:


Trois, réseau de neurones

Résoudre le problème: Le chapitre précédent peut utiliser AND ou non pour résoudre divers problèmes de fonction, mais les poids sont définis manuellement . Ce chapitre commence par la réalisation de réseaux de neurones et utilise les données existantes pour apprendre les poids appropriés comme paramètres pour résoudre les problèmes ci-dessus.

3.1 Du perceptron au réseau neuronal

3.1.1 Exemples de réseaux de neurones:

 

Le réseau neuronal est en fait le même que le perceptron

3.1.2 Conversion de fonction:

Référence: Diagramme de formule compilé par le camarade de classe Fang

Source de l'image: https://me.csdn.net/qq_37431224

 

Selon la conversion de fonction dans la figure ci-dessus, nous pouvons convertir en h (x), qui est la fonction d'activation

La fonction d'activation est le pont entre le perceptron et le réseau neuronal

3.2 Fonction d'activation

3.2.1 Type de fonction d'activation:

Fonction d'activation à une valeur de seuil comme limite, une fois que l'entrée dépasse le seuil , la sortie commute. Une telle fonction est appelée "fonction d'étape" .

La fonction d'activation est divisée en une fonction pas à pas et une fonction sigmoïde La fonction étape consiste à changer la sortie lorsque la valeur d'entrée dépasse un certain seuil.

exp (−x)et ^ {- x} signifie, h (x) est également la fonction de perte de la classification des termes communs

Code:

3.2.3 Graphique de la fonction de classe

Fonction étape et réalisation d'image :

Source de l'image: https://me.csdn.net/qq_37431224

 

image de la fonction sigmoïde:

3.2.2 Comparaison de la fonction step et de la fonction sigmoïde:

 

Comparaison des fonctions
Fonction Step fonction sigmoïde
Non lisse Lisse
Seulement 2 valeurs (valeur binaire) Valeurs réelles illimitées

Leur similitude entre les deux est qu'ils sont compris entre 0 et 1

La fonction d'activation du réseau neuronal doit utiliser une fonction non linéaire .

De plus, sigmoïde est une courbe non linéaire , contrairement à la fonction linéaire (ligne droite) h (x) = cx (c est une constante), car la fonction linéaire n'a pas de couche cachée dans le perceptron multicouche, comme

 

Il en va de même pour y = ax, qui ne peut pas profiter de plusieurs couches.

3.2.3 Fonction ReLU:

Sortie x directement lorsqu'elle est supérieure à 0, sortie 0 lorsqu'elle est inférieure ou égale à 0

Implémentation de la fonction: où maxinum renvoie la valeur maximale

L'effet est montré dans la figure:

3.3 Fonctionnement du tableau multidimensionnel:

np.ndim (A) Sortie A dimension de matrice

La forme de sortie de np.shape a plusieurs composants. Le résultat est un tuple.

3.3.1 Le produit interne du réseau neuronal:

Utilisez np.dot (produit scalaire de tableaux multidimensionnels), juste des opérations matricielles

3.4. Implémentation d'un réseau neuronal à trois couches

Signification du symbole:

Analyse de principe:

1) Réalisez le 0e à la première couche: 

 

 

nous savons

Il y a donc le premier niveau de pondération :

 

Code:

2) Réaliser la transformation (fonction sigmoïde) de la fonction d'activation h () de a1 à z1 dans la figure ci-dessous :

Code:

3) Identique à la première à la deuxième couche, répétez directement les étapes ci-dessus:

Code:

4) Les deuxième à troisième couches (couche de sortie) sont fondamentalement les mêmes que les étapes ci-dessus, mais la fonction d'activation est différente :

 

Source de l'image: Fang

5) Implémentation globale du code:

Remarque: En règle générale, la fonction d'identité peut être utilisée pour les problèmes de régression , la fonction sigmoïde peut être utilisée pour les problèmes de classification binaire et la fonction softmax peut être utilisée pour les problèmes de classification multivariée . 3.5 Conception de la couche de sortie:

3.5.1 Trois types de fonctions de sortie

1) Fonction d'identité : elle est directement sortie telle quelle, utilisée dans les problèmes de régression

2) fonction sigmoïde :, utilisé dans les problèmes de classification binaire.

3) Fonction Softmax :, utilisé dans de multiples problèmes de classification.

Parmi eux, la fonction softmax signifie que le signal d'entrée est affecté entre chaque sortie , comme le montre la figure:

Code:

3.5.2 Le problème de débordement de la fonction softmax

Nous savons tous que e ^ x explosera lorsque x est grand , ce qui entraînera un débordement , nous devons donc nous améliorer

 3.5.3 Caractéristiques de la fonction Softmax:

On peut voir que la sortie y est comprise entre 0-1, et leur somme est 1, on peut donc le transformer en problème de probabilité , c'est-à-dire que plus la sortie est grande, plus sa probabilité est élevée. On peut voir que y [2] est le plus grand, donc la réponse est la deuxième catégorie; de ​​plus, e ^ x est une fonction monotone croissante, donc dans l'exemple ci-dessus, la relation entre la taille d'un élément et la taille de y reste inchangée, et y [2] est le plus grand. Donc en fait, nous n'avons pas du tout besoin de la fonction softmax, et nous pouvons savoir quelle probabilité est la plus grande en regardant l'élément a (car softmax nécessite une opération exponentielle, la quantité de calcul est assez grande).

3.5.4 Le nombre de neurones dans la couche de sortie

Comme on peut le voir sur la figure ci-dessus, le nombre de neurones de sortie est déterminé par le nombre de catégories. Si le résultat de sortie est de 10 catégories de 0 à 9, alors la sortie de neurones est de 10. 

3.6 Reconnaissance des chiffres manuscrits

Ensuite, nous utiliserons notre algorithme dans des applications pratiques, l'exemple classique de la reconnaissance de chiffres manuscrits

Les commentaires de code sont les suivants, donc je ne les décrirai pas un par un.

La fonction load_mnist renvoie les données MNIST lues sous la forme "(image d'apprentissage, étiquette d'apprentissage), (image test, étiquette de test)".

Afficher le numéro

Sortie de réseau neuronal

Traitement unique et traitement par lots

À partir de l'exemple ci-dessus, nous savons que la couche d'entrée a 784 neurones (28 * 28) et la couche de sortie a 10 neurones. En supposant qu'il y a 50 et 100 neurones dans les 1-2 couches de la couche cachée, nous avons le traitement de code suivant :

1) Traitement unique:

En utilisant la connaissance des fonctions ci-dessus, nous pouvons maintenant juger formellement la précision entre l'image et l'étiquette après l'entraînement:

2) Traitement par lots:

De l'exemple ci-dessus (ci-dessus), nous connaissons la forme de la matrice après 1 entrée d'image (1 * 28 * 28 ) et sortie (probabilité de 10 catégories)

Ci-dessous, nous emballerons l'exemple ci-dessus en 100 images à la fois pour le calcul

 

Les avantages du traitement par lots: chaque fois que nous calculons une image, io ne prend qu'une seule image à la fois . Maintenant, nous prenons 100 io à la fois pour calculer , car la vitesse de calcul est plus rapide que la vitesse io, le traitement par lots changera dans le calcul global plus rapide

Code:

résumé:

Comme dans le chapitre précédent, nous ne considérons pas comment trouver les poids spécifiques , et sortir à travers les fonctions de chaque couche, formant ainsi un simple réseau de neurones.

Les paramètres ci-dessus seront expliqués plus tard 

Je suppose que tu aimes

Origine blog.csdn.net/qq_37457202/article/details/107477089
conseillé
Classement