Udemy jedermanns KI-Kurs Künstliche Intelligenz und maschinelles Lernen von Grund auf mit Python
Erstellen Sie anhand des Breiten- und Längengrads ein Programm, das bestimmt, ob es zu Tokio oder Kanagawa gehört.
Die Beurteilung erfolgt durch ein neuronales Netzwerk mit zwei Eingangsschichten, zwei Zwischenschichten und einer Ausgangsschicht.
class Neuron:
input_sum = 0.0
output = 0.0
def setInput(self, inp):
self.input_sum += inp
def getOutput(self):
self.output = sigmoid(self.input_sum)
return self.output
def reset(self):
self.input_sum = 0
self.output = 0
setInput
Summiere die Eingaben.
getOutput
Gibt den Wert aus, der durch Konvertieren des Eingabewerts mit der Aktivierungsfunktion erhalten wird.
Neuronen haben die Eigenschaft zu feuern, wenn der Eingabewert den Schwellenwert überschreitet, und dies wird nachgeahmt, indem die Sigmoidfunktion wie oben beschrieben auf die Aktivierungsfunktion angewendet wird.
reset
Setzen Sie den Eingabewert zurück.
class NeuralNetwork:
#Eingabegewicht
w_im = [[0.496, 0.512], [-0.501, 0.990], [0.490, -0.502]] # [[i1-m1, i1-m2], [i2-m1, i2-m2], [bias1-m1, bias1-m2]]
w_mo = [0.121, -0.4996, 0.200] # [m1-o, m2-o, bias2-0]
#Erklärung jeder Schicht
input_layer = [0.0, 0.0, 1.0]
middle_layer = [Neuron(), Neuron(), 1.0]
ouput_layer = Neuron()
...
Das dritte Element von "input_layer" und "middle_layer" ist Bias.
Lesen Sie eine Datei, die den Längen- und Breitengrad in einer Zeile beschreibt.
35.48,137.76
35.47,137.81
35.29,138.06
...
Es ist möglich, in Bezug auf komplizierte Grenzen zwischen Tokio und Kanagawa zu unterscheiden. Um ein richtiges Urteil zu fällen, ist es notwendig, das Gewicht und den Schwellenwert jeder Eingabe entsprechend einzustellen. Die Einstellmethode wird ab dem nächsten Mal gelernt.
Recommended Posts