Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today
Yesterday

Total
04-29 05:43
관리 메뉴

Hey Tech

[Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차 본문

AI & 빅데이터/머신러닝·딥러닝

[Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차

Tony Park 2022. 3. 22. 10:46
728x90
반응형

본 포스팅에서는 퍼셉트론(Perceptron) 학습(train)의 의미와 절차에 대해 알아봅니다.

📚 목차

1. 퍼셉트론의 개념
2. 퍼셉트론 학습의 의미
3. 퍼셉트론 학습 방법
4. 퍼셉트론 학습 절차

1. 퍼셉트론의 개념

퍼셉트론의 학습 절차를 알아보기 전에 퍼셉트론 개념에 대해 알아봅니다. 퍼셉트론은 이진 분류(Binary Classification) 모델을 학습하기 위한 지도학습(Supervised Learning) 기반의 알고리즘입니다. 이진분류란 예를 들어 인공지능(AI)에게 무작위로 동물 사진을 보여주었을 때 고양이 사진인지, 강아지 사진인지 분류하는 문제입니다. 여기서 고양이, 강아지와 같은 선택지를 클래스(Class)라고 부르고 선택지가 2개인 경우를 이진 분류라고 합니다. 수학적인 측면에서, 이진 분류는 아래 그림 1과 같이, 푸른색과 녹색 동그라미 2가지 클래스를 특정 기준 하에 구분하는 방법입니다. 그림 1에서는 두 클래스를 구분하는 기준은 붉은 직선이고, 이러한 기준(i.e., 여기선 직선)을 Decision Boundary라고 부릅니다.

그림 1. 이진 분류 문제

퍼셉트론 개념에 대한 자세한 내용은 이곳을 참고해 주세요.

2. 퍼셉트론 학습의 의미

퍼셉트론은 이진분류 모델의 학습 알고리즘입니다. 즉, 퍼셉트론의 학습은 2가지 클래스를 잘 구분할 수 있는 기준 선을 찾아가는 과정을 말합니다. 이 과정에서 퍼셉트론은 지도학습 기반으로 데이터를 학습합니다. 지도학습이란 데이터(=feature)와 정답(=label)을 모두 활용하여 학습하는 방식입니다. 예를 들어, 강아지와 고양이 사진을 분류하는 모델을 학습할 때 사진을 보여주며 동물 이름까지 함께 알려주는 경우를 말합니다. 동물 이름은 알려주지 않고 동물 사진만 보여주는 경우를 비지도 학습(Unsupervised Learning)이라고 합니다.

3. 퍼셉트론 학습 방법

퍼셉트론 학습 방법을 알아보겠습니다. 단층 퍼셉트론의 입출력은 아래의 그림 2와 같이 도식화할 수 있으며, 자세한 설명은 이곳을 참고해 주세요.

그림 2. 단층 퍼셉트론의 입출력 도식화

\(x\)는 입력값, \(b\)는 편향, \(w\)는 가중치, \(y\)는 출력값입니다. 출력값 \(y\)를 수식화하면 다음과 같이 나타낼 수 있습니다.

$$ y = \sum_{i}^{n}(x_i*w_i)+b$$

여기서 입력값 \(x\) 자체는 변경하지 않고 2가지 클래스를 잘 분류하는 기준선을 찾는 방법은 크게 2가지가 있습니다.

1) 편향(\(b\)) 조정

첫 번째 방법은 상수값 편향(\(b\))을 조정하는 것입니다. 편향은 직선의 절편을 의미하기 때문에, 편향 값을 조정함으로써 직선 자체를 이동시킬 수 있습니다.

2) 가중치(\(w\)) 조정

두 번째 방법은 가중치(\(w\))를 조정하는 것입니다. 가중치를 쉽게 생각해서 직선의 기울기라 생각하시면 됩니다. 조정한 가중치는 아래와 같은 수식에 따라 산출됩니다.

$$ w_{t+1} = w_t + \eta(y-\tilde{y})x $$

변수별 의미는 다음과 같습니다.

(1) \(t\): Time Step
\(t\)는 시간 순서를 구분하기 위한 값입니다. 즉, \((t+1)\)은 \(t\)의 다음 Time Step을 의미합니다.

(2) \(y\): 정답 값
\(y\)는 데이터가 라벨링 된(labeled) '정답' 값입니다.

(3) \(\tilde{y}\): 예측 값
\(\tilde{y}\)는 학습한 분류 모델이 예측한 출력값입니다.

(4) \(\eta\): 학습률
\(\eta\)는 '에타(eta)'라 읽고 학습률(Learning Rate)을 의미합니다. 학습률은 Time Step마다 정답과 모델의 예측값 간의 차이를 어떤 비율만큼 고려하여 가중치를 업데이트할지 결정하며, 0과 1사이의 값을 갖습니다. 즉, 학습률이 클수록 Time Step마다 가중치가 많이 업데이트되므로 학습 속도가 빠릅니다. 하지만, 학습률이 크면 가중치를 미세하게 조정하진 못하기 때문에 최적의 가중치를 찾는 데 어려울 수 있습니다. 학습률은 하이퍼파라미터(hyper-parameter)로 사용자가 직접 지정해야 하는 값이므로, 어떤 값을 모델 학습에 사용하느냐에 따라 모델 성능이 좌지우지됩니다.

(5) \(x\): 입력값

수식에서 알 수 있듯이, 가중치는 라벨링 된 정답과 모델의 예측값 간의 차이를 학습률을 고려하여 점차 업데이트됩니다. 이어지는 섹션에서 퍼셉트론의 학습 절차에 대해 자세히 알아봅니다.

4. 퍼셉트론 학습 절차

퍼셉트론은 아래와 같은 절차로 최적의 직선을 찾아나갑니다.

1) 좌표평면에 임의의 직선을 긋습니다.
2) 좌표평면에 데이터를 하나씩 입력합니다.
3) 입력값에 따른 모델의 예측값과 정답을 비교하여 틀린 경우 직선을 다시 긋습니다.
4) 모든 학습용 데이터에 대해 2~3) 과정을 반복합니다.

아래의 예시와 함께 더욱 자세히 알아보겠습니다(그림 3).

그림 3. 퍼셉트론 학습 절차 예시

그림 3은 푸른색과 녹색 클래스 2개를 분류하는 퍼셉트론의 학습 절차입니다.

1️⃣ 임의의 직선 긋기
2️⃣ 푸른색 데이터 입력 ➡ 입력 데이터 하나뿐이므로 다음 Step
3️⃣ 녹색 데이터 입력 ➡ 분류 문제 없으므로 다음 Step
4️⃣ 푸른색 데이터 입력
5️⃣ 데이터 오분류 확인 ➡ 직선 다시 긋기
6️⃣ 녹색 데이터 입력 ➡ 분류 문제 없으므로 다음 Step
7️⃣ 녹색 데이터 입력(클래스별 데이터 입력 순서 랜덤)
8️⃣ 데이터 오분류 확인 ➡ 직선 다시 긋기

📚참고할 만한 포스팅

1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam

 


오늘은 퍼셉트론 학습의 의미와 절차에 대해 알아봤습니다.
포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.
고맙습니다😊

728x90
반응형
Comments