시작하며
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)