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é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
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.
Prenons l'exemple suivant.
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.
Si vous exprimez le réseau neuronal comme un produit matriciel, vous pouvez tout calculer en même temps. Il est montré ci-dessous.
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.
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