본문으로 이동

LightGBM

위키백과, 우리 모두의 백과사전.
LightGBM
원저자구오린 케[1] / 마이크로소프트 리서치
개발자마이크로소프트 및 LightGBM 기여자[2]
발표일2016년(10년 전)(2016)
안정화 버전
v4.3.0[3] / 2024년 1월 15일(2년 전)(2024-01-15)
저장소github.com/microsoft/LightGBM
프로그래밍 언어C++, 파이썬, R, C
운영 체제윈도우, macOS, 리눅스
종류기계 학습, 그라디언트 부스팅 프레임워크
라이선스MIT 허가서
웹사이트lightgbm.readthedocs.io

LightGBMLight Gradient-Boosting Machine의 약자로, 기계 학습을 위한 자유-오픈 소스 분산 그라디언트 부스팅 프레임워크이며, 원래 마이크로소프트에서 개발했다.[4][5] 이 프레임워크는 결정 트리 알고리즘을 기반으로 하며 순위 학습, 통계적 분류 및 기타 기계 학습 작업에 사용된다. 개발 중점은 성능과 확장성에 있다.

개요

[편집]

LightGBM 프레임워크는 GBT, GBDT, GBRT, GBM, MART[6][7]RF를 포함한 다양한 알고리즘을 지원한다.[8] LightGBM은 희소 최적화, 병렬 훈련, 다중 손실 함수, 정규화, 배깅, 조기 종료 등 XGBoost의 많은 장점을 가지고 있다. 두 가지의 주요 차이점은 트리의 구성에 있다. LightGBM은 대부분의 다른 구현에서와 같이 레벨별로(행 단위로) 트리를 성장시키지 않는다.[9] 대신 잎(leaf)-단위로 트리를 성장시킨다. 최대 델타 손실을 가진 잎을 선택하여 성장한다.[10] 또한 LightGBM은 XGBoost 또는 다른 구현에서처럼 정렬된 특성 값에서 최적의 분할 지점을 검색하는 널리 사용되는 정렬 기반 결정 트리 학습 알고리즘을 사용하지 않는다.[11] 대신 LightGBM은 고도로 최적화된 히스토그램 기반 결정 트리 학습 알고리즘을 구현하여 효율성과 메모리 소비 모두에서 큰 장점을 제공한다.[12] LightGBM 알고리즘은 Gradient-Based One-Side Sampling (GOSS) 및 Exclusive Feature Bundling (EFB)이라는 두 가지 새로운 기술을 활용하여 높은 수준의 정확도를 유지하면서 알고리즘을 더 빠르게 실행할 수 있도록 한다.[13]

LightGBM은 리눅스, 윈도우, macOS에서 작동하며 C++, 파이썬,[14] R, C#을 지원한다.[15] 소스 코드는 MIT 허가서에 따라 라이선스가 부여되며 깃허브에서 사용할 수 있다.[16]

경사 기반 단측 샘플링

[편집]

경사 하강법을 사용할 때, 모델의 가능한 구성 공간을 계곡으로 생각하는데, 이 계곡의 가장 낮은 부분이 데이터에 가장 근접하게 맞는 모델이다. 이 비유에서, 계곡이 얼마나 더 낮아지는지 배우기 위해 다른 방향으로 걷는다.

일반적으로 경사 하강법에서는 전체 데이터 집합을 사용하여 계곡의 기울기를 계산한다. 그러나 이 일반적으로 사용되는 방법은 모든 데이터 포인트가 동일하게 유익하다고 가정한다.

대조적으로, 경사 부스팅 결정 트리를 위해 처음 개발된 방법인 Gradient-Based One-Side Sampling (GOSS)은 모든 데이터가 동일하게 유익하다는 가정에 의존하지 않는다. 대신, 더 작은 경사(더 얕은 기울기)를 가진 데이터 포인트를 무작위로 제거하여 덜 유익한 것으로 간주한다. 이는 노이즈의 영향을 받았을 수 있는 데이터를 걸러내어 모델이 데이터의 기본 관계를 더 정확하게 모델링할 수 있도록 하기 위함이다.[13]

배타적 특징 번들링

[편집]

배타적 특징 번들링(EFB)은 유효 특징의 수를 줄이는 거의 무손실 방법이다. 희소 특징 공간에서 많은 특징은 거의 배타적이며, 이는 동시에 0이 아닌 값을 거의 취하지 않는다는 것을 의미한다. 원-핫 인코딩된 특징은 배타적 특징의 완벽한 예이다. EFB는 이러한 특징들을 묶어 차원수를 줄여 효율성을 향상시키면서 높은 수준의 정확도를 유지한다. 배타적 특징을 단일 특징으로 묶는 것을 배타적 특징 번들(exclusive feature bundle)이라고 한다.[13]

같이 보기

[편집]

각주

[편집]
  1. Guolin Ke. GitHub.
  2. microsoft/LightGBM. GitHub. 2022년 7월 7일.
  3. Releases · microsoft/LightGBM. GitHub.
  4. Brownlee, Jason (2020년 3월 31일). Gradient Boosting with Scikit-Learn, XGBoost, LightGBM, and CatBoost.
  5. Kopitar, Leon; Kocbek, Primoz; Cilar, Leona; Sheikh, Aziz; Stiglic, Gregor (2020년 7월 20일). Early detection of type 2 diabetes mellitus using machine learning-based prediction models. Scientific Reports 10. 11981쪽. Bibcode:2020NatSR..1011981K. doi:10.1038/s41598-020-68771-z. PMC 7371679. PMID 32686721 www.nature.com 경유.
  6. Understanding LightGBM Parameters (and How to Tune Them). neptune.ai. 2020년 5월 6일.
  7. An Overview of LightGBM. avanwyk. 2018년 5월 16일.
  8. Parameters — LightGBM 3.0.0.99 documentation. lightgbm.readthedocs.io.
  9. The Gradient Boosters IV: LightGBM – Deep & Shallow
  10. Features. LightGBM Official Documentation. 2024년 11월 3일.
  11. Manish, Mehta; Rakesh, Agrawal; Jorma, Rissanen (2020년 11월 24일). SLIQ: A fast scalable classifier for data mining.. International Conference on Extending Database Technology. 18–32쪽. CiteSeerX 10.1.1.89.7734.
  12. Features — LightGBM 3.1.0.99 documentation. lightgbm.readthedocs.io.
  13. 1 2 3 Ke, Guolin; Meng, Qi; Finley, Thomas; Wang, Taifeng; Chen, Wei; Ma, Weidong; Ye, Qiwei; Liu, Tie-Yan (2017). LightGBM: A Highly Efficient Gradient Boosting Decision Tree (영어). Advances in Neural Information Processing Systems 30.
  14. lightgbm: LightGBM Python Package. 2022년 7월 7일 PyPI 경유.
  15. Microsoft.ML.Trainers.LightGbm Namespace. docs.microsoft.com.
  16. microsoft/LightGBM. 2020년 10월 6일 GitHub 경유.

더 읽어보기

[편집]

외부 링크

[편집]