데이터로그😎
[MLP] 02. 단층(SLP), 다층 퍼셉트론 (MLP) 본문
퍼셉트론의 개념에 대한 글은 아래 링크에서 확인 가능합니다.
단층 퍼셉트론이란 (SLP, Single Layer Perceptron)
- 단층 퍼셉트론은 "값을 보내고" "값을 받는" 두 단계로만 이루어져 있습니다.
- 즉, 입력층(input layer)와 출력층(output layer)로만 이루어져 있습니다.
- 단층 퍼셉트론에서 구현 가능한 게이트는 총 3가지입니다.
- 구현 가능한 게이트: AND, NAND, OR
- 구현 불가능한 게이트: XOR
① AND
- 입력이 모두 참(1)일 때에만 참(1)을 출력하는 논리 게이트
-
A입력 B입력 출력 0 0 0 0 1 0 1 0 0 1 1 1 -
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 >> AND(0,0) = 0 >> AND(0,1) = 0 >> AND(1,0) = 0 >> AND(1,1) = 1
② NAND
- "NOT AND"의 약어입니다. 이는 두 입력이 모두 참(1)일 때에만 거짓(0)을 출력하는 논리 연산을 수행합니다.
- NOT AND : AND와 w,b의 부호를 반대로 설정
-
A입력 B입력 출력 0 0 1 0 1 1 1 0 1 1 1 0
③ OR
- 입력 중 하나 이상이 참(1)이면 참(1)을 출력하는 논리 게이트
- b를 적절히 조절해서 구함
-
A입력 B입력 출력 0 0 0 0 1 1 1 0 1 1 1 1
단층 퍼셉트론의 문제점❓
- 단층 퍼셉트론은 선형 문제만 풀 수 있기 때문에, XOR문제와 같이비선형적인결정 경계가 필요한 문제는 단층 퍼셉트론으로는 풀 수 없다. .
- 선형 문제란?
- 클래스를 나눌 수 있는 문제
- 예를 들어,두 개의 클래스를 나누는 결정 경계가 직선인 경우가 해당됨.
- 1차 방정식.
- XOR
- XOR (배타적 논리합)은 비선형 문제.
- 두 입력 비트가 같으면 0을 출력하고, 다르면 1을 출력하는 논리 함수.
A입력 B입력 출력 1 1 0 0 1 1 1 0 1 0 0 0 - 아래 그림처럼 XOR는 비선형적 그래프가 그려진다. OR는 직선 하나로 TRUE, FALSE의 구분이 가능하지만, XOR는 직선 하나로 구분, 해결하기가 어렵다. 따라서, 비선형으로 구분해야 한다.
- 즉, 곡선으로 또는 직선을 여러개 그어서 TRUE, FALSE값을 구분해야 한다.
- 직선을 여러개 그어보자! 라는 개념이 바로 "퍼셉트론을 여러개 조합해보자" 라는 것이다. 이는 Multi Layer Perceptron인 MLP를 의미한다.
다층 퍼셉트론이란 , MLP(Multi-Layer Perceptrone)
- XOR게이트는 기존의 AND, NAND, OR를 조합해서 만듦(층을 더 쌓는것)
- 입력, 출력층만 갖고 있는 단층 퍼셉트론과는 달리 은닉층(hidden layer) 존재.
- x1, x2가 NAND에 들어간 결과물 S1
- x1, x2가 OR에 들어간 결과물 S2
- 이 결과물 S1, S2을 AND에 다시 넣으면 y가 나옴
'딥러닝' 카테고리의 다른 글
[DNN] DNN 설계 단계 - ② 손실함수, ③ 최적화 (1) | 2023.12.02 |
---|---|
[DNN] 02. DNN 설계 단계 - ① 레이어 설계 (0) | 2023.11.28 |
[DNN] 01. DNN 기본 용어 (0) | 2023.11.28 |
[MLP] 03. 활성화 함수 (Activation Function) (2) | 2023.11.28 |
[MLP] 01. 퍼셉트론의 개념 (0) | 2023.11.28 |