AIとは何か

2分でわかる!AI(機械学習)の実装に便利なフレームワーク4選

フレームワークのイメージ

AI(機械学習)のプログラミング、と聞くとハードルが高そうだなと感じる方も多いですよね。

しかし今は、そんな状況も変わってきていて、AI(機械学習)の実装に便利な「フレームワーク」が用意されるようになりました。このフレームワークは無料で利用可能なものも多く、手軽にAI(機械学習)のプログラミングにチャレンジできるでしょう。

以前は、機械学習用のプログラムは、難解な確率計算や行列演算が必要で、ゼロからプログラムを実装するには高度なプログラミング能力や機械学習理論への知識が必要。そのため、約10年前までは一部のプログラマーしか実装できませんでした。

ところが今、ディープラーニングを中心とした機械学習が注目され、学習プログラムもコモディティ化が進んでいます。結果として、AI(機械学習)分野のトップを走る企業や大学などが、オープンソースとして機械学習用のフレームワークを無料で提供を始めたのです。

これらのオープンソースを用いると、簡単に機械学習用のアプリケーションを実装できることから、研究、商用を問わず様々な分野で利用されています。

そこで今回は、具体的なフレームワークとそれぞれの特徴についてお伝えしましょう。

ITジャイアントGoogleが公開する世界中で利用される「TensorFlow」

TensorFlowのイメージ

まず最初にご紹介するフレームワークは「TensorFlow」。

TensorFlowはGoogleが提供するAI(機械学習)のフレームワークで、2015年にGoogle Brainによりオープンソースとして公開されました。
Googleは、自社のサービスであるGoogle検索、Google翻訳の他、YouTubeや音声認識などで利用するため、AI(機械学習)用のフレームワークを独自に開発し自らも利用していましたが、これを一般にも公開したのがTensorFlowです。

TensorFlowの特徴は、AI(機械学習)の一連の処理(データ読込、前処理、確率演算、行列処理、出力)に対してテンソルを利用する点。

テンソルとは多次元の配列のことであり、テンソルを利用することでAI(機械学習)の各処理で頻繁に利用される行列演算を効率的に実行することができます。この、各処理の中で扱われるデータをテンソル配列として扱うので、効率的な行列演算が可能。

そしてTensorFlowのもう一つの特徴は、サポート環境の豊富さです。

TensorFlowはiOS、Andoroidなど、一般的なモバイルOSに対応しています。ですからTensorFlowを用いてモデリングしたAI(機械学習)用アプリケーションは、パソコンだけでなく様々なスマホでも利用することができるでしょう。

しかし注意が必要です。このTensorFlowは、高度なAI(機械学習)プログラムを実装できますが、そのプログラムを動作させるには高価なハードウェアが必要。そのため、企業や研究機関などにおける利用が主流です。

TensorFlow

国内発のAI(機械学習)フレームワークでコミュニティも豊富な「Chainer」

Chainerのイメージ

次にご紹介するのは「Chainer」。

Chainerは、国内ベンチャー大手Preferred Networks(PFN)が開発、提供するAI(機械学習)フレームワークです。

Chainerの特徴は、代表的なスクリプト用プログラミング言語であるPythonで深層学習を実装できる点と、国内企業が開発元であるため、日本語のユーザグループがあり、ソースコードの改良情報の他、AI(機械学習)に関する様々な最新トピックを日本語で情報収集することができる点です。

また、このChainerでは、Deep Learningで必要になるニューラルネットワークの構築を、Pythonで簡単に記述することができます。そして、Chainerはインストールも簡単に行えるため、AI(機械学習)のプログラミングを簡単に試したいユーザにとっては、導入しやすいフレームワークといえるでしょう。

Chainerの一番のメリットは高速性。Chainerで構築したAI(機械学習)プログラムは、
他のフレームワークで構築したものに対し高速な処理が可能です。

開発元のPreferred Networksによると、分散学習用のChainerMNを利用してImageNetの画像を学習したところ、世界最速を実現できたと発表しています。

