apprentissage numpy-sigmoïde

apprentissage numpy-sigmoïde

Un rappel d'auto-apprentissage. Organiser les diagrammes et apprendre le code pour comprendre numpy-sigmoïde ニューラルネットワークの全体像.jpg

** Lorsque la fonction sigmoïde est utilisée comme fonction d'activation, cela devient comme suit **

python



import numpy as np


#Définition de la fonction sigmoïde
def sigmoid(a):
    return 1 / (1 + np.exp(-a))


#Première couche
x1 = np.array([[1], [2]])
w1 = np.array([[0.4, 0.3], [0.7, 0.6]])
a1 = w1.dot(x1)

#Deuxième couche
x2 = sigmoid(a1)
w2 = np.array([[0.2, 0.3], [1, 0.7]])
a2 = w2.dot(x2)

#Valeur de sortie et valeur de réponse correcte
y = sigmoid(a2)
t = np.array([[1], [0]])
print(y)

#Organiser les valeurs d'entrée, les paramètres et les valeurs totales
X = [x1, x2]
A = [a1, a2]
W = [w1, w2]

#Obtenir la taille du nombre de couches du paramètre
max_layer = len(X)


#Différenciation de la fonction d'activation
def f(a):
    return (1 - sigmoid(a)) * sigmoid(a)


#Mise en œuvre de la formule de mise à jour g
def g(l, j):
    if max_layer == l:
        return (y[j] - t[j]) * f(A[l - 1][j])
    else:
        output = 0
        m = A[l - 1].shape[0]
        for i in range(m):
            output += g(l + 1, i) * W[l][j, i] * f(A[l - 1][j])
        return output


#Différenciation de la fonction d'erreur par le paramètre w
def diff(j, k, l):
    return g(l, j) * X[l - 1][k]


#Apprenez les paramètres 100 fois
for _ in range(100):
    for l in range(len(X)):
        for j in range(W[l].shape[0]):
            for k in range(W[l].shape[1]):
                W[l][j, k] = W[l][j, k] - diff(j, k, l + 1)
    A[0] = W[0].dot(X[0])
    X[1] = sigmoid(A[0])
    A[1] = W[1].dot(X[1])
    y = sigmoid(A[1])

print(y)

[[0.60041131] [0.79248709]] [[0.91175343] [0.08878309]]

Examen de la forme

python


#range.Comprendre la forme de la forme semble renvoyer des lignes et des colonnes
import numpy as np
a = np.array([[1,2,3],[4,5,6],[4,5,6],[4,5,6]])
a.shape

(4, 3)

En bref, c'est la taille du tableau. Ce résultat indique que le tableau est 4 * 3 (4 lignes et 3 colonnes). a.shape [0] vaut 4 dans cet exemple. 3 pour une forme [1]

Recommended Posts

apprentissage numpy-sigmoïde
estimation personnelle en temps réel (apprentissage)
Dossier d'apprentissage
Dossier d'apprentissage n ° 3
Dossier d'apprentissage n ° 1
Apprentissage automatique
apprentissage de python
Dossier d'apprentissage n ° 2
6/10 Contenu d'apprentissage
L'apprentissage en profondeur
Note d'étude LPIC201
[Introduction] Renforcer l'apprentissage
[Python] Note d'apprentissage 1
Notes d'apprentissage Python
Report_Apprentissage approfondi (partie 2)
Report_Apprentissage approfondi (partie 1)
Report_Apprentissage approfondi (partie 1)
sortie d'apprentissage python
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Algorithme d'apprentissage du dictionnaire
Report_Apprentissage approfondi (partie 2)
Site d'apprentissage Python
Apprentissage Python jour 4
Apprentissage par renforcement futur_2
Apprentissage par renforcement futur_1
Apprentissage en profondeur Python
Apprendre sans enseignant 1 Principes de base
apprentissage python (supplément)
Apprentissage supervisé (classification)
Apprentissage profond × Python
[Memo] Apprentissage automatique
notes d'apprentissage python
Exemple d'apprentissage automatique