본문 바로가기
코딩/데이터 분석 이론 & 응용

[8] Deep Learning - Perceptron

반응형

[8] Deep Learning - Perceptron

 

 

Perceptron

 

Perceptron은 가장 간단한 인공 신경망의 일종으로 TLU를 기반으로 구성된다.

 

 

Perceptron - TLU ( Threshold logic unit )

 

 

 

TLU는 위의 그림과 같이 입력에 대해 가중치를 적용한 후 , 이를 모두 더해 계단 함수 ( step function )에 적용한다. 사용되는 계단 함수의 대표적인 예시는 Heavyside와 sign function 이 있다.

 

 

Heavyside step function - h(z)

  • z >= 0 일 때 , 1
  • z  < 0 일 때 , 0

 

sign function - s(z)

  • z < 0 일 때 , -1
  • z = 0 일 때 , 0
  • z > 0 일 떄 , 1

 

 

기본적인 Perceptron은 층이 하나뿐이고 이는 TLU로 구성된다. 이 TLU는 모든 입력에 대해 연결되어 있는 Fully connected 구조를 가진다. 입력층의 경우 , 입력 이외에도 bias 뉴런이 추가되기도 한다. bias 뉴런은 입력층에서 언제나 1을 출력하는 형태로 구성된다. 따라서 출력에 대한 식은 다음과 같이 나온다.

 

 

 

 

X는 입력에 대한 행렬이고 , W는 weight 행렬이다. b는 bias 벡터이며 이는 bias 뉴런과 TLU 층의 전체 뉴런 사이의 weight를 포함한다. Φ의 경우 activation function을 의미한다. 이 경우 activation function은 step function이 될 것이다.

Perceptron은 오차가 감소되는 방향으로 학습을 진행하며, 각 샘플 입력에 대한 예측이 잘못되었다면 올바른 예측을 할 수 있도록 연결된 weight를 강화하는 방향으로 학습이 이루어진다.

 

 

Perceptron의 경우 선형 관계를 계속 유지하기 떄문에 , 부드러운 곡선 경계나 함수를 학습하지 못한다. 하지만 Train set이 선형적으로 구분된다면 , 퍼셉트론 수렴 이론 ( Perceptron Convergence theorem )에 따라 정답에 수렴한다.

 

 

이러한 Perceptron은 선형 관계가 유지되었기 떄문에 단순한 XOR 문제도 풀 수 없었다. XOR 문제에 관한 내용은 아래 글에 나와있다.

 

 

[6] Deep Learning - Neural Network (tistory.com)

 

[6] Deep Learning - Neural Network

[6] Deep Learning - Neural Network Neural Network Neural Network의 역사는 과거부터 시작되었다. 사람의 뇌를 본뜨고자 하는 아이디어가 제시되었고 , 뉴런을 만들어 뇌의 구조를 흉내 내고자 하였다. 뉴런..

ddggblog.tistory.com

 

 

XOR 문제

 

 

선형 경계를 가지고는 XOR 문제를 풀 수 없기 떄문에 Perceptron은 위 문제를 해결하지 못한다. 이에 대해 Perceptron을 여러 겹 쌓아 올리자는 아이디어가 제시되었고 이를 다층 퍼셉트론 ( Multi-Layer Perceptron ) MLP라고 한다. 

 

 

 

다층 퍼셉트론 ( Multi-Layer Perceptron ) MLP

 

 

MLP는 위와 같은 구조로 구성된다. 위의 그림에서 layer 사이의 화살표는 층과 층 사이 뉴런의 Fully connected를 의미한다. MLP는 위 그림과 같이 1개의 input layer , 1개 이상의 hidden layer , 1개의 output layer로 이루어진다. output layer를 제외하고 모든 layer는 bias 뉴런을 포함한다.

 

 

위의 그림에서 hidden layer를 여러겹 쌓아 올린 경우를 DNN ( Deep Neural Network )라고 한다. 이 MLP를 훈련하는 방법으로는 역전파 ( backpropagation ) 방법이 있다. backpropagation에 대한 내용은 아래 글에 나와있다.

 

 

[6] Deep Learning - Neural Network (tistory.com)

 

[6] Deep Learning - Neural Network

[6] Deep Learning - Neural Network Neural Network Neural Network의 역사는 과거부터 시작되었다. 사람의 뇌를 본뜨고자 하는 아이디어가 제시되었고 , 뉴런을 만들어 뇌의 구조를 흉내 내고자 하였다. 뉴런..

ddggblog.tistory.com

 

 

이러한 backpropagation은 다양한 activation function과 함께 사용된다. 예시로 하이퍼볼릭 탄젠트 함수와 ReLU가 있다.

 

 

MLP는 회귀 문제에도 사용할 수 있다. 문제 정의에 따라 output 뉴런의 수를 정하기만 하면 회귀 문제도 MLP를 통해 해결할 수 있다. 이러한 경우 output layer에 activation function을 사용하지 않기도 한다. 혹은 출력 경우에 따라 ReLU , softplus 같은 activation function을 사용한다. loss function의 경우 일반적으로 MSE 혹은 Huber 손실을 사용한다.

 

분류 문제의 경우 최종적인 output을 통해 분류해야 하므로 , 마지막 output layer의 activation function으로 softmax 함수를 사용할 수 있다. 또한 loss function의 경우 , 확률에 관해 사용하기 때문에 일반적으로 Log 손실 함수를 사용한다.

 

 

 

 

관련 코드

 

 

ref. "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition"

 

 

 

 

반응형