목차
- 기본 Notation
- 기초수학 이론
- 경사하강법
1. 기본 Notation
Regression vs Classification
Regression(회귀)
- input: 연속값(실수형), 이산값(범주형) 모두 가능
- output: 연속값(실수형)
- 일반적인 함수 형태(y=w1x+w0)
Classification(분류)
- input: 연속값(실수형), 이산값(범주형) 모두 가능
- output: 이산값(범주형)
- 이진 분류엔 sigmoid 함수, 다중 분류에는 softmax 함수 등이 존재한다.
Notations for ML
- 데이터 구성
- feature: data의 특징 (독립 변수) X로 표현
- |X| = (N, D) (N: data 갯수, D: attribute 개수)
- feature는 attribute으로 이루어져 있음(ex: 성별, 나이, 몸무게 etc)
- label: data에서 예측하고 싶어하는 특징 (종속 변수) y로 표현
결국 label이 범주형이면 classification 문제가 되고, label이 실수형이면 regression 문제가 되는 것
- Parameter (=weight, 파라미터, 가중치)
- 모델이 학습 가능한 변수
- w0,w1,⋯,wn
- feature의 작용하는 가중치를 모델이 학습하면서 결정함
- Hyperparameter (하이퍼 파라미터)
- 모델 학습에 있어, 인간이 정해야하는 변수
- lr, batch size etc
!! AutoML과 같은 Hyperparameter 조차 기계가 설정할 수 있는 분야도 현재 탄생중
- Input vs Output
- input: data의 feature 파트 (x 부분)
- output: 모델로부터 출력되는 예측값 (y^ 부분)
학습데이터 | 평가데이터
- 현재 가진 학습데이터를 w를 가지고 결과값을 도출
- 인간이 가지고 있는 라벨 값과 비교하여 loss를 계산
- loss를 머신한테 넘겨줌
- 다시 학습함(update)
- 이후 학습을 모두 진행 후, 평가데이터로 결과를 도출
선형 모델 vs 비선형 모델
2. 기초수학 이론
기초적인 용어 및 개념
- 함수: 두 집합 사이의 관계 및 규칙 (y=f(x))
- 미분: 함수의 순간변화율
- 함수의 최솟값: 미분값이 0
sigmoid 함수
- 이진 분류를 위해 사용되는 함수 중 하나
- y=1+e−x1
- 0≤y≤1
- 중앙 출력값 = 0.5
softmax 함수
- 다중 분류를 위한 함수 중 하나
- yi=Σk=1Kexkexi
Linear regression
여기서 linear regression의 의미는 선형 함수로 경계를 나눈다는 의미가 아님
- 단순 선형 회귀 (simple linear regression): feature가 하나인 data에 대한 regression model
- y=w0+w1x
- 다중 선형 회귀 (multiple linear regression): feature가 여러개인 data에 대한 regression model
- y=w0+w1x1+⋯+wDxD
- 다항 선형 회귀 (polynomial regression): feature의 차수가 다양한 regression model
- y=w0+w1x+w2x2+⋯+wDxD
How to find optimal parameters?
-> 손실 함수값을 최소로 만드는 parameter를 찾으면 된다.
3. 경사하강법
How to find w∗ (optimal weight)
Advanced math for ML
Loss function(손실함수)
문제(분류, 회귀)에 따라 어울리는 손실함수가 존재한다. 그렇기 때문에 어떤 손실함수를 사용할 지 정하는 것도 중요하다.
- 평균 제곱 오차 (mean squared error, MSE)
- regression 문제에서 대표적인 손실함수
- 오차의 제곱의 평균
- L=N1Σi=1N(yi−yi^)2
Least Square method
평균 제곱 오차 손실 함수를 사용한 모델의 optimal weight를 구할 수 있는 방식
- 단순 선형 회귀인 경우
y^=ax+b
L=Σi=1N(yi−(axi+b))2
결국 다음 편미분을 만족하는 a∗,b∗를 찾으면 되는 것
- 0=∂a∂L
- 0=∂b∂L
- 행렬에 대한 편미분으로 접근
L=∣∣Y−WX∣∣2 행렬에 대한 편미분하기
∂W∂L=−2XT(Y−WX)=0
∴W=(XTX)−1XTY
그러나 LSM에는 문제가 존재한다.
1. 복잡한 함수의 경우, 최소제곱법으로 해결하기 어려움
2. 비용이 너무 많이 드는 문제
Gradient descent
- 손실 함수의 값을 최소화 시키는 방향으로 parameter를 update하는 방식
방법?
1. 함수의 최솟값 = 함수의 순간변화율이 0인 부분
2. 미분값의 반대방향으로 파라미터 값 update
3. 0이 될 때까지 epoch만큼 반복하기