2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

확률적 경사 하강법

2025. 6. 5. 16:59ㆍ개발공부/인공지능
728x90

점진적 학습 (Online Learning)

  • 전체 데이터를 한꺼번에 사용하지 않고, 데이터가 순차적으로 들어올 때마다 모델을 업데이트하는 방식.
  • 장점: 메모리 효율적, 실시간 처리 가능 → 대용량 스트리밍 데이터에 유용

 

확률적 경사 하강법 (SGD)

  • 점진적 학습의 대표적 방법
  • 전체 데이터를 사용하지 않고, 무작위로 선택한 하나의 샘플 또는 미니배치로 가중치를 반복 업데이트
  • 기계학습/딥러닝 모델을 훈련(최적화) 하는 방법이지, 모델 그 자체는 아님

 

확률적 경사 하강법(SGD)이란?

  • 목적: 손실 함수 $L(w)$의 최소값(최소화) 을 찾기 위해, 반복적으로 가중치 $w$ 를 업데이트하는 최적화 알고리즘.
  • 특징: 전체 데이터를 한 번에 다 쓰지 않고, 데이터를 어떻게 사용하는지에 따라 다음과 같이 분류됨.

 

배치 경사 하강법 (Batch Gradient Descent)

  • 전체 학습 데이터를 한꺼번에 사용하여 한 번에 파라미터 업데이트
  • 메모리 소모 큼, 속도 느림
    $$
    \theta := \theta - \eta \nabla_\theta J(\theta)
    $$

 

확률적 경사 하강법 (Stochastic Gradient Descent, SGD)

  • 매 반복마다 1개의 데이터 샘플을 무작위로 선택하여 파라미터를 업데이트
  • 메모리 효율적, 속도 빠름, 업데이트에 노이즈가 많아 진동이 있음
    $$
    \theta := \theta - \eta \nabla_\theta J(\theta; x^{(i)}, y^{(i)})
    $$

 

미니배치 경사 하강법 (Mini-Batch Gradient Descent)

  • 무작위로 선택한 일정 크기의 데이터 묶음(미니배치) 으로 업데이트
  • 일반적으로 16, 32, 64, 128, 256 등의 배치 사이즈 사용
  • 속도·안정성 균형이 좋아 대부분의 딥러닝 모델 학습에 활용
    $$
    \theta := \theta - \eta \nabla_\theta J(\theta; \mathcal{B})
    $$

 

기호 의미
$θ$ 모델의 파라미터 (예: 가중치, 편향)
$η$ 학습률 (learning rate) – 파라미터를 얼마나 크게 이동시킬지 결정
$∇θJ(θ; )$ 현재 데이터 샘플 에 대해 계산한 손실 함수의 그래디언트
$J(θ;x(i),y(i))$ 손실 함수 (예: MSE, Cross Entropy 등)

 

  • 배치 경사 하강법 (Batch Gradient Descent) 은 모든 데이터를 한꺼번에 사용해 파라미터를 업데이트하기 때문에 수렴 안정성이 높고 일반적으로 가장 정확합니다.
  • 그러나 데이터가 매우 클 경우, 한 번에 모두 메모리에 적재해야 하므로 현실적인 제약이 있습니다.
  • 그래서 SGD(확률적 경사 하강법) 이나 Mini-Batch 경사 하강법을 더 자주 사용합니다.
    이들은 메모리 사용량을 줄이고, 실시간 학습에도 적합하기 때문입니다.

 


 

SGD의 매개변수 업데이트 절차:

 

  1. 데이터 샘플 선택
    • 훈련 데이터셋에서 무작위로 하나의 데이터 샘플을 선택
  2. 예측
    • 선택된 데이터 샘플에 대해 현재 모델의 파라미터 $θ$ 를 사용하여 예측값 계산
  3. 손실 계산
    • 예측값과 실제값의 차이로 손실(loss)을 계산
  4. 기울기 계산
    • 손실 함수의 기울기를 계산하여 손실을 가장 빠르게 감소시키는 방향과 크기를 나타냄
    • 기울기 = 손실 함수의 편미분
  5. 매개변수 업데이트
    • 계산된 기울기와 학습률(learning rate) $η$를 사용해 매개변수를 업데이트
    • 이동방향: 기울기의 반대 방향
      $$ \theta := \theta - \eta \nabla_\theta J(\theta; x^{(i)}, y^{(i)}) $$
  6. 반복
    • 위 과정을 다른 데이터 샘플에 대해 반복하며 전체 데이터셋에 대해 여러 에폭(epoch)을 수행

 


 

