KUMICO

COLUMN

ディープラーニングを例に解説するクラウドコンピューティングとエッジコンピューティング

IoTと並んで今押さえておくべき技術のNo.1と言っても過言ではない「ディープラーニング」、「クラウドコンピューティング」、「エッジコンピューティング」。ここでは、ディープラーニングの処理を例に、クラウドコンピューティングとエッジコンピューティングに関してわかりやすく説明します。

便利に暮らしたいという思いを実現するため、アルゴリズムとハードウェアは日々進化する

様々な組み込み機器は、CPUなどに代表とされる半導体の技術革新により、小型化・高性能化してきています。この進化により、例えば温度計や体重計などの安価な組み込み機器が、「インターネットに接続し日々の記録を自動でつけてくれる」「Bluetoothでスマートフォンと接続しアプリと連携する」など、一昔前では「あったら便利だと思うけれど実現できなかったこと」が今となっては当たり前に実現されています。
人間の発想は無限で「こんなことが出来たら便利なのに…」という考えが日々新しい要求を生み出します。そして、この要求を実現するために実現方法(アルゴリズム)とハードウェアは日々進化していくのです。
ゲームを例に考えるとわかりやすいかもしれません。
初めのファミコンなどの初代機ではカクカクのドット絵・単音だったものが、スーパーファミコンになると綺麗なグラフィック・16bitステレオ音源に進化し、それ以降になると3D・フルオーケストラ・マルチチャンネル音源へと進化したかと思います。
これは「もっと現実に(近く)なると面白いのに…」というような要求が、より現実に近い3Dやマルチチャンネル音源といった、より複雑な高い処理能力を要するアルゴリズムを生み出し、それに耐えうるハードウェアが登場した結果、実現されたと言えます。
最近テレビ、インターネットなどでも騒がれているAI(人工知能)も「こんな機能があったら便利なのに…」という要求を実現するアルゴリズム=ディープラーニング(深層学習)と、ハードウェア=クラウドコンピューティングとエッジコンピューティングが登場した事で、今まで実現できなかった様々なAI(人工知能)が実現されるようになってきたのです。

クラウドコンピューティングもエッジコンピューティングもない、15年前のAI(人工知能)研究

現段階において、AI(人工知能)を実現する代表的なアルゴリズムと言えばディープラーニング(深層学習)ではないでしょうか。このディープラーニングというアルゴリズムはハードウェアに対して非常に高い処理能力を要求します。私は西暦2000年頃、大学でニューラルネットワークというディープラーニングの基礎となるようなアルゴリズムを用いた研究をしていました。ニューラルネットワークもディープラーニングも学習と推論という2つのフェーズがあります。例えば、工場内のラインを映すカメラに映ったものが不良品かどうかを見分ける機能をニューラルネットワークで実現しようと思った場合、学習フェーズは様々なパターンの不良品画像をニューラルネットワークに教える勉強フェーズであり、推論フェーズはその学習したニューラルネットワークに未知の画像を見せてそれが不良品かどうか判断するフェーズとなります。
私の研究ではニューラルネットワークを利用して個人認識を行っていましたが、ニューラルネットワークの学習を行うのに、大学にある高性能なコンピュータ(当時はIntel社Xeonプロセッサを搭載したPC/AT互換機)を100台以上同時に利用し、一晩中学習プログラムを動かし続けて、やっと1回の学習が終わる状況でした。推論においても、なるべく高速に処理するために、並列処理に特化した250個以上のプロセッサを搭載した、特殊なコンピュータを利用して実現していました。
当時のAI(人工知能)は、研究機関という極めて特殊な設備を持つ環境があったためにできたことであり、身近な環境で実現可能なものではありませんでした。

クラウドコンピューティングとエッジコンピューティングの登場による変化

