AI (人工知能)搭載スマホアプリやスマートスピーカーが人気ですよね。その便利さから、どんな仕組みをしているのだろう?と興味を持つ方もいらっしゃるでしょう。中にはAI (人工知能)アプリの開発にチャレンジしてみたいと考えている方もいらっしゃるかもしれません。
AI (人工知能)アプリ開発のためにはプログラミング言語や機械学習アルゴリズムなどの知識が必要で、実際の開発作業に欠かせないのがフレームワークです。なお、殆どのフレームワークはAI(人工知能)開発向けにオープンソースとして提供されており、誰でも無料で利用することができます。
フレームワークとは、AI (人工知能)アプリ/サービス開発時に使用する部品集です。フレームワークを使用することにより、AI (人工知能)アプリ/サービスを効率良く開発することができます。具体的なフレームワークの使用方法としては、Python等のプログラミング言語によりフレームワークの各部品を呼び出すことにより行います。
ということで今回は、人気のAI(人工知能)向けオープンソース・フレームワークについてお伝えします。
フレームワークの位置付け
まず最初に、AI(人工知能)関連技術の全体像におけるフレームワークの位置付けについて見てみましょう。
AI(人工知能)関連技術は以下の4つの層より構成されており、フレームワークは最下層のハードウェアに最も近い技術となります。
- AI (人工知能)アプリ/サービス
- AI (人工知能)プラットフォーム
- フレームワーク
- ハードウェア
以下にフレームワーク以外の各層について簡単に説明します。
(1)AI (人工知能)アプリ/サービス
私たちがスマホあるいは家電製品で使用することができるサービスです。例としては検索サービス、チャットボット、スマートスピーカーおよびSiriなどがあります。
(2)AI (人工知能)プラットフォーム
自然言語理解/画像認識/動画分析/音声認識/機械翻訳などのAI (人工知能)機能をWebブラウザ経由で提供するサービス(有料)です。例としてはGoogle Cloud ML、Amazon MLおよびIBM Watsonなどがあります。
(4)ハードウェア
ディープラーニングでは巨大な行列式の計算をニューラルネットワークの層の数分、繰り返し行う必要があるため、通常のCPUではなくGPU(Graphics Processing Unit)と呼ばれる、本来は画像処理用に開発された装置を使用します。
(参考:GPUはCPUの約10倍以上の処理性能を持ちます)
次に、人気の主要フレームワークについて紹介します。
TensorFlow(Google)
AI (人工知能)で独走を続けるGoogleが2015年に発表したAI(人工知能)向けオープンソース・フレームワークです。
Googleフォトの被写体認識、Gmailのメール分別やInboxの自動返信文作成、YouTube 広告の最適化から配信など、Googleが各種サービスで実際に使用していることもあり、公開されてから数ヶ月でユーザー数が爆発的に増えました。
フレームワークとしてのデファクトスタンダードに最も近いプロダクトであるとされており、間違いなく世界一利用者の多いフレームワークです。圧倒的な利用者数と巨大なコミュニティ/豊富なライブラリ/高速処理が強みです。
Chainer(Preferred Networks)
Chainerは2015年に公開された日本製のAI(人工知能)向けオープンソース・フレームワークであり、特に日本では非常によく利用されています。不明点についてインターネットで調査すれば多数の日本語情報を見つけることができます。
Chainerはプログラム開発言語Pythonのフレームワークとして提供されていることもあり、Pythonを使い慣れている人にとっては最も扱いやすく、直感的にプログラミングを書くことができます。
また、他のフレームワークに比べてインストールが簡単、デバッグが比較的行いやすいことなどから、初心者にとても優しいフレームワークと言われてます。
Keras
プログラミング経験なくてもニューラルネットワークの構築が可能な、初心者に最も優しいAI(人工知能)向けオープンソース・フレームワークと言われているのがKerasです。
ニューラルネットワークのアルゴリズムに関する深い知識がなくても「どのような層を配置して、どれくらいの数、どのように学習をするか」程度の理解でも、アルゴリズム選定とパラメータ指定および最低限のコード記述だけでニューラルネットワークを構築することができます。
なお、構築が簡単な反面、処理の複雑さが隠蔽されておりコード記述からはその処理内容を理解できないため、ニューラルネットワークについての理解を深めることは難しいというデメリットがあります。
Cognitive Toolkit(Microsoft)
Cognitive Toolkitは、AI(人工知能)でGoogleを猛追しているMicrosoftが提供するAI(人工知能)向けオープンソース・フレームワークです。
Cognitive Toolkitの強みは高速処理にあります。複数のマシンに搭載された複数のGPUを使用することにより、他フレームワークよりも極めて高い性能を実現できます。
PyTorch(Facebook)
PyTorchは、あのFacebookが提供するAI(人工知能)向けオープンソース・フレームワークです。
公開が2017年と後発ながら、Chainerに通じた使いやすさもあって、PyTorchを使用した論文を発表する研究者が非常に多く、代表的なディープラーニング手法の実装例のほとんどが入手可能という利点があります。
上記5製品の他にもAI(人工知能)向けオープンソース・フレームワークとして以下のような製品があります。
- Caffe2(Facebook):FacebookがNVIDIA(GPUメーカー)と共同開発
- MXNet(amazonが公式サポート):Python/R/Julia/Goなどの多言語をサポート
- PaddlePadlle(百度):中国産フレームワーク
- DeepLearning4J:Javaベースのフレームワーク
- scikit-learn:機械学習分野で著名な学習データを同梱
AI(人工知能)アプリ/サービス開発の今後の動向について
現時点では、AI(人工知能)アプリ/サービスの開発はフレームワークで行うのが主流ですが、今後はプログラミング不要の方向へシフトしてゆくことが予想されます。
例として、SONYが無償提供しているNeural Network Consoleがあります。今回紹介したAI(人工知能)向けオープンソース・フレームワークの場合、Python等の開発言語によるプログラミングが必要となりますが、Neural Network Consoleの場合プログラミングが一切不要で、マウス操作だけでニューラルネットワークの設計、学習および評価を行うことができます。
また、現状のAI(人工知能)向けオープンソース・フレームワークの多くがLinuxやMacOSをメインターゲットにしているのに対し、Neural Network ConsoleはWindowsをターゲットにしており、今後のソフトウェア開発現場への普及が見込まれています。
スマホカメラによる映像作成人口の爆発的な増大により多数の優れた映像コンテンツが生まれたように、今後、ノンプラグラミング化が進めば、AI(人工知能)アプリ作成人口の大幅な増加と多数の優れたAI(人工知能)アプリの誕生が期待できますよね。
以上、今回は主要なAI(人工知能)向けオープンソース・フレームワークについてお伝えしてきました。
- TensorFlow:圧倒的な利用者数と巨大なコミュニティ/豊富なライブラリ/高速処理が強み。
- Chainer:日本製で直感的なプログラミングが可能。インストールが簡単でデバッグが比較的行いやすい。
- Keras:初心者に最も優しいフレームワーク。プログラミング経験なくても大丈夫。
- Cognitive Toolkit:複数マシン/複数GPU活用による高性能を実現
- PyTorch:後発ながら研究者に根強い人気
- Neural Network Console:SONYが提供するプログラミング不要なAI(人工知能)開発ツール
ところで各社はなぜフレームワークをオープンソースとして無料で公開しているのでしょうか。一般的に言われているのは、ソフトウェアおよびソースコードを共有の知的財産として使用してもらうことにより、様々な人が修正や改良を重ね、より良いソフトウェアへと成長させることができる、という考えです。
一方、企業戦略としてオープンソースを進める企業もあります。例えばGoogleはAndroidをオープンソース化することによりスマホ普及を進め、Googleにとって有利な状況を作り出したのと同じ戦略を進めている可能性もありますが、Googleにとってより重要なのは学習に必要となる「データ」のようです。
「データ」がなければフレームワーク/アルゴリズムだけでは何ら結果を出すことはできません。現在、AI(人工知能)の最先端を走るGoogleおよびFacebook共に日々、大量の「データ」の収集と蓄積を続けており、これらの「データ」は今後当然オープンにされることはなく、この「データ」こそがGoogleおよびFacebookの価値であり強みになるでしょう。
今後はどれだけ有益な「データ」を持っているかが、企業の強さを表す指標になるかもしれません。
参照元
人工知能を理解する(Vol.1)
第2回 ディープラーニングのモデルと専用サーバーを知る
Deep Learning フレームワークざっくり一覧
そういうことだったのか!と思わずうなずく「機械学習」超入門
主要AIフレームワークの特徴比較
【PyTorch、Chainer、Keras、TensorFlow】ディープラーニングのフレームワークの利点・欠点【2017年10月更新】
機械学習のライブラリ (Vol.3)
AIの開発!技術やツール、ライブラリを紹介!
NVIDIA と Facebook が協力し、Caffe2 ディープラーニング フレームワークを拡充
Microsoftが公開したDeep LearningフレームワークCNTKの3つの特徴
人工知能(AI)を実現するディープラーニング(深層学習)の 統合開発環境Neural Network Consoleを公開
SONYの本気!AI開発ツール『Neural Network Console』が常識をぶっ壊す
グーグルは、なぜAIエンジンをオープンソース化したのか?
コメントをどうぞ