Wir wissen, dass das Perzeptron das einfachste neuronale Netzwerk mit nur einer Schicht ist. Perzeptrone sind Maschinen, die das Verhalten biologischer Neuronen simulieren. Die Lehre, die ich Ihnen dieses Mal bringe, ist die Verwendung von Python zur Implementierung des Perzeptrons. Das Modell lautet wie folgt.
Bei einer n-dimensionalen Eingabe sind w und b Parameter, w ist das Gewicht, jede Eingabe entspricht einem Gewicht und b ist der Bias-Term, der aus den Daten trainiert werden muss.
Aktivierungsfunktion Es gibt viele Möglichkeiten für die Aktivierungsfunktion des Perzeptrons. Beispielsweise können wir die folgende Schrittfunktion f als Aktivierungsfunktion wählen:
Tatsächlich kann das Perzeptron zu jeder passen lineare Funktion. Jedes lineare Klassifizierungs- oder lineare Regressionsproblem kann mithilfe von Perzeptronen gelöst werden. Aber das Perzeptron kann die XOR-Operation nicht implementieren, und natürlich können nicht alle linearen Klassifikatoren die XOR-Operation implementieren.
Die sogenannte XOR-Operation:
Für das obige Bild können wir keine gerade Linie finden, die die Klassen 0 und 1 trennen kann. Für die und-Operation kann das Perzeptron implementiert werden, und wir können eine gerade Linie finden, um es in zwei Teile zu teilen. .
Für und Betrieb:
Perceptron-Training
Initialisieren Sie zunächst zufällig das Gewicht w und den Bias b auf eine sehr kleine Zahl und aktualisieren Sie dann während des Trainings kontinuierlich w und den Wert von B.
1. Initialisieren Sie die Gewichtung auf 0 oder eine kleine Zufallszahl
2. Führen Sie für jede Trainingsprobe x(i) die folgenden Schritte aus:
Berechnen Sie den Ausgabewert y^.
Gewichte aktualisieren
Unter anderem verwendet
das Perzeptron, um die und-Operation zu implementieren. Der spezifische Code lautet wie folgt:
# -*- coding: utf-8 -*- # python 3.4 import numpy as np from random import choice from sklearn import cross_validation from sklearn.linear_model import LogisticRegression '''''
1. Initialisieren Sie die Gewichte auf 0 oder eine kleine Zufallszahl
2. Führen Sie für jede Trainingsprobe x(i) die folgenden Schritte aus:
Berechnen Sie den Ausgabewert y^ .
Gewichte aktualisieren
''' def load_data(): input_data=[[1,1], [0,0], [1,0], [0,1]] labels=[1,0,0,0] return input_data,labels def train_pre(input_data,y,iteration,rate): #=========================== '''''
Parameter:
input_data: Eingabedaten
y: Labelliste
Iteration: Anzahl von Trainingsrunden
Rate: Lernrate
''' #============================ unit_step = lambda x: 0 if x < 0 else 1 w=np.random.rand(len(input_data[0]))#随机生成[0,1)之间,作为初始化w bias=0.0#偏置 for i in range(iteration): samples= zip(input_data,y) for (input_i,label) in samples:#对每一组样本 #计算f(w*xi+b),此时x有两个 result=input_i*w+bias result=float(sum(result)) y_pred=float(unit_step(result))#计算输出值 y^ w=w+rate*(label-y_pred)*np.array(input_i)#更新权重 bias=rate*(label-y_pred)#更新bias return w,bias def predict(input_i,w,b): unit_step = lambda x: 0 if x < 0 else 1#定义激活函数 result=result=result=input_i*w+b result=sum(result) y_pred=float(unit_step(result)) print(y_pred) if __name__=='__main__': input_data,y=load_data() w,b=train_pre(input_data,y,20,0.01) predict([1,1],w,b)
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie diese Fälle gelesen haben Weitere spannende Inhalte finden Sie unter PHP Chinesisch. Andere verwandte Artikel online!
Verwandte Lektüre:
Das einfachste String-Matching-Algorithmus-Tutorial in PHP
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Perzeptron in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!