Künstliche neurale Netzwerke. Teil 2

Neurales Netzwerk

In diesem Teil werden wir die Prinzipien neuronaler Netze untersuchen und ein neuronales Netz aus zwei Schichten schreiben.





Neuronale Netze bestehen aus miteinander verbundenen Neuronen.





Ich habe im vorherigen Teil mehr über Neuronen geschrieben.





Neuronale Netze sind in Schichten unterteilt:





  1. Eingabeebene





  2. Versteckte Ebenen





  3. Ausgabeschicht





Versteckte Ebenen sind Ebenen zwischen Eingabe und Ausgabe. Die Anzahl der ausgeblendeten Ebenen kann beliebig sein.





Wir werden ein neuronales Netzwerk aus 2 Schichten, Eingabe- und Ausgabeschichten, schreiben.





Betrachten wir zunächst die Prinzipien neuronaler Netze.





Wie gesagt, neuronale Netze sind in Schichten unterteilt. Jede Schicht enthält eine Reihe von Neuronen. Die Ausgaben aller Neuronen in einer Schicht werden an die Eingaben aller Neuronen in der nächsten Schicht gesendet.





Ein neuronales Netzwerkdiagramm von 3 Schichten mit 2 Neuronen am Eingang, 3 versteckten, 1 Ausgang sieht folgendermaßen aus





Diese Verbindung zwischen Schichten wird als Feedforward bezeichnet.





Als Ergebnis haben wir 3 Schichten und 6 Neuronen.





Für große Projekte ist dies nicht viel, aber da wir gerade lernen, werden wir ein neuronales Netzwerk aus 2 Schichten mit 2 Eingangsneuronen und 1 Ausgang schreiben.





Schema für unser neuronales Netzwerk





Lassen Sie uns die Datei NeuronNet.py erstellen





Verbinden wir die Neuronenklasse, die wir im letzten Teil geschrieben haben:





from Neuron import *
      
      



Beschreiben wir die NeuronNet-Klasse und den Konstruktor dafür in der Datei:





class NeuronNet:

    def __init__(self):
    
        self.n = []
        
        for i in range(3):
            self.n.append(Neuron(2))
      
      



Im Klassenkonstruktor wird ein Array von Objekten der Neuron-Klasse mit einer Größe von 3 Neuronen erstellt. Wir übergeben die Nummer 2 in den Parametern an das Neuron, da für alle Neuronen 2 Eingaben vorhanden sind.





, 3 1 2 , 1 2 :





def activate(self, inputs):
    return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



NeuronNet. NeuronNet.py.





NeuronNet.py:





from Neuron import *

class NeuronNet:
    def __init__(self):

        self.n = []

        for i in range(3):
            self.n.append(Neuron(2))

    def activate(self, inputs):
        return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



main.py, .





main.py numpy NeuronNet.py:





import numpy as np
from NeuronNet import *
      
      



:





net = NeuronNet()
      
      



:





x = np.array([1, 2])

print(net.activate(x))
      
      



:





import numpy as np

from NeuronNet import *

net = NeuronNet()

x = np.array([1, 2])

print(net.activate(x))
      
      



. :





python main.py
      
      











. .





Fassen wir zusammen.





Heute Wir:





  1. Erlernte die Prinzipien neuronaler Netze





  2. Erlernte die Prinzipien der Neuronenkommunikation in neuronalen Netzen





  3. Wir haben die NeuronNet-Klasse in der Programmiersprache Python geschrieben





  4. Wir haben unser erstes neuronales Netzwerk gestartet





Im nächsten Teil werden wir das Training unseres neuronalen Netzwerks implementieren.





Wenn Sie nach dem Lesen des Artikels Fragen haben, stellen Sie diese in den Kommentaren.








All Articles