AI(機械学習)の分野では、高性能なAI(機械学習)モデルを構築するためには、膨大な数のサンプルデータを学習する必要があり、サンプルデータの種類や数を増やす程、高性能なAI(機械学習)モデルを作成できるのですが、一方で学習にも膨大な処理時間がかかってしまいます。

しかし、学習時間を高速化できれば、その分完成したAI(機械学習)モデルの良し悪しを短時間で試すことができ、結果として開発効率を短縮することができるでしょう。

AI(機械学習)分野はスピード感も要求されるので、Chainerの高速処理には今後も注目ですよね。

Chainer

画像認識に特化したAI(機械学習)で高速処理を特徴とする「Caffe」

Caffeのイメージ

Caffeは、Yangqing氏がUC Barkeley大学の博士課程時代に開発したAI(機械学習)プラットフォームです。現在では、同大学の研究センタである”Vision and Learning Center”が開発、メンテナンスを行っています。

Caffeの特徴は画像認識に特化している点で、画像認識を対象としたAI(機械学習)プログラムを高速に動作することが可能。

また、ソースコードはC++とCUDAで実装され、C++の他、PythonやMATLABなどメジャーなプログラミング言語で利用することができます。

そして、Caffeのもう1つの特徴として、GPUに対応しています。

画像認識を高速処理するために、NVIDIAが提供するGPU用の開発基盤であるCUDAで実装。ですから、Caffeを用いて高速動作させるためにはNVIDIAのGPUが必須です。なお、TensorflowとChainerもGPUに対応しています。
Caffeの高速処理については、Python用のAI(機械学習)フレームワークである「Theano」との比較で約14倍を実現したと言われており、処理負荷の高い動画像にAI(機械学習)を適用する場合などCaffeがおすすめのフレームワークです。

ちなみに、Caffeを開発したYangqing氏はその後Facebookに移り、Caffe2を発表。なお、Yahooジャパンが2014年からスポンサーになり、Caffe開発の資金援助を行っています。

Caffe

スクリプト言語Pythonをベースとした実装が簡単な 「Theano」

Theanoのイメージ

最後にご紹介するのは、実装が簡単な 「Theano」。

Theanoはモントリオール大学のBengio教授が中心に開発するAI(機械学習)フレームワークです。Pythonで実装されたプログラムをC++とCUDA用にコンパイルすることで、AI(機械学習)を高速に処理することができます。

Pythonの標準計算用ライブラリ「Numpy」では、“計算の手続き”を実装する必要があります。

これに対し、Theanoでは“数式そのもの”を記述することができるため、行列計算や確率計算などの部分をゼロから実装する必要がなく、比較的簡単にAI(機械学習)のプログラミングが可能。

Theanoの特徴はGPUに対応することで高速処理が可能な点です。Pythonで実装したプログラムをNVIDIAが提供するCUDAでコンパイルできるため、NVIDIAのGPUを利用することができ、高速処理を実現しています。

Theano

 

今回は、AI(機械学習)の実装を便利に行うためのフレームワークとして、代表的な4つのフレームワークをご紹介しました。

約10年前までは、「AI(機械学習)のプログラミング」というと高度で難易度が高いものでしたが、最近は簡単に実装できるツールがフリーで入手できるようになり、技術の進化、コモディティ化のスピードには驚きの一言ですよね。

このようにAI(機械学習)がコモディティ化されてきたことは、これまで高性能なAI(機械学習)を研究、開発する時代だったのが、今後はAI(機械学習)を高度に応用する時代に突入しているということでしょう。

今まで、AI(機械学習)のプログラミングは気になるけどハードルが高そうだなぁ、、、と思っている方は、今回ご紹介したフレームワークを利用してみてください。

今回お話しした4つのフレームワークはどれも広く利用され、日本語での解説サイトも多く、コミュニティもあります。ですから、簡単にフレームワークの導入とAI(機械学習)プログラミングが開始可能です。

そして何よりフリーなので、一度トライしてみてAI(人工知能)を生み出しましょう。

コメントをどうぞ

トップへ戻る
タイトルとURLをコピーしました