본문 바로가기
클래스 리뷰/22.12 K-Digital 기초역량훈련 딥러닝 강의

[패스트캠퍼스] 딥러닝 강의 - 4주차 학습일지 - 회귀 모델 정리

by 직_장인 2023. 2. 3.

4주차 요약

4주차는 지도학습(Supervised Learning)의 한 부분인 회귀(Regression)에 대해 공부했다.

4가지 모델(Linear Regression, Lasso & Ridge, XGBoost, LightGBM)에 대한 이론 설명과 실습으로 구성되었다.

(이론 정리부터 하고 실습은 추후에 첨부할 예정이다.)

 

회귀(Regression) 모델

1). Linear Regression(선형 회귀)

https://medium.com/analytics-vidhya/new-aspects-to-consider-while-moving-from-simple-linear-regression-to-multiple-linear-regression-dad06b3449ff

위 그림은 Weight, Horseposer에 따른 MPG와의 관계를 좌표로 표시한 그래프이다.

식으로 표현하면 y(MPG) = W1 * X1(Weight) + W2 * X2(Horseposer) + b로 나타낼 수 있다.

만약 위 그림처럼 데이터들이 선형성을 갖고,

이를 가장 잘 표현하는 함수를 찾는다면,

X가 주어졌을 때 y를 쉽게 계산할 수 있을 것이다.

이렇듯 X, y와의 관계를 찾는 것이 Linear Regression 모델이다.

 

X, y 값은 알고있기 때문에, 학습을 통해 W1, W2, b값을 찾는것이 목표이다.

 

학습과정은, 위에 보이는 면을 요리조리 돌리면서 주어진 데이터(점들)와의 오차가 최소화되는 상태를 찾는 것이다.

점들과의 오차가 최소일 때의 면의 상태가 결국 데이터들과 가장 가까운 상태일 것이다.

 

그럼 점들과의 오차를 어떻게 계산할 것인가?

이를 계산하는게 Loss function인데, 회귀에서는 주로 MSE(Mean Squared Error)를 사용한다고 한다.함수식을 통해 예측한 y값과, 실제 y값의 차이를 모든 데이터에 대해 평균적으로 구한다.(평균을 계산하는 방법의 특징 중 하나가 Outlier(특별히 이상한 데이터)에 민감하다는 것이다. 가능한 미리 제거하거나 보정한다.)

 

 

2). Lasso & Ridge()

https://towardsdatascience.com/from-linear-regression-to-ridge-regression-the-lasso-and-the-elastic-net-4eaecaf5f7e6

위에서 설명했듯, Linear Regression은 W1 * X1 + W2 * X2 ... 이런식으로 식이 만들어진다.

하지만 X1이 갖는 의미와 X2의 의미가 차이가 있다면? 혹은 중요도가 다르다면?

가중치에 해당하는 W1, W2를 계산 식으로 조절하여, 덜 중요한 X는 0 혹은 0에 가깝게 만드는 방법이다.

이때 추가되는 W에 대한 식을 regularization term(정규화 항)이라고 하며, 

Lasso는 L1 term을, Ridge는 L2 term을 이용한다.

(자료검색을 하다보니 L1+L2인 Elastic Net이라는 것도 나오더라...)

 

 

3). XGBoost

https://static1.squarespace.com/static/59f31b56be42d6ba6ad697b2/t/5a72f3ee8165f596c6ec1ee7/1517482994580/Presentatation+BI+lunch+XGBoost.pdf

 

XGBoost(Extreme Gradient Boosting)는 Gradient Boosting Model을 시스템 최적화 한 모델이다.

Tree 모델에서 최적 분할 포인트를 찾을 때, feature를 정렬하는 과정에서 Cost를 가장 많이 사용하는걸 확인하고, 정렬을 block 단위로 잘라서 학습하는 방식이다.

이렇게 하면 병렬처리가 가능하기 때문에 더 빠른 계산이 가능하고, 대용량 데이터에도 사용 가능하다.

분류(Classification), 회귀(Regression) 모두 사용 가능하다.

 

+) Gradient Boosting 추가설명

앞서 배운 Boosting 다음이 Gradient Boosting이고, 그 다음이 XGBoost이다.

방법은, 첫 번째로 만들어진 Decision Tree가 학습했을 때 잘못 분류한 부분을 두 번째 Decision Tree가 보완하면서 학습이 진행된다.

그리고, Decision Tree가 연속적으로 만들어지면서 학습오차가 작아지도록 Gradient 학습을 한다. 

단점은 Sequential 모델이기 때문에 느리다는 것...

 

 

4). LightGBM

https://medium.com/data-reply-it-datatech/lightgbm-for-timeseries-forecasting-408971289a12

LightGBM 모델을 공부하기에 앞서, Tree모델의 두가지 학습방법을 알아야 한다.

 

1). Level-wise tree growth

- 같은 층(Level)을 기준으로 분할하고, 다음으로 넘어가는 방식.

- 한 Level에서 분할을 다 계산하고 넘어가기 때문에 학습 속도가 느림.

- Depth가 커질수록 overfitting이 커지게 되는데, 이를 방지할 수 있음.

 

2). Leaf-wise tree growth

- Level에 관계 없이 전체 Loss가 줄어들도록 학습.

- 직관적으로 Level-wise 방법보다 빠르다는걸 알 수 있음.

- Level-wise와 반대이기 때문에, overfitting에 취약함. 대용량 데이터에 적합함.

 

LightGBM은 Leaf-wise 방법을 따르기 때문에 빠르고 성능이 좋다.

하지만 Depth와 같은 hyper-parameter에 민감하게 반응하기 때문에, 이를 유의해야 한다.

LightGBM은 성능이 좋아서 많이 사용되는 모델이라고 한다.

 

 

회귀모델 정리는 여기까지!

 

 

 

※ 이 글은 내일배움카드를 이용한 국비지원교육인 K-Digital 기초역량훈련 딥러닝 강의 학습일지입니다.

※ 강의내용을 그대로 가져온 것이 아닌, 학습 과정을 기반으로 개인적으로 풀어 쓴 학습일지입니다.

댓글