본문 바로가기
엑셈 경쟁력/시계열 데이터처리 AI 알고리즘

Chapter 3-2. 모델 훈련

by EXEM 2023. 1. 19.

 

Chapter 3-2. 모델 훈련

 

머신러닝 모델을 블랙박스로 취급하여도 모델을 훈련시키는 것은 가능하다. 하지만 훈련이 이루어지는 원리를 이해한다면 적절한 기법을 선택하여 훈련시간은 단축시키거나 모델의 성능을 높이는 것이 가능하다. 이번 장에서는 Chapter 3. 머신러닝에서 소개한 학습률, 비용 함수 등에 이어서 모델훈련에 필요한 몇 가지 개념을 다룬다.

 

 

경사 하강법

 

이전 장에서 언급한 것과 같이 비용 함수(Cost function)는 입력 데이터에 대한 오차를 계산하는 함수이다. 머신러닝에서는 오차를 줄이기 위해  다양한 최적화 알고리즘이 이용된다. 그 중에서 경사 하강법(Gradient Descent)은 가장 일반적인 최적화 알고리즘이다.

 

경사 하강법 [출처]: https://saugatbhattarai.com.np/what-is-gradient-descent-in-machine-learning/

 

그림과 같이 비용 함수가 주어진 경우 경사 하강법은 파라미터 벡터에 대해 현재 기울기를 계산한다. 그리고 기울기가 감소하는 방향으로 진행한다. 이는 비용 함수의 최소값에 수렴할 때까지 계속된다. 이때 중요한 하이퍼파라미터가 이전 장에서 소개했던 학습률(Learning rate)이다. 학습률은 Learning step의 크기를 결정한다. 아래 그림을 보면 학습률이 작을 경우 수렴에 많은 시간이 필요하지만 너무 큰 학습률은 비용 함수가 최소값에 수렴하지 않고 오히려 발산하는 그래디언트 폭주가 발생할 수 있다.

 

학습률에 따른 경사 하강법 [출처]: https://www.jeremyjordan.me/nn-learning-rate/

 

비용 함수의 형태가 매끄런 밥그릇 형태인 경우 경사 하강법은 잘 작동한다. 하지만 모든 비용 함수가 매끄러운 그릇 모양인 것은 아니다. 또한, 그릇 모양이더라도 특성들의 스케일이 다르면 최소값을 향해 곧장 진행하지 않아 학습에 오랜시간이 걸린다. 따라서 모델학습을 시킬 때 비용 함수의 형태에 주의할 필요가 있으며 특성의 스케일이 다를 경우 이를 맞춰야한다.

 

경사 하강법에서 비용 함수의 기울기 계산 방식에는 몇 가지 종류가 있다.

 

배치 경사 하강법, 확률적 경사 하강법, 미니배치 경사 하강법 [출처]: https://www.analyticsvidhya.com/blog/2022/07/gradient-descent-and-its-types/

 

 

배치 경사 하강법은 매 스텝마다 훈련 데이터 전체를 사용한다. 따라서 안정하지만 훈련에 많은 시간이 소요된다. 확률적 경사 하강법은 매 스텝마다 한 개의 샘플을 무작위로 선택하고 그 샘플에 대한 기울기를 계산한다. 훈련 속도는 배치 경사 하강법에 비해 훨씬 빠르지만 비용 함수가 최소값에 도달할 때 까지 요동이 지속된다. 끝으로, 미니배치 경사 하강법은 미니배치라고 부르는 임의의 작은 샘플 세트에 대해 기울기를 계산한다. 이 방법의 장점은 GPU를 통한 성능 향상이다. 또한, 미니배치 경사하강법은 확률적 경사 하강법에 비해 안정적으로 학습된다. 따라서 미니배치 경사하강법이 많은 경우 사용되고 있다. 하지만, 미니배치 경사하강법은 지역 최소값에 빠진 경우 빠져나오는 것이 더 어려울 수 있기 때문에 모델을 훈련할 때 다른 두 가지 방식의 경사 하강법도 고려해보아야한다. 

 

 

학습 곡선

 

모델의 일반화 성능을 추정하기 위해 이전 장에서는 교차 검증을 소개했다. 일반화 성능을 추정하는 또 다른 방법은 학습 곡선을 살펴보는 것이다. 학습 곡선은 훈련 데이터 셋의 크기에 따라 학습 데이터 손실과 검증 데이터 손실의 관계를 나타낸 것이다.

 

차원이 다른 회귀모델의 학습 곡선 [출처]: https://www.mdpi.com/2504-4990/1/1/32/htm

 

위 그림은 저차원 회귀모델부터 고차원 회귀모델까지의 학습 곡선이다. 빨간 점선은 목표하는 오차 지점을 의미한다. 1차원, 2차원 회귀모델의 경우 모델이 단순해서 목표한 오차 지점까지 훈련이 진행되지 않음을 확인할 수 있다. 이를 모델이 과소적합 되었다고 말한다. 반면, 9차원, 10차원 회귀모델의 경우 과대적합된 모델에 해당한다. 과대적합된 모델의 특징은 훈련 데이터의 오차가 매우 낮은 것이다. 또 다른 특징은 훈련 데이터와 검증 데이터 곡선 사이에 공간이 있는 것이다. 이 말은 검증 데이터에서보다 학습 데이터에서의 성능이 좋다 것으로 과대적합을 의미한다. 이상적인 모델은 4차원 회귀모델로 보인다. 4차원 회귀모델의 경우 목표하는 오차지점에 도달했으며 훈련 데이터와 검증 데이터 사이에 공간이 거의 없음을 확인할 수 있다.

 

 

