728x90
이번에 소개할 내용은 밑시딥 2장의 뒷부분 퍼셉트론의 한계와 다중 퍼셉트론이다.
저번 내용은 퍼셉트론의 개념, AND, NAND, OR 게이트를 설명했다.
1. 이 3가지 논리 회로를 구현할 수 있었지만 배타적 논리합이라는 XOR 게이트를 만들 경우에는 한계가 발생한다.
- XOR 게이트의 진리표
- 어느 한쪽이 1일 때만 1을 출력한다.
x1 (입력값) | x2 (입력값) | y (출력값) |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
- 이를 직선 형태의 퍼셉트론으로 구현하는 것은 불가능하다.
- 즉, 저 4개의 점을 1개의 직선만으로 구분하는 것이 불가능하다는 의미이다.
- 그렇다면 어떻게 해야 할까?
- 아래에서 알아보자
2. 선형과 비선형
- 직선 형태(선형)로 나눌 수 없다면 비선형으로 나누면 될 것이다.
이미지 출처 : https://kolikim.tistory.com/13
3. 다층 퍼셉트론 개념 및 XOR 게이트
- 또 다른 해결방법으로는 다층 퍼셉트론이 있다.
- 다층 퍼셉트론이란?
- 다층 퍼셉트론의 XOR 게이트
x1 (입력값) | x2 (입력값) | s1 (중간 신호) | s2 (중간 신호) | y (출력값) |
0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 |
4. XOR 게이트 구현
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
print(XOR(0, 0)) # 0을 출력
print(XOR(0, 1)) # 1을 출력
print(XOR(1, 0)) # 1을 출력
print(XOR(1, 1)) # 0을 출력
5. 정리
- 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.
- 퍼셉트론에서는 '가중치'와 '편향'을 매개변수로 설정한다.
- 퍼셉트론으로 AND, OR 게이트 등의 논리 회로를 표현할 수 있다.
- XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.
- 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.
- 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
- 다층 퍼셉트론은 (이론상 시그모이드 함수를 이용하면) 컴퓨터를 표현할 수 있다.
[밑시딥 2장 참조]
728x90
'Deep Learning' 카테고리의 다른 글
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 3-2 : 행렬 곱연산과 신경망 구현 (2) | 2024.02.11 |
---|---|
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 3-1 : 신경망과 활성화 함수 (1) | 2024.01.31 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 2-1 : 퍼셉트론이란? (0) | 2024.01.19 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 1-2 : 시각화 (1) | 2024.01.12 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 1-1 : 헬로 파이썬 (0) | 2024.01.01 |