人工知能・機械学習の開発で使うライブラリやフレームワーク
Pythonには人工知能や機械学習で使えるライブラリやフレームワークが沢山用意されています。Pythonは以下のような理由から人工知能や機械学習に適したプログラミング言語と呼ばれています。
- コードがシンプルで分かりやすく、初心者も学習しやすい。(他言語よりコードが短くなる)
- インタプリタ型であるため、コードを書いたら直ぐに実行できるため開発の時間が短い。
- ここで紹介するように使えるライブラリが非常に多い。
- 大規模なシステムにも使われていて、人工知能開発に関する文献も多い。
人工知能や機械学習はこれからの分野として注目を集めています。そのため開発も日進月歩であるため、すぐに誰も開発環境を整えて始められ、かつトライ&エラーを繰り返しながら開発を進めるのに最適な言語がPythonであるといえます。
良く使われる人気ライブラリ
まずは、人工知能や機械学習によく使われる人気のフレームワーク・ライブラリを紹介します。これらはRaspberry Piなどの低スペックなマイコンでも実験ができるため、ディープラーニングの学習用にも良く使われます。
Chainer
日本発のディープラーニング用フレームワークで、国内でも多くの企業が採用しています。Preferred Networks社という日本企業が開発したため日本語での解説もあります。RNN(リカレント・ニューラル・ネットワーク)が記述がしやすいので、時系列パターンを扱うような自然言語処理や音声処理などによく使われています。
Caffe2
SNSでお馴染みFacebookが主導して開発を行っているフレームワーク。NVIDIAとも共同で開発をすすめ、GPUの特性を最大限に引き出し、モバイルなどで要求される高速な処理と高度な学習と推論を実現できるように設計されていて、まさにソフトとハード両面から最高のパフォーマンスを実現しようとしています。Facebbokの自動翻訳などにも採用されています。
Keras
初心者が人工知能を学ぶときにおすすめのライブラリ。ディープラーニングに関する専門的な知識やプログラミングの知識がなくても簡単にコードが書けるようになっていて、比較的短いソースコードで記述できる特徴があります。機械学習分野のアルゴリズムを多く実装していて、TensorFlowやTheano、CNTKなどのライブラリをバックエンドに選択可能です。日本語ドキュメントも多くあります。
関連リンク
CNTK (Microsoft Cognitive Toolkit)
https://www.microsoft.com/en-us/cognitive-toolkit/
マイクロソフトが主導して開発を進めているディープラーニングのライブラリで、オープンソースとして扱われています。複数のGPUを使って処理する場合の性能が非常に高く、効率的にリソースを利用できるのが特徴です。ディープラーニングの精度も高く高速に動作します。
関連リンク
TensorFlow
https://www.tensorflow.org/?hl=ja
Googleが主導して開発がすすめられている最も有名なオープンソースライブラリです。多くのOSに対応していて、AndroidやiOS、ラズベリーパイなどにも対応しています。コードを書くためにはある程度のディープラーニングの知識が必要です。小規模から大規模なシステムまで多くの企業に採用されています。
関連リンク
Pythonで使える人工知能ライブラリ -その他
BigDL
https://bigdl-project.github.io
Apache Sparkの深層学習フレームワーク。Intelが開発していたものをオープンソース化したもので、Xeonサーバなどで実行したときに他のフレームワークと比べて大幅に性能が向上します。
Caffe
http://caffe.berkeleyvision.org/
C++で実装されていて、Python、MATLAB, CUDAなどの言語で利用可能です。バークレイAIリサーチとそのコミュニティによってつくられたもので、高速動作とGPU対応という特徴がある。
関連リンク
MXNet
http://mxnet.incubator.apache.org/
アマゾンが提供しているクラウドサービスAWSで公式サポートされているディープラーニングのフレームワークです。ワシントン大が鵜とカーネギーメロン大学によって開発され、Apache Softwareが供給しています。Python C++のほかにもMATLAB, Javascriptなどもサポートしています。
関連リンク
Theano
http://deeplearning.net/software/theano/
Pythonでの数値計算ライブラリ。これを使ってディープラーニングのモデルを実装したりすることができます。ディープラーニングには多くの計算が必要になりますが、それらベースの計算を組み立てるときに役立つライブラリ。一からディープラーニングを考えたい場合に利用します。