Perceptron ist ein Algorithmus, ein alter, Sie sollten es wissen, wenn Sie maschinelles Lernen lernen.
Versuchen Sie beispielsweise, beliebte Follower zu berechnen. Nehmen wir an, dass der Index zu diesem Zeitpunkt die Anzahl der YouTube-Kanalregistrierungen und die Anzahl der Twitter-Follower ist.
Zum Beispiel
Nutzername | Anzahl der registrierten Kanäle | Beliebt(Wenn es 1 gibt) |
---|---|---|
aaa | 50 | 0 |
bbb | 10000 | 0 |
ccc | 100000 | 1 |
ddd | 90000 | 0 |
eee | 120000 | 1 |
Nutzername | tw Anzahl der Follower | Beliebt(Wenn es 1 gibt) |
---|---|---|
aaa | 100 | 0 |
bbb | 10 | 0 |
ccc | 7000 | 1 |
ddd | 150000 | 1 |
eee | 90000 | 1 |
In diesem Fall ist ◯ ccc und eee, sodass Sie sehen können, ob es an den folgenden Grenzen populär wird.
Wenn beide beliebt sind, werden wir sie als beliebt betrachten. Oben sprechen, ccc und eee werden beliebt sein.
In diesem Fall können Sie durch Erstellen einer Grenze feststellen, ob diese beliebt oder unbeliebt ist.
Um diese Unterteilung im eigentlichen Programm vorzunehmen, ist w = Gewicht, Theta = Bias (Neigungsanpassung) Stellen Sie den Wert um ungefähr so ein, dass er um 0,1 zugewiesen werden kann (◯ × in der Abbildung). Anzahl der Kanäle = w1 = 1,6 tw Anzahl der Follower = w2 = 0,11 Und lassen Sie uns den Schwellenwert von 0,1 bis 160500 einstellen Hmm, wie haben Sie diesen Wert gefunden? Es bleibt keine andere Wahl, als es angemessen zu treffen. Suchen Sie zuerst den Wert von tmp und prüfen Sie, ob es sich um 0 oder 1 handelt. Kann beurteilt werden. Stellen Sie den Schwellenwert vorübergehend ein, wenn er nicht korrekt ist Es fühlt sich an wie die Feinabstimmung von w1, w2, Theta. Diese manuelle Arbeit ist auch für Perceptron schwierig.
def AND_famous(x1,x2):
w1 = 1.6
w2 = 0.11
theta = 160500
tmp = w1*x1 + w2*x2
if tmp <= theta:
y = 0
else:
y = 1
return y
print(AND_famous(50,100))
print(AND_famous(10000,10))
print(AND_famous(100000,7000))
print(AND_famous(90000,150000))
print(AND_famous(120000,90000))
//Konsolenergebnis
0
0
1
0
1
Mit Simple Perceptron können Sie die Klassifizierung, die gruppiert werden kann, durch eine gerade Linie teilen.
Es gibt Fälle, in denen dies in den oben genannten Fällen nicht möglich ist. Was würden Sie zum Beispiel mit diesem Ergebnis machen?
Beurteilt diejenigen, die sich nur in einer Kunst auszeichnen (ohne zwei Künste) Beurteilungskriterien sind Genie (XOR), wenn beides zutrifft Referenz) https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html https://the01.jp/p0004619/
Nutzername | Testergebnis (3),4 ist normal) | Talent(Wenn es 1 gibt) |
---|---|---|
aaa | 3 | 0 |
bbb | 70 | 0 |
ccc | 92 | 1 |
ddd | 6 | 0 |
eee | 97 | 0 |
Nutzername | Wert der Malfähigkeit (bis zu 100) | Talent(Wenn es 1 gibt) |
---|---|---|
aaa | 100 | 1 |
bbb | 40 | 0 |
ccc | 98 | 1 |
ddd | 92 | 1 |
eee | 70 | 0 |
In diesem Fall ist nur einer von ihnen hervorragend Es wird aaa, ddd, eee sein. Die Figur ist wie folgt
Wenn ich mir die Abbildung oben ansehe, denke ich, dass ich nach ○ und x klassifizieren werde. Wenn Sie tatsächlich eine Gruppierungslinie zeichnen, sieht es so aus. Diesmal ist dies kein Programm, aber es ist gut daran zu denken, dass dies durch das Verbinden einfacher Perzeptrone erreicht werden kann.
Zusammenfassung, Einfaches Perceptron kann eine Linie von 0,1 mit einer geraden Linie zeichnen Mehrere Perceptrons können eine 0,1-Grenze auf einer Kurve zeichnen, aber nur diejenigen, die mit Simple Perceptrons kombiniert werden können Wird sein.
Ist es nicht möglich, alles mit Perceptron zu machen? Zum Beispiel
Die Figur ist so Diagramm mehrerer Perzeptrone
import matplotlib.pyplot as plt
#plt.plot(x3)
plt.plot(3,100,marker='o')
plt.plot(70,40,marker='x')
plt.plot(92,98,marker='x')
plt.plot(6,92,marker='o')
plt.plot(97,70,marker='o')
Recommended Posts