퍼셉트론(perceptron)의 개념과 논리게이트 구현
1. 퍼셉트론이란?
퍼셉트론(Perceptron) : 다수의 신호를 받아 하나의 신호(0 또는 1)로 출력하는것을 말한다.
위의 원은 뉴런(neuron) 혹은 노드(node)라 하고 $w_1, w_2$를 가중치라 한다.
입력 신호가 뉴런에 보내지면 가중치를 곱하여 이 총합이 특정한 임계값(threshold value)보다 클때만 1을 출력하게 된다.
이를 수식으로 나타내면 다음과 같다.
위 식을 보면 가중치가 클수록 그 임력 신호의 영향력이 커지므로 결과값에 중요한 영향일수록 가중치가 커짐을 알 수 있다.
2. 퍼셉트론 구현(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
이를 실행시켜 확인해보면 다음과 같다.
>>> AND(0, 0)
0
>>> AND(1, 0)
0
>>> AND(0, 1)
0
>>> AND(1, 1)
1
이때 임계값 $\theta$를 $-b$로 치환하여 생각할 수도 있다.
식을 수정하면 다음과 같다.
$$y = \begin{cases} 0 & \left( x_1w_1 + x_2w_2 + b \le 0 \right) \\ 1 & \left( x_1w_1 + x_2w_2 + b > 0 \right) \end{cases}$$
여기서 $b$를 편향(bias)라 한다.
수식을 해석하자면 입력 신호와 가중치의 곱의 총합에 편향을 더한 값이 0보다 클 경우에만 1을 출력한다.
이 편향을 입력으로 생각하여 처리 과정을 그림으로 나타내면 다음과 같다.
3. 선형 영역과 비선형 영역
빨간색 점은 0을 출력하고 초록색 점은 1을 출력한다.
$w_1, w_2, b = 0.5, 0.5, -0.7$로 설정하였다.
위와 같이 선형으로 영역이 구분된 경우 선형영역, 곡선으로 구분된 경우 비선형 영역이라 한다.
비선형의 예시로는 XOR 게이트가 있다.
위의 경우에는 선형으로 구분이 불가능하므로 다층 퍼셉트론 개념을 이용하여 곡선으로 구분하여야 한다.
Comments
Post a Comment