설명
Neural Oblivious Decision Ensembles (NODE)는 테이블 형식 데이터에 대한 딥러닝을 위한 Neural Oblivious Decision Ensembles에 관한 연구 논문의 보조 코드 저장소입니다. 이 프로젝트는 테이블 형식 데이터셋에 특화된 맹목적이고 미분 가능한 결정 트리의 딥 앙상블 학습에 중점을 둡니다. 핵심 혁신은 전통적으로 그래디언트 부스팅 머신과 더 간단한 트리 기반 모델이 지배했던 영역인 구조화된 데이터에 딥러닝 기술을 적용하는 데 있습니다.
NODE의 아키텍처는 테이블 형식 데이터 내의 복잡한 관계를 포착할 수 있는 복잡한 앙상블 기반 모델의 생성을 가능하게 합니다. 미분 가능한 결정 트리를 활용함으로써, 시스템은 표준 신경망과 유사하게 경사 하강법을 사용하여 종단 간 학습이 가능합니다. 이 접근 방식은 결정 트리의 해석 가능성과 구조와 딥 신경망의 강력한 학습 능력을 독특하게 결합합니다.
이 프로젝트는 CPU와 가급적 하나 이상의 GPU가 있는 기기에서 실행할 수 있는 Python 구현을 제공합니다. GPU 없이 실행하는 것도 가능하지만 훨씬 느립니다. 이 구현은 메모리 비효율적인 것으로 알려져 있으며 수렴을 위해 상당한 GPU 메모리가 필요할 수 있습니다. Ubuntu 16.04와 같은 Linux x64 배포판에서 테스트되었으며 다른 인기 있는 Linux 배포판 및 macOS에서도 작동할 것으로 예상됩니다. Windows 및 x32 시스템의 경우 상당한 수정이 필요할 수 있으며, 특히 nvidia-docker와 같은 GPU 지원 버전의 Docker 사용을 권장합니다.
NODE를 실행하려면 사용자는 저장소를 클론하거나 다운로드하고, Python 환경(Anaconda 권장)을 설정하고, `requirements.txt`에서 필요한 패키지를 설치해야 합니다. 중요한 종속성은 `torch >= 1.1`입니다. 사용자는 또한 제공된 `.ipynb` 파일을 작업하기 위해 Jupyter Notebook 또는 유사한 도구가 필요합니다. 노트북의 첫 번째 셀을 실행하기 전에 `CUDA_VISIBLE_DEVICES` 환경 변수를 원하는 GPU 인덱스로 설정해야 합니다. 노트북은 Dropbox에서 데이터셋을 다운로드하며, 1-5GB의 디스크 공간이 필요합니다. 이 라이브러리는 분류 및 회귀 작업 모두에 대한 일반적인 학습 시나리오를 보여주며, 자세한 학습 정보는 원본 연구 논문에서 확인할 수 있습니다.
Neural Oblivious Decision Ensembles 하이라이트
테이블 형식 데이터에 대한 딥러닝
맹목적 미분 가능 결정 트리의 앙상블
경사 하강법을 통한 종단 간 학습
분류 작업 지원
회귀 작업 지원
더 빠른 학습을 위한 GPU 가속
Python 기반 구현
연구 논문을 위한 보조 코드
PyTorch 버전 1.1 이상 필요
Neural Oblivious Decision Ensembles 시작하기
저장소 클론 또는 다운로드: GitHub에서 프로젝트 파일을 얻습니다.
Python 환경 설정: Python 환경을 생성하고 활성화합니다(예: Anaconda 사용).
종속성 설치: `pip install -r requirements.txt`를 실행하여 필요한 패키지를 설치하고 PyTorch 버전이 >= 1.1인지 확인합니다.
GPU 사용 구성: 노트북 실행 전에 `CUDA_VISIBLE_DEVICES` 환경 변수를 원하는 GPU 인덱스로 설정합니다.
노트북 실행: `./notebooks/` 디렉터리에 있는 제공된 Jupyter 노트북을 열고 실행합니다.
데이터셋 다운로드: 노트북이 필요한 데이터셋(1-5GB)을 자동으로 다운로드합니다.
Neural Oblivious Decision Ensembles의 사용 사례
- 테이블 형식 데이터 분류
- 테이블 형식 데이터 회귀
- 딥러닝 연구
- 특성 공학 대안
- 모델 해석 가능성 연구