2000年以降になってくるとADSLや光回線が一般化しインターネット回線がどんどん高速になっていきました。これを受けて登場したのがクラウドコンピューティングです。
クラウドコンピューティングは、ネットワーク上に大きな処理能力を持ったサーバーが複数台配置されたデータセンターで、利用者はインターネットを介してそれらのサーバーにアクセスし演算をさせたり、大量のデータを保存させたりと様々なことができる環境(サービス・システム・プラットフォームという方もいらっしゃいます)です。
AWSやAzureなどに代表されるクラウドコンピューティングが誰でも利用しやすくなったことで、ディープラーニングの学習のような高い処理能力が必要とされる処理を、誰でも高速に実行することができるようになったのです。言ってみれば学生時代に利用していた100台以上の高性能コンピュータという環境を誰でも利用できるようになったということです。
しかしながら、クラウドにも弱点があります。いくらネットワークが高速になったとしても、やはりネットワークを経由して通信する以上、遅延は発生してしまいます。よって、遅延が許されないような処理はクラウドには向きません。
例えば、自動車の自動運転における緊急停止の技術などが良い例かと思います。
車に搭載したカメラが進行方向に人間の接近を検知したら緊急停止する場合などでは、処理の遅延により停止が間に合わないというような事態になってしまっては目も当てられません。
先ほど例に挙げたような、工場での不良品検知などの場合でも1個1個の検知に時間をかけてはいられませんし、処理は早く終わるに越したことはないのです。
このように遅延が許されないような処理も存在するため、全ての処理をクラウドコンピューティングで実行するのは現状難しい部分があります。
ここで登場してきたのがエッジコンピューティング(フォグコンピューティングという方もいらっしゃいます)です。今は、2000年頃とは比べ物にならないほどハードウェアが小型・高性能になっており、デバイス側の処理能力も格段に上がっています。
これを利用し、遅延が許されない処理は通信せずにデバイス側で処理をする、またはデバイス側でデータを前処理することで、クラウド側への通信データを減らし、ネットワークの遅延をなるべく少なくすることが可能です。(※)
エッジコンピューティングは、ディープラーニングにおける推論フェーズを実現するのに向いていると思います。
このように学習フェーズのような高い処理能力を要求されるような処理を行うのに向いているクラウドコンピューティング、推論フェーズのような処理速度が優先されるような処理に向いているエッジコンピューティングという特徴が明確な2つの環境が登場したことで、今まで身近な環境では実現が難しかった処理も誰もが実現可能になってきたのです。

※本来エッジコンピューティングとは、端末の近くにサーバを分散配置することで通信遅延の短縮を図るというシステムですが、本コラムではわかりやすくするため、端末自身が処理するシステムとして記載しております。

これからはクラウドコンピューティングとエッジコンピューティングのハイブリッドコンピューティング

それでは今後はどうなっていくのでしょうか。
エッジ処理を行う際に重要となるのは、組み込み機器(デバイス側)に搭載されるCPUの処理能力向上です。人によっては頭打ちだとも言われていますが、私はグラフィック処理専用のCPUであるGPUのように専用回路を搭載し、もうしばらくは高性能化が続くのではと思っています。
また一方でクラウド処理のネックとなるのは、ネットワーク速度です。こちらも5Gなどの規格も目前となっている通り、今後はまだまだ高速になっていくと思っています。
このように、今後はエッジコンピューティングもクラウドコンピューティングもさらに使いやすいものとなっていくと思われますが、どちらか一方しか使われなくなるようなことは現時点ではないかなと私は思っております。
クラウドコンピューティングとエッジコンピューティングのメリットを生かした処理分担を行い、エッジで可能な部分はエッジで、クラウド側に任せた方が良い処理はクラウド側でという、ハイブリッドなシステムというのが今後は多くなってくるのではと私は考えています。
今後、工場内の産業機器から手近に存在する自動車や車載機器、家電製品まで多種多様なデバイスが高性能化しネットワークにつながり、そこで取得する様々なデータにAI(人工知能)が介在することで新たな価値が生まれる世の中がすぐそこまで来ています。
組み込み技術者という目線ではエッジにばかりに注目が行きがちですが、今後のシステムを考えるとエッジコンピューティング、クラウドコンピューティング、ネットワーク、AI(人工知能)と知っておくべき技術畑は増えていく方向にあると思っています。
これから組み込み技術者を目指す方、既に組み込み技術者として組み込み機器開発の第一線で活躍している方もクラウドコンピューティング、エッジコンピューティングの環境にふれてみるのはいかがでしょうか。

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!