Compte tenu de la latitude et de la longitude, créez un programme qui détermine s'il appartient à Tokyo ou Kanagawa.
Le jugement est fait par un réseau neuronal avec deux couches d'entrée, deux couches intermédiaires et une couche de sortie.
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
Additionnez les entrées.
getOutput
Sort la valeur obtenue en convertissant la valeur d'entrée avec la fonction d'activation.
Les neurones ont la caractéristique de se déclencher lorsque la valeur d'entrée dépasse le seuil, et cela est imité en appliquant la fonction sigmoïde à la fonction d'activation comme décrit ci-dessus.
reset
Réinitialisez la valeur d'entrée.
class NeuralNetwork:
#Poids d'entrée
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]
#Déclaration de chaque couche
input_layer = [0.0, 0.0, 1.0]
middle_layer = [Neuron(), Neuron(), 1.0]
ouput_layer = Neuron()
...
«Le troisième élément de input_layer» et «middle_layer» est le biais.
Lisez un fichier qui décrit la longitude et la latitude sur une seule ligne.
35.48,137.76
35.47,137.81
35.29,138.06
...
Il est possible de faire la distinction entre Tokyo et Kanagawa par rapport à des frontières complexes. Pour faire un bon jugement, il est nécessaire de définir le poids et le seuil de chaque entrée de manière appropriée. La méthode de réglage sera apprise à partir de la prochaine fois.
Recommended Posts