[PYTHON] Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)

Einführung

Was ist dieser Artikel?

Es ist ein Material- und Memo-Schreiben für die Lernsitzung. Wir können die Gültigkeit des Inhalts nicht garantieren, daher empfehlen wir Ihnen, keine Zitate zu erstellen.

Referenzlink

2.1 Was ist Perceptron?

perceptron.png

_2 Eingabe Perceptron (aus "Deep Learning from Zero" S.22) _

Unter der Annahme, dass die Ausgabe $ y $ ist, können die obigen Elemente wie folgt mathematisch ausgedrückt werden.

y = \left\{
\begin{array}{ll}
0 & (w^1x^1 + w^2x^2 \leqq \theta) \\
1 & (w^1x^1 + w^2x^2 \gt \theta)
\end{array}
\right.

2.2 Einfache Logikschaltung

2.2.1 UND Tor

_P.23 Siehe "Abb. 2-2 AND Gate Truth Table" _

2.2.2.1 NAND-Gatter

_P.24 Siehe "Abbildung 2-3 NAND Gate Truth Table" _

--NAND = Nicht AND = AND Verhalten gegenüber dem Gate

2.2.2.2 ODER-Gatter

2.3 Implementierung von Perceptron

2.3.1 Einfache Implementierung

Definieren und führen Sie die UND-Schaltung wie folgt aus.

def AND(x1, x2):
  w1, w2, theta = 0.5, 0.5, 0.7
  tmp = x1 * w1 + x2 * w2

  if tmp <= theta:
    return 0
  elif tmp > theta:
    return 1

2.3.2 Einführung von Gewichten und Vorurteilen

y = \left\{
\begin{array}{ll}
0 & (w^1x^1 + w^2x^2 \leqq \theta) \\
1 & (w^1x^1 + w^2x^2 \gt \theta)
\end{array}
\right.
y = \left\{
\begin{array}{ll}
0 & (b + w^1x^1 + w^2x^2 \leqq 0) \\
1 & (b + w^1x^1 + w^2x^2 \gt 0)
\end{array}
\right.

Lassen Sie uns mit dem Dolmetscher sprechen.

>>> import numpy as np
>>> x = np.array([0, 1]) #Eingang
>>> w = np.array([0.5, 0.5]) #Gewicht
>>> b = -0.7 #vorspannen
>>> w * x
>>> np.sum(w * x)
>>> np.sum(w * x) + b

2.3.3 Umsetzung nach Gewicht und Voreingenommenheit

Lassen Sie uns jede Schaltung von AND / NAND / OR basierend auf dem vorherigen Abschnitt implementieren.

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])

  #Nur Gewicht und Voreingenommenheit unterscheiden sich von UND
  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])

  #Nur die Vorspannung unterscheidet sich von UND
  w = np.array([0.5, 0.5])
  b = -0.2

  tmp = np.sum(w * x) + b
  
  if tmp <= 0:
    return 0
  else:
    return 1

Unterschied zwischen Voreingenommenheit und Gewicht

Der Begriff Voreingenommenheit bedeutet "es bekommen". Dies bedeutet, wie viel Sie die Ausgabe erhalten (einen Wert hinzufügen) können, wenn keine Eingabe vorhanden ist (wenn die Eingabe 0 ist). Tatsächlich gibt die Berechnung von b + w1 x1 + w2 x2 in Gleichung (2.2) nur den Vorspannungswert aus, wenn die Eingänge x1 und x2 0 sind.

(Auszug aus S.27)

2.4 Grenzen von Perceptron

2.5 Mehrschichtiges Perceptron

--XOR kann durch "Layering" ausgedrückt werden.

2.5.1 Kombination bestehender Tore

Eine XOR-Schaltung, die 1 ausgibt, wenn einer der Eingänge 1 und der andere 0 ist, wird durch eine Kombination von vorhandenem UND / NAND / ODER dargestellt. Lassen Sie uns das Verhalten jeder Schaltung noch einmal klären.

--AND ... Ausgänge 1, wenn die beiden Eingänge 1 sind, andernfalls Ausgänge 0. --NAND ... Gibt 0 aus, wenn die beiden Eingänge 1 sind, andernfalls 1.

Tatsächlich kann dies durch die folgende Verdrahtung realisiert werden: Der Anfangswert ist $ x ^ 1, x ^ 2 $, die Ausgabe von NAND ist $ s ^ 1 $ und die Ausgabe von OR ist $ s ^ 2 $.

xor.png _P.32 Abbildung 2-11_

Überprüfen Sie die Wahrheitstabelle.

xor-chart.png _P.33 Abbildung 2-12 XOR Gate Truth Table _

2.5.2 XOR-Gate-Implementierung

Lassen Sie es uns im Code implementieren, der auf dem vorherigen Abschnitt basiert.

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

2.6 Vom NAND zum Computer

2.7 Zusammenfassung

--Perceptron ist ein Algorithmus mit Eingabe und Ausgabe. Bei einer bestimmten Eingabe wird ein fester Wert ausgegeben.

Recommended Posts

Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
Deep Learning von Grund auf neu
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Deep Learning von Grund auf 1-3 Kapitel
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 2 Logikschaltung von Perceptron
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Deep Learning Memo von Grund auf neu gemacht
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4
Selbststudien-Memo "Deep Learning from Grund" (Nr. 18) Eins! Miau! Grad-CAM!
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Selbststudien-Memo "Deep Learning from Grund" (Nr. 15) TensorFlow-Anfänger-Tutorial
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
Selbststudien-Memo "Deep Learning from Grund" (Nr. 13) Verwenden Sie Google Colaboratory
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 10-2) Anfangswert des Gewichts
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 14) Führen Sie das Programm in Kapitel 4 in Google Colaboratory aus
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Kapitel 2 Implementierung von Perceptron Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
GitHub des guten Buches "Deep Learning von Grund auf neu"
Django Memo # 1 von Grund auf neu
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 4 Implementierung der Verlustfunktion
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3