규제가 있는 선형 모델

 

과대적합을 감소키는 다양한 방법들이 있다. 가장 대표적인 방법은 비용 함수에 규제항을 추가하는 것이다. 대표적인 규제 방법인 릿지와 라쏘에 대해 알아본다.

 

$$ J(\theta ) = MSE(\theta ) + \alpha \frac{1}{2}\sum_{i=1}^{n}{\theta}_{i}^{2} $$ $$ J(\theta ) = MSE(\theta ) + \alpha \sum_{i=1}^{n}\left| {\theta}_{i} \right| $$

 

처음 함수가 릿지 회귀의 비용 함수이고 아래의 함수가 라쏘 회귀의 비용 함수이다. 두 비용 함수를 보면 (잔차제곱합 항) + (규제 항)의 형태임은 동일하다. 차이는 규제 항의 형태에 있다. 릿지는 제곱 형태의 항을 이용하고 라쏘는 절대값의 형태를 이용한다.

 

라쏘 규제와 릿지 규제 [출처]: https://www.datacamp.com/tutorial/tutorial-lasso-ridge-regression

 

위의 그림은 직관적으로 두 규제의 차이를 보여준다. 기존에 규제가 없다면 최적해는 β hat이다. 하지만 라쏘와 릿지는 청록색 영역 안에 최적해가 들어가도록 규제한다. 그러다보니 β hat에서 가장 가까운 붉은색 타원과 청록색 부분이 만나는 지점이 최적해가 된다. 라쏘 규제의 경우 β10이다. 이는 β1해당하는 특성을 버림을 의미한다. 이처럼 라쏘는 특성을 하나씩 줄여서 차원을 줄여 나가게 된다. 릿지도 β의 값이 작아지지만 라쏘처럼 완전히 0이 되지는 않는다. , 특성의 영향이 줄어들기는 하지만 버리는 것은 아님을 의미한다. 이처럼 릿지와 라쏘는 규제를 통하여 특성에 대한 과대적합을 감소시킨다.

 

 

성능 평가

 

모델의 학습이 완료되면 성능을 평가해야한다. 예측 모델의 경우 주로 MAE, MSE 등이 사용된다. 반면, 분류 모델의 경우 사용하는 성능 지표가 훨씬 다양하다. 분류 모델은 분류의 카테고리가 두 가지인 이진 분류기와 카테고리가 세 가지 이상인 다중 분류기로 나뉜다. 여기서는 이진 분류기 통하여 분류 모델을 평가하는 다양한 지표에 대해 알아본다.

 

정확도는 가장 간단한 성능측정 방법이다. 정확도는 바르게 예측한 데이터의 수를 전체 데이터의 수로 나눈 값으로 아래의 식으로 나타낼 수 있다.

 

$$ Accuracy = \frac{TruePositive + TrueNegative}{TruePositive + TrueNegative + FalsePositive + FalseNegative} $$

 

이때 각 항의 의미는 모델의 성능을 평가하기 위하여 고안된 표인 아래의 혼동행렬을 통해 이해할 수 있다.

 

혼동행렬 [출처]: https://blog.naver.com/owl6615/222030981012

 

  • TN ( True Negative )  : 분류기 output(예측) 0 , 실제 값도 
  • FN ( False Negative ) : 분류기 output(예측) 0 , 실제 값은 1
  • TP ( True Positive )    : 분류기 output(예측) 1 , 실제 값도 1
  • FP ( False Positive )  : 분류기 output(예측) 1 , 실제 값은 0

 

데이터의 특성에 따라 정확도는 성능평가에 적합하지 않을 수 있다. 예를 들어, 이상을 탐지하는 모델을 만들 경우 현실에서 이상의 발생 횟수는 매우 적다. 만약, 모든 데이터가 정상이라고 판단하는 잘못 훈련된 모델이 존재한다고 가정하자. 이상 데이터는 극소수이기 때문에 해당 모델의 정확도는 매우 높을 것이다. 이런 문제를 해결하기 위해 정확도 이외에도 재현율, 정밀도 등의 성능지표가 필요하다. 아래는 순서대로 정밀도, 재현율의 식이다.

 

$$ Precision = \frac{TruePositive}{TruePositive + FalsePositive} $$ $$ Recall = \frac{TruePositive}{TruePositive + FalseNegative} $$

 

이러한 정밀도와 재현율을 한번에 고려한 측정 방법도 존재한다. F1 score는 정밀도와 재현율의 조화평균에 해당한다.

 

$$ f1 score = 2\times \frac{1}{\frac{1}{recall}+\frac{1}{precision}} = 2\times \frac{precision\times recall}{precision+recall}$$

 

정확도, 정밀도, 재현율, F1 score 중 어느 지표가 좋다고 정해져 있는 것은 아니다. 성능 평가 지표의 선택은 전적으로 모델의 맥락에 달려있다. 머신러닝을 활용하여 해결하려는 문제를 정확하게 파악하여 적절한 평가지표를 활용하는 것이 가장 중요하다.

 

기획 및 글 | AI모델팀 임상오

 

 

 

 

 

 

 

 

댓글