2017年1月31日火曜日

5年間でこんなに増えたAI向けフレームワーク

 ディープラーニングに代表されるAIの適用範囲は着実に広がっている。企業のITシステムにおいても成果を期待できるシーンが見えてきた。このため近い将来には、ITエンジニアがAIを活用するシステムを提案したり、開発したりすることが、決して珍しいことではなくなるだろう。

 ITエンジニアにとっては、活躍の場を広げるチャンスと言える。そこでAIを活用するシステムの開発を巡る状況も確認しておこう。

 AIを活用するシステムの開発は、既存の業務システムの開発とは異なる点が多い。初めのうちは戸惑うかもしれない。

 特に注意したいのは開発プロセスである。機械学習を利用するシステムでは、処理フローなどを定義しない。従ってシステムを構築した際に、要件と照らし合わせて適切かどうかを評価することが難しいわけだ。

 また、ディープラーニングを利用したシステムの場合、内部がブラックボックス化してしまう面がある。先に解説した通り、ディープラーニングはタスクの実行に必要となる特徴を人手で決める手間が掛からない。これは適用範囲を広げる大きな利点である一方で、システムがどのような特徴を利用しているのかが人間には分からないことを意味する。このため、機能や性能で不具合が発生したとしても、系統立てた対処が難しい。

 このような問題を少しでも避けるには、ユーザー企業のIT部門や利用部門と、ベンダーのITエンジニアが協力し、実証実験などを通じて経験を積むことがこれまで以上に重要になる。また、そのような活動を推進するためにも、先端技術と業務の両方に精通した人材が欠かせない。

フレームワークが続々と登場

 AIを活用するシステムでは、基盤をいかに構築するかも大きな課題となる。機械学習では、学習のために膨大なデータを管理するストレージや、計算処理のためのサーバーリソースが欠かせない。さらに、さまざまなミドルウエアを組み合わせて活用するスキルが求められる。

 そこで、パブリッククラウド事業者のサービスを利用することが有力な選択肢となる。機械学習のクラウドサービスとしては、米Amazon Web Servicesの「Amazon Machine Learning」、Googleの「Cloud Machine Learning」、IBMの「IBM BluemixWatson)」、Microsoftの「Microsoft Azure Machine Learning」などが挙げられる。これらのサービスやAPIを利用すれば、ハードウエアやソフトウエアの導入コストを抑えて機械学習を活用できる。

 ただし、ディープラーニングのプラットフォームを開発する機能を備えたクラウドサービスはまだ限られる。ソフトウエア、ハードウエアを自前でそろえて環境を構築しなければならないことが多い。ソフトとハード、それぞれの動向を確認しておこう。

 ソフトに関しては、2012年以降、多くのフレームワークがオープンソースソフトで続々と登場している。中でも米California大学が提供する「Caffe」や、カナダのMontreal大学の「Theano/Pylearn2」などが研究者の間では広く良く利用されてきた。

 さらに2015年には日本のPreferred Networksが「Chainer」を、Googleが「TensorFlow」というフレームワークをそれぞれ公開した。

 Chainerはディープラーニングの構造を記述する際に、Pythonの制御コードを利用できる。他のフレームワークのように特別な言語が必要ではないため、多様化・複雑化するディープラーニングのネットワークの構造を、比較的柔軟に記述できる。TensorFlowは、複数デバイスによる並列処理が容易にできる。大規模な処理を高速に実行しやすいわけだ。

 Googleはこのほかにも、ニューラルネットワークの構成や学習課程を可視化する「TensorFlow Playground」というツールを提供している。TensorFlow PlaygroundWebアプリケーションのため、ハードウエアやライブラリなどの実行環境を構築せずに利用できる。機械学習などの基本を学びたいITエンジニアにとって有用だ。

GPUFPGAで学習時間を短縮

 ハードに目を向けると、GPUGraphics Processing Unit)の利用が一般的になっている。GPUは多数のコアで構成し、一般的なCPUよりも並列処理による数値計算が速いという利点がある。もともとの用途はグラフィック処理の高速化だが、機械学習にもこの利点が効果を発揮する。

 GPUサーバーを多数調達するには相応のコストが必要だが、最近は多くのIaaSベンダーがGPUインスタンス(仮想マシン)のサービスを提供している。こうしたクラウドサービスを利用するのもよいだろう。

 また、GPUよりも消費電力当たりの演算性能を高めようと、別の手段を採用する動きも活発になってきた。

 例えばその一つは、FPGAField Programmable Gate Array)と呼ばれる集積回路を利用する取り組みである。Microsoftは同社の検索エンジンであるBingの自然言語処理に、FPGAを搭載した専用サーバーを使用している。また、米Intel2015年に大手FPGAベンダーである米Alteraを買収したのも、こうした動きへの対応と見られる。近い将来、IntelCPUファミリーにも、何らかの形でFPGA機能が盛り込まれる可能性は十分に考えられる。

 二つめの動きは、機械学習に特化した専用プロセッサーを開発する取り組みだ。例えばGoogleはディープラーニング専用プロセッサー「Tensor Processing UnitTPU)」を開発し、2015年から使用していることを20165月に公表した。

 GoogleによるとTPUの消費電力当たりの性能は、GPUFPGA10倍という。このTPUは、同社のCloud Machine LearningAlphaGOにも使われている。

 GPUに代わる三つめの手段として、量子コンピュータをAIに適用する研究も始まっている。これは、現在実用化されている「量子アニーリング方式」の量子コンピュータが、組み合わせ最適化問題という機械学習における学習処理と同じ数学的な課題を解く能力に優れているためである。

 既に米国と欧州は、AIへの適用を見据えた量子コンピュータへの戦略的な投資を政府主導で開始した。また、Googleは量子コンピュータの自主開発を進めているという。

0 件のコメント:

コメントを投稿