AIにおける技術は4つの階層に分けられることをお話しました。
今回は、第2階層にあたる機械学習ライブラリ、別名フレームワークとも呼ばれます。コンピューターでは、OSに当たる部分です。
機械学習やディープラーニングを用いたプログラム開発において、開発者はこの機械学習ライブラリの上で、開発を行うことになります。これのよりわざわざ一からコアとなる部分など全てのソースを書かなくても、ライブラリを使うことで簡単に処理を行うことができるようになります。
また、OSS(オープンソースソフトウェア)として、無料でソースコードが配布されている物が多く、GITHUB上で公開されています。
ではどのような機械学習ライブラリがあるのか見ていきたいと思います。
TensorFlow (Google)
デファクトスタンダードに最も近いプロダクトであるとされており、世界一利用者の多いフレームワーク。圧倒的な利用者数と巨大なコミュニティ/豊富なライブラリ/高速処理が強み。
高機ですが難解なため、慣れが必要です。高速処理にはハードウェアの性能も求められます。
Chainer (Preferred Networks)
日本製で直感的なプログラミングが可能。インストールが簡単でデバッグが比較的行いやすいという特長があります。しかし、残念ながら2019/12に新機能の開発を終了を発表しました。
「深層学習フレームワークそのものが開発の競争力となっていた時代は終わりを迎えつつある」と判断し、Chainerの開発思想に最も近いPyTorch(Facebook)に移行することを決定しています。
Keras (Googleなど)
初心者に最も優しいフレームワーク。アルゴリズムへの深いアルゴリズムがなくても記述が可能。
Cognitive Toolkit (Microsoft)
巨大なデータセットを扱う場合など、複数マシン/複数GPUを活用し高性能を実現できるため優位です。
PyTourch (Facebook)
利用者が急増しており、直感的にコードを書くことができます。Define by run処理実行方式を採用しており、途中で処理状態を確認することができるため、デバッグが容易です。メモリ不足に陥りやすい、最適化が難しいというデメリットもあります。
PaddlePadlle (百度)
中国最大手の検索サイト企業、百度によるものです。クラウドだけでなく分散コンピューティングのクラスタ環境で高速に稼働する特長があります。中国系企業の多くが採用をしていくと考えられます。
代表的な機械学習ライブラリをご紹介いたしましたが、いかがでしたでしょうか?
では、数あるライブラリの中から、一体どれを使うのがよいのかということですが、初心者の方は、まずは、TensorFlowが良いのではないかと思います。なによりもデファクトスタンダーに近い位置づけになってきており、いろいろな情報も収集しやすい環境が整っていることが大きいのではないかと思います。
allAi.jpでも役立つ情報を発信していきますので、どうぞよろしくお願いいたします。