支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • AI向けオープンソースフレームワーク

はじめに

第三次AI(人工知能ブーム)を迎えてからもうすぐで10年が経とうとしています。AIの盛り上がりはどんどん大きくなってきており、現在は様々な企業によってAIの開発競争が行なわれているという状況です。

AI の開発のためにはプログラミング言語や機械学習アルゴリズムなどの知識が必要で、実際の開発に欠かせないのがフレームワークです。殆どのフレームワークはAI開発向けにオープンソースとして提供されており、誰でも無料で利用できます。

フレームワークとは、アプリケーション開発の際の土台となるソフトウェアのことで、AI 開発時に使用する部品集です。フレームワークを使用することにより、AI アプリ・サービスを効率良く開発することができます。具体的なフレームワークの使用方法としては、Python等のプログラミング言語によりフレームワークの各部品を呼び出すことにより行います。

この記事ではAIのアプリ・サービスを開発する際のメジャーなフレームワークである、 TensorFlow、Chainer、Keras、Cognitive Toolkit、PyTorchについて概要や特徴を解説していきます。

1.TensorFlow

TensorFlowは、2015年にGoogleが開発したオープンソースフレームワークです。無料で個人、商用どちらでも利用が許可されています。

特徴としては、世界最大規模のシェアを持ちニューラルネットワークを構築することができます。 世界最大規模のシェアを持っているのは、TensorFlowがGoogleがリリースしたものであることが理由として挙げられます。 ニューラルネットワークとは、人間の脳の動きを模倣したもので、それにより人間と同じような論理的思考や学習ができます。

2.Chainer

Chainerは2015年にリリースされた日本発のPythonベースのディープラーニング向けのフレームワークです。ニューラルネットワークを使用した学習を行うための機能がオープンソースで公開されています。Chainerの特徴として、初心者でもスタートしやすく、計算グラフが動的であることが挙げられます。

●初心者でもスタートしやすい

Chainerはシンプルなコードでディープラーニングのモデルが構築でき、初心者がとっつきやすいように直感的にコードが記述できるように開発されております。

●動的な計算グラフ

Chainerの最も特徴的な点が「動的な計算グラフ」です。TensorFlowやKerasなどのフレームワークは計算グラフを「静的」に構築してから計算処理を行います。対してChainerでは、計算グラフを「動的」に構築する方法を採用しています。この構築方法をDefine-by-Runと言います。

「動的」「静的」は、どちらが優れているかの話ではなく、「動的」に計算グラフを構築することで、柔軟かつより複雑なネットワークを実装しやすいメリットがあります。ただし、状況に応じては学習速度が落ちてしまう側面もあります。

3.Keras

Kerasとは、TensorFlowやTheano上で動くオープンソースフレームワークです。Kerasを使用すると、ディープラーニングのベースとなっている数学的理論の部分を最初から開発せず、比較的短いソースコードで実装することができます。

初心者に最も優しいAI(人工知能)向けオープンソース・フレームワークと言われているのがKerasです。 また、Kerasの特徴として簡単にモデルを製品化できるという点があります。他の深層学習フレームワークよりも多くのプラットフォームで、簡単にデプロイできます。例えば、iOS、Android、Google Cloud、JVM、ラズベリーパイで可能です。

4.Cognitive Toolkit

Cognitive Toolkitは、オープンソフトウェアライブラリの一つで、ニューラルネットワークの計算および学習を行うための深層学習分野で主に活用されているディープラーニングフレームワークです。 Cognitive Toolkitは、音声認識・自然言語理解・機械翻訳・検索適合性評価の用途で利用可能で、強みとして「スピードとスケーラビリティ」、「洗練されたアルゴリズム」、「柔軟性の高さ」が挙げられます。

●スピードとスケーラビリティ

Cognitive Toolkitは、他のディープラーニングフレームワークよりも簡単に素早く開発ができます。スケーラビリティに関しては、学習の正確さを維持しながら、CPUからGPU、複数のマシンまで、幅広い環境で効率的に拡張することができます。

●洗練されたアルゴリズム

Cognitive Toolkitは、洗練されたアルゴリズムによって構築されているため、大規模なデータセットでも確実に機能する信頼できる製品を構築できます。現在、SkypeやCortana、Bing、Xbox等に利用されています。

●柔軟性の高さ

Cognitive Toolkitは、カスタマイズ性が高く、簡単に利用できます。C++やPython言語と多数のネットワークモデルを連携することができ、学習のカスタマイズも容易です。

6.PyTorch

PyTorchは、Pythonのオープンソースの機械学習ライブラリで、最初はFacebookの人工知能研究グループAI Research lab(FAIR)により開発された無料のオープンソースソフトウェアです。 PyTorchの特徴として、「Numpyと類似している操作方法」、「実行方式がDefine-by-Run」が挙げられます。

●Numpyと類似している操作方法

Pythonでの機械学習プロセスで必須とも言えるライブラリであるNumpy。PyTorchでの多くの基本的な操作方法はNumpyと非常に似ています。

●実行方式がDefine-by-Run

計算グラフはデータを入力した際にPythonプログラムに基づいて動的に構築されるため、計算の実行時に同時進行で計算グラフが定義されます。 これによって、途中の処理結果が確認でき、デバッグが楽になり、 さらには途中の処理結果に応じて分岐など、処理内容を変更することができます。