[딥러닝] 딥러닝 학습의 핵심 개념 총정리: 경사하강법부터 손실 함수까지

2025. 7. 2. 18:03·머신러닝&딥러닝

수식 크기를 조절하여 다시 정리하겠다. 이제는 수식의 크기가 적절하게 표현될 것이다.


딥러닝 훈련의 핵심 개념 정리: 손실을 최소화하는 여정

딥러닝 모델을 학습시킬 때 가장 중요한 목표는 모델이 예측한 값과 실제 값 사이의 오차(손실)를 최소화하도록 모델의 파라미터(가중치와 편향)를 조정하는 것이다. 이 복잡한 과정을 가능하게 하는 핵심 개념들이 바로 Gradient Descent(경사하강법), Backpropagation(오차역전파), 그리고 손실 함수(Loss Function)다. 이들이 각각 어떤 역할을 하는지 자세히 알아보자.


1. Gradient Descent (경사하강법)

경사하강법은 모델이 예측한 값과 실제 값 사이의 오차를 최소화하는 방향으로 파라미터를 조정하는 최적화 알고리즘이다.

궁극적인 목표는 손실 함수의 값을 최소로 만드는 최적의 파라미터 $W$ (가중치)와 $b$ (편향)를 찾는 것이다. 이를 위해 다음과 같은 과정을 거친다.

  1. 손실 함수 정의: 먼저 모델의 예측이 얼마나 틀렸는지 측정할 수 있는 손실 함수를 정의한다.
  2. 기울기 계산: 현재 파라미터 값에서 손실 함수의 기울기(Gradient)를 계산한다. 기울기는 손실 함수가 어떤 방향으로 가장 가파르게 증가하는지를 나타낸다.
  3. 파라미터 업데이트: 이 기울기의 반대 방향으로 파라미터를 조금씩 이동시킨다.
    • 만약 기울기가 양수라면, 파라미터 $W$를 감소시켜 손실을 줄인다.
    • 만약 기울기가 음수라면, 파라미터 $W$를 증가시켜 손실을 줄인다.

이러한 방식으로 기울기에 따라 파라미터를 반복적으로 업데이트한다. 파라미터 업데이트는 다음과 같은 수식으로 표현할 수 있다.

$$W \leftarrow W - \alpha \frac{\partial \text{Loss}}{\partial W}$$
$$b \leftarrow b - \alpha \frac{\partial \text{Loss}}{\partial b}$$

여기서 $\alpha$는 학습률(Learning Rate)로, 파라미터를 업데이트하는 보폭의 크기를 결정한다. 학습률이 너무 크면 최적점을 지나칠 수 있고, 너무 작으면 학습 속도가 느려질 수 있다.


2. Backpropagation (오차 역전파)

오차 역전파(Backpropagation)는 신경망 전체의 파라미터가 손실을 줄이는 방향으로 효율적으로 업데이트되도록 기울기를 전파하는 과정이다.

이 과정은 다음과 같이 이루어진다.

  1. 오차 계산: 모델의 출력층에서 최종 예측값과 실제 값 사이의 오차(손실)를 계산한다.
  2. 역방향 전파: 이 계산된 오차를 신경망의 각 레이어를 거꾸로 거치면서 전파시킨다. 마치 물이 역류하듯이 오차의 책임이 각 파라미터에 어떻게 분산되는지 계산한다.
  3. 기울기 계산: 각 파라미터(가중치와 편향)가 손실에 얼마나 기여했는지, 즉 각 파라미터에 대한 손실 함수의 기울기를 계산한다.
  4. 파라미터 업데이트: 계산된 기울기는 경사하강법을 통해 해당 파라미터를 업데이트하는 데 사용된다.

오차 역전파 덕분에 수많은 파라미터를 가진 깊은 신경망에서도 각 파라미터를 효율적으로 갱신하여 최적의 모델을 찾아갈 수 있다.


3. 손실 함수 (Loss Function)

손실 함수(Loss Function)는 모델의 예측값과 실제 값 사이의 차이를 수치로 계산해주는 함수다. 이 함수는 비용 함수(Cost Function) 또는 목적 함수(Objective Function)라고도 불린다.

경사하강법과 같은 최적화 알고리즘을 사용하기 위해서는 손실 함수가 반드시 미분 가능해야 한다. 그래야 기울기를 계산하여 파라미터 업데이트 방향을 결정할 수 있기 때문이다.

딥러닝에서 손실 함수는 보통 직접 정의하는 경우는 드물고, 대부분 해당 문제 유형에 맞는 잘 알려진 표준 함수를 사용한다. 특히 아래 세 가지 정도만 알고 있어도 대부분의 문제에 효과적으로 대응할 수 있다.


4. 대표적인 손실 함수

문제 유형에 따라 적절한 손실 함수가 사용된다.

1) 회귀 문제: MSE (Mean Squared Error)

