[Pattern Recognition] 07. Gradient Descent & Optimization

김기진·2025년 12월 22일

pattern-recognition

목록 보기
7/10

비용 함수 개념

  • 정의

    • 모델의 예측과 실제 값을 비교하여 모델 성능을 측정
  • 목적

    • 비용을 최소화 하기. 즉 예측이 실제 값에 가능한 가깝게 하기
  • NLL 과 크로스 엔트로피: MLE 기반 접근 방식에서 사용되는 비용함수.

    • logL(w,b)=i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]-\log L(w,b) = -\sum_{i=1}^{m} [y_i \log(h_\theta(x_i)) + (1-y_i) \log(1-h_\theta(x_i))]
    • J(w,b)=1mi=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]J(w,b) = -\frac{1}{m} \sum_{i=1}^{m} [y_i \log(h_\theta(x_i)) + (1-y_i) \log(1-h_\theta(x_i))]
  • 선형 회귀에서 MLE

    • 오류가 가우시안 분포에 따른다고 가정하고 가능도 추정
      • PDF 의 평균과 분산으로 최적의 회귀 파라미터 찾기
  • 로지스틱 회귀에서 MLE

    • 주어진 입력에 대하여 시그모이드 함수를 통해 확률을 추정

경사 하강법

  • 정의

    • 파라미터를 반복적으로 조정하여 비용함수를 최소화하는 알고리즘
  • 목표

    • 비용함수를 최소화하는 파라미터를 찾기
  • 작동 방식

    1. 임의의 초기 파라미터로 시작
    2. 비용 함수에 대한 파라미터의 그라디언트 계산
    3. 파라미터 업데이트
    4. 반복
  • 방정식

    • θj:=θjαθjJ(θ)\theta_{j} := \theta_{j} - \alpha \frac{\partial}{\partial \theta_{j}} J(\theta)
  • 스텝 크기에 따른 트레이드 오프

    • 작은 스텝: 최솟값으로 매우 느리게 수렴
    • 큰 스텝: 최솟값을 지나서 발산할 가능성 있음
    • 적절한 스텝: 효율적으로 최솟값 찾음

MSE 에서 경사 하강법 예시

% 선형 회귀의 비용 함수 (MSE) J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x_i) - y_i)^2
% 가설 함수 (Linear) h_\theta(x) = \theta^T x
% 비용 함수의 편미분 \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x_i) - y_i) x_{ij}
% 경사 하강법 업데이트 규칙 \theta_j := \theta_j - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x_i) - y_i) x_{ij}

로지스틱 회귀에서 경사 하강법 예시

% 로지스틱 회귀의 비용 함수 (Cross-Entropy) J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y_i \log(h_\theta(x_i)) + (1-y_i) \log(1-h_\theta(x_i))]
% 가설 함수 (Sigmoid) h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}
% 비용 함수의 편미분 \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x_i) - y_i) x_{ij}
% 경사 하강법 업데이트 규칙 \theta_j := \theta_j - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x_i) - y_i) x_{ij}

확률적 경사 하강법

  • 각 데이터 예제마다 모델 파라미터를 업데이트 하는 경사 하강법의 변형

  • 업데이트 규칙 (Update Rule)

    • θj+1:=θjα(hθ(xi)yi)xij\theta_{j+1} := \theta_j - \alpha (h_\theta(x_i) - y_i) x_{ij}
    • xi,yix_{i}, y_{i}: 단일 학습 예제
    • α\alpha: 학습률 (즉, 스텝 크기)
  • 왜 SGD 를 사용하는가

    • 효율성
      • 전체 데이터 셋을 한번에 처리하지 않고 각 예제 마다 파라미터를 업데이트 하므로 효율성이 좋음
    • 확장성
      • 전체 그라디언트를 계산하는 것이 비싼 대규모 데이터셋에서 잘 동작함
    • 무작위성
      • 노이즈는 모델이 지역 최솟값에 갇히는 것을 피하고 전역 최솟값에 도달하도록 함

미니 배치 경사 하강법

  • 배치: 단일 반복에서 그라디언트를 계산하는데 사용되는 데이터 포인트의 집합
  • 배치 크기: 모델 파라미터를 얼마나 자주 업데이트 할지. 업데이트 당 얼마나 많은 데이터를 사용할지 결정
  • 반복(iteration): 각 배치를 처리하는 것
  • 에폭(epoch): 모든 데이터를 처리하는 것

