EveryDay.DevUp

[AI] 딥러닝 모델 학습과정 이해하기 본문

AI

[AI] 딥러닝 모델 학습과정 이해하기

EveryDay.DevUp 2025. 6. 8. 18:50
AI 모델 학습 과정 이해하기

1. AI 모델의 목표와 학습 데이터

모델 목표 정의: 이 예제에서 AI 모델의 목표는 '키(x) 값을 입력했을 때 몸무게(y)를 예측하는 것'입니다. 이를 위해 20명의 키와 몸무게 데이터(파란 점)가 학습용으로 주어졌습니다. AI는 이 데이터의 경향을 가장 잘 나타내는 최적의 예측선(녹색 선)을 찾는 것을 목표로 학습해야 합니다.

2. AI 모델 학습 과정

AI 모델은 몸무게(y)를 예측하기 위해 `y = 키 * W + b` 라는 간단한 수학 공식을 사용합니다. 이 공식은 2차원 그래프에서 하나의 직선으로 표현됩니다. AI 모델의 학습이란, 예측값과 실제 값의 차이(오차)를 계산하고, 그 오차를 줄이는 방향으로 가중치(W, 기울기)편향(b, y절편) 값을 아주 조금씩 수정하는 과정을 반복하는 것입니다. '학습하기!'를 눌러 AI가 이 과정을 통해 예측선(주황색 선)을 정답(녹색 선)으로 점차 이동시키는 모습을 확인해보세요.

학습 단계 (Epoch)
0
가중치 (W)
0.00
편향 (b)
0.00

3. 좋지 않은 손실 함수의 문제점

손실(Loss)은 AI 모델의 예측(빨간선)이 실제 정답(파란점)과 얼마나 다른지를 나타내는 '벌점'과 같습니다. 각 데이터의 오차는 '오차 = 예측값 - 실제 값' 공식으로 계산됩니다. 그래프에서 각 점(실제 값)에서 예측선까지 이어진 점선이 개별 오차이며, 빨간색 숫자는 (+)오차, 파란색 숫자는 (-)오차를 의미합니다.

보시는 바와 같이, 모델이 기울기가 0인 수평선으로 데이터를 전혀 설명하지 못하는데도 '단순 오차 평균' 값은 0이 됩니다. 이는 예측선 위쪽의 (+)오차들과 아래쪽의 (-)오차들의 합이 정확히 상쇄되어 벌점이 없는 것처럼 보이는 '통계의 함정'입니다. 이 때문에 AI 학습에는 더 좋은 손실 함수가 반드시 필요합니다.

단순 오차 평균 (문제점!)
0.00

4. 좋은 손실 함수: 절대값과 제곱의 힘

AI는 '단순 오차 평균'의 함정에 빠지지 않기 위해, 모든 오차를 양수로 만들어주는 방법을 사용합니다. 대표적으로 **평균 절대값 오차(MAE)**와 **평균 제곱 오차(MSE)**가 있습니다. 아래 그래프는 이 함수들이 오차(x축)를 벌점(y축)으로 어떻게 변환하는지 보여줍니다.

평균 절대값 오차 (MAE) - y = |x|

MAE는 각 오차의 부호를 무시하고 크기만 보기 위해 절대값을 취합니다. 오차 -5와 +5 모두 벌점 5로 동일하게 취급합니다. 이 V자 모양 그래프처럼, MAE는 (+)오차와 (-)오차가 상쇄되는 문제를 해결합니다.

평균 제곱 오차 (MSE) - y = x²

MSE는 각 오차를 제곱합니다. 공식: MSE = (예측값 - 실제 값)². 제곱 역시 모든 오차를 양수로 만들며, U자 모양 포물선 그래프처럼 오차가 0에서 멀어질수록 벌점이 기하급수적으로 커집니다. 이처럼 큰 오차에 더 큰 벌점을 부여하는 특징이 있어 널리 사용됩니다.

5. AI 학습의 핵심 원리: 경사 하강법 (Gradient Descent)

경사 하강법은 AI가 손실(Loss)을 줄이는 방향으로 파라미터를 수정하는 핵심 원리입니다. 원리를 쉽게 이해하기 위해, 단 하나의 데이터(실제 값)에 대해 예측값(Predicted Value, x축)을 바꿀 때 MSE 손실(y축)이 어떻게 변하는지 살펴보겠습니다. 여기서 손실은 MSE = (예측값 - 실제 값)² 공식으로 계산됩니다. 이 손실 그래프는 AI가 가야 할 길을 알려주는 '지도'와 같습니다. AI의 목표는 이 지도에서 가장 낮은 지점(손실=0, 즉 예측값=실제 값)을 찾는 것입니다.

경사 하강법은 마치 안개 속에서 산을 내려오는 것과 같습니다. 현재 예측값(빨간 점)에서 가장 가파른 경사(Gradient)를 계산하고, 그 반대 방향으로 예측값을 조금 이동시킵니다. '경사하강' 버튼을 눌러 이 과정을 반복하며 골짜기(최저 손실)에 도달하는 모습을 확인해보세요. 이것이 바로 2번 섹션에서 본 학습 과정의 내부 원리입니다.

경사하강법의 실제 작동 과정

이제 경사하강법이 이 모델에서 어떻게 작동하는지 살펴보겠습니다. 예를 들어, 실제 값이 kg인 데이터에 대해 모델이 현재 kg를 예측하고 있다면, MSE Loss는 ( - )² = 입니다. 경사하강법은 이 지점에서의 기울기(Gradient)를 계산합니다.

