Hello COCOBALL!

[DL] 퍼셉트론(perceptron) 본문

Deep Learning

[DL] 퍼셉트론(perceptron)

coco_ball 2024. 6. 22. 01:46

퍼셉트론이란?

퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 초기 형태의 인공 신경망으로, 다수의 입력(input)으로부터 하나의 결과(output)을 내보내는 알고리즘이다.

가장 기본적인 형태의 인공 신경망 모델이자 단일 계층 신경망으로, 이진 분류(binary classification) 문제를 해결하는 데 사용된다. 아래 그림은 OR 게이트의 출력값을 녹색 직선을 기준으로 두 개의 클래스로 구분한 예시이며, 이러한 구분의 기준(녹색 직선)을 Decision Boundary라고 한다.

 

동작 과정

그림과 같이 여러개의 입력값 x1, x2를 받고, 입력값마다 가중치(weight)를 곱한다. 가중치가 클수록 해당 입력값이 중요하다는 것을 의미한다. 입력값 x 외에도 편향(bias)은 딥러닝 모델 최적화의 중요 변수 중 하나이다.

 

각 입력값과 가중치의 곱의 전체 합이 임계값( θ , threshold)를 넘어가면 1을 출력하고, 그렇지 않은 경우에는 0을 출력한다. 출력값 1은 '뉴런이 활성화한다'라고 표현하기도 한다.

1 혹은 0을 출력하는 함수를 계단 함수(step function)라 하고, 퍼셉트론은 활성화 함수(activation function)로 계단함수를 사용한다.

 

식으로 표현하면 아래와 같다.

θ를 좌변으로 넘기고 - θ를 편향으로 표현할 수 있으며, 편향 또한 입력으로 사용된다.

가중합의 크기를 임계값과 비교하고 출력값을 최종 결정하는시키는 함수를 활성화 함수라고 한다. 가중합의 크기는 편향의 크기로 조절할 수 있기 때문에 편향은 출력값을 결정하는 역할을 하는 중요한 변수이다.

 

퍼셉트론의 종류

 

단층 퍼셉트론(Single-Layer Perceptron)

위 그림과 같이 입력층과 출력층으로만 구성되어 있고, 은닉층이 없는 경우 단층 퍼셉트론이라고 한다. 단층 퍼셉트론은 AND, NAND, OR 게이트의 구현은 가능하지만 XOR 게이트는 구현할 수 없다. 단층 퍼셉트론은 입력에 따른 출력값을 구분하는 직선을 1개밖에 그릴 수 없기 때문이다.

AND, NAND, OR 게이트는 그림과 같이 하나의 직선으로 구분지을 수 있지만, XOR 게이트는 빨간색과 파란색을 하나의 직선으로 구분하는 것이 불가능하기 때문에 단층 퍼셉트론으로 구현하는 것이 불가능하다. 이에 대한 해법은 다층 퍼셉트론의 사용이다.

 

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

XOR 게이트는 기존의 게이트들의 조합으로 만들 수 있다. 두 개의 입력값을 NAND, OR 게이트의 입력으로 받고 AND 게이트를 거친다면 XOR을 표현하는 것이 가능하다. 다시 말하자면, 입력층과 출력층 사이에 은닉층(hidden layer)을 한 층 추가하여 만드는 것이 가능하다. 단층 퍼셉트론과 다층 퍼셉트론의 차이점은, 단층 퍼셉트론은 입력층과 출력층만 존재하지만 다층 퍼셉트론은 중간에 은닉층이 더 추가되었다는 점이다. XOR 게이트의 경우에는 은닉층을 1개만 추가하여 구현할 수 있지만, 더욱 복잡한 문제에 대응하기 위해 다층 퍼셉트론은 일반적으로 2개 이상의 은닉층을 추가한다. 이렇게 2개 이상의 은닉층을 가진 다층 퍼셉트론을 심층신경망(Deep Neural Network, DNN)이라 한다. 흔히 아는 딥러닝은 이러한 심층신경망을 학습하는 것을 의미한다.