인공신경망(3)

dongmin·2026년 3월 19일

이번 포스트에서는 최적화 함수(Optimizer)손실 함수(Loss Function)에 대해 다루고자 한다.


1. 최적화 함수란 무엇인가?

신경망 모델을 학습시키기 위해서는 모델의 오차를 최소화하는 최적의 가중치(Weight)와 편향(Bias) 매개변수를 찾아야 하는데, 이 과정에서 사용되는 것이 바로 최적화 함수(Optimizer)이다.

대표적인 방법으로는 경사하강법(Gradient Descent)이 있으며,
이 방법은 손실 함수의 기울기(gradient)를 이용해 가중치를 조정한다.

기울기가 중요한 이유는,
👉 손실 함수 값을 가장 빠르게 감소시키는 방향을 알려주기 때문이다.


2. 손실 함수란?

손실 함수(Loss Function)는
👉 모델의 예측값과 실제값의 차이를 수치로 나타낸 함수이다.

  • 손실 값이 작을수록 → 모델의 성능이 좋음
  • 손실 값이 클수록 → 예측이 잘못됨

해결하려는 문제의 종류에 따라 사용하는 손실 함수가 달라지며, 대표적으로 다음과 같은 종류가 있다.

nn은 데이터의 총 개수를 의미하며, MSE 함수와 MAE 함수에서 yiy_i는 실제 정답, y^i\hat{y}_i는 모델의 예측값을, Cross-Entropy Loss 함수에서는 yiy_i 실제 레이블(0 또는 1)을 의미하고, y^i\hat{y}_i는 예측 확률(0과 1 사이)을 의미한다.

📌 평균 제곱 오차 (MSE: Mean Squared Error)
주로 회귀(Regression) 문제에서 사용된다. 예측값과 실제값 사이의 차이를 제곱한 후, 그 값들의 평균을 구하는 방식이다.

MSE=1ni=1n(yiy^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
  • 오차가 클수록 제곱되어 훨씬 큰 페널티가 부여된다. 이상치(Outlier)에 민감하다는 단점이 있지만, 모델이 큰 오차를 더 치명적으로 인식하고 집중적으로 수정하도록 유도할 수 있다.

📌 평균 절대 오차 (MAE: Mean Absolute Error)

MAE=1ni=1nyiy^iMAE = \frac{1}{n} \sum_{i=1}^{n} | y_i - \hat{y}_i |
  • 오차의 절댓값을 사용하기 때문에 MSE에 비해 이상치에 덜 민감하다. 오차의 크기가 그대로 반영되므로 모델의 예측 성능을 직관적으로 평가할 때 유용하며, 오차 분포에 대해 균형 잡힌 평가를 제공한다.

📌 교차 엔트로피 손실 (Cross-Entropy Loss)
주로 분류(Classification) 문제에서 두 확률 분포 간의 차이를 계산할 때 사용된다. 아래는 이진 분류에서 사용하는 수식이다.

1ni=1n[yilog(y^i)+(1yi)log(1y^i)]-\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right]
  • 예측 확률이 실제 정답에 가까워질수록 손실 값이 0에 수렴한다. 다중 클래스 분류에서는 이를 확장한 범주형 교차 엔트로피(Categorical Cross-Entropy)가 사용된다.

3. 경사하강법과 다양한 최적화 알고리즘

최적화 함수의 가장 기본이 되는 경사하강법(Gradient Descent)은 다음과 같은 3단계로 이루어진다.

  1. 손실 함수의 기울기 계산: 현재 가중치 위치에서 손실 함수의 미분값(기울기)을 계산한다.

  2. 가중치 업데이트: 기울기의 반대 방향(내리막길)으로 가중치를 이동시킨다. 이때 학습률(Learning Rate)이라는 매개변수를 곱하여 한 번에 이동할 보폭의 크기를 조절한다.

  3. 반복: 손실 함수의 값이 충분히 작아질 때까지(최저점에 도달할 때까지) 위 과정을 반복한다.

위의 손실 함수 그래프에서 기울기가 0이 되는 지점이 바로 손실 함수가 최솟값을 가지는 지점이다!

3.1 경사하강법의 한계점

