C++の機械学習ライブラリトップ3を実際に体験する必要があります
公開: 2020-12-10今日、私たちがどこを見ても、機械学習は何らかの形で私たちの周りにあります。 人工知能のこのサブセットは、業界のすべての類似点にわたって多様なアプリケーションを見つけました、そして当然のことながらそうです。 機械学習は新しい分野ですが、探索する可能性がたくさんあります。
さて、問題は、機械学習プロジェクトに使用するプログラミング言語はどれかということです。
PythonとC++は、最も人気のあるプログラミング言語の2つです。 これらの言語はどちらも、活発なコミュニティ、専用のツールサポート、ライブラリの広範なエコシステム、および称賛に値するランタイムパフォーマンスを誇っています。 ただし、今日の投稿の焦点は、C++での機械学習になります。
目次
機械学習にC++を使用する理由
機械学習には強力なCPUパフォーマンスが必要であることは定評のある事実であり、これはまさにC++が保証するものです。 速度とパフォーマンスに関しては、C ++はPython、Java、さらにはC#を残しています。 機械学習にC++を使用するもう1つの大きな利点は、ポインターをサポートしていることです。これは、一般的なプログラミング言語の多くでは利用できない機能です。
C ++での機械学習の実装を成功させるために最も重要なことは、C++ライブラリに精通することです。 ありがたいことに、C ++には、Shark、MLPack、GRT(Gesture Recognition Toolkit)など、機械学習用の優れたライブラリがいくつかあります。
それでは、C++の機械学習ライブラリについて詳しく見ていきましょう。

C++でのマシン学習ライブラリ
1.サメ
Sharkは、C++のオープンソースのモジュラーライブラリです。 線形回帰、k-means、ニューラルネットワーク、クラスタリングなどの教師あり学習アルゴリズムを幅広くサポートしているため、機械学習に最適なライブラリです。
Sharkには、線形および非線形最適化、カーネルベースの学習アルゴリズム、数値最適化、およびその他のML手法のホストのための多数の方法も含まれています。 これは、実際のアプリケーションの研究と構築の両方に理想的なツールです。 Sharkには優れたドキュメントがあり、Linux、Windows、およびmacOSと互換性があります。
Sharkのインストール方法は?
Sharkをインストールするには、公式ダウンロードページからソースパッケージを入手する必要があります。 この後、次のコードを記述してライブラリをビルドする必要があります。
mkdir Shark / build /
cd Shark / build
cmake ../
作る
SharkにはBoostとCMakeの2つの依存関係があることを知っておく必要があります。 LinuxおよびWindowsでは、通常ATLASが使用されますが、macOSでは、Accelerateがデフォルトの線形代数ライブラリです。 macOSでは、MacPortsを使用して、次のように必要なパッケージを取得できます。
sudoポートインストールブーストcmake
ただし、Ubuntuでは、次のステートメントを使用して必要なパッケージをインストールする必要があります。
sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev
Sharkをインストールする手順は次のとおりです。
- まず、d ownloadsページからソースパッケージをダウンロードし、解凍します。
- CMakeGUIを起動します
- 「ソースコードはどこにありますか」を選択して、解凍されたSharkの場所へのパスを設定します。
- 「ディレクトリを構築する場所」を選択して、VisualStudioプロジェクトファイルを保存するパスを設定します。
- 「エントリの追加」オプションを選択します。 次に、PATHタイプのエントリBOOST_ROOTを追加し、ブーストインストールディレクトリに設定します。
- ここでも、PATH型のエントリBOOST_LIBRARYDIRを追加し、それをBoostライブラリディレクトリに設定します。
- 最後に、apt Visual Studioコンパイラを選択し、[構成]オプションをダブルクリックしてから、[生成]オプションを選択します。
2.mlpack
mlpackは、パフォーマンスのために明示的に設計されたC++ライブラリです。 先駆的なMLアルゴリズムの高速で拡張可能な実装を提供することを約束します。 このC++ライブラリのユニークな側面は、MLアルゴリズムを単純なコマンドラインプログラム、Pythonバインディング、Juliaバインディング、およびC ++クラスとして提供することです。これらはすべて、より大規模なMLソリューションに統合できます。
mlpackをインストールするにはどうすればいいですか?
MLPackのインストールプロセスは、プラットフォームごとに異なります。
Pythonの場合、次のように、pipまたはcondaを介してソースパッケージを取得できます。

