퍼셉트론으로 XOR 게이트를 표현할 수 없었지만(단층 퍼셉트론으로는 비선형 영역을 분리할 수 없다), 퍼셉트론의 층을 하나 더 쌓아서 XOR 을 표현할 수 있다.
1. 기존 게이트 조합하기
XOR 게이트를 만드는 방법은 다양하지만, 그중 하나는 AND, NAND, OR 게이트를 조합하는 것이다.
$x_1$ 과 $x_2$ 가 입력 신호, $y$ 가 출력 신호이다. $x_1$ 과 $x_2$ 는 NAND 와 OR 게이트의 입력이 되고, NAND 와 OR 의 출력이 AND 게이트의 입력으로 이어진다.
NAND 의 출력을 $s_1$, OR 의 출력을 $s_2$ 로 해서 진리표를 만들면 아래의 표가 나온다. $x_1$, $x_2$, $y$ 에 주목하면 XOR 의 출력과 같다.
2. XOR 게이트 구현
앞에서 조합된 XOR 게이트를 파이썬으로 구현한다.
def XOR(x1, x2):
s1 = NAND(x1,x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))
[실행 결과]
0
1
1
0
위에서 구현한 XOR 을 뉴런을 이용한 퍼셉트론으로 표현할 수 있다.
XOR 은 다층 구조의 네트워크를 가진다. 이처럼 층이 여러 개인 퍼셉트론을 다층 퍼셉트론이라고 한다.
3층으로 이루어진 퍼셉트론에서 가중치를 갖는 층을 2개이다. 0층과 1층 사이, 1층과 2층사이다. |
2층 퍼셉트론의 동작을 자세하게 설명하자면,
1. 0층의 두 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호를 보낸다.
2. 1층의 뉴런이 2층의 뉴런으로 신호를 보내고, 2층의 뉴런은 $y$ 를 출력한다.
이처럼 퍼셉트론은 층을 쌓아 더 깊게 만들어서 더 다양한 것을 표현할 수 있다.
3. 퍼셉트론 정리
1. 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.
2. 퍼셉트론에서는 '가중치' 와 '편향' 을 매개변수로 설정한다.
3. 퍼셉트론으로는 AND, OR 게이트 등의 논리 회로를 표현할 수 있다.
4. XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.
5. 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.
6. 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
7. 다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.
'Deep Learning 1 > 퍼셉트론' 카테고리의 다른 글
4. 퍼셉트론의 한계 (0) | 2020.02.06 |
---|---|
3. 퍼셉트론 구현하기 (0) | 2020.02.05 |
2. 단순한 논리 회로 (0) | 2020.02.04 |
1. 퍼셉트론이란? (0) | 2020.02.03 |