지원되는 알고리즘

상수 모델

상수 모델(Constant Model)은 입력 데이터에 대해 동일한 상수 값을 예측합니다. 상수 값은 지정된 스코어러를 최적화하여 계산됩니다. 예를 들어, MSE/RMSE의 경우 상수는 대상 열의 (가중치) 평균입니다. MAE의 경우에는 (가중치) 중앙값입니다. MAPE 등의 기타 스코어러나 사용자 정의 스코어러의 경우, 최적화 프로세스를 통해 상수를 찾습니다. 분류 문제의 경우에 상수 확률은 관측된 사전 확률입니다.

상수 모델은 기준 참조 모델을 위한 것입니다. 최종 파이프라인에서 사용되면, 데이터 세트 또는 대상 열에 문제가 있다는 뜻이므로 경고가 발생합니다(예: 무작위 결과를 예측하려고 시도하는 경우).

Decision Tree

Decision Tree는 학습 데이터 모집단을 결과가 유사한 하위 그룹(리프 노드)으로 분할하는 단일(바이너리) 트리 모델입니다. 행 또는 열 샘플링을 수행하지 않으며, 트리 깊이 및 성장 방법(depth-wise 또는 loss-guided)은 하이퍼 매개 변수로 제어합니다.

FTRL

FTRL(Follow the Regularized Leader)은 [4]에서 제안한 FTRL-Proximal 온라인 학습 알고리즘의 데이터 테이블 구현 [1]입니다. 이 구현은 병렬 처리를 위해 해시 트릭과 Hogwild 접근 방식 [3]을 사용합니다. FTRL은 범주형 대상에 대해 이항 및 다항 분류를 지원하며, 연속 대상에는 회귀 분석을 지원합니다.

GLM

GLM(Generalized Linear Models)은 지수 분포(exponential distribution)에 따른 결과의 회귀 분석 모델을 추정합니다. GLM은 기존 선형 모델의 확장입니다. 다음과 같은 이유로 통계 데이터 분석에 많이 사용되고 있습니다.

  • 전통적 회귀 분석 방법(바이너리 분류에 대한 linear regression 및 로지스틱 회귀 분석)을 통합하는 모델 구조의 유연성

  • 최근 출시되는 모델 피팅 소프트웨어

  • 대규모 데이터 세트로 확장 가능한 기능

Driverless AI는 모델링을 위해 XGBoost GLM 구현(부스터=gblinear)을 사용합니다. 이 GLM은 조기 종료될 수 있습니다.

Isolation Forest

Isolation Forest는 데이터의 이상(anomaly) 또는 outliers를 식별하는 데 유용합니다. Isolation Forest는 특성을 무작위로 선택한 다음 선택한 특성의 최대값과 최소값 사이의 분할값을 무작위로 선택하여 관측치를 분리합니다. 이 분할은 포인트를 분리하는 데 걸린 시간에 따라 다릅니다. 무작위 파티셔닝에서는 이상에 대해 현저하게 짧아진 경로가 생성됩니다. 임의의 트리로 된 포레스트(forest)가 집합적으로 특정 샘플에 대해 더 짧은 경로를 생성하는 경우, 이는 이상 현상일 가능성이 높습니다.

LightGBM

LightGBM은 트리 기반 학습 알고리즘을 사용하는 Microsoft의 그래디언트 부스팅(gradient boosting) 프레임워크입니다. 메모리 사용량을 줄이고 학습 속도와 효율성을 높이도록 특수 설계되었습니다. XGBoost와 마찬가지로 최고의 그래디언트 부스팅 구현 중 하나입니다. 또한, Driverless AI 내부의 Random Forest, DART(실험), Decision Tree 모델 피팅에도 사용됩니다.

PyTorch 모델

PyTorch 는 자연어 처리 및 컴퓨터 비전 등의 딥 러닝 태스크에 사용되는 오픈 소스 라이브러리입니다.

Driverless AI의 NLP BERT 모델은 PyTorch를 사용하여 구현됩니다. 자세한 내용은 NLP in Driverless AI 를 참조하십시오.

PyTorch Grownet 모델

