퍼셉트론(Perceptron)은 여러 개의 신호를 받아 하나의 신호로 출력하는 간단한 알고리즘입니다.

예로 들어, 누군가 당신을 때릴 때 어디를 맞느냐에 따라 소리가 나올 수도 있고 나오지 않을 수도 있습니다.

맞는 부위가 여러 개라면 (여러 개의 입력 신호), "악!" 소리가 나는 것 (0:소리 안남, 1:"악!") 을 출력신호로 이해할 수 있습니다. 퍼셉트론은 이러한 개념을 기반으로 설계되며, 다음과 같은 수식으로 표현할 수 있습니다.

 

퍼셉트론의 구조

아래 그림은 퍼셉트론의 구조를 나타냅니다.

  • x1: 입력 신호
  • w1: 가중치
  • θ : 편향 (Threshold)

 

퍼셉트론의 출력 는 다음의 식으로 계산됩니다.

 

입력 신호에 가중치를 곱해 모두 더한 값이 편향 θ보다 크면 y=을 출력하고, 그렇지 않으면 y을 출력합니다.

 

 

 

퍼셉트론으로 논리 회로 구현하기

퍼셉트론을 활용하면 간단한 논리 회로를 설계할 수 있습니다.
예를 들어 AND 게이트를 구현해보겠습니다.

 

AND 게이트란?

AND 게이트는 입력 신호 x1x2모두 1일 때만 출력이 1이 되는 논리 회로입니다.
다음은 AND 게이트의 진리표입니다.

x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1

 

AND 게이트 구현

위의 퍼셉트론 식을 기반으로 가중치 w1와 편향 θ를 설정하면 AND 게이트를 구현할 수 있습니다.
예를 들어, 다음과 같은 값을 설정해봅시다.

  • w1=0.5
  • w2=0.5
  • θ=0.6

이 경우, 입력 신호를 계산해보면 다음과 같은 결과가 나옵니다:

  • w1x1 + w2x2 ≤ θ일 때 y = 0
  • w1x1 + w2x2일 때 y =

따라서 x1x2가 모두 1일 때만 출력 신호 y가 1이 되어 AND 게이트의 조건을 만족합니다.

OR/NAND 게이트도 구현 가능

마찬가지로, 가중치와 편향 값을 조정하여 OR 게이트NAND 게이트도 설계할 수 있습니다.

 

 

결론

퍼셉트론은 단순하지만 강력한 알고리즘으로, 논리 회로를 구현할 수 있는 기본적인 도구입니다.
오늘날 딥러닝의 근간이 되는 신경망 모델도 퍼셉트론의 아이디어에서 시작되었다고 볼 수 있습니다.

 직장에서 업무를 진행하던 중, 우연찮은 기회가 닿아 머신러닝/딥러닝 관련 TFT에 들어가게 되었다. 평소 관심은 있었지만 깊이 있는 공부가 부족했고 대화하는데 자꾸 귀에서 걸리는 단어들이 많아 이참에 하나씩 정리를 해보려 한다. 

 

 첫 번째로 정리해볼 단어는 Precision, Recall 그리고 Accuracy이다. 흔히 말하는 머신러닝/딥러닝 모델 활용 시 평가를 위해 사용하는 단어로 Pattern recognition이나 Classification에서 사용된다.

 본격적으로 Precision, Recall 그리고 Accuracy에 대해 이해하기 전에 간단한 예시를 들고 가려고 한다. 동전의 앞면과 뒷면을 구분하는 인공지능 모델이 있다고 할 때, 인공지능 모델이 내놓은 답에 대해서 총 4가지로 구분 지을 수 있다.

 

- 첫번째 : 실제 앞면인데 인공지능도 앞면(Positive)이라고 답했을 때 = True Positive

- 두번째 : 실제 뒷면인데 인공지능은 앞면(Positive)이라고 답했을 때 = False Positive

- 세번째 : 실제 앞면인데 인공지능은 뒷면(Negative)이라고 답했을 때 = False Negative

- 네번째 : 실제 뒷면인데 인공지능도 뒷면(Negative)이라고 답했을 때 = True Negative

 

※ 실제 값(Ground True)과 모델의 결과값이 일치하면 True, 불일치하면 False
※ 모델의 결과값이 긍정이면 Positive, 부정이면 Negative로 이해하면 좀 더 편할 것이다.

 

 

 

1) Precision(정확성)


 그렇다면 위의 TP/FP/FN/TN에서 Precision은 어떤 부분에 해당할까?

의미로 보면 모델이 앞면이라고 답한 것들 중에서 실제 앞면인 경우의 비율이다.

즉, Positive로 답한 것 중 실제 True Positive의 비율

 

                  TP (긍정 중에서 실제 정답)

Precision = -------

               TP+FP (긍정으로 답한 모든 것)

 

Precision이 높을수록 모델이 갖는 정확성은 높으나, 해당 모델이 놓친 부분 (Negative)에서도 실제 앞면이 많을 경우 좋은 모델이라 표현하기 어렵다. 따라서 Recall이라는 항목도 함께 살펴보아야 한다.

 

 

 

2) Recall(재현율)


 Recall의 의미는 실제 앞면 중에서 모델이 앞면이라고 예측한 경우의 비율이다. 

즉, True 중에서 모델의 True Positive의 비율

 

              TP (긍정 중에서 실제 정답)

Recall = -------

            TP+FN (실제 정답=Ground Truth)

 

따라서, 대부분의 분류 모델에서는 모델의 성능을 측정하기 위해 Precision과 Recall을 지표로 사용한다. 

 

 

 

3) Accuracy


 Accuracy는 주어진 모든 데이터에서(모든 앞면과 뒷면) 모델이 앞면, 뒷면임을 맞춘 것(=TP+TN)의 비율이다.

 

                TP+TN (모델이 실제로 맞춘 모든 데이터)

Accuracy = -------

                TP+FN+FP+TN (모든 데이터)

 

이는 Precision과 Recall 모두 TP에 대해 다루는 한계에 비해 Accuracy에서는 TN( 뒷면을 뒷면이라고 예측)에 대한 부분까지 고려하게 됩니다. 

 

 

 

 

*Reference

- 나무 위키(Precision & Recall) https://en.wikipedia.org/wiki/Precision_and_recall

 

 

부족한 글 읽어주셔서 감사합니다.

 

 

+ Recent posts