본문 바로가기

프로그래밍 일반/딥러닝

[딥러닝] 01. 딥러닝 기초이론-MLP

딥러닝에서 배워야 할 기본적인 개념은
Perception MLP
Weight Initialization
Forward Propagation
Cost Function
Back Propagation
Optimizer

와 같고, 여기서는 Perceptron과 Weight Initialization에서 배울 것이다.

 

1. Perception MLP 
MLP모델이란? Multi Layer Perceptron의 약자이다. Perceptron은 네트워크 층으로써 하나의 뉴런같은 층을 의미한다.
A에서 배운 결과를 B에다가 넘겨주는 뉴런과 같은 모양으로 학습을 한다.

뉴런의 자극의 모양을 본 딴 것이다

 

뉴런의 값이 다음 뉴런에게 전달하듯이 Peceptron이 받은 값은 다음 값으로 전달하는 층을  형성하는데 이것을 MLP(Multi Layer Perceptron)이라고 한다.

 

검은 점 하나가 하나의 Perceptron이다

 

 

2. Weight Initialization

Input 값으로 들어온 x1은 하나의 Perceptron을 통과할 때에 Weight란 가중치를 갖고 인공 신경을 통과하게 된다. 이 인공신경은 뉴런이 0과 1을 전달하듯 하나의 함수의 모형으로 0혹은 1의 값을 출력한다. 이를 식으로 표현하면 아래와 같다. 여기서 하나의 Input값에 Weight를 주는데, 이 값을 처음에 컴퓨터가 정해주고, 이것을 Weight Initialization이라고 한다. 이 값은 사람이 조정하지 않고 컴퓨터가 초기값을 설정한 뒤에 스스로 조정한다.

인풋값 x에 무게 weight를 더한 뒤에 Activation함수 f(x)에 넣으면 값이 나온다.

 

인공신경망인 f(x)는 하나의 Perceptron이 되며, f∑wnxn + b로 표현한다. 하나의 Perceptron은 결국에 1이냐 0이냐 2가지 값을 갖는데, 이것을 Linear Binary Classifier라고 한다. 수식에서도 Function에서 Cepter이상이면 1로 내뱉는데, 이 개념은 역치와 같다. 특정 값 이상이 되면 무조건 1이 되고, 특정 값 이하면 무조건 0이 된다.

 

위와 같은 식은 1차원 식과 같아서 아래 도표와 같이 하나의 선을 기준으로 참과 거짓의 값을 갖게 된다.

 

이 일차원 Perceptron은 XOR Gate에서 문제를 일으킨다. 아래의 도표와 같이 참, 거짓을 판별할 수가 없게 된다.

 

 

그래서 등장한 것이 MLP이다. 하나의 값에 대해 가중치를 두고 여러개의 층을 두면, 0과 1을 판별할 수 있게 된다.

 

이렇게 생긴 하나의 Perceptron이 층층이 모이게 된 것이 처음 도표에서 본 MLP가 되는 것이다. 하나의 Perceptron이 다음 Perceptron에게 가중치를 통해 참, 거짓의 1과 0의 값을 넘겨주면, 다음 Layer도 똑같은 가중치를 통해 참, 거짓을 다음 Layer에게 넘겨주게 된다. 그렇게 가중치를 조정해 가는 것이 인간의 뉴런의 활동이며, 딥러닝의 핵심이 된다.