Vector Calculus
- Chain Rule
- 합성함수의 도함수를 구하는 공식
- Gradient
- 정의: 다변수 스칼라 함수의 도함수
- 해석: 스칼라장의 최대 증가율의 방향, 편미분들의 집합 ▶ 벡터
- Jacobian
- 정의: 다변수 벡터 함수의 도함수
- 해석: 그라디언트의 집합 ▶ 행렬
Iterative Optimization (반복 최적화)
ML as an Iterative Optimization
- 기계학습에서 해야 할 일을 식으로 정의하면, 주어진 비용함수 \( J(\underline{θ}) \)에 대해 \( J(\underline{θ}) \)를 최소로 하는 최적해 \( \hat{\underline{θ}} \) 을 찾는 것
- 즉 기계학습은 조건을 충족하는 최적의 파라미터 \( \hat{\underline{θ}} = argmin_{\underline{θ}}J(\underline{θ}) \)을 찾는 작업이라고 할 수 있음
- 또한 기계학습의 궁극적인 목표는 다음과 같음
- 훈련집합에 없는 새로운 샘플(테스트 집합)에 대한 오류 최소화
- 테스트 집합에 대한 높은 성능을 일반화(generalization) 능력이라고 부름
General Principles
- 아래와 같은 환경이 주어졌을 때 기계학습의 일반적인 원리는 다음과 같다
- Training Dataset: D
- Model & Predicted Output: \( \hat{y} = h_{\underline{θ}}(x) \)
- Cost Function: \( J(\underline{θ}) \)
- 파라미터 \( \underline{θ} \)를 초기화한다
- 매 에폭(epoch)마다, 그리고 한 에폭 안에서의 매 부분집합(batch)마다
- 결과를 예측하고 (\( \hat{y} \)), 비용함수를 계산 (\( J(\underline{θ}) \))
- 비용함수의 결과가 조건을 충족하면 종료
- 충족하지 않으면 파라미터를 갱신하고(\( \underline{θ} \)) 다시 과정을 반복
- 여기서 epoch이란 전체 훈련 데이터셋을 얼마나 학습시킬 것인가에 관한 것으로 100 epoch이라는 뜻은 전체 훈련 데이터셋을 100회 학습시키는 것을 의미
- batch는 1 epoch에서 다시 얼마 만큼의 부분집합으로 나눠서 학습시킬 것인가에 관한 것
Learning Modes
- 배치 크기를 어떻게 설정하는 지에 따라 여러 학습 모드가 존재
- On-line mode
- 매 훈련 샘플마다 파라미터를 갱신하며 학습하는 방법
- 즉 1000개의 샘플로 구성된 훈련 데이터셋이 있을 때 한 번의 에폭에서 파라미터는 1000번 갱신됨
- Batch mode
- 매 에폭마다 파라미터를 갱신하며 학습하는 방법
- 훈련 데이터셋에 샘플이 몇 개가 있든 한 번의 에폭에서 파라미터는 한 번 갱신됨
- Mini-batch mode
- 별도로 설정한 매 배치 크기마다 파라미터를 갱신하며 학습하는 방법
- 예를 들어 훈련 데이터셋이 1000개의 샘플로 구성되어 있을 때 배치 크기를 100으로 설정하면 위의 2번 과정을 총 10번 반복하는 셈
Gradient Descent (경사 하강법)
위에서 다룬 기본적인 원리에서 비용함수가 조건을 충족하지 않는 경우 파라미터를 갱신해야 한다. 파라미터를 갱신하는 방법에는 여러가지가 있는데 경사 하강법은 대표적인 갱신 방법론이다.
'기계학습' 카테고리의 다른 글
[기계학습] Intro (0) | 2024.07.30 |
---|