그래디언트 부스팅 신경망 또는 GrowNet 은 얕은 신경망에 그래디언트 부스팅을 적용합니다. GrowNet은 k개의 신경망 모델로 구성된 앙상블입니다. 각 모델에는 원래 기능 및 이전 모델의 예측이 제공됩니다. 모든 모델의 예측을 합산하여 최종 출력을 생성합니다. 모든 모델은 숨겨진 레이어가 하나만 있는 것처럼 간단할 수 있습니다. 논문에 따르면 GrowNet은 심층 신경망 보다 튜닝하기 쉽고 학습에 더 적은 계산 비용과 시간이 필요하지만 여러 데이터 세트에서 회귀, 분류 및 순위 부여에서 심층 신경망을 능가하는 것으로 보입니다.

Driverless AI는 Grownet의 Pytorch 구현 을 통합합니다. 모델 상세 설정 매개변수 enable_grownet 이 실행을 제어합니다.

Random Forest

Random Forest는 동일한 훈련 데이터의 서로 다른 부분에 대해 여러 심층 의사 결정 트리의 평균을 구합니다.

Driverless AI는 모델링을 위해 XGBoost RandomForest (XGBRF) 및 LightGBM RandomForest (boosting=rf) 구현을 모두 지원합니다.

RuleFit

RuleFit [2] 알고리즘은 먼저 트리 모델을 피팅한 다음 Lasso(L1-regularized) GLM 모델을 피팅하여 가장 중요한 트리 리프(규칙)로 구성된 선형 모델을 만들어서 최적의 결정 규칙 세트를 생성합니다.

MOJO는 현재 RuleFit 모델에 사용할 수 없습니다.

TensorFlow

TensorFlow 는 고성능 수치 계산을 수행하기 위한 오픈 소스 소프트웨어 라이브러리입니다. Driverless AI에는 CNN 광고 BiGRU(RNN) Deeplearning 모델을 기반으로 하는 TensorFlow NLP 레시피와 이미지 데이터용 Tensorflow Imagenet 모델 이 포함됩니다.

현재 TensorFlow 모델에는 C++ MOJO만 사용할 수 있습니다.

XGBoost

XGBoost는 정확한 모델을 산출하기 위해 부스팅이라는 프로세스를 구현하는 감독 학습(supervised learning) 알고리즘입니다. 부스팅(Boosting)은 여러 모델을 순차적으로 빌드하는 앙상블 학습 기술을 말하며, 새로운 모델은 각각 이전 모델의 결함을 수정하려고 시도합니다. 트리 부스팅에서 앙상블에 추가되는 각각의 새 모델은 Decision Tree입니다. XGBoost는 빠르고 정확한 방법으로 다양한 데이터 과학 문제를 해결하는 병렬 트리 부스팅(GBDT, GBM)을 제공합니다. 많은 문제에서 XGBoost는 현재 최고의 GBM(gradient boosting machine, 그래디언트 부스팅 머신) 프레임워크 중 하나입니다.

Driverless AI는XGBoost GBM 및 XGBoost DART 모델을 지원합니다.

영과잉 모델

영과잉(Zero-inflated) 모델은 예를 들어 보험 청구 사용 사례에서 목표 변수에 0 카운트가 너무 많은 데이터를 피팅합니다. Driverless AI에서, 이 모델은 0과 0이 아닌 값을 분류하려고 시도하는 분류기를 학습합니다. 그런 다음 0이 아닌 값을 예측하려고 시도하는 회귀 분석 모델을 학습합니다. 분류기 예측에 회귀 분석 예측을 곱하여 최종 출력값을 결정합니다.

Driverless AI는 영과잉 모델의 LightGBM 및 XGBoost 버전을 모두 지원합니다.

참고자료

[1] DataTable for Python, https://github.com/h2oai/datatable

[2] J. Friedman, B. Popescu. 《Predictive Learning via Rule Ensembles》. 2005. http://statweb.stanford.edu/~jhf/ftp/RuleFit.pdf

[3] Niu, Feng, et al. 《Hogwild: A lock-free approach to parallelizing stochastic gradient descent.》 Advances in neural information processing systems. 2011. https://people.eecs.berkeley.edu/~brecht/papers/hogwildTR.pdf

[4] McMahan, H. Brendan, et al. 《Ad click prediction: a view from the trenches.》 Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2013. https://research.google.com/pubs/archive/41159.pdf