Implémentation de réseau neuronal (NumPy uniquement)

introduction

Cet article est la suite de Machine Learning ③ Introduction / Implémentation de la fonction d'activation. Cet article concerne la mise en œuvre d'un réseau de neurones en utilisant uniquement NumPy. Certaines parties du lien ci-dessous ne chevauchent pas l'explication, veuillez donc les lire également. Apprentissage automatique ① Principes de base de Perceptron Machine learning ② Fonction d'activation de Perceptron Apprentissage automatique ③ Introduction et implémentation de la fonction d'activation

référence

Références: O'REILLY JAPAN Deep Learning from scratch Articles jusqu'à présent: Apprentissage automatique ① Principes de base de Perceptron Machine learning ② Fonction d'activation de Perceptron Apprentissage automatique ③ Introduction et implémentation de la fonction d'activation

supposition

Implémenter le produit matriciel en Python

Tout d'abord, vous devez connaître le calcul des produits matriciels lors de la construction d'un réseau neuronal. Comme prévu, il serait pénible d'écrire la méthode de calcul de la matrice dans cet article, veuillez donc ajouter O'REILLY JAPAN Deep Learning from scratch. Je pense que vous devriez le lire. Seule la méthode de calcul n'est pas décrite, il suffit donc de la faire googler.

Implémentation du produit Matrix

Prenons l'exemple suivant.

Figure 4-1

行列の積.jpg

Implémentons en fait ce qui précède en Python.

3-1step_func.py



import numpy as np

A = np.array([[1, 2], [3, 4], [5, 6]])

#.Obtenez forme avec forme
print(A.shape)

B = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
print(B.shape)

#np.Obtenez un produit matriciel avec un point
C = np.dot(A, B)

print(C.shape)
print(C)

Résultat d'exécution


(3, 2)
(2, 4)
(3, 4)
[[11 14 17 20]
 [23 30 37 44]
 [35 46 57 68]]

Vous pouvez voir que le résultat est le même que dans la figure 4-1. Nous utiliserons cette méthode d'implémentation pour aider à construire un réseau neuronal.

Réseau neuronal et produit matriciel

Si vous exprimez le réseau neuronal comme un produit matriciel, vous pouvez tout calculer en même temps. Il est montré ci-dessous.

Figure 4-2

ニューラルネットワークと行列積.jpg

Voici un exemple dans lequel l'entrée est représentée par une matrice 1 et 2, le poids est représenté par une matrice 2 et 3 dimensions et la sortie est représentée par 1 et 3.

4-2TwoLayer_NeuralNetwork.py



import numpy as np

x = np.array([1, 2])
w = np.array([[1, 3, 5], [2, 4, 6]])

y = np.dot(x, w)
print(y)

Résultat d'exécution


[ 5 11 17]

Vous pouvez voir que la valeur de sortie est sortie.

Résumé

J'ai essayé d'exprimer le réseau neuronal comme un produit matriciel. La prochaine fois, j'introduirai la fonction d'activation en prenant le réseau neuronal à trois couches comme exemple.

Recommended Posts

Implémentation de réseau neuronal (NumPy uniquement)
Implémentation de réseau neuronal en python
Implémentation simple d'un réseau neuronal à l'aide de Chainer
PRML Chapitre 5 Implémentation Python du réseau neuronal
Théorie et implémentation simples des réseaux neuronaux
Implémentation d'un réseau neuronal à 3 couches (pas d'apprentissage)
Implémentation de réseaux neuronaux "flous" avec Chainer
Implémentation de réseau neuronal simple à l'aide de la préparation Chainer-Data-
Implémentation de réseau neuronal simple à l'aide de la description du modèle Chainer-
Réseau neuronal paramétrique
Implémentation simple d'un réseau de neurones à l'aide de Chainer ~ Définition d'un algorithme d'optimisation ~
Implémenter un réseau neuronal convolutif
Implémenter le réseau neuronal à partir de zéro
Expérience de réseau de neurones pliable
Mise en œuvre de l'optimisation bayésienne des hyper paramètres du réseau de neurones (Chainer + GPyOpt)
Régression du noyau avec Numpy uniquement
Implémenter un réseau neuronal à 3 couches
Apprentissage des classements à l'aide d'un réseau neuronal (implémentation RankNet par Chainer)
Implémentation CNN avec juste numpy
Réseau de neurones avec Python (scikit-learn)
3. Distribution normale avec un réseau neuronal!
Réseau de neurones commençant par Chainer
Tutoriel sur le réseau neuronal (CNN) de Pytorch 1.3.1.
4. Entourez les paramètres avec un réseau neuronal!
Tutoriel TensorFlow - Réseau neuronal à convolution (traduction)
Réseau neuronal avec OpenCV 3 et Python 3
Modèle de classification simple avec réseau neuronal
Qu'est-ce que le réseau neuronal convolutif?
[TensorFlow] [Keras] Construction d'un réseau neuronal avec Keras
J'ai essayé de mettre en œuvre un réseau de neurones à deux couches
Touchez l'objet du réseau neuronal
Redémarrez uniquement les fonctions réseau sur Mac