Perceptron est un algorithme, ancien, Vous devez le savoir lorsque vous apprenez le machine learning.
Par exemple, essayez de calculer les abonnés populaires. Supposons que l'indice à ce moment-là soit le nombre d'inscriptions aux chaînes YouTube et le nombre d'abonnés Twitter.
Par exemple
Nom d'utilisateur | Nombre de chaînes enregistrées | Populaire(S'il y a 1) |
---|---|---|
aaa | 50 | 0 |
bbb | 10000 | 0 |
ccc | 100000 | 1 |
ddd | 90000 | 0 |
eee | 120000 | 1 |
Nom d'utilisateur | tw Nombre d'abonnés | Populaire(S'il y a 1) |
---|---|---|
aaa | 100 | 0 |
bbb | 10 | 0 |
ccc | 7000 | 1 |
ddd | 150000 | 1 |
eee | 90000 | 1 |
Dans ce cas, puisque ◯ est ccc et eee, vous pourrez voir s'il deviendra populaire aux limites suivantes.
Si les deux sont populaires, nous les considérerons comme populaires. Parlant ci-dessus, ccc et eee seront populaires.
Dans ce cas, en créant une limite, vous pouvez dire si elle est populaire ou impopulaire.
Pour effectuer cette division dans le programme réel, w = poids, thêta = biais (ajustement de l'inclinaison) Ajustez d'environ la valeur pour qu'elle puisse être allouée par 0,1 (◯ × sur la figure) Nombre de canaux = w1 = 1,6 tw Nombre d'adeptes = w2 = 0,11 Et définissons le seuil de 0,1 à 160500 Hmm, comment avez-vous trouvé cette valeur? Il n'y a pas d'autre choix que de le frapper de manière appropriée. Tout d'abord, trouvez la valeur de tmp et voyez si elle vaut 0 ou 1. Peut être jugé. Définir temporairement le seuil, s'il n'est pas correct Cela ressemble à un réglage fin de w1, w2, thêta. Ce travail manuel est également difficile pour Perceptron.
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))
//résultat de la console
0
0
1
0
1
Avec Simple Perceptron, vous pouvez diviser la classification qui peut être regroupée par une ligne droite.
Il y a des cas où cela ne peut être fait dans les cas ci-dessus. Par exemple, que feriez-vous avec ce résultat?
Juge ceux qui excellent dans un seul art (sans compter deux arts) Les critères de jugement seront géniaux (XOR) si l'un ou l'autre est vrai référence) https://wwws.kobe-c.ac.jp/deguchi/sc180/logic/gate.html https://the01.jp/p0004619/
Nom d'utilisateur | Résultat du test (3),4 est normal) | Talent(S'il y a 1) |
---|---|---|
aaa | 3 | 0 |
bbb | 70 | 0 |
ccc | 92 | 1 |
ddd | 6 | 0 |
eee | 97 | 0 |
Nom d'utilisateur | Valeur de la capacité de peinture (jusqu'à 100) | Talent(S'il y a 1) |
---|---|---|
aaa | 100 | 1 |
bbb | 40 | 0 |
ccc | 98 | 1 |
ddd | 92 | 1 |
eee | 70 | 0 |
Dans ce cas, un seul d'entre eux excelle Ce sera aaa, ddd, eee. La figure est la suivante
En regardant la figure ci-dessus, je pense que je vais classer par ○ et x. Lorsque vous tracez une ligne de regroupement, cela ressemble à ceci. Ce n'est pas un programme cette fois, mais il est bon de se rappeler que cela peut être réalisé en concaténant de simples perceptrons.
Résumé, Simple Perceptron peut tracer une ligne de 0,1 avec une ligne droite Plusieurs Perceptrons peuvent tracer une frontière 0,1 sur une courbe, mais seulement ceux qui peuvent être combinés avec des Perceptrons simples Sera.
Alors, n'est-il pas possible de tout faire avec Perceptron? Par exemple
La figure est comme ça Schéma de plusieurs perceptrons
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