다변수 함수에 대한 경사 하강법

 

알고리즘 절차

 

  1. 초기화
    • 초기 파라미터 $w_0^0, w_1^0, \dots, w_n^0$​ 무작위로 선택
    • $t=0$
  2. 반복
    • 각 파라미터에 대해 손실 함수의 기울기 계산 후 업데이트

$$
w_0^{t+1} = w_0^t - \eta \frac{\partial E}{\partial w_0} \bigg|{w = w^t}
$$


$$
w_1^{t+1} = w_1^t - \eta \frac{\partial E}{\partial w_1} \bigg|{w = w^t}
$$

$$
\vdots
$$


$$
w_n^{t+1} = w_n^t - \eta \frac{\partial E}{\partial w_n} \bigg|_{w = w^t}
$$

3. 종료 조건

  • $∥∇E(w)∥$ 이 충분히 작아지면 종료

 


 


퍼셉트론 신경망의 선형 계층 계산 과정

  • 입력값 $x_1, x_2, x_3$​와 가중치 $w_i$​의 선형 결합 → 중간 노드 → 출력 $y$

 

 


다층 퍼셉트론(MLP) 구조

  • 입력층, 은닉층, 출력층으로 구성됨
  • 각각의 노드는 선형 변환과 비선형 활성화를 거쳐 다음 층으로 전달됨

 


 

손실 함수 (Loss Function)란?

  • 손실 함수는 머신 러닝 모델의 예측 값과 실제 값 사이의 차이를 수치화하여 학습 성능을 측정하는 함수입니다.

 

주요 특징

  • 예측 결과가 실제 결과에 얼마나 가까운지를 측정하는 기준
  • 예측값 $\hat{y}$​ 와 실제값 $y$의 차이 → loss
  • 손실 값이 작을수록 성능이 좋다

 

로지스틱 손실 함수 개요

  • 로지스틱 회귀는 분류 문제(이진 분류)에서 확률을 예측합니다.
  • 예측값 $\hat{y}$​는 0~1 사이 확률이며, 실제 값 $y \in {0, 1}$ 입니다.
  • 예측 확률에 따라 로지스틱 손실(loss)을 계산하여 모델을 학습합니다.

 

로지스틱 손실 함수 수식

$$
\text{Logistic Loss} = - \left( y \log(\hat{y}) + (1 - y) \log(1 - \hat{y}) \right)
$$

  • $y=1$이면 : $-\log(\hat{y})$
  • $y=0$이면 : $-\log(1 - \hat{y})$
  • $y \in {0, 1}$ : 실제 레이블
  • $p = \hat{y}$​ : 모델이 예측한 확률값, 즉 $p = \sigma(w^T x + b)$

 

예측 확률 정의

  • 모델의 예측 확률 $\hat{y}$는 시그모이드 함수 $σ$를 통해 계산됩니다 :
    $$
    \hat{y} = \sigma(z) = \frac{1}{1 + e^{-z}}, \quad z = w^T x + b
    $$
  • 로지스틱 손실 함수는 크로스엔트로피 손실(Binary Cross-Entropy Loss) 과 동일합니다.
  • 확률 예측이 정확할수록 손실이 작고, 틀릴수록 손실이 크게 나옵니다.
  • 모델이 출력하는 확률값에 로그를 취해 오차를 수치화함으로써 학습을 유도합니다.
728x90

'개발공부 > 인공지능' 카테고리의 다른 글

그리드서치와 랜덤서치  (0) 2025.06.09
교차검증  (0) 2025.06.09
일반화 (Generalization)  (0) 2025.06.03
선형 회귀 모델 (Linear Regression Model)  (0) 2025.06.03
볼록함수 (Convex Function)  (0) 2025.06.03