본문 바로가기
Data Analysis/DL

[DL] 다층 퍼셉트론, MLP

by dataYANG 2022. 9. 25.
728x90

다층 퍼셉트론(MLP, MultiLayer Perceptron)

 

 (단층) 퍼셉트론에서는 XOR 게이트를 해결하지 못했습니다. 하지만 퍼셉트론에 층을 쌓아 올린 '다층 퍼셉트론'을 통해 XOR 게이트의 문제를 해결할 수 있습니다. 즉, 은닉층을 추가하면 비선형적인 문제를 풀 수 있습니다.

 

XOR 게이트를 만들려면 AND, NAND 그리고 OR 게이트를 조합하여 만들 수 있습니다.

 

3개의 게이트를 조합해 구현한 XOR 게이트

 

 

 위 출력을 진리표로 표현하면 다음과 같이 나타납니다.

 

XOR 게이트 진리표
XOR 게이트 진리표

 진리표를 확인하면 NAND, OR 그리고 AND 의 조합을 통해 XOR를 표현 가능하다는 것을 볼 수 있습니다. 단지 입력층과 출력층 사이에 은닉층을 하나 추가하였을 뿐인데 말이지요. 따라서 퍼셉트론에 층을 거듭 쌓으면 비선형적인 표현이 가능해진다!

 

간단하게 파이썬으로  XOR게이트 구현하기

def XOR(x1,x2):
	s1=NAND(x1,x2)
	s2=OR(x1,x2)
	y=AND(s1,s2)
	return y

 

 

 다층 퍼셉트론은 지금까지 본 회로보다 복잡한 회로를 만들수있습니다. 실제로 컴퓨터 내부에서 이루어지는 처리가 NAND게이트의 조합만으로도 컴퓨터가 수행하는 일을 재현할 수 있다고도 합니다. NAND로 테트리스가 작동하는 컴퓨터를 만든다고도 하는데요. 단순한 이 회로가 층이 깊어지면 복잡한 시스템을 만들 수도 있다는 사실!

 

 하지만 다층 퍼셉트론에서도 문제가 생겼습니다. 기울기 손실(Vanishing Gradient)와 과적합(Overfitting)이 문제입니다. 은닉층이 많을수록 데이터를 표현이 더 많아지니 학습이 더 잘 될 것 같지만, 그 반대입니다. 기울기 손실이 일어나기 때문인데요. 이는 역전파과정에서 출력층에서 멀어질수록 기울기가 매우 작아지기 때문입니다.(활성화 함수 기울기)

 또한, 퍼셉트론에서는 가중치를 설정하려면 여전히 사람이 설정을 해줘야합니다. 이를 해결하기 위해 나온 자동으로 학습하는 능력이 있는 신경망, 이는 다음에 자세히 알아보도록 하겠습니다.

728x90

'Data Analysis > DL' 카테고리의 다른 글

[DL] 퍼셉트론 Perceptron, TLU  (0) 2022.09.19
[DL] 딥러닝(Deep Learning)이란?  (0) 2022.08.25

댓글