목차
0. Linear Regression vs Linear Classifier
1. Linear Regression
2. k-NN
3. Linear Classifier
4. Softmax Classifier
0. Linear Regerssion vs Linear Classifier
시작하기 앞서 선형모델을 사용하는 선형 회귀와 선형 분류에 대해서 정리하고자 한다.
Linear Regression | Linear Classifier | |
정의 | 연속적인 값을 예측하는 회귀 문제 | 클래스를 예측하는 분류 문제 |
출력값 형태 | 예측된 연속형 변수 | 클래스 별 score (클래스 레이블 또는 확률) |
평가 지표 | MSE, MAE, RMSE | 크로스 엔트로피 손실 |
활성화 함수 | 일반적으로 사용하지 않음 | 시그모이드(이진분류), 소프트맥스(다중분류) |
목적 | 실제 값과 예측 값의 차이를 최소화 | 올바른 클래스를 예측할 확률을 최대화 |
1. Linear Regression (선형회귀)
선형회귀란, 종속변수 (y)와 하나 이상의 독립 변수(X) 간의 관계를 선형적으로 모델링 하는 기법을 말한다.
선형회귀를 통해 모델을 만들기 위해서는 관측 데이터가 다음의 4개의 가정을 만족해야한다.
- 선형성 : 종속변수와 독립변수 간의 관계가 선형성을 만족해야한다. 직선의 형태를 띤 관계가 있을 것이라고 가정하고, 선형의 모형을 적합시키는 기법이기에 선형성을 만족해야한다. (자명하다)
- 독립성 : 독립 변수가 많아질수록 독립 변수끼리 강한 상관관계가 나타나는 문제(다중공선성) 가 발생하기 때문에 독립적이어야 한다. ( 이를 제거하지 않는다면 원래 선형모델이 좋은 모델임에도 불구하고 그렇지 않은 성능을 보일 수 있다. )
- 등분산성 : 잔차의 분산이 일정해야한다. (특정한 패턴 없이 고르게 분포해야한다.)
- 정규성 : 잔차가 정규분포의 형태를 띄어야 한다.
즉, 위의 4가지 기본가정을 만족해야 유의한 선형회귀모델이 나온다.
최소제곱법 방법 (OLS)
: 오차(실제값 - 예측값) 을 최소화 시키는 방법으로 가중치를 추정하는 방법이다.
# closed form solution: w = (X^T * X)^(-1) * X^T * y
W = np.linalg.inv(X.T @ X) @ X.T @ y
bias = W[0]
weights = W[1:]
모델 평가 지표
: 회귀 모델이 데이터를 얼마나 잘 설명하고 있는가의 평가 지표로서 가장 많이 사용되는 4가지 지표다.
- MAE (평균 절대 오차) : 예측값과 실제값의 차이를 절대값으로 계산해 평균화한 지표 , 단위에 변화가 없기 때문에 해석이 간단하다
- MSE (평균 제곱 오차) : 예측값과 실제값의 차이를 제곱해 평균화한 지표, 제곱을 하기 때문에 오차가 클수록 페널티가 크다
- RMSE (제곱근 평균 제곱 오차) : MSE에 제곱근을 취한 지표, 가장 많이 사용되며 MSE의 단위 문제를 해결할 수 있다.
- R2 (결정계수) : 모델의 설명력을 나타내는 지표 (독립변수가 종속변수를 얼마나 잘 설명하는가), 1 - SSE/SST 로 나타낸다 (SSE : 실제값과 예측값 차이의 제곱합, SST : 실제값과 실제값의 평균 차이의 제곱합)
2. k-NN
머신러닝 지도학습 중 하나의 기법이며, 모델을 생성하지 않고 데이터를 분류하는 기법이다.
모든 데이터와 라벨을 기억해서 데이터에 가장 거리가 가까운 k개를 선택한 후 다수결의 법칙으로 '분류'하는 기법이다.
그렇다면, '가깝다'를 정의하는 거리 기준이 필요하다.
가장 유명한 L1, L2 norm 을 기준으로 생각해 볼 수 있겠지만, 이는 이미지 같은 고차원 데이터에는 사용하기 어렵다.
예를 들어, 이미지 간의 유사성을 파악하여 해당 레이블이 뭔지 알아내야하는 과제가 있다고 해보면, 픽셀간 거리가 semantic한 정보를 주지 않는다. 다시 말해서, 픽셀간 거리가 같다고 해서 해당 레이블이 정답이라고 보장할 근거가 없다.
또한, 학습하는 과정에서는 모든 이미지의 픽셀값과 레이블을 기억하면 되므로 O(1)의 시간복잡도를 가지지만, 예측하는 과정에서는 원하는 이미지와 다른 이미지들간의 거리를 매번 다시 계산해야하기 때문에 O(N)의 시간복잡도를 가진다. 이는 매우 비효율적인 방법이다.
cf) k-Means : 비지도학습의 기법으로 군집화 하는 방법이다.
3. Linear Classifier
위의 kNN 방법은 모든 데이터에 대한 거리 계산을 하고 가장 유사한 거리를 가진 레이블로 분류하는 방법이다. 모든 예제를 외우는 대신 이번에는 x를 y에 매핑하는 '함수'를 생각해보자. 가장 간단한 선형 함수부터 시작해보자.
선형 함수 : f = Wx + b = W'x'
x 를 이미지 데이터라고 생각해보면, 3개의 채널을 가지므로 32*32*3 = 3072 개의 픽셀 값을 가진다.
y 를 분류시켜야할 class 라고 하고 10개라고 가정하자.
그렇다면 해당 가중치 행렬 또한 3072 개의 값을 가져야하고, 해당 class 마다 3072 개의 값을 가져야하므로 총 shape은 (10, 3072) 가 되겠다. (각 row가 해당 class를 나타내는 가중치 값, 즉 [class1 에 대한 가중치], [class2 에 대한 가중치] .. 이런식으로 구성되어 있음)
b는 편향으로 특정 class의 분포가 치우쳐져있을 때, 데이터 자체 본성에 집중하도록 위/아래로 이동시켜주는 값으로 shape은 (10, 1)이 된다.
( W 가중치 값들은 어떻게 정해지냐면, 분류는 지도학습이므로 input에 대하여 각 레이블에 잘 매칭이 되도록 학습을 시켜서 W 가중치 행렬을 업데이트 해준다. )
행렬 곱을 통해서 결과를 본다면 (10,1) 의 형태가 되고, 각 값은 class별로 score가 되겠다.
즉, 하나의 이미지를 넣었을 때, 각각의 class 로 분류됐을 때의 점수를 반환해준다 (여기서는 총 10개)
위에서 봤던 kNN 은 N개의 데이터를 모두 비교해야하지만, 선형 분류기는 분류시킬 K개의 class에 대해서만 비교하면 되므로 훨씬 효율적이다.
4. Softmax Classifier
그렇다면 위에서 살펴본 score는 어떤 의미일까?
선형 분류기에서 나온 score를 0과 1의 수로 변환시켜 확률적으로 해석할 수 있게 해주는게 softmax 이다.
즉, score가 크면 클수록 해당 class에 속할 확률이 커짐을 의미한다.
cf) sigmoid vs softmax
'AI Tech 7기 > ML LifeCycle' 카테고리의 다른 글
선형모델, 2층 신경망 from scratch 실습 (0) | 2024.08.20 |
---|---|
RNN, LSTM, seq2seq 모델 (1) | 2024.08.16 |
신경망 모델 학습 과정 (0) | 2024.08.16 |
머신러닝 기초 (0) | 2024.08.13 |