기울기(Gradient) 계산법 (미분):
기울기는 그래프의 특정 지점에서 얼마나 가파른지를 나타내는 값입니다. 수학에서는 '미분'을 통해 이 값을 찾습니다. 우리 손실 함수 Loss = (예측값 - 실제값)² 에서 '실제값'은 변하지 않는 숫자(상수)입니다. '예측값'을 변수 x라고 생각하면 이 식은 y = (x - k)² 형태의 2차 함수와 같습니다.
고등학교 수학에서 배운 합성함수 미분법(체인룰)을 떠올려보면, 이 함수를 미분하면 y' = 2 * (x - k)¹ * (x-k)' = 2 * (x - k) 가 됩니다.
따라서 우리 모델에서 손실(Loss)을 예측값에 대해 미분한 값, 즉 기울기는 2 × (예측값 - 실제값) 이 됩니다.

계산 예시:
현재 예측값이 kg일 때, 기울기는 2 × ( - ) = 입니다. 기울기가 양수(+)라는 것은, 예측값을 더 크게 만들면 손실도 커진다는 의미입니다. 따라서 우리는 반대 방향, 즉 예측값을 줄이는 방향으로 이동해야 합니다.

만약 학습률(Learning Rate, 보폭)이 0.2이라면, 다음 단계에서 모델은 예측값을 - (0.2 × ) = kg로 조정할 것입니다. '경사하강' 애니메이션은 바로 이 과정을 10단계에 걸쳐 반복하면서 예측값이 점차 kg에 수렴하는 모습을 보여줍니다.

6. 학습률 (Learning Rate)의 중요성

학습률(Learning Rate)은 경사 하강법에서 경사의 반대 방향으로 얼마나 크게 이동할지를 결정하는 값, 즉 '보폭'입니다. 학습률을 어떻게 설정하느냐에 따라 AI의 학습 효율과 성능이 크게 달라집니다.

  • 너무 높은 학습률: 보폭이 너무 커서 최저점을 훌쩍 뛰어넘어 반대편으로 가버립니다. 이 과정을 반복하면, 최저점에 수렴하지 못하고 값이 이리저리 튀는 발산(Divergence) 현상이 발생할 수 있습니다.
  • 너무 낮은 학습률: 보폭이 너무 작아서 최저점까지 가는 데 시간이 매우 오래 걸리거나, 중간에 학습이 멈춘 것처럼 보일 수 있습니다.
  • 적절한 학습률: 너무 크지도, 작지도 않은 적절한 보폭으로 안정적으로 최저점을 향해 나아갑니다.

아래 버튼을 눌러 각 시나리오별로 예측값(점)이 어떻게 움직이는지 비교해보세요.

7. 하이퍼파라미터: AI를 조율하는 마법의 손잡이

지금까지 우리는 AI가 스스로 학습하여 최적의 파라미터(Parameter), 즉 가중치(W)와 편향(b)을 찾아가는 과정을 살펴보았습니다. 하지만 AI가 학습을 시작하기 전에, 사람이 직접 설정해주어야 하는 값들이 있습니다. 이를 바로 하이퍼파라미터(Hyperparameter)라고 부릅니다.

하이퍼파라미터는 AI 모델의 '학습 방법'을 정해주는 중요한 설정값으로, 마치 오디오의 볼륨이나 이퀄라이저 손잡이처럼 모델의 전체적인 성능과 학습 효율에 큰 영향을 미칩니다. 이 예제에서 우리가 이미 경험해 본 대표적인 하이퍼파라미터들은 다음과 같습니다.

1. 학습률 (Learning Rate)

6번 섹션에서 보았듯이, 경사 하강법의 '보폭'을 결정합니다. 너무 크면 발산하고, 너무 작으면 학습이 느려지는 가장 중요한 하이퍼파라미터 중 하나입니다.

2. 학습 횟수 (Epochs)

2번 섹션에서 '학습하기!' 버튼을 눌렀을 때 10단계에 걸쳐 학습을 진행했습니다. 이처럼 전체 데이터를 몇 번 반복해서 학습할지를 정하는 것이 바로 에포크입니다. 너무 적으면 학습이 덜 되고, 너무 많으면 시간이 오래 걸리거나 과적합(Overfitting)의 위험이 있습니다.

3. 손실 함수 (Loss Function)

3번과 4번 섹션에서 확인했듯이, 모델의 예측이 얼마나 틀렸는지를 평가하는 '벌점 계산법'입니다. 어떤 손실 함수(MAE, MSE 등)를 선택하느냐에 따라 모델의 학습 방향과 결과가 달라집니다.

이 외에도 실제 딥러닝 모델에서는 신경망의 층(Layer) 개수, 각 층의 노드(Node) 개수 등 훨씬 더 많고 복잡한 하이퍼파라미터들이 있습니다. 좋은 AI 모델을 만드는 것은 결국 최적의 하이퍼파라미터 조합을 찾는, 수많은 실험과 조율의 과정이라고 할 수 있습니다.

8. AI 모델 학습 시뮬레이터

이제 여러분이 직접 AI 모델러가 되어볼 시간입니다! 아래에서 학습률, 학습 횟수, 손실 함수 등 다양한 하이퍼파라미터를 직접 조절하여 모델을 학습시켜 보세요. 여러분의 선택에 따라 모델이 얼마나 똑똑해지는지, 혹은 학습에 실패하는지를 실시간으로 확인할 수 있습니다.

학습된 모델로 예측하기

모델을 먼저 학습시켜 주세요.