機械学習は広大で刺激的な分野であり、さまざまな分野の専門家から注目を集めています。残念なことに、C++ プログラマーや愛好家にとって、機械学習の分野ではサポートが不足しているようです。その空白を埋め、C++ に ML 領域における真の足場を与えるために、このライブラリが作成されました。このライブラリの目的は、低レベルの開発者と機械学習エンジニアの間の交差点として機能することです。
まず、ML++ ライブラリのヘッダー ファイルをダウンロードします。これを行うには、リポジトリのクローンを作成し、その中の MLPP ディレクトリを抽出します。
git clone https://github.com/novak-99/MLPP
次に、「buildSO.sh」シェル スクリプトを実行します。
sudo ./buildSO.sh
その後、ML++ ソース ファイルをローカル ディレクトリに保持し、次の方法でインクルードします。
# include " MLPP/Stat/Stat.hpp " // Including the ML++ statistics module.
int main (){
...
}
最後に、プロジェクトの作成が完了したら、g++ を使用してコンパイルします。
g++ main.cpp /usr/local/lib/MLPP.so --std=c++17
ML++ はベクトルのエミュレーションにstd::vector<double>
データ型を使用し、行列のエミュレーションにstd::vector<std::vector<double>>
データ型を使用することに注意してください。
まず、選択したそれぞれのヘッダー ファイルをインクルードします。
# include " MLPP/LinReg/LinReg.hpp "
次に、クラスのオブジェクトをインスタンス化します。入力セットと出力セットをパラメーターとして渡すことを忘れないでください。
LinReg model (inputSet, outputSet);
その後、使用するオプティマイザーを呼び出します。勾配降下法などの反復オプティマイザーの場合は、学習率、エポック番号、UI パネルを使用するかどうかを含めます。
model.gradientDescent( 0.001 , 1000 , 0 );
完了です。テストの準備が整いました。単一のテスト インスタンスをテストするには、次の関数を利用します。
model.modelTest(testSetInstance);
これにより、その例に対するモデルの特異予測が返されます。
テスト セット全体をテストするには、次の関数を使用します。
model.modelSetTest(testSet);
結果は、データセット全体に対するモデルの予測になります。
ML++ は、ほとんどのフレームワークと同様に動的であり、常に変化します。新しいアルゴリズムや技術が日々開発されているため、これは ML の世界では特に重要です。現在 ML++ 用に開発中のものがいくつかあります。
- 畳み込みニューラル ネットワーク
- SVM用カーネル
- ベクトル回帰のサポート
ML++ を作成する過程で、さまざまな異なる資料が役に立ちました。ここでは、そのうちのいくつかを紹介したいと思います。 TutorialsPoint によるこの記事は、行列の行列式を実装しようとするときに非常に役立ちました。GeeksForGeeks によるこの記事は、行列の随伴行列と逆行列を取得しようとするときに非常に役立ちました。