-
Notifications
You must be signed in to change notification settings - Fork 0
/
2. Perceptron.js
95 lines (74 loc) · 1.57 KB
/
2. Perceptron.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var uArray = [
[0.0,0.0,0.0,0.0,0.0,
0.0,1.0,1.0,0.0,0.0,
0.0,0.0,1.0,0.0,0.0,
0.0,0.0,1.0,0.0,0.0,
0.0,0.0,1.0,0.0,0.0,1.0], //U1
[0.0,0.0,1.0,1.0,0.0,
0.0,0.0,0.0,1.0,0.0,
0.0,0.0,0.0,1.0,0.0,
0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,1.0], //U2
[0.0,0.0,0.0,0.0,0.0,
1.0,1.0,0.0,0.0,0.0,
0.0,1.0,0.0,0.0,0.0,
0.0,1.0,0.0,0.0,0.0,
0.0,1.0,0.0,0.0,0.0,1.0], //U3
[0.0,0.0,0.0,0.0,0.0,
0.0,1.0,1.0,1.0,0.0,
0.0,1.0,0.0,1.0,0.0,
0.0,1.0,1.0,1.0,0.0,
0.0,0.0,0.0,0.0,0.0,1.0], //U4
[0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,
1.0,1.0,1.0,0.0,0.0,
1.0,0.0,1.0,0.0,0.0,
1.0,1.0,1.0,0.0,0.0,1.0] //U5
];
function scalarSum(w,u){
var output = 0.0
for (var i=0; i<26; i++) {
output += w[i] * u[i]
}
if (output >= 0)
return 1.0;
else
return 0.0;
}
//start
var t = 0
var counter = 0
//Nauczyciel
var zt
//stala
var c = 1.0
var w = [0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0]
//result of function for loop
var scalarResult
while(counter<5){
if (t%5 <= 2) {
zt = 1.0;
} else {
zt = 0.0;
}
scalarResult = scalarSum(w, uArray[t%5])
for (var i = 0; i<26; i++) {
w[i] = w[i] + c * (zt - scalarResult) * uArray[t%5][i];
}
t++;
if (scalarResult == zt) {
counter += 1.0;
} else {
counter = 0.0;
}
}
var result = String(w[0])
for(var i=1; i< 26; i++){
result = result + ", " + String(w[i])
}
console.log("t: "+t);
console.log("[ "+result+" ]");