250919 [ Day 54 ] - Machine Learning (2)

TaeHyun·2025년 9월 19일

TIL

목록 보기
56/182

시작하며

Machine Learning 파트의 2일차이다. 이제 Machine Learning의 기본적인 개념, 손실 함수의 최솟값을 구하기 위해 가중치 Weight와 편향 Bias를 기계가 스스로 업데이트해나가는 것이 확실히 어떤 느낌인지 알게 되었고, 그 과정에서 사용되는 Gradient Descent에 대해서도 꽤 감을 잡은 것 같다. 오늘은 Gradient Descent의 종류와 문제점, 그리고 그 과정에서 어떻게 미분이 이루어지는지를 주로 다루었다.

경사 하강법(Gradient Descent)

Convex Function

  • 아래로 볼록한 함수
  • 경사하강법은 Convex function 에서 잘 작동

Non-Convex Function

  • 볼록한 부분이 많아 Local min 이 생김
  • 최대한 Global min 으로 가는것이 목표

경사 하강법의 종류

  • 배치 경사 하강법 (Batch Gradient Descent, BGD)
    • 일반적인 경사 하강법
    • 무조건 Local minimum에 빠짐
  • 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
    • 오류를 하나씩 사용하여 손실 함수를 계산하고 매개변수를 업데이트
    • 계산 속도가 빠르지만 정확도가 낮음
    • 진동이 발생하여 Saddle point, Local minimum을 빠져나갈 가능성이 있음
  • 미니 배치 경사 하강법(Mini-batch Gradient Descent, MGD)
    • 여러 개의 작은 배치(하이퍼 파라미터)로 나눈 뒤, 각 배치에서 손실 함수를 계산하고 매개변수를 업데이트
    • 효율성과 안정성 간의 균형

Optimizer

  • 모델의 학습 과정을 제어하여, 손실 함수를 최소화하기 위해 사용되는 알고리즘 또는 방법론
    • Momentum : 이전 그라디언트를 기억하고 이후 업데이트에 관성 방향을 반영
    • RMSProp : 그라디언트가 가파르면 업데이트를 천천히, 완만하면 빠르게 업데이트
    • Adam : Momentum과 RMSProp을 같이 사용

역전파(Back Propagtion)

  • 오차를 계산하고, 이를 이용해 신경망의 가중치를 업데이트하는 알고리즘
  • 출력층부터 입력층까지 거꾸로 가면서 Chain Rule에 의거해서 각 가중치에 대한 미분
  • 발생한 오차에 대해서 각각 w에 대한 기여도를 계산하여 w를 업데이트

Chain Rule

  • 합성함수의 미분을 계산하는 수학적 규칙
  • 역전파는 미분을 이용 → 체인룰을 활용하여 오차가 각 가중치에 미치는 영향을 계산
  • 입력층에 가까울수록 계산이 깊어지면서 0에 수렴하기 때문에 가중치 업데이트가 잘 이루어지지 않음

분류(Classification)

  • 입력 데이터를 사전에 정의된 여러 클래스 중 하나로 구분하는 알고리즘
  • 분류란 최적의 결정 경계선(Decision Boundary)을 찾는 것 (선형 분류)

클래스

  • 이항 분류(Binary Classification): 두 가지 클래스만 구분
  • 다항 분류(Multi-class Classification): 세 가지 이상의 클래스를 구분
  • 다중 분류(Multi-label Classification): 샘플이 여러 클래스에 동시에 속할 수 있는 분류

분류 알고리즘 종류

  • 선형 모델
    • 로지스틱 회귀(Logistic Regression): 선형 방정식을 사용해 클래스 확률을 계산
  • 비선형 모델
    • 의사결정나무(Decision Tree): 데이터를 분할하여 예측
    • 랜덤 포레스트(Random Forest): 다수의 의사결정나무를 결합
    • 서포트 벡터 머신(SVM): 초평면(Hyperplane)을 사용해 클래스 간 경계를 설정

로지스틱 회귀(Logistic Regression)

  • 이항 분류에 사용
  • 선형 회귀를 기반으로 한 분류 알고리즘으로, 입력 데이터를 분석하여 특정 클래스에 속할 확률을 예측

계단 함수

  • 임계값(0)을 경계로 출력이 바뀌는 함수
  • 미분 불가능
  • 전달 값이 극단적(0, 1)

시그모이드(Sigmoid) 함수

  • 계단함수를 곡선의 형태로 변형시킨 형태
  • 입력값을 0과 1사이의 값(확률)으로 변환하는 활성화 함수
  • 중간값은 0.5

로지스틱 회귀의 손실함수

  • MSE를 대입하면 매우 복잡한 Non-Convex Function이 나옴
  • BCE(Binary Cross Entropy) : 이진 분류 문제에서 사용하는 손실 함수
    • BCE = -[y·log(p) + (1-y)·log(1-p)]

시그모이드 함수의 한계

  • 기울기 소실(Gradient Vanishing) 현상
  • 함수의 중심이 0이 아니다
  • 최근에는 자주 사용하지 않음
  • 모든 가중치에 대한 기울기 부호가 같아지는 경향 → 지그재그로 흔들림

다항분류와 Softmax

다항분류

  • 3개 이상의 Label을 갖는 데이터에 대한 분류 작업
  • 출력층 활성화 함수: 보통 Softmax를 사용
    • 각 클래스별 확률 값을 계산하여 전체 합이 1(확률 분포)이 되도록 정규화
    • ex) [0.1, 0.7, 0.2] → "클래스 2일 확률이 70%”

다항분류의 손실함수

  • 정답(Label) 형태: One-hot encoding(범주형 데이터를 0과 1로 이루어진 벡터로 표현하는 방법)
  • Entropy ≤ Cross Entropy : 달성 가능한 최저 손실의 이론적 하한선
  • CCE(Categorical Cross Entropy) = -Σ[c=1 to C] y_c × log(p_c)

Softmax

  • 여러 개의 출력 값을 확률(0~1 사이 값)로 바꾸어 주는 함수

마치며

헷갈리는 개념들과 잘 이해가 안 가는 부분도 많지만 상당히 재미있게 배우고 있다. 주말 동안 수학 공부를 열심히 해서 오늘 배운 수학 개념들을 더 이해할 수 있도록 해봐야겠다.

NOTION

MY NOTION (Machine Learning. 02)
MY NOTION (Machine Learning. 03)

profile
Hello I'm TaeHyunAn, Currently Studying Data Analysis

0개의 댓글