MSE(평균 제곱 오차)는 예측값과 실제값의 차이를 제곱하여 평균낸 값이다. 오차가 클수록 제곱에 의해 손실이 더 크게 반영되는 특징이 있다.

$$\text{MSE} = \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2$$

여기서 $m$은 데이터 개수, $y_i$는 실제 값, $\hat{y}_i$는 예측 값이다.

2) 이진 분류 문제: Binary Cross Entropy

이진 교차 엔트로피(Binary Cross Entropy)는 정답이 0 또는 1인 이진 분류 문제에 사용되며, 모델의 확률 기반 출력에 적합하다.

$$\text{Binary Cross Entropy} = - y \cdot \log(p) - (1 - y) \cdot \log(1 - p)$$

여기서 $y$는 실제 정답(0 또는 1), $p$는 모델이 예측한 정답일 확률이다.

3) 다중 분류 문제: Categorical Cross Entropy

범주형 교차 엔트로피(Categorical Cross Entropy)는 여러 클래스 중 하나를 맞히는 다중 분류 문제에 사용되며, 주로 출력층의 Softmax 함수와 함께 쓰인다.

$$\text{Categorical Cross Entropy} = - \sum_{i} y_i \cdot \log(p_i)$$

여기서 $y_i$는 실제 정답 클래스에 해당하는 One-Hot 인코딩 벡터의 값(해당 클래스이면 1, 아니면 0), $p_i$는 모델이 예측한 해당 클래스일 확률이다.


5. 전체 학습 과정 요약

딥러닝 모델의 훈련 과정은 다음 단계를 반복하며 이루어진다.

  1. 순전파(Forward Pass): 입력 데이터를 기반으로 모델이 예측값 $\hat{y}$ 를 생성한다.
  2. 손실 계산: 예측값 $\hat{y}$ 와 실제 정답 $y$ 를 비교하여 손실(Loss)을 계산한다.
  3. 오차 역전파(Backpropagation): 계산된 손실을 바탕으로 신경망의 각 파라미터($W, b$)에 대한 기울기를 효율적으로 계산한다.
  4. 파라미터 업데이트(Gradient Descent): 계산된 기울기를 이용하여 경사하강법을 통해 $W$ 와 $b$ 를 업데이트한다.
  5. 반복: 이 과정을 여러 번(에포크, Epoch) 반복하면서 손실이 점점 줄어들고 모델의 성능이 향상된다.

딥러닝 학습에서 핵심은 오차를 줄이는 방향으로 파라미터를 조금씩 반복적으로 조정하는 것이며, 이를 가능하게 해주는 두 개의 축이 Gradient Descent와 Backpropagation이다. 그리고 이들이 최적화하고자 하는 대상이 바로 손실 함수다.

'머신러닝&딥러닝' 카테고리의 다른 글

[머신러닝] 단변수 선형 회귀와 R² 결정계수 완전 정리  (4) 2025.07.06
[딥러닝] 오차 역전파의 구조와 수학적 해석: Forward 계산부터 Chain Rule, 시그모이드 미분까지  (3) 2025.07.03
[딥러닝] 신경망 뉴런 구조와 Activation Function 정리  (0) 2025.07.02
[머신러닝] 머신러닝 필수 전처리: Feature Scaling 완벽 가이드  (0) 2025.07.02
[머신러닝·딥러닝]파이썬 시각화의 시작, matplotlib 필수 문법 총정리  (4) 2025.07.02
'머신러닝&딥러닝' 카테고리의 다른 글
  • [머신러닝] 단변수 선형 회귀와 R² 결정계수 완전 정리
  • [딥러닝] 오차 역전파의 구조와 수학적 해석: Forward 계산부터 Chain Rule, 시그모이드 미분까지
  • [딥러닝] 신경망 뉴런 구조와 Activation Function 정리
  • [머신러닝] 머신러닝 필수 전처리: Feature Scaling 완벽 가이드
jh_devnote
jh_devnote
Spring Boot, React, MySQL, JSP, Servlet, Docker, AWS 기반의 풀스택 웹 개발 프로젝트를 기록하는 기술 블로그입니다.
  • jh_devnote
    JH Devlog
    jh_devnote
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 🐱 Github
    • 🌐 My Site
    • 🗂 Portfolio
  • 전체 카테고리

    • 💻 개발
      • 네트워크
      • MYSQL
      • JAVA
      • SPRINGBOOT
      • Node.JS
      • React
      • LINUX
      • AWS
      • Docker
    • 📘 코딩테스트
      • 백준(Baekjoon)
      • 프로그래머스
    • 🧑‍💻 머신러닝&딥러닝
    • 📁 프로젝트
      • 📂 HealthMe
        • HealthMe_프론트엔드
        • HealthMe_백엔드
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jh_devnote
[딥러닝] 딥러닝 학습의 핵심 개념 총정리: 경사하강법부터 손실 함수까지
상단으로

티스토리툴바