경사 하강법 비교

  1. 표준 경사 하강법
  • 배치: 전체 데이터 셋. 반복마다 전체 데이터셋을 사용. 단 하나의 배치 존재. 에폭당 하나의 배치
  • 장점: 안정적인 업데이트. 소규모 데이터 셋에 적합
  • 단점: 각 업데이트마다 전체 데이터셋을 처리해야하므로 비용이 많이듬
  1. 확률적 경사 하강법
  • 배치: 하나의 데이터 포인트. 데이터 포인트를 무작위로 선택하기 때문에 확률적이라 부름
  • 장점: 빠른 업데이트. 대규모 데이터에 적합. 로컬 미니멈 탈출.
  • 단점: 경로가 잡음이 많고 덜 안정적일 수 있음
  1. 미니배치 경사 하강법
  • 배치: 정의된 데이터 셋의 부분 집합. 고정된 크기의 여러개의 작은 배치로 나눔. 반복에는 하나의 배치씩
  • 장점: GD 의 안정성과 SGD 의 속도를 결합. GD 보다 효율적으로 계산하면서 SGD 보다 안정적
  • 단점: 최적의 성능을 위한 배치 크기 튜닝이 필요함

ADAM

  • ADAM 이 무엇인가
    • 모멘텀과 RMSprop 이라는 두가지 방법을 결합한 최적화 알고리즘
    • 각 파라미터에 대한 학습률을 적응적으로 조정하여 효과적임
    • 모멘텀 옵티마이저처럼 로컬 미니멈을 넘어감
    • RMSprop 처럼 학습률을 조정하여 안정적으로 최솟값에 수렴.
  1. 모멘텀
  • 과거 그레디언트의 지수적 감쇠 평균을 사용 (최근 데이터의 더 큰 의미 부여)
  • 잡음이 많은 그라디언트에 인한 변동을 완화
  • 로컬 미니멈을 탈출하고 글로벌 미니멈으로 이동에 도움
  • 오버슈팅 문제: 모멘텀이 너무 커서 최솟값을 지나칠 수 있음.
  • 공식
    • mt=β1mt1+(1β1)gtm_t = \beta_1 m_{t-1} + (1-\beta_1) g_t
    • mtm_{t}: 추정된 1차 모멘트 (즉, 그래디언트의 평균)
    • β1\beta_{1}: 1차 모멘트의 감쇠율 (일반적으로 0.9로 설정)
      • 과거의 그라디언트가 현재에 얼마나 영향을 줄지
    • gtg_{t}: 타임스텝 t에서의 그래디언트
    • tt: 타임스텝
  1. RMSprop
  • 제곱 그라디언트의 지수적 감쇠 평균을 사용

  • 옵티마이저가 그라디언트의 스케일에 적응하도록 도움

  • 학습률이 너무 커져 글로벌 미니멈을 지나치는 것을 방지

  • 공식

    • vt=β2vt1+(1β2)gt2v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2
    • vtv_{t}: 추정된 2차 모멘트 (즉, 제곱 그래디언트의 평균)
    • β2\beta_{2}: 2차 모멘트의 감쇠율 (일반적으로 0.999로 설정) (슬라이드의 β1\beta_1은 오타)
    • gt2g_{t}^{2}: 타임스텝 t에서의 제곱 그래디언트
  • ADAM 최종 형태

    • 1차 모먼트와 2차 모먼트는 0으로 초기화 됨
    • 학습 초기에는 실제 그라디언트 평균보다 0에 가깝게 편향되는 문제 발생
    • 편향 보정
      • m^t=mt1β1t\hat{m}_t = \frac{m_t}{1 - \beta_1^t}
      • v^t=vt1β2t\hat{v}_t = \frac{v_t}{1 - \beta_2^t}
    • 파라미터 업데이트
      • θt+1=θtαm^tv^t+ϵ\theta_{t+1} = \theta_t - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}
      • α\alpha: 학습률 (즉, 스텝 크기)
      • m^t\hat{m}_{t}: 편향이 보정된 1차 모멘트
      • v^t\hat{v}_{t}: 편향이 보정된 2차 모멘트
      • ϵ\epsilon: 0으로 나누는 것을 방지하기 위한 작은 상수
    • 1차 모먼트: 로컬 미니멈에 빠지는 걸 방지
    • 2차 모먼트: 글로벌 미니멈을 지나치는 걸 방지
  • 장점

    1. 적응형 학습률: 각 파라미터에 대해 개별적이고 적응적으로 학습률을 적용하여 효율적으로 학습
    2. 대규모 데이터셋에 효율적: 미니 배치 사용해 자주 업데이트, 최적화 된 보폭으로 빠르고 효율적인 학습
    3. 수렴 안정성: 로컬 미니멈 탈출, 오버슈팅 방지

요약

  • 경사 하강법
    • 경사 하강법은 비용을 최소화 하기 위해 파라미터를 반복적으로 업데이트
    • 종류: 표준, 확률적, 미니배치
    • Adam 옵티마이저는 모멘텀과 RMSprop 를 결합하여 적응형 학습률을 제공

0개의 댓글