目次
機械学習やディープラーニングなど、AI技術を民主化することを目的としたにライブラリやフレームワークがあります。機械学習ライブラリ(フレームワーク)とは、機械学習を実装するためのツールであり、大学や研究者、またGoogleやFacebookなどの大手IT企業が提供していることが多いです。機械学習の実務では、ライブラリを使用するケースが多く、初めはまずライブラリを使用し簡単なコードを書いてみることもおすすめです。今回は、機械学習ライブラリやフレームワークを、利用シーンなどを含め紹介、比較していきます。
※ ライブラリとフレームワークの違いについて
ウェブで検索していると、機械学習向けの「ライブラリ」と「フレームワーク」が混合して使われていることも見られますが、正確には異なるものです。フレームワークとは、全体の作業フローが実装されている中、ユーザーが一部の処理を実装し、はめ込むようになっているシステムをいいます。ライブラリは、使いたい部品が入っているツールボックスです。フレームワークのように全体を動かすための作業フローは含まれません。
機械学習のライブラリ、フレームワーク
Scikit-learn(サイキットラーン)Google製のライブラリで、機械学習全般に強い。以下の利用シーンなどを含む。
- ランダムフォレスト: それぞれの決定木に対してランダムに一部のデータを取り出して、学習に用いる、バギングと決定木を組み合わせた手法。データのスケールを事前に揃えておく必要がなく、分析結果の説明が容易なところがメリット。
- k近傍法: データから近い順にk個のデータを見て、それらの多数決によって所属クラスを決定する手法。
- サポートベクターマシン: マージンの最大化というコンセプトのもと、2クラスを線形分離するアルゴリズム。
- 分類: あらかじめ設定したクラスにデータを割り振ること。
- クラスタリング:与えられたデータ群をいくつかの集まり(クラスタ)に分けることでデータの本質的な構造を浮かび上がらせる手法。
- 次元削減: データの情報を失わないようにデータを低い次元に圧縮する手法。
Pandas(パンダス)Pythonでデータ分析を行うための、オープンソースで提供されている機械学習ライブラリです。Pandasの活用事例は、データの可視化(グラフ化)、読み込み、統計量の表示、分析/解析などを含み、データの前処理などを容易に行うことに大変役立ちます。
NumPy(ナンパイ)pythonでベクトルや行列など、線形代数を行うための機械学習ライブラリ。
Scipy(サイパイ)確率統計に強い、pythonで書かれた機械学習ライブラリ。
TensorFlow(テンソルフロー)機械学習に関する計算を行うフレームワーク。2015年、Google製。公式ページのチュートリアルで、次の実装が可能です。
- MNIST: 機械翻訳による、手書き文字認識を行う。
- CNN: 畳み込みニューラルネットワーク(CNN)による画像認識。
- RNN: 再帰型ニューラルネットワーク(RNN)による文章中の単語予測。
- Word2Vec: 各単語の関係を学習する。
- Seq2Seq: 自然言語処理による、機械翻訳、キャプション生成、会話AI、テキスト要約など。
DistBelief: Googleが開発した、2012年に提案された深層分散学習、分散並列技術のフレームワーク。TensorFlowの前進となった。
ディープラーニングのライブラリ、フレームワーク
Keras(ケラス)pythonで書かれた、ディープラーニングに特化したTensorFlowのラッパー。
Chainer(チェイナ―)Preferred Networks によって開発された、ニューラルネットワークの学習や計算を行うためのディープラーニングフレームワークで、Define by runという形式を採用している。Chainerから発祥したディープニューラルネットワークのPytTorchもあります。
Caffe(カフェ)オープンソースのディープラーニングライブラリ。画像認識に特化しており、高速動作、GPU対応、洗練されたアーキテクチャ/ソースコード、などの特徴がある。また、開発コミュニティが活発です。Python、C++、MATLABなどで使用可能。
当社はAI向け教師データの作成やアノテーションサービスを提供し、研究開発を支援しております。どのようなAI開発プロジェクトでもしっかりと支援いたします。無料サンプルやご相談は、以下からお気軽にお問い合わせください。