説明
Neural Oblivious Decision Ensembles (NODE) は、表形式データ向けのディープラーニング用Neural Oblivious Decision Ensemblesに関する研究論文の補足コードリポジトリです。このプロジェクトは、特に表形式データセット向けに設計された、オブリーバブルで微分可能な決定木のディープアンサンブルの学習に焦点を当てています。主な革新性は、構造化データにディープラーニング技術を適用することにあり、この分野は従来、勾配ブースティングマシンやより単純なツリーベースのモデルが支配的でした。
続きを読む
NODEのアーキテクチャにより、表形式データ内の複雑な関係性を捉えることができる、複雑なアンサンブルベースのモデルを作成できます。微分可能な決定木を利用することで、標準的なニューラルネットワークと同様に、勾配降下法を用いてシステムをエンドツーエンドでトレーニングできます。このアプローチは、決定木の解釈可能性と構造、そしてディープニューラルネットワークの強力な学習能力をユニークに融合させたものです。
このプロジェクトは、CPUおよびできれば1つ以上のGPUを備えたマシンで実行できるPython実装を提供します。GPUなしでの実行も可能ですが、著しく遅くなります。実装はメモリ効率が悪く、収束にはかなりのGPUメモリが必要になる可能性があることが指摘されています。Linux x64ディストリビューション(Ubuntu 16.04など)でテストされており、他の一般的な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〜5 GBのディスク容量が必要です。このライブラリは、分類タスクと回帰タスクの両方における典型的な学習シナリオを示しており、詳細なトレーニング情報は元の研究論文で入手可能です。
- カテゴリー機械学習プラットフォーム
- 料金モデルオープンソース
- デプロイクラウド, セルフホスト
- プラットフォームLinux, macOS, Windows
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の使用例
- 表形式データ分類
- 表形式データ回帰
- ディープラーニング研究
- 特徴量エンジニアリングの代替
- モデル解釈可能性研究







