y = 0 (if w1x1 + w2x2 <= Θ), 1 (if w1x1 + w2x2 > Θ)
일반적으로 표현은 (w1, w2, Θ)로 표현한다.
ex) AND논리 게이트를 표현해 보자
def AND(x1, x2):
w1, w2, theta = 0.5, 0.5, 0.7
tmp = x1*w1 + x2*w2
if tmp <= theta:
return 0
elif tmp > theta:
return 1
해당 식에 x1, x2에 (0,0), (0,1), (1,0), (1,1) 입력값이 들어갔을 때 출력은 AND 게이트와 동일하다.
y = 0 (if w1x1 + w2x2 + b <= 0), 1 (if w1x1 + w2x2 + b> 0)
b = -Θ (b는 편향 편향으로 표현)
위의 AND 게이트 표현을 편향을 이용해서 표현해 보자
def AND(x1, x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
이런 선형적인 표현에서는 XOR과 같은 게이트를 표현할 수가 없다.
이를 해결하는 방법은 어떤게 있을까?
==> 신경망을 이용