일반적으로 손실 함수는 위의 그림처럼 깔끔한 2차 함수 형태를 가지지 않는다.

  1. 데이터가 많아질수록 계산량 증가
    • 학습용 데이터 셋이 많아진다면 계산량이 기하급수적으로 증가하게 되고, 학습 속도가 매우 느려진다. 기계학습에는 거대한 빅데이터가 사용되기 때문에 비용적인 부분을 무시할 수 없음
  2. Local Minima 문제
    • 아래 그림과 같이 초기 시작점이 local minimum에 가까운 지점이라면 전역 최솟값으로 향해 다가오는 도중에 지역 극솟값에 수렴해버릴 가능성이 있다. 지역 극솟값에서의 손실 함수의 기울기 또한 0이므로 w가 지역 극솟값에 갇혀 더 이상 업데이트되지 못할 수 있다.
  3. Plateau 현상
    • 아래 그림과 같이 기울기가 0에 수렴하는 평탄한 영역에서 경사하강법을 사용하면 결국 가중치가 업데이트되지 못하고 전역 최솟값을 갖는 지점이 아닌 점에서 정지해버릴 수 있다.
  4. Zigzag 문제
    • 아래 그림처럼 w1w_1 의 스케일이 w2w_2보다 크다보니, 손실 함수는 xx축 방향 가중치인 w1w_1의 변화에 매우 둔감하고 yy축인 w2w_2의 변화에 매우 민감하다.
    • w2w_2가 조금만 변해도 손실 함수가 크게 변하게 되어, 매개변수의 변화에 따른 손실 함수의 변화가 일정하지 않다.

이 문제들을 해결하기 위해 다양한 최적화 함수가 있다.


3.2 다양한 최적화 함수

  1. 확률적 경사 하강법 (SGD) & Mini-batch GD 👉 계산량 및 학습 속도 문제 해결

    • 전체 데이터셋의 기울기를 한 번에 다 계산하느라 학습이 너무 느려지는 문제를 해결하기 위해 등장했다.

    • SGD: 무작위로 추출한 1개의 데이터(혹은 극소량)에 대해서만 기울기를 계산하고 매우 빠르게 가중치를 업데이트한다.

    • Mini-batch GD: 전체 데이터를 작은 덩어리(배치, Batch)로 나누어 각 배치마다 기울기를 계산한다. 연산 속도와 업데이트 안정성의 균형이 가장 좋아서 실무 모델 학습 시 가장 기본으로 쓰이는 방식이다.

  2. 모멘텀 (Momentum) 👉 Local Minima 및 Plateau 문제 극복, 진동 억제

    • 물리 법칙의 '관성'을 도입하여, 이전 기울기의 방향을 기억하고 밀어주어 진동을 줄이고 수렴 속도를 크게 향상시킨다.
    • 기울기가 0이 되어버리는 Local Minima나 Plateau를 만나도, 관성을 이용해 멈추지 않고 뚫고 지나갈 수 있다. 또한 좁은 협곡을 내려갈 때 양옆으로 지그재그로 튕기는 Oscillation 현상도 잡아주어 수렴 속도를 크게 향상시킨다.
  3. Adam (Adaptive Moment Estimation) 👉 방향과 보폭을 동시에 조정

    • 최적의 훈련을 위해 방향보폭을 모두 지능적으로 관리하는 알고리즘이다.

    • 모멘텀처럼 진동을 줄이면서도, 데이터의 특징에 따라 각 가중치 매개변수마다 알맞은 학습률을 스스로 계산하여 적응적으로 조절한다. 어떤 복잡한 한계 상황에서도 빠르고 안정적으로 최저점을 찾아가기 때문에, 현재 딥러닝에서 강력한 표준 알고리즘이다.


4. 인공신경망의 학습 과정

신경망은 앞서 배운 개념들을 종합하여, 다음의 4가지 과정을 끊임없이 반복하며 점점 똑똑해진다.

1️⃣ 순전파 (Forward Propagation)

  • 입력 데이터를 신경망에 통과시켜 예측값을 계산한다. 가중치 연산 후 활성화 함수를 거쳐 최종 출력을 낸다.

2️⃣ 오차 계산 (Loss Calculation)

  • 출력된 예측값과 실제 정답의 차이를 비교하여 손실 함수 값(Loss)을 구한다.

3️⃣ 역전파 (Backpropagation)

  • 계산된 오차를 출력층에서 입력층 쪽으로 거꾸로 돌려보내며, 미분을 통해 각 가중치가 오차에 미친 영향도(기울기)를 계산한다.

4️⃣ 가중치 업데이트 (Weight Update)

  • 계산된 기울기와 최적화 함수(Optimizer)를 이용하여 가중치를 알맞게 수정한다.

💡 핵심 요약

역전파를 통해 구한 '기울기'와, 그 기울기를 바탕으로 이동 방향과 보폭을 지시하는 '최적화 함수'가 톱니바퀴처럼 함께 작동하며 손실 함수 값을 최소화하는 방향으로 가중치를 점진적으로 업데이트하는 것, 이것이 바로 딥러닝 학습의 본질이다!

0개의 댓글