pip install mlpack
conda install -c conda-forge mlpack
詳細については、Pythonクイックスタートガイドのmlpackを参照してください。
Juliaの場合、次のようにPkgを介してソースを取得できます。
インポートパッケージ;
Pkg.add( "mlpack")
Ubuntu、Debian、Fedora、およびRed Hatの場合、パッケージマネージャーを使用してmlpackをインストールできます。 mlpackコマンドラインクイックスタートガイドは、開始するのに適した場所です。 Linuxビルドチュートリアルに従って、ソースからビルドすることもできます。
Windowsの場合、ビルド済みのバイナリ– Windows 64ビット–MSIインストーラーおよびWindows64ビット–ZIPをダウンロードできます。 vcpkgなどのパッケージマネージャーを使用してインストールすることも、 Windowsビルドチュートリアルに従ってソースからビルドすることもできます。
macOSに来ると、次のように自作でライブラリをインストールできます。
brew install mlpack
読む:最高額の機械学習ジョブ
3. GRT(ジェスチャ認識ツールキット)
GRTまたはジェスチャ認識ツールキットは、オープンソースのクロスプラットフォームC++ライブラリです。 リアルタイムのジェスチャ認識用に特別に設計されています。 これには、すっきりとした使いやすいGUI(グラフィカルユーザーインターフェイス)によってさらに強化された包括的なC++APIが含まれています。
GRTは初心者に優しいだけでなく、既存のC++プロジェクトへの統合も非常に簡単です。 あらゆるセンサー/データ入力と互換性があり、独自のジェスチャーでトレーニングできます。 さらに、GRTは、必要に応じて、カスタム処理または特徴抽出アルゴリズムに適応できます。
GRTのインストール方法は?
最初に行う必要があるのは、GRTパッケージをダウンロードすることです。 この後、メインのgesture-recognition-toolkitフォルダーでGRTフォルダーを見つけ、GRTフォルダー(すべてのサブフォルダーを含む)を目的のプロジェクトに追加する必要があります。
GRTフォルダーに格納されている完全なコードをC++プロジェクトに追加することで、GRTの使用を開始できます。 VisualStudioやXCodeなどのIDEを使用している場合は、「ファイル->プロジェクトへのファイルの追加」というパスに従ってGRTフォルダーファイルをプロジェクトに追加できます。 GRTフォルダー(FinderまたはWindowsエクスプローラーから)をIDEにドラッグして、GRTフォルダーからプロジェクトにすべてのファイルを追加することもできます。
GRTフォルダーに含まれるコードをプロジェクトに追加すると、すべてのGRT関数/クラスを使用できるようになります。 GRTコードを使用するプロジェクトのヘッダーファイルの先頭に、次の2行のコードを追加するだけです。
#include“ GRT / GRT.h”
int main(int argc、const char * argv [])
{{
//プロジェクトのメインコード…
}

このコードでは、最初の行でメインのGRTヘッダーファイル(GRT.h)がプロジェクトに追加されます。 GRT.hファイルにはすべてのGRTモジュールヘッダーファイルが含まれているため、他のGRTヘッダーファイルを手動で入力する必要はありません。 ただし、2行目は、GRT名前空間が使用されていることを宣言しています。 これにより、GRTクラスを使用するたびにGRT :: WhatEverClassを作成する必要がなくなります。WhatEverClassを作成して、それを使用することができます。
ただし、使用するIDEに基づいて、ハードドライブにGRTフォルダを保存した物理パスを指定する必要があることに注意してください。
また読む:機械学習のキャリア
結論
これらの3つのC++ライブラリは、ほとんどすべてのMLニーズを処理するのに最適です。 C ++で機械学習を習得するための鍵は、最初にこれらのライブラリを学習し、それらの専門分野と機能を理解してから、特定のML要件に合わせて実装することです。
機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIIT-を提供します。 B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
機械学習に適しているのはC++とPythonのどちらですか?
C ++とPythonは、最も広く使用されているプログラミング言語の2つです。 ただし、目前のタスクに応じて、どちらを使用するかを選択する必要があります。 ゲームの作成と学習システムに関しては、C++が推奨される言語です。 ただし、機械学習に関しては、Pythonが最適なオプションです。 また、データシステムを含むタスクにも便利です。 さらに、Pythonの構文は理解しやすいため、初心者に推奨されます。 Pythonのもう1つの際立った側面は、Pythonコードがインタプリタ言語であるということです。つまり、Pythonコードは実行時に機械可読に変換されません。
機械学習における課題にはどのようなものがありますか?
データは機械学習における最も重要な入力であるため、機械学習の専門家が直面する問題の1つは、高品質のデータの欠如です。 データが入力変数と出力変数にうまく適合しない場合にも、適合不足が発生する可能性があります。 データは不可欠ですが、データが多すぎると過剰適合につながり、機械学習アルゴリズムのパフォーマンスが低下する可能性があります。 機械学習モデルを使用すると、正確な結果を見つけるのは簡単ですが、必要な時間は膨大であり、これもまた困難です。
静的ライブラリと動的ライブラリはどのように異なりますか?
サイズに関しては、静的ライブラリと動的ライブラリは互いに異なります。 ダイナミックライブラリのコピーが1つだけメモリに保存または保存されるため、ダイナミックライブラリのサイズは静的ライブラリよりも大幅に小さくなります。 実行可能ファイルには、ビルドまたはリンクされた静的ライブラリが含まれています。 これはアプリケーションのコンポーネントであり、他の誰も使用できません。 ダイナミックライブラリは独立して構築、リンク、インストールされますが、どのプログラムからでもアクセスできます。 これにより、プログラムのサイズが小さくなり、コードも非表示になります。