[PYTHON] Chapitre 2 Implémentation de Perceptron Ne découpez que les bons points de Deeplearning à partir de zéro

Qu'est-ce que Perceptron?

Perceptron reçoit plusieurs signaux en tant qu'entrées et émet un signal. Le signal Perceptron est une valeur binaire de 1 ou 0. Cette fois, je la décrirai correspondant à non fluide 0 et fluide 1.

Type de porte

AND

x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1

NAND

x1 x2 y
0 0 1
1 0 1
0 1 1
1 1 0

OR

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 1

Implémentation de Perceptron

Implémentation facile

--Définir la fonction ET

def AND(x1, x2)
    w1, w2, theta = 0.5, 0.5, 0.7
    temp = x1*w1+x2*w2
    if tmp <= theta:
        return 0
    elif tmp > theta:
        return 1

Les paramètres w1, w2 et theta sont initialisés dans la fonction et retournent 1 si la somme des entrées pondérées dépasse le seuil, sinon 0. Ensuite, vérifions si la sortie est comme indiqué dans la figure 2-2.

AND(0, 0) # 0
AND(1, 0) # 0
AND(0, 1) # 0
AND(1, 1) # 1

J'ai eu le comportement attendu.

De même, NAND et OR peuvent être mis en œuvre.

Introduction de poids et de biais

y = 0(b+w1x1+w2x2 <= 0)
    1(b+w1x1+w2x2 >  0)
>>>import numpy as np
>>>x = np.array([0,1])
>>>w = np.array([0.5, 0.5])
>>>b = -0.7
>>>w*x
>>>array([0. , 0.5])
>>>np.sum(w*x)
0.5
>>>np.sum(w*x) + b
-0.19999999996

Mise en œuvre par poids et biais

def AND(x1, x2):
   x = np.array([x1, x2])
   w = np.array([0.5, 0.5])
   b = -0.7
   tmp = np.sum(w*x) + b
   if tmp <= 0:
       return 0
   else:
       return 1

def NAND(x1, x2):
   x = np.array([x1, x2])
   w = np.array([-0.5, -0.5])
   b = 0.7
   tmp = np.sum(w*x) + b
   if tmp <= 0
      return 0
   else:
      return 1

def OR(x1, x2):
   x = np.array([x1, x2])
   w = np.array([0.5, 0.5])
   b = -0.2
   tmp = np.sum(w*x) + b
   if tmp <= 0
       return 0
   else:
       return 1

Porte XOR

La porte XOR est un circuit logique, également appelé somme exclusive de logique.

OR

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 0

Il est difficile d'exprimer ce résultat dans une équation.

Perceptron multicouche

Perceptron ne pouvait pas représenter la porte XOR. Mais c'est possible en empilant des couches.

Combinaison de portes existantes

La porte XOR peut être représentée par la valeur de la combinaison de NAND et OR et AND.

XOR |x1|x2|s1|s2|y| |---|---|---| |0|0|1|0|0| |1|0|1|1|1| |0|1|1|1|1| |1|1|0|1|0|

Implémentation de XOR

def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)

XOR(0, 0) # 0
XOR(1, 0) # 1
XOR(0, 1) # 1
XOR(1, 1) # 0

XOR est un perceptron à deux couches. Les perceptrons empilés multiples sont parfois appelés perceptrons multicouches. Il est possible d'exprimer de manière plus flexible en empilant des couches.

Résumé

--Perceptron est un algorithme avec entrée et sortie. Étant donné une certaine entrée, une valeur fixe est sortie. --Dans Perceptron, [Weight] et [Bias] sont définis comme paramètres.

Recommended Posts

Chapitre 2 Implémentation de Perceptron Ne découpez que les bons points de Deeplearning à partir de zéro
Chapitre 3 Réseau de neurones Ne découpez que les bons points de Deeplearning à partir de zéro
Chapitre 1 Introduction à Python Découpez uniquement les bons points de Deeplearning à partir de zéro
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Python vs Ruby "Deep Learning from scratch" Chapitre 4 Implémentation de la fonction de perte
Python vs Ruby "Deep Learning from scratch" Chapitre 3 Implémentation d'un réseau neuronal à 3 couches
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
[Deep Learning from scratch] Implémentation de la méthode Momentum et de la méthode AdaGrad
Mémo d'apprentissage profond créé à partir de zéro
Écrivez vos impressions sur l'édition du framework Deep Learning 3 créée à partir de zéro
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
Python vs Ruby «Deep Learning from scratch» Chapitre 2 Circuit logique par Perceptron
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
GitHub du bon livre "Deep Learning from scratch"
Apprentissage profond à partir de zéro
[Deep Learning from scratch] J'ai implémenté la couche Affine
Python vs Ruby "Deep Learning from scratch" Chapitre 3 Graphique de la fonction step, fonction sigmoid, fonction ReLU
Python vs Ruby "Deep Learning from scratch" Chapitre 1 Graphique de la fonction sin et de la fonction cos
Apprentissage profond à partir de zéro 1 à 3 chapitres
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Un amateur a trébuché dans le Deep Learning à partir de zéro.
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 14) Exécutez le programme du chapitre 4 sur Google Colaboratory
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 8) J'ai dessiné le graphique du chapitre 6 avec matplotlib
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 2
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 10-2) Valeur initiale du poids
Deep learning / Deep learning from scratch 2 Chapitre 4 Mémo
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
Apprentissage profond à partir de zéro (calcul des coûts)
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 7 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 8 Mémo
Deep learning / Deep learning made from scratch Chapitre 5 Mémo
Deep learning / Deep learning made from scratch Chapitre 4 Mémo
Deep learning / Deep learning from scratch 2 Chapitre 3 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 6 Mémo
[Deep Learning from scratch] Implémentation de couche de la fonction softmax à l'erreur d'entropie croisée
Apprentissage profond à partir de zéro (propagation vers l'avant)
Notes d'apprentissage depuis le début de Python 1
Visualisez les effets de l'apprentissage profond / de la régularisation
"Deep Learning from scratch" avec Haskell (inachevé)
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Notes d'apprentissage depuis le début de Python 2
[Deep Learning from scratch] À propos de l'optimisation des hyper paramètres