<- function(x1, x2) {
AND <- c(x1, x2)
x <- c(0.5, 0.5)
w <- -0.7
b <- sum(w * x) + b
tmp
if (tmp <= 0) 0 else 1
}
2章 パーセプトロン
パーセプトロンの実装
ANDゲートの実装
AND(0, 0)
[1] 0
AND(0, 1)
[1] 0
AND(1, 0)
[1] 0
AND(1, 1)
[1] 1
ゲートを作る補助関数
<- function(w, b) {
make_gate function(x1, x2) {
<- c(x1, x2)
x <- sum(w * x) + b
tmp
if (tmp <= 0) 0 else 1
} }
NANDゲートの実装
<- make_gate(w = c(-0.5, -0.5), b = 0.7) NAND
NAND(0, 0)
[1] 1
NAND(0, 1)
[1] 1
NAND(1, 0)
[1] 1
NAND(1, 1)
[1] 0
ORゲートの実装
<- make_gate(w = c(0.5, 0.5), b = -0.2) OR
OR(0, 0)
[1] 0
OR(0, 1)
[1] 1
OR(1, 0)
[1] 1
OR(1, 1)
[1] 1
多層パーセプトロン
XOR ゲートの実装
<- function(x1, x2) {
XOR <- NAND(x1, x2)
s1 <- OR(x1, x2)
s2 AND(s1, s2)
}
XOR(0, 0)
[1] 0
XOR(0, 1)
[1] 1
XOR(1, 0)
[1] 1
XOR(1, 1)
[1] 0