AI(機械学習)のプログラミング、と聞くとハードルが高そうだなと感じる方も多いですよね。
しかし今は、そんな状況も変わってきていて、AI(機械学習)の実装に便利な「フレームワーク」が用意されるようになりました。このフレームワークは無料で利用可能なものも多く、手軽にAI(機械学習)のプログラミングにチャレンジできるでしょう。
以前は、機械学習用のプログラムは、難解な確率計算や行列演算が必要で、ゼロからプログラムを実装するには高度なプログラミング能力や機械学習理論への知識が必要。そのため、約10年前までは一部のプログラマーしか実装できませんでした。
ところが今、ディープラーニングを中心とした機械学習が注目され、学習プログラムもコモディティ化が進んでいます。結果として、AI(機械学習)分野のトップを走る企業や大学などが、オープンソースとして機械学習用のフレームワークを無料で提供を始めたのです。
これらのオープンソースを用いると、簡単に機械学習用のアプリケーションを実装できることから、研究、商用を問わず様々な分野で利用されています。
そこで今回は、具体的なフレームワークとそれぞれの特徴についてお伝えしましょう。
ITジャイアントGoogleが公開する世界中で利用される「TensorFlow」
まず最初にご紹介するフレームワークは「TensorFlow」。
TensorFlowの特徴は、AI(機械学習)の一連の処理(データ読込、前処理、確率演算、行列処理、出力)に対してテンソルを利用する点。
テンソルとは多次元の配列のことであり、テンソルを利用することでAI(機械学習)の各処理で頻繁に利用される行列演算を効率的に実行することができます。この、各処理の中で扱われるデータをテンソル配列として扱うので、効率的な行列演算が可能。
そしてTensorFlowのもう一つの特徴は、サポート環境の豊富さです。
TensorFlowはiOS、Andoroidなど、一般的なモバイルOSに対応しています。ですからTensorFlowを用いてモデリングしたAI(機械学習)用アプリケーションは、パソコンだけでなく様々なスマホでも利用することができるでしょう。
しかし注意が必要です。このTensorFlowは、高度なAI(機械学習)プログラムを実装できますが、そのプログラムを動作させるには高価なハードウェアが必要。そのため、企業や研究機関などにおける利用が主流です。
国内発のAI(機械学習)フレームワークでコミュニティも豊富な「Chainer」
次にご紹介するのは「Chainer」。
Chainerの特徴は、代表的なスクリプト用プログラミング言語であるPythonで深層学習を実装できる点と、国内企業が開発元であるため、日本語のユーザグループがあり、ソースコードの改良情報の他、AI(機械学習)に関する様々な最新トピックを日本語で情報収集することができる点です。
Chainerの一番のメリットは高速性。Chainerで構築したAI(機械学習)プログラムは、
他のフレームワークで構築したものに対し高速な処理が可能です。
AI(機械学習)の分野では、高性能なAI(機械学習)モデルを構築するためには、膨大な数のサンプルデータを学習する必要があり、サンプルデータの種類や数を増やす程、高性能なAI(機械学習)モデルを作成できるのですが、一方で学習にも膨大な処理時間がかかってしまいます。
AI(機械学習)分野はスピード感も要求されるので、Chainerの高速処理には今後も注目ですよね。
画像認識に特化したAI(機械学習)で高速処理を特徴とする「Caffe」
Caffeの特徴は画像認識に特化している点で、画像認識を対象としたAI(機械学習)プログラムを高速に動作することが可能。
また、ソースコードはC++とCUDAで実装され、C++の他、PythonやMATLABなどメジャーなプログラミング言語で利用することができます。
そして、Caffeのもう1つの特徴として、GPUに対応しています。
ちなみに、Caffeを開発したYangqing氏はその後Facebookに移り、Caffe2を発表。なお、Yahooジャパンが2014年からスポンサーになり、Caffe開発の資金援助を行っています。
スクリプト言語Pythonをベースとした実装が簡単な 「Theano」
最後にご紹介するのは、実装が簡単な 「Theano」。
Pythonの標準計算用ライブラリ「Numpy」では、“計算の手続き”を実装する必要があります。
Theanoの特徴はGPUに対応することで高速処理が可能な点です。Pythonで実装したプログラムをNVIDIAが提供するCUDAでコンパイルできるため、NVIDIAのGPUを利用することができ、高速処理を実現しています。
今回は、AI(機械学習)の実装を便利に行うためのフレームワークとして、代表的な4つのフレームワークをご紹介しました。
約10年前までは、「AI(機械学習)のプログラミング」というと高度で難易度が高いものでしたが、最近は簡単に実装できるツールがフリーで入手できるようになり、技術の進化、コモディティ化のスピードには驚きの一言ですよね。
今まで、AI(機械学習)のプログラミングは気になるけどハードルが高そうだなぁ、、、と思っている方は、今回ご紹介したフレームワークを利用してみてください。
今回お話しした4つのフレームワークはどれも広く利用され、日本語での解説サイトも多く、コミュニティもあります。ですから、簡単にフレームワークの導入とAI(機械学習)プログラミングが開始可能です。
そして何よりフリーなので、一度トライしてみてAI(人工知能)を生み出しましょう。
コメントをどうぞ