function AND(x1, x2)
x = [x1, x2]
w = [0.5, 0.5]
b = -0.7
tmp = x ⋅ w + b
if tmp <= 0
0
else
1
end
end
AND (generic function with 1 method)
for x2=0:1, x1=0:1
println(x1, x2, AND(x1, x2))
end
000 100 010 111
function NAND(x1, x2)
x = [x1, x2]
w = [-0.5, -0.5]
b = 0.7
tmp = x ⋅ w + b
if tmp <= 0
0
else
1
end
end
NAND (generic function with 1 method)
function OR(x1, x2)
x = [x1, x2]
w = [0.5, 0.5]
b = -0.2
tmp = x ⋅ w + b
if tmp <= 0
0
else
1
end
end
OR (generic function with 1 method)
for x2=0:1, x1=0:1
println(x1, x2, NAND(x1, x2))
end
001 101 011 110
for x2=0:1, x1=0:1
println(x1, x2, OR(x1, x2))
end
000 101 011 111
function XOR(x1, x2)
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
AND(s1, s2)
end
XOR (generic function with 1 method)
for x2=0:1, x1=0:1
println(x1, x2, XOR(x1, x2))
end
000 101 011 110
function XOR2(x1, x2)
W = [-0.5 -0.5; 0.5 0.5]
B = [0.7, -0.2]
X = [x1, x2]
a = W * X + B
Y = a .> 0
AND(Y...)
end
XOR2 (generic function with 1 method)
for x2=0:1, x1=0:1
println(x1, x2, XOR2(x1, x2))
end
000 101 011 110