近年、AI利活用に対するハードルを下げるために各社がAIフレームワークを提供しています。AIフレームワークを上手く使いこなすことで、AI学習・推論に向けたプログラムの作成を容易にすることが出来ます。
本記事では、以下の疑問に答える形で解説していきます。
- そもそもAIフレームワークって何?何が出来るの?
- 有名なAIフレームワークは何があるの?
AIフレームワークとは
AIフレームワークを用いることで、AI向けのシステムを構築する手間を大幅に効率化することが可能となります。例えば、AIフレームワークを使わずにAI活用するプログラムを書こうとすると、それに必要な数学的知識、機械学習の知識などが必要となり、プログラムも膨大となってしまいます。
そこで、様々なメソッドを備えるAIフレームワークを活用することで、これらの高度な専門的な知識が無くても比較的容易にAIを動かすプログラムを作成することが出来ます。
① Tensorflow
Googleにより開発された、最も有名と言えるAIフレームワークです。Tensor(テンソル)は多次元配列を意味し、AIの一連の処理(データ読込、確率演算、行列処理、出力)を多次元配列を利用して実行します。
2022年10月時点では、最新のTensorflow 2.10がリリースされています。
利用者が多く、情報が簡単に手に入るというメリットがあります。
Tensorflowの公式サイトには入門者向けのチュートリアルもあります。次項目で上げるKerasについても、本サイトに使い方が紹介されており、それは最近のTensorflowにKerasが組み込まれているからです。
Tensorflowでは、学習の状況が確認できる「Tensorboard」というものもあります。学習がうまくいかなかったときにはデータを目でみて問題を解決することが出来ます。
Tensorflow公式サイト:TensorFlow
チュートリアル:TensorFlow Core
② Keras
前項の通り、現在はTensorflowに組み込まれている人気のフレームワークです。
元々KerasはTensorflowからは独立したものでしたが、Kerasの開発者がGoogleに入ったことから統合されたとのことです。
Tensorflowと比べると、かなり短いコード量でプロトタイプ作成が可能です。また、CPU/GPUで実行可能、CNN(*1)/RNN(*2)の両方が使えます。
Tensorflowに統合されているため、公式サイト、チュートリアルは前項のものと同様です。
*1: CNN(Convolutional Neural Network)は畳み込みニューラルネットワークとも呼ば
れ、画像認識、特に一般物体認識の分野で広く使われている技術。
*2: RNN(Recurrent Newral Network)は回帰型ニューラルネットワークとも呼ばれ、手
書き文字認識や音声認識の分野で広く使われている技術。
③Pytorch
Facebookが開発しているAIフレームワークで、2017年に公開された比較的新しいフレームワークです。
直感的にコードをかける、参照リソースが豊富、という特長を備えます。特にPythonエンジニアならPyTorchに短時間に成れることが出来ると言われています。
チュートリアル(英語版)
Welcome to PyTorch Tutorials — PyTorch Tutorials 1.13.0+cu117 documentation
チュートリアル(日本語版)
PyTorchチュートリアル(日本語翻訳版) (yutaroogawa.github.io)
④MXnet
MXNetは、マサチューセッツ工科大学、ニューヨーク大学、カーネギーメロン大学、シンガポール国立大学などの様々な大学の研究者から共同で開発されたAIフレームワークです。Amazonも採用しています。
対応言語が豊富で処理が高速である点が特徴で、コンピュータリソースを追加するだけでより精度の高いモデルを短時間で学習することが出来ます。
Tutorials — mxnet